summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.export1
-rw-r--r--.qmake.conf2
-rw-r--r--b2qt-demos.pro3
-rw-r--r--basicsuite/About Boot to Qt/AboutBoot2Qt.qml61
-rw-r--r--basicsuite/About Boot to Qt/Box.qml30
-rw-r--r--basicsuite/About Boot to Qt/ContentText.qml8
-rw-r--r--basicsuite/About Boot to Qt/QtForAndroid.qml48
-rw-r--r--basicsuite/About Boot to Qt/QtFramework.qml35
-rw-r--r--basicsuite/About Boot to Qt/Title.qml8
-rw-r--r--basicsuite/About Boot to Qt/description.txt3
-rw-r--r--basicsuite/About Boot to Qt/main.qml135
-rw-r--r--basicsuite/Camera/Camera.pro4
-rw-r--r--basicsuite/Camera/CameraControlButton.qml54
-rw-r--r--basicsuite/Camera/CameraSetting.qml28
-rw-r--r--basicsuite/Camera/CaptureControl.qml40
-rw-r--r--basicsuite/Camera/CapturePreview.qml45
-rw-r--r--basicsuite/Camera/Controls.qml159
-rw-r--r--basicsuite/Camera/FocusControl.qml111
-rw-r--r--basicsuite/Camera/Picker.qml89
-rw-r--r--basicsuite/Camera/RecordingTime.qml70
-rw-r--r--basicsuite/Camera/Slider.qml93
-rw-r--r--basicsuite/Camera/ZoomControl.qml40
-rw-r--r--basicsuite/Camera/camerautils/camerautils.cpp189
-rw-r--r--basicsuite/Camera/camerautils/camerautils.h87
-rw-r--r--basicsuite/Camera/camerautils/camerautils.pro19
-rw-r--r--basicsuite/Camera/camerautils/plugin.cpp60
-rw-r--r--basicsuite/Camera/description.txt5
-rw-r--r--basicsuite/Camera/main.qml223
-rw-r--r--basicsuite/Controls Layouts/description.txt3
-rw-r--r--basicsuite/Controls Layouts/main.qml118
-rw-r--r--basicsuite/Controls Layouts/preview_l.jpgbin11273 -> 0 bytes
-rw-r--r--basicsuite/Controls Touch/content/AndroidDelegate.qml92
-rw-r--r--basicsuite/Controls Touch/content/ButtonPage.qml120
-rw-r--r--basicsuite/Controls Touch/content/ProgressBarPage.qml114
-rw-r--r--basicsuite/Controls Touch/content/SliderPage.qml106
-rw-r--r--basicsuite/Controls Touch/content/TabBarPage.qml102
-rw-r--r--basicsuite/Controls Touch/content/TextInputPage.qml106
-rw-r--r--basicsuite/Controls Touch/main.qml148
-rw-r--r--basicsuite/Graphical Effects/Checkers.qml28
-rw-r--r--basicsuite/Graphical Effects/description.txt2
-rw-r--r--basicsuite/Graphical Effects/effect_BrightnessContrast.qml35
-rw-r--r--basicsuite/Graphical Effects/effect_Colorize.qml34
-rw-r--r--basicsuite/Graphical Effects/effect_CustomDissolve.qml125
-rw-r--r--basicsuite/Graphical Effects/effect_CustomWave.qml118
-rw-r--r--basicsuite/Graphical Effects/effect_Displacement.qml40
-rw-r--r--basicsuite/Graphical Effects/effect_DropShadow.qml43
-rw-r--r--basicsuite/Graphical Effects/effect_GaussianBlur.qml39
-rw-r--r--basicsuite/Graphical Effects/effect_Glow.qml39
-rw-r--r--basicsuite/Graphical Effects/effect_HueSaturation.qml34
-rw-r--r--basicsuite/Graphical Effects/effect_OpacityMask.qml30
-rw-r--r--basicsuite/Graphical Effects/effect_ThresholdMask.qml43
-rw-r--r--basicsuite/Graphical Effects/main.qml191
-rw-r--r--basicsuite/Launcher Settings/BrightnessController.qml9
-rw-r--r--basicsuite/Launcher Settings/NetworkController.qml21
-rw-r--r--basicsuite/Launcher Settings/PoweroffAction.qml8
-rw-r--r--basicsuite/Launcher Settings/RebootAction.qml8
-rw-r--r--basicsuite/Launcher Settings/main.qml152
-rw-r--r--basicsuite/Launcher Settings/preview_l.jpgbin12642 -> 0 bytes
-rwxr-xr-xbasicsuite/Media Player/ControlBar.qml285
-rwxr-xr-xbasicsuite/Media Player/ImageButton.qml44
-rw-r--r--basicsuite/Media Player/Intro.qml48
-rw-r--r--basicsuite/Media Player/MetadataView.qml173
-rwxr-xr-xbasicsuite/Media Player/PlaybackControl.qml60
-rwxr-xr-xbasicsuite/Media Player/SeekControl.qml83
-rw-r--r--basicsuite/Media Player/Slider.qml98
-rw-r--r--basicsuite/Media Player/UrlBar.qml80
-rwxr-xr-xbasicsuite/Media Player/VolumeControl.qml45
-rw-r--r--basicsuite/Media Player/description.txt3
-rw-r--r--basicsuite/Photo Gallery/description.txt1
-rw-r--r--basicsuite/Photo Gallery/main.qml255
-rw-r--r--basicsuite/Qt5 Cinematic Demo/Qt5_CinematicExperience.qmlproject20
-rw-r--r--basicsuite/Qt5 Cinematic Demo/README49
-rw-r--r--basicsuite/Qt5 Cinematic Demo/content/images/heading.pngbin58704 -> 0 bytes
-rw-r--r--basicsuite/Qt5 Cinematic Demo/content/images/heading_big.pngbin58950 -> 0 bytes
-rw-r--r--basicsuite/Qt5 Cinematic Demo/description.txt5
-rw-r--r--basicsuite/Qt5 Launch Presentation/CameraSlide.qml92
-rw-r--r--basicsuite/Qt5 Launch Presentation/CanvasSlide.qml161
-rw-r--r--basicsuite/Qt5 Launch Presentation/OpacityTransitionPresentation.qml104
-rw-r--r--basicsuite/Qt5 Launch Presentation/VideoSlide.qml116
-rw-r--r--basicsuite/Qt5 Launch Presentation/WebKitSlideContent.qml84
-rw-r--r--basicsuite/Qt5 Launch Presentation/WebkitSlide.qml19
-rw-r--r--basicsuite/Qt5 Launch Presentation/description.txt6
-rw-r--r--basicsuite/Qt5 Launch Presentation/particles/velocityfrommotion.qml305
-rw-r--r--basicsuite/Qt5 Particles Demo/content/burstandpulse.qml110
-rw-r--r--basicsuite/Qt5 Particles Demo/content/customemitter.qml96
-rw-r--r--basicsuite/Qt5 Particles Demo/content/emitmask.qml74
-rw-r--r--basicsuite/Qt5 Particles Demo/content/maximumemitted.qml82
-rw-r--r--basicsuite/Qt5 Particles Demo/content/shapeanddirection.qml112
-rw-r--r--basicsuite/Qt5 Particles Demo/content/trailemitter.qml176
-rw-r--r--basicsuite/Qt5 Particles Demo/content/velocityfrommotion.qml312
-rw-r--r--basicsuite/Qt5 Particles Demo/doc/src/emitters.qdoc60
-rw-r--r--basicsuite/Qt5 Particles Demo/main.cpp41
-rw-r--r--basicsuite/Qt5 Particles Demo/main.qml60
-rw-r--r--basicsuite/Qt5 Particles Demo/shared/Button.qml91
-rw-r--r--basicsuite/Qt5 Particles Demo/shared/LauncherList.qml148
-rw-r--r--basicsuite/Qt5 Particles Demo/shared/SimpleLauncherDelegate.qml89
-rw-r--r--basicsuite/Qt5 Particles Demo/shared/shared.h58
-rw-r--r--basicsuite/Qt5Everywhere/Button.qml72
-rw-r--r--basicsuite/Qt5Everywhere/Cloud.qml105
-rw-r--r--basicsuite/Qt5Everywhere/DialogButton.qml66
-rw-r--r--basicsuite/Qt5Everywhere/Element.qml76
-rw-r--r--basicsuite/Qt5Everywhere/Group.qml81
-rw-r--r--basicsuite/Qt5Everywhere/HelpScreen.qml329
-rw-r--r--basicsuite/Qt5Everywhere/IslandElementContainer.qml158
-rw-r--r--basicsuite/Qt5Everywhere/NavigationPanel.qml92
-rw-r--r--basicsuite/Qt5Everywhere/Qt5Everywhere.pro3
-rw-r--r--basicsuite/Qt5Everywhere/QuitDialog.qml107
-rw-r--r--basicsuite/Qt5Everywhere/Slide.qml252
-rw-r--r--basicsuite/Qt5Everywhere/SplashScreen.qml105
-rw-r--r--basicsuite/Qt5Everywhere/WorldCanvas.qml145
-rw-r--r--basicsuite/Qt5Everywhere/WorldMouseArea.qml115
-rw-r--r--basicsuite/Qt5Everywhere/demos/canvasclock/canvasClock.qml404
-rw-r--r--basicsuite/Qt5Everywhere/demos/gridrssnews/RssDelegate.qml111
-rw-r--r--basicsuite/Qt5Everywhere/demos/gridrssnews/ScrollBar.qml72
-rw-r--r--basicsuite/Qt5Everywhere/demos/gridrssnews/main.qml150
-rw-r--r--basicsuite/Qt5Everywhere/demos/heartmonitor/HeartData.js50
-rw-r--r--basicsuite/Qt5Everywhere/demos/heartmonitor/main.qml266
-rw-r--r--basicsuite/Qt5Everywhere/demos/particledemo/BootScreenDemo.qml181
-rw-r--r--basicsuite/Qt5Everywhere/demos/particledemo/ParticleSysComponent.qml108
-rw-r--r--basicsuite/Qt5Everywhere/demos/particledemo/particledemo.qml213
-rw-r--r--basicsuite/Qt5Everywhere/demos/photosurface/photosurface.qml131
-rw-r--r--basicsuite/Qt5Everywhere/demos/radio/VolumeButton.qml185
-rw-r--r--basicsuite/Qt5Everywhere/demos/radio/VolumePoint.qml64
-rw-r--r--basicsuite/Qt5Everywhere/demos/radio/radio.qml261
-rw-r--r--basicsuite/Qt5Everywhere/demos/rssnews/content/BusyIndicator.qml53
-rw-r--r--basicsuite/Qt5Everywhere/demos/rssnews/content/CategoryDelegate.qml84
-rw-r--r--basicsuite/Qt5Everywhere/demos/rssnews/content/NewsDelegate.qml75
-rw-r--r--basicsuite/Qt5Everywhere/demos/rssnews/content/RssFeeds.qml58
-rw-r--r--basicsuite/Qt5Everywhere/demos/rssnews/content/ScrollBar.qml107
-rw-r--r--basicsuite/Qt5Everywhere/demos/rssnews/rssnews.qml101
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/Block.qml114
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/BlockEmitter.qml57
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/Button.qml70
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/GameArea.qml226
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/LogoAnimation.qml102
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/MenuEmitter.qml53
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/PaintEmitter.qml98
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/PrimaryPack.qml122
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/PuzzleBlock.qml111
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/SimpleBlock.qml108
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/SmokeText.qml83
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/TemplateBase.qml70
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level0.qml59
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level1.qml59
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level2.qml61
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level3.qml60
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level4.qml58
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level5.qml59
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level6.qml60
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level7.qml58
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level8.qml59
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/levels/level9.qml62
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/content/samegame.js581
-rw-r--r--basicsuite/Qt5Everywhere/demos/samegame/samegame.qml371
-rw-r--r--basicsuite/Qt5Everywhere/demos/shaders/Logo.qml191
-rw-r--r--basicsuite/Qt5Everywhere/demos/shaders/LogoContainer.qml87
-rw-r--r--basicsuite/Qt5Everywhere/demos/shaders/Slider.qml138
-rw-r--r--basicsuite/Qt5Everywhere/demos/shaders/import/import.pro13
-rw-r--r--basicsuite/Qt5Everywhere/demos/shaders/import/main.cpp22
-rw-r--r--basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp50
-rw-r--r--basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.h44
-rw-r--r--basicsuite/Qt5Everywhere/demos/touchgallery/content/AndroidDelegate.qml94
-rw-r--r--basicsuite/Qt5Everywhere/demos/touchgallery/content/ButtonPage.qml121
-rw-r--r--basicsuite/Qt5Everywhere/demos/touchgallery/content/CustomAppWindow.qml181
-rw-r--r--basicsuite/Qt5Everywhere/demos/touchgallery/content/ProgressBarPage.qml114
-rw-r--r--basicsuite/Qt5Everywhere/demos/touchgallery/content/SliderPage.qml102
-rw-r--r--basicsuite/Qt5Everywhere/demos/touchgallery/content/TabBarPage.qml102
-rw-r--r--basicsuite/Qt5Everywhere/demos/touchgallery/content/TextInputPage.qml106
-rw-r--r--basicsuite/Qt5Everywhere/demos/touchgallery/main.qml135
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/ControlBar.qml290
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/ImageButton.qml77
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/PlaybackControl.qml61
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/ScrollBar.qml69
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/SeekControl.qml125
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/Slider.qml140
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/VideoDelegate.qml111
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/VideoSelector.qml158
-rw-r--r--basicsuite/Qt5Everywhere/demos/video/VolumeControl.qml80
-rw-r--r--basicsuite/Qt5Everywhere/description.txt1
-rw-r--r--basicsuite/Qt5Everywhere/engine.js302
-rw-r--r--basicsuite/Qt5Everywhere/main.qml242
-rw-r--r--basicsuite/Qt5Everywhere/preview_l.jpgbin33885 -> 0 bytes
-rw-r--r--basicsuite/Qt5Everywhere/style.js49
-rw-r--r--basicsuite/Sensors/Accelbubble.qml68
-rw-r--r--basicsuite/Sensors/Light.qml50
-rw-r--r--basicsuite/Sensors/description.txt4
-rw-r--r--basicsuite/Sensors/main.qml65
-rw-r--r--basicsuite/Sensors/preview_l.jpgbin18384 -> 0 bytes
-rw-r--r--basicsuite/Text Input/ScrollBar.qml66
-rw-r--r--basicsuite/Text Input/TextArea.qml88
-rw-r--r--basicsuite/Text Input/TextBase.qml95
-rw-r--r--basicsuite/Text Input/TextField.qml93
-rw-r--r--basicsuite/Text Input/background.pngbin34931 -> 0 bytes
-rw-r--r--basicsuite/Text Input/description.txt6
-rw-r--r--basicsuite/Text Input/main.qml121
-rw-r--r--basicsuite/about-b2qt/AboutBoot2Qt.qml120
-rw-r--r--basicsuite/about-b2qt/Box.qml70
-rw-r--r--basicsuite/about-b2qt/ContentText.qml48
-rw-r--r--basicsuite/about-b2qt/QtForAndroid.qml93
-rw-r--r--basicsuite/about-b2qt/QtFramework.qml75
-rw-r--r--basicsuite/about-b2qt/Title.qml48
-rw-r--r--basicsuite/about-b2qt/about-b2qt.pro13
-rw-r--r--basicsuite/about-b2qt/codeless.png (renamed from basicsuite/About Boot to Qt/codeless.png)bin28581 -> 28581 bytes
-rw-r--r--basicsuite/about-b2qt/description.txt3
-rw-r--r--basicsuite/about-b2qt/dummy.cpp (renamed from basicsuite/Qt5Everywhere/demos/shaders/import/plugin.json)0
-rw-r--r--basicsuite/about-b2qt/main.qml175
-rw-r--r--basicsuite/about-b2qt/particle.png (renamed from basicsuite/About Boot to Qt/particle.png)bin861 -> 861 bytes
-rw-r--r--basicsuite/about-b2qt/preview_l.jpg (renamed from basicsuite/About Boot to Qt/preview_l.jpg)bin28727 -> 28727 bytes
-rw-r--r--basicsuite/about-b2qt/qt-logo.png (renamed from basicsuite/About Boot to Qt/qt-logo.png)bin21659 -> 21659 bytes
-rw-r--r--basicsuite/about-b2qt/title.txt1
-rw-r--r--basicsuite/basicsuite.pro5
-rw-r--r--basicsuite/camera/CameraControlButton.qml94
-rw-r--r--basicsuite/camera/CameraSetting.qml68
-rw-r--r--basicsuite/camera/CaptureControl.qml80
-rw-r--r--basicsuite/camera/CapturePreview.qml85
-rw-r--r--basicsuite/camera/Controls.qml199
-rw-r--r--basicsuite/camera/FocusControl.qml151
-rw-r--r--basicsuite/camera/Picker.qml129
-rw-r--r--basicsuite/camera/README (renamed from basicsuite/Camera/README)0
-rw-r--r--basicsuite/camera/RecordingTime.qml110
-rw-r--r--basicsuite/camera/Slider.qml133
-rw-r--r--basicsuite/camera/ZoomControl.qml80
-rw-r--r--basicsuite/camera/app.pro13
-rw-r--r--basicsuite/camera/camera.pro7
-rw-r--r--basicsuite/camera/camerautils/camerautils.cpp229
-rw-r--r--basicsuite/camera/camerautils/camerautils.h127
-rw-r--r--basicsuite/camera/camerautils/camerautils.pro20
-rw-r--r--basicsuite/camera/camerautils/plugin.cpp60
-rw-r--r--basicsuite/camera/camerautils/qmldir (renamed from basicsuite/Camera/camerautils/qmldir)0
-rw-r--r--basicsuite/camera/description.txt5
-rw-r--r--basicsuite/camera/exclude.txt8
-rw-r--r--basicsuite/camera/main.qml263
-rw-r--r--basicsuite/camera/preview_l.jpgbin0 -> 33458 bytes
-rw-r--r--basicsuite/camera/title.txt1
-rw-r--r--basicsuite/controls-touch/content/AndroidDelegate.qml92
-rw-r--r--basicsuite/controls-touch/content/ButtonPage.qml120
-rw-r--r--basicsuite/controls-touch/content/ProgressBarPage.qml114
-rw-r--r--basicsuite/controls-touch/content/SliderPage.qml106
-rw-r--r--basicsuite/controls-touch/content/TabBarPage.qml102
-rw-r--r--basicsuite/controls-touch/content/TextInputPage.qml106
-rw-r--r--basicsuite/controls-touch/controls-touch.pro16
-rw-r--r--basicsuite/controls-touch/description.txt (renamed from basicsuite/Controls Touch/description.txt)0
-rw-r--r--basicsuite/controls-touch/images/NOTICE.txt (renamed from basicsuite/Controls Touch/images/NOTICE.txt)0
-rw-r--r--basicsuite/controls-touch/images/button_default.png (renamed from basicsuite/Controls Touch/images/button_default.png)bin1406 -> 1406 bytes
-rw-r--r--basicsuite/controls-touch/images/button_pressed.png (renamed from basicsuite/Controls Touch/images/button_pressed.png)bin1694 -> 1694 bytes
-rw-r--r--basicsuite/controls-touch/images/navigation_next_item.png (renamed from basicsuite/Controls Touch/images/navigation_next_item.png)bin1341 -> 1341 bytes
-rw-r--r--basicsuite/controls-touch/images/navigation_previous_item.png (renamed from basicsuite/Controls Touch/images/navigation_previous_item.png)bin1343 -> 1343 bytes
-rw-r--r--basicsuite/controls-touch/images/tab_selected.png (renamed from basicsuite/Controls Touch/images/tab_selected.png)bin217 -> 217 bytes
-rw-r--r--basicsuite/controls-touch/images/tabs_standard.png (renamed from basicsuite/Controls Touch/images/tabs_standard.png)bin1230 -> 1230 bytes
-rw-r--r--basicsuite/controls-touch/images/textinput.png (renamed from basicsuite/Controls Touch/images/textinput.png)bin4132 -> 4132 bytes
-rw-r--r--basicsuite/controls-touch/images/toolbar.png (renamed from basicsuite/Controls Touch/images/toolbar.png)bin1643 -> 1643 bytes
-rw-r--r--basicsuite/controls-touch/main.qml148
-rw-r--r--basicsuite/controls-touch/preview_l.jpg (renamed from basicsuite/Controls Touch/preview_l.jpg)bin11179 -> 11179 bytes
-rw-r--r--basicsuite/controls-touch/title.txt1
-rw-r--r--basicsuite/enterprise-charts/View1.qml54
-rw-r--r--basicsuite/enterprise-charts/View10.qml42
-rw-r--r--basicsuite/enterprise-charts/View11.qml43
-rw-r--r--basicsuite/enterprise-charts/View12.qml68
-rw-r--r--basicsuite/enterprise-charts/View13.qml87
-rw-r--r--basicsuite/enterprise-charts/View14.qml74
-rw-r--r--basicsuite/enterprise-charts/View15.qml77
-rw-r--r--basicsuite/enterprise-charts/View2.qml45
-rw-r--r--basicsuite/enterprise-charts/View3.qml45
-rw-r--r--basicsuite/enterprise-charts/View4.qml109
-rw-r--r--basicsuite/enterprise-charts/View5.qml57
-rw-r--r--basicsuite/enterprise-charts/View6.qml43
-rw-r--r--basicsuite/enterprise-charts/View7.qml43
-rw-r--r--basicsuite/enterprise-charts/View8.qml42
-rw-r--r--basicsuite/enterprise-charts/View9.qml43
-rw-r--r--basicsuite/enterprise-charts/description.txt3
-rw-r--r--basicsuite/enterprise-charts/enterprise-charts.pro12
-rw-r--r--basicsuite/enterprise-charts/loader.qml37
-rw-r--r--basicsuite/enterprise-charts/main.qml92
-rw-r--r--basicsuite/enterprise-charts/preview_l.jpgbin0 -> 11070 bytes
-rw-r--r--basicsuite/enterprise-charts/title.txt1
-rw-r--r--basicsuite/enterprise-dashboard/DashboardGaugeStyle.qml144
-rw-r--r--basicsuite/enterprise-dashboard/IconGaugeStyle.qml103
-rw-r--r--basicsuite/enterprise-dashboard/TachometerStyle.qml95
-rw-r--r--basicsuite/enterprise-dashboard/TurnIndicator.qml88
-rw-r--r--basicsuite/enterprise-dashboard/ValueSource.qml300
-rw-r--r--basicsuite/enterprise-dashboard/description.txt1
-rw-r--r--basicsuite/enterprise-dashboard/enterprise-dashboard.pro13
-rw-r--r--basicsuite/enterprise-dashboard/images/fuel-icon.pngbin0 -> 666 bytes
-rw-r--r--basicsuite/enterprise-dashboard/images/temperature-icon.pngbin0 -> 3302 bytes
-rw-r--r--basicsuite/enterprise-dashboard/main.qml155
-rw-r--r--basicsuite/enterprise-dashboard/preview_l.jpgbin0 -> 11239 bytes
-rw-r--r--basicsuite/enterprise-dashboard/title.txt1
-rw-r--r--basicsuite/enterprise-gallery/BlackButtonBackground.qml51
-rw-r--r--basicsuite/enterprise-gallery/BlackButtonStyle.qml44
-rw-r--r--basicsuite/enterprise-gallery/CircularGaugeDarkStyle.qml76
-rw-r--r--basicsuite/enterprise-gallery/CircularGaugeDefaultStyle.qml26
-rw-r--r--basicsuite/enterprise-gallery/CircularGaugeLightStyle.qml77
-rw-r--r--basicsuite/enterprise-gallery/CircularGaugeView.qml204
-rw-r--r--basicsuite/enterprise-gallery/ControlView.qml168
-rw-r--r--basicsuite/enterprise-gallery/ControlViewToolbar.qml82
-rw-r--r--basicsuite/enterprise-gallery/CustomizerCheckBox.qml45
-rw-r--r--basicsuite/enterprise-gallery/CustomizerLabel.qml28
-rw-r--r--basicsuite/enterprise-gallery/CustomizerSlider.qml55
-rw-r--r--basicsuite/enterprise-gallery/FlickableMoreIndicator.qml56
-rw-r--r--basicsuite/enterprise-gallery/PieMenuControlView.qml195
-rw-r--r--basicsuite/enterprise-gallery/PieMenuDarkStyle.qml26
-rw-r--r--basicsuite/enterprise-gallery/PieMenuDefaultStyle.qml24
-rw-r--r--basicsuite/enterprise-gallery/StylePicker.qml79
-rw-r--r--basicsuite/enterprise-gallery/description.txt3
-rw-r--r--basicsuite/enterprise-gallery/enterprise-gallery.pro14
-rw-r--r--basicsuite/enterprise-gallery/fonts/LICENSE.txt202
-rw-r--r--basicsuite/enterprise-gallery/fonts/OpenSans-Regular.ttfbin0 -> 217360 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/background-light.pngbin0 -> 46832 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/background.pngbin0 -> 45497 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/center-light.pngbin0 -> 2113 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/center.pngbin0 -> 2392 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/icon-go.pngbin0 -> 536 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/icon-settings.pngbin0 -> 576 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/info.pngbin0 -> 709 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/needle-light.pngbin0 -> 2105 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/needle.pngbin0 -> 4891 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/qt-logo.pngbin0 -> 5149 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/zoom_in.pngbin0 -> 829 bytes
-rw-r--r--basicsuite/enterprise-gallery/images/zoom_out.pngbin0 -> 779 bytes
-rw-r--r--basicsuite/enterprise-gallery/main.qml254
-rw-r--r--basicsuite/enterprise-gallery/preview_l.jpgbin0 -> 9016 bytes
-rw-r--r--basicsuite/enterprise-gallery/title.txt1
-rw-r--r--basicsuite/graphicaleffects/Checkers.qml68
-rw-r--r--basicsuite/graphicaleffects/description.txt4
-rw-r--r--basicsuite/graphicaleffects/effect_BrightnessContrast.qml75
-rw-r--r--basicsuite/graphicaleffects/effect_Colorize.qml74
-rw-r--r--basicsuite/graphicaleffects/effect_CustomDissolve.qml165
-rw-r--r--basicsuite/graphicaleffects/effect_CustomWave.qml158
-rw-r--r--basicsuite/graphicaleffects/effect_Displacement.qml80
-rw-r--r--basicsuite/graphicaleffects/effect_DropShadow.qml83
-rw-r--r--basicsuite/graphicaleffects/effect_GaussianBlur.qml79
-rw-r--r--basicsuite/graphicaleffects/effect_Glow.qml79
-rw-r--r--basicsuite/graphicaleffects/effect_HueSaturation.qml74
-rw-r--r--basicsuite/graphicaleffects/effect_OpacityMask.qml70
-rw-r--r--basicsuite/graphicaleffects/effect_ThresholdMask.qml83
-rw-r--r--basicsuite/graphicaleffects/graphicaleffects.pro13
-rwxr-xr-xbasicsuite/graphicaleffects/images/bug.jpg (renamed from basicsuite/Graphical Effects/images/bug.jpg)bin376684 -> 376684 bytes
-rw-r--r--basicsuite/graphicaleffects/images/butterfly.png (renamed from basicsuite/Graphical Effects/images/butterfly.png)bin36912 -> 36912 bytes
-rw-r--r--basicsuite/graphicaleffects/images/fog.png (renamed from basicsuite/Graphical Effects/images/fog.png)bin225653 -> 225653 bytes
-rwxr-xr-xbasicsuite/graphicaleffects/images/glass_normal.png (renamed from basicsuite/Graphical Effects/images/glass_normal.png)bin13489 -> 13489 bytes
-rw-r--r--basicsuite/graphicaleffects/main.qml231
-rw-r--r--basicsuite/graphicaleffects/preview_l.jpg (renamed from basicsuite/Graphical Effects/preview_l.jpg)bin33841 -> 33841 bytes
-rw-r--r--basicsuite/graphicaleffects/title.txt1
-rw-r--r--basicsuite/launchersettings/BrightnessController.qml49
-rw-r--r--basicsuite/launchersettings/NetworkController.qml61
-rw-r--r--basicsuite/launchersettings/NetworkList.qml173
-rw-r--r--basicsuite/launchersettings/PoweroffAction.qml48
-rw-r--r--basicsuite/launchersettings/RebootAction.qml48
-rw-r--r--basicsuite/launchersettings/WifiController.qml58
-rw-r--r--basicsuite/launchersettings/WifiGroupBox.qml96
-rw-r--r--basicsuite/launchersettings/description.txt (renamed from basicsuite/Launcher Settings/description.txt)0
-rw-r--r--basicsuite/launchersettings/images/button_default.png (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/button_default.png)bin1406 -> 1406 bytes
-rw-r--r--basicsuite/launchersettings/images/button_pressed.png (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/button_pressed.png)bin1694 -> 1694 bytes
-rw-r--r--basicsuite/launchersettings/images/groupbox.pngbin0 -> 485 bytes
-rw-r--r--basicsuite/launchersettings/launchersettings.pro12
-rw-r--r--basicsuite/launchersettings/main.qml272
-rw-r--r--basicsuite/launchersettings/preview_l.jpgbin0 -> 18458 bytes
-rw-r--r--basicsuite/launchersettings/title.txt1
-rwxr-xr-xbasicsuite/mediaplayer/Content.qml (renamed from basicsuite/Media Player/Content.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/ContentVideo.qml (renamed from basicsuite/Media Player/ContentVideo.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/ControlBar.qml325
-rwxr-xr-xbasicsuite/mediaplayer/EffectSelectionPanel.qml (renamed from basicsuite/Media Player/EffectSelectionPanel.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/Effect.qml (renamed from basicsuite/Media Player/Effects/Effect.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectBillboard.qml (renamed from basicsuite/Media Player/Effects/EffectBillboard.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectBlackAndWhite.qml (renamed from basicsuite/Media Player/Effects/EffectBlackAndWhite.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectEmboss.qml (renamed from basicsuite/Media Player/Effects/EffectEmboss.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectGaussianBlur.qml (renamed from basicsuite/Media Player/Effects/EffectGaussianBlur.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectGlow.qml (renamed from basicsuite/Media Player/Effects/EffectGlow.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectIsolate.qml (renamed from basicsuite/Media Player/Effects/EffectIsolate.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectMagnify.qml (renamed from basicsuite/Media Player/Effects/EffectMagnify.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectPageCurl.qml (renamed from basicsuite/Media Player/Effects/EffectPageCurl.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectPassThrough.qml (renamed from basicsuite/Media Player/Effects/EffectPassThrough.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectPixelate.qml (renamed from basicsuite/Media Player/Effects/EffectPixelate.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectPosterize.qml (renamed from basicsuite/Media Player/Effects/EffectPosterize.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectRipple.qml (renamed from basicsuite/Media Player/Effects/EffectRipple.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectSepia.qml (renamed from basicsuite/Media Player/Effects/EffectSepia.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectSharpen.qml (renamed from basicsuite/Media Player/Effects/EffectSharpen.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectShockwave.qml (renamed from basicsuite/Media Player/Effects/EffectShockwave.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectSobelEdgeDetection1.qml (renamed from basicsuite/Media Player/Effects/EffectSobelEdgeDetection1.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectSobelEdgeDetection2.qml (renamed from basicsuite/Media Player/Effects/EffectSobelEdgeDetection2.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectTiltShift.qml (renamed from basicsuite/Media Player/Effects/EffectTiltShift.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectToon.qml (renamed from basicsuite/Media Player/Effects/EffectToon.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectVignette.qml (renamed from basicsuite/Media Player/Effects/EffectVignette.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectWarhol.qml (renamed from basicsuite/Media Player/Effects/EffectWarhol.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/Effects/EffectWobble.qml (renamed from basicsuite/Media Player/Effects/EffectWobble.qml)0
-rw-r--r--basicsuite/mediaplayer/FileBrowser.qml (renamed from basicsuite/Media Player/FileBrowser.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/ImageButton.qml84
-rw-r--r--basicsuite/mediaplayer/Intro.qml88
-rw-r--r--basicsuite/mediaplayer/MetadataView.qml213
-rw-r--r--basicsuite/mediaplayer/ParameterPanel.qml (renamed from basicsuite/Media Player/ParameterPanel.qml)0
-rwxr-xr-xbasicsuite/mediaplayer/PlaybackControl.qml100
-rwxr-xr-xbasicsuite/mediaplayer/SeekControl.qml123
-rw-r--r--basicsuite/mediaplayer/Slider.qml138
-rw-r--r--basicsuite/mediaplayer/UrlBar.qml120
-rwxr-xr-xbasicsuite/mediaplayer/VolumeControl.qml85
-rw-r--r--basicsuite/mediaplayer/description.txt3
-rw-r--r--basicsuite/mediaplayer/exclude.txt2
-rw-r--r--basicsuite/mediaplayer/images/CameraButton.png (renamed from basicsuite/Media Player/images/CameraButton.png)bin237 -> 237 bytes
-rw-r--r--basicsuite/mediaplayer/images/ControlBar.png (renamed from basicsuite/Media Player/images/ControlBar.png)bin5081 -> 5081 bytes
-rw-r--r--basicsuite/mediaplayer/images/FXButton.png (renamed from basicsuite/Media Player/images/FXButton.png)bin1208 -> 1208 bytes
-rw-r--r--basicsuite/mediaplayer/images/FileButton.png (renamed from basicsuite/Media Player/images/FileButton.png)bin564 -> 564 bytes
-rwxr-xr-xbasicsuite/mediaplayer/images/FullscreenButton.png (renamed from basicsuite/Media Player/images/FullscreenButton.png)bin4304 -> 4304 bytes
-rw-r--r--basicsuite/mediaplayer/images/PauseButton.png (renamed from basicsuite/Media Player/images/PauseButton.png)bin762 -> 762 bytes
-rw-r--r--basicsuite/mediaplayer/images/PlayButton.png (renamed from basicsuite/Media Player/images/PlayButton.png)bin1679 -> 1679 bytes
-rwxr-xr-xbasicsuite/mediaplayer/images/PlaybackSlider.png (renamed from basicsuite/Media Player/images/PlaybackSlider.png)bin435 -> 435 bytes
-rw-r--r--basicsuite/mediaplayer/images/RateButtonForward.png (renamed from basicsuite/Media Player/images/RateButtonForward.png)bin1387 -> 1387 bytes
-rw-r--r--basicsuite/mediaplayer/images/RateButtonReverse.png (renamed from basicsuite/Media Player/images/RateButtonReverse.png)bin1433 -> 1433 bytes
-rw-r--r--basicsuite/mediaplayer/images/SliderBackground.png (renamed from basicsuite/Media Player/images/SliderBackground.png)bin793 -> 793 bytes
-rwxr-xr-xbasicsuite/mediaplayer/images/SliderHandle.png (renamed from basicsuite/Media Player/images/SliderHandle.png)bin4459 -> 4459 bytes
-rwxr-xr-xbasicsuite/mediaplayer/images/SliderProgress.png (renamed from basicsuite/Media Player/images/SliderProgress.png)bin4461 -> 4461 bytes
-rw-r--r--basicsuite/mediaplayer/images/UrlButton.png (renamed from basicsuite/Media Player/images/UrlButton.png)bin1613 -> 1613 bytes
-rwxr-xr-xbasicsuite/mediaplayer/images/VolumeDown.png (renamed from basicsuite/Media Player/images/VolumeDown.png)bin4130 -> 4130 bytes
-rwxr-xr-xbasicsuite/mediaplayer/images/VolumeUp.png (renamed from basicsuite/Media Player/images/VolumeUp.png)bin4258 -> 4258 bytes
-rw-r--r--basicsuite/mediaplayer/images/folder.png (renamed from basicsuite/Media Player/images/folder.png)bin1841 -> 1841 bytes
-rw-r--r--basicsuite/mediaplayer/images/gradient.png (renamed from basicsuite/Media Player/images/gradient.png)bin34302 -> 34302 bytes
-rw-r--r--basicsuite/mediaplayer/images/pattern.png (renamed from basicsuite/Media Player/images/pattern.png)bin2627 -> 2627 bytes
-rwxr-xr-xbasicsuite/mediaplayer/images/qt-logo.png (renamed from basicsuite/Media Player/images/qt-logo.png)bin11465 -> 11465 bytes
-rw-r--r--basicsuite/mediaplayer/images/titlebar.png (renamed from basicsuite/Media Player/images/titlebar.png)bin1436 -> 1436 bytes
-rwxr-xr-xbasicsuite/mediaplayer/images/titlebar.sci (renamed from basicsuite/Media Player/images/titlebar.sci)0
-rw-r--r--basicsuite/mediaplayer/images/up.png (renamed from basicsuite/Media Player/images/up.png)bin662 -> 662 bytes
-rwxr-xr-xbasicsuite/mediaplayer/main.qml (renamed from basicsuite/Media Player/main.qml)0
-rw-r--r--basicsuite/mediaplayer/mediaplayer.pro14
-rw-r--r--basicsuite/mediaplayer/preview_l.jpgbin0 -> 29015 bytes
-rw-r--r--basicsuite/mediaplayer/title.txt1
-rw-r--r--basicsuite/photogallery/description.txt1
-rw-r--r--basicsuite/photogallery/main.qml295
-rw-r--r--basicsuite/photogallery/photogallery.pro13
-rw-r--r--basicsuite/photogallery/preview_l.jpg (renamed from basicsuite/Photo Gallery/preview_l.jpg)bin55274 -> 55274 bytes
-rw-r--r--basicsuite/photogallery/title.txt1
-rw-r--r--basicsuite/qt5-cinematicdemo/Qt5_CinematicExperience.pro (renamed from basicsuite/Qt5 Cinematic Demo/Qt5_CinematicExperience.pro)0
-rw-r--r--basicsuite/qt5-cinematicdemo/README49
-rw-r--r--basicsuite/qt5-cinematicdemo/content/Background.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/Background.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/Button.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/Button.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/CurtainEffect.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/CurtainEffect.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/DelegateItem.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/DelegateItem.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/DetailsView.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/DetailsView.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/FpsItem.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/FpsItem.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/InfoView.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/InfoView.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/InfoViewItem.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/InfoViewItem.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/MainView.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/MainView.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/MoviesModel.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/MoviesModel.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/RatingsItem.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/RatingsItem.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/SettingsView.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/SettingsView.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/Switch.qml (renamed from basicsuite/Qt5 Cinematic Demo/content/Switch.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/1.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/1.png)bin92547 -> 92547 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/10.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/10.png)bin88497 -> 88497 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/11.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/11.png)bin106319 -> 106319 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/12.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/12.png)bin84964 -> 84964 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/13.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/13.png)bin62204 -> 62204 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/14.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/14.png)bin110188 -> 110188 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/15.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/15.png)bin100168 -> 100168 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/16.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/16.png)bin111695 -> 111695 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/17.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/17.png)bin98722 -> 98722 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/18.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/18.png)bin90229 -> 90229 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/19.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/19.png)bin49917 -> 49917 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/2.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/2.png)bin112159 -> 112159 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/20.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/20.png)bin113344 -> 113344 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/3.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/3.png)bin86693 -> 86693 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/4.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/4.png)bin69699 -> 69699 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/5.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/5.png)bin111629 -> 111629 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/6.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/6.png)bin72727 -> 72727 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/7.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/7.png)bin110085 -> 110085 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/8.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/8.png)bin128300 -> 128300 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/9.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/9.png)bin102555 -> 102555 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/background.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/background.png)bin77700 -> 77700 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/background3.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/background3.png)bin174979 -> 174979 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/button.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/button.png)bin4441 -> 4441 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/cc-by_logo.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/cc-by_logo.png)bin4400 -> 4400 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/cover_nmap.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/cover_nmap.png)bin10309 -> 10309 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/grip.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/grip.png)bin5198 -> 5198 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/heading.pngbin0 -> 55334 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/heading_big.pngbin0 -> 53904 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/heading_big.xcf (renamed from basicsuite/Qt5 Cinematic Demo/content/images/heading_big.xcf)bin120556 -> 120556 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/info.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/info.png)bin7452 -> 7452 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/panel_bg.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/panel_bg.png)bin1595 -> 1595 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/particle.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/particle.png)bin861 -> 861 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/planet_sprite.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/planet_sprite.png)bin250266 -> 250266 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/qt_ambassador_logo.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/qt_ambassador_logo.png)bin5291 -> 5291 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/qt_logo.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/qt_logo.png)bin28581 -> 28581 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/qt_logo2.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/qt_logo2.png)bin21659 -> 21659 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/quit_logo.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/quit_logo.png)bin8316 -> 8316 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/sc1.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/sc1.png)bin48804 -> 48804 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/sc2.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/sc2.png)bin50629 -> 50629 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/sc3.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/sc3.png)bin50888 -> 50888 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/sc4.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/sc4.png)bin36904 -> 36904 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/sc5.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/sc5.png)bin38523 -> 38523 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/settings.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/settings.png)bin7927 -> 7927 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/smoke.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/smoke.png)bin438 -> 438 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/spinner.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/spinner.png)bin3470 -> 3470 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/star.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/star.png)bin1550 -> 1550 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/stars.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/stars.png)bin2752 -> 2752 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/stars2.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/stars2.png)bin2600 -> 2600 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/switch_background.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/switch_background.png)bin1734 -> 1734 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/switch_frame.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/switch_frame.png)bin5854 -> 5854 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/switch_on.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/switch_on.png)bin2383 -> 2383 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/content/images/switch_thumb.png (renamed from basicsuite/Qt5 Cinematic Demo/content/images/switch_thumb.png)bin3366 -> 3366 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/description.txt5
-rw-r--r--basicsuite/qt5-cinematicdemo/main.cpp (renamed from basicsuite/Qt5 Cinematic Demo/main.cpp)0
-rw-r--r--basicsuite/qt5-cinematicdemo/main.qml (renamed from basicsuite/Qt5 Cinematic Demo/main.qml)0
-rw-r--r--basicsuite/qt5-cinematicdemo/preview_l.jpg (renamed from basicsuite/Qt5 Cinematic Demo/preview_l.jpg)bin36830 -> 36830 bytes
-rw-r--r--basicsuite/qt5-cinematicdemo/qt5-cinematicdemo.pro14
-rw-r--r--basicsuite/qt5-cinematicdemo/title.txt1
-rw-r--r--basicsuite/qt5-everywhere/Button.qml72
-rw-r--r--basicsuite/qt5-everywhere/Cloud.qml105
-rw-r--r--basicsuite/qt5-everywhere/DialogButton.qml66
-rw-r--r--basicsuite/qt5-everywhere/Element.qml76
-rw-r--r--basicsuite/qt5-everywhere/Group.qml81
-rw-r--r--basicsuite/qt5-everywhere/HelpScreen.qml329
-rw-r--r--basicsuite/qt5-everywhere/IslandElementContainer.qml158
-rw-r--r--basicsuite/qt5-everywhere/NavigationPanel.qml92
-rw-r--r--basicsuite/qt5-everywhere/QtLogo.png (renamed from basicsuite/Qt5Everywhere/QtLogo.png)bin34605 -> 34605 bytes
-rw-r--r--basicsuite/qt5-everywhere/QuitDialog.qml107
-rw-r--r--basicsuite/qt5-everywhere/Slide.qml252
-rw-r--r--basicsuite/qt5-everywhere/SplashScreen.qml105
-rw-r--r--basicsuite/qt5-everywhere/WorldCanvas.qml145
-rw-r--r--basicsuite/qt5-everywhere/WorldMouseArea.qml115
-rw-r--r--basicsuite/qt5-everywhere/app.pro16
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/Calqlatr.qml (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/Calqlatr.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/Button.qml (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/Button.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/Display.qml (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/Display.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/NumberPad.qml (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/NumberPad.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/StyleLabel.qml (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/StyleLabel.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/audio/touch.wav (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/audio/touch.wav)bin950 -> 950 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/calculator.js (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/calculator.js)0
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-back.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-back.png)bin328 -> 328 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-close.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-close.png)bin488 -> 488 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-settings.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-settings.png)bin503 -> 503 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/logo.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/logo.png)bin5950 -> 5950 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-edge-left.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-edge-left.png)bin12401 -> 12401 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-edge-right.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-edge-right.png)bin12967 -> 12967 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-grip.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-grip.png)bin298 -> 298 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/settings-selected-a.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/settings-selected-a.png)bin2326 -> 2326 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/settings-selected-b.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/settings-selected-b.png)bin2334 -> 2334 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/touch-green.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/touch-green.png)bin4808 -> 4808 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/calqlatr/content/images/touch-white.png (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/images/touch-white.png)bin4601 -> 4601 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/canvasclock/canvasClock.qml404
-rw-r--r--basicsuite/qt5-everywhere/demos/demos.pro (renamed from basicsuite/Qt5Everywhere/demos/demos.pro)0
-rw-r--r--basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml111
-rw-r--r--basicsuite/qt5-everywhere/demos/gridrssnews/ScrollBar.qml72
-rw-r--r--basicsuite/qt5-everywhere/demos/gridrssnews/main.qml176
-rw-r--r--basicsuite/qt5-everywhere/demos/heartmonitor/HeartData.js50
-rw-r--r--basicsuite/qt5-everywhere/demos/heartmonitor/heart.png (renamed from basicsuite/Qt5Everywhere/demos/heartmonitor/heart.png)bin7021 -> 7021 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/heartmonitor/main.qml266
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/.DS_Store (renamed from basicsuite/Qt5 Launch Presentation/maroon/.DS_Store)bin6148 -> 6148 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/Maroon.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/Maroon.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/BuildButton.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/BuildButton.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/GameCanvas.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/GameCanvas.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/GameOverScreen.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/GameOverScreen.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/InfoBar.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/InfoBar.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/NewGameScreen.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/NewGameScreen.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/SoundEffect.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/SoundEffect.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/audio/bomb-action.wav (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/audio/bomb-action.wav)bin20972 -> 20972 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/audio/catch-action.wav (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/audio/catch-action.wav)bin13274 -> 13274 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/audio/catch.wav (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/audio/catch.wav)bin8638 -> 8638 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/audio/currency.wav (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/audio/currency.wav)bin15790 -> 15790 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/audio/factory-action.wav (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/audio/factory-action.wav)bin4936 -> 4936 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/audio/melee-action.wav (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/audio/melee-action.wav)bin17798 -> 17798 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/audio/projectile-action.wav (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/audio/projectile-action.wav)bin2562 -> 2562 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/audio/shooter-action.wav (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/audio/shooter-action.wav)bin27554 -> 27554 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/background.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/background.png)bin5802 -> 5802 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb-action.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb-action.png)bin23974 -> 23974 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb-idle.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb-idle.png)bin12238 -> 12238 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb.png)bin4067 -> 4067 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/button-help.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/button-help.png)bin8916 -> 8916 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/button-play.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/button-play.png)bin13945 -> 13945 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/catch-action.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/catch-action.png)bin6760 -> 6760 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/catch.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/catch.png)bin4771 -> 4771 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/cloud.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/cloud.png)bin3398 -> 3398 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/currency.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/currency.png)bin1889 -> 1889 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-bomb.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-bomb.png)bin3751 -> 3751 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-factory.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-factory.png)bin3946 -> 3946 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-melee.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-melee.png)bin4392 -> 4392 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-pointer.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-pointer.png)bin911 -> 911 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-shooter.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-shooter.png)bin3737 -> 3737 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog.png)bin3362 -> 3362 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory-action.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory-action.png)bin22440 -> 22440 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory-idle.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory-idle.png)bin12729 -> 12729 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory.png)bin4138 -> 4138 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/grid.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/grid.png)bin2830 -> 2830 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/help.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/help.png)bin38255 -> 38255 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/lifes.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/lifes.png)bin1675 -> 1675 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo-bubble.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo-bubble.png)bin7706 -> 7706 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo-fish.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo-fish.png)bin3477 -> 3477 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo.png)bin18332 -> 18332 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee-action.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee-action.png)bin7797 -> 7797 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee-idle.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee-idle.png)bin22832 -> 22832 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee.png)bin4046 -> 4046 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/mob-idle.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/mob-idle.png)bin6181 -> 6181 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/mob.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/mob.png)bin2391 -> 2391 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/points.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/points.png)bin1561 -> 1561 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/projectile-action.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/projectile-action.png)bin6257 -> 6257 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/projectile.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/projectile.png)bin801 -> 801 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/scores.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/scores.png)bin1535 -> 1535 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter-action.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter-action.png)bin18121 -> 18121 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter-idle.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter-idle.png)bin11929 -> 11929 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter.png)bin4137 -> 4137 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/sunlight.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/sunlight.png)bin248412 -> 248412 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-1.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-1.png)bin2777 -> 2777 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-2.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-2.png)bin4959 -> 4959 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-3.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-3.png)bin5063 -> 5063 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-blank.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-blank.png)bin1326 -> 1326 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-gameover.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-gameover.png)bin1515 -> 1515 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-go.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-go.png)bin4230 -> 4230 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/gfx/wave.png (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/gfx/wave.png)bin2763 -> 2763 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/logic.js (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/logic.js)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/mobs/MobBase.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/mobs/MobBase.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/towers/Bomb.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/towers/Bomb.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/towers/Factory.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/towers/Factory.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/towers/Melee.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/towers/Melee.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/towers/Ranged.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/towers/Ranged.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/maroon/content/towers/TowerBase.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/towers/TowerBase.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/particledemo/BootScreenDemo.qml181
-rw-r--r--basicsuite/qt5-everywhere/demos/particledemo/ParticleSysComponent.qml108
-rw-r--r--basicsuite/qt5-everywhere/demos/particledemo/images/particle.png (renamed from basicsuite/Qt5Everywhere/demos/particledemo/images/particle.png)bin1257 -> 1257 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/particledemo/images/particle_star.png (renamed from basicsuite/Qt5Everywhere/demos/particledemo/images/particle_star.png)bin1696 -> 1696 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/particledemo/images/qt-logo-green-mask.png (renamed from basicsuite/Qt5Everywhere/demos/particledemo/images/qt-logo-green-mask.png)bin10597 -> 10597 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/particledemo/images/qt-logo-white-mask.png (renamed from basicsuite/Qt5Everywhere/demos/particledemo/images/qt-logo-white-mask.png)bin17247 -> 17247 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/particledemo/particle.png (renamed from basicsuite/Qt5 Launch Presentation/images/particle.png)bin861 -> 861 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/particledemo/particledemo.qml213
-rw-r--r--basicsuite/qt5-everywhere/demos/photosurface/images/image0.png (renamed from basicsuite/Qt5Everywhere/demos/photosurface/images/image0.png)bin249779 -> 249779 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/photosurface/images/image1.png (renamed from basicsuite/Qt5Everywhere/demos/photosurface/images/image1.png)bin264663 -> 264663 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/photosurface/images/image2.png (renamed from basicsuite/Qt5Everywhere/demos/photosurface/images/image2.png)bin264621 -> 264621 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/photosurface/images/image3.png (renamed from basicsuite/Qt5Everywhere/demos/photosurface/images/image3.png)bin215134 -> 215134 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/photosurface/images/image4.png (renamed from basicsuite/Qt5Everywhere/demos/photosurface/images/image4.png)bin225879 -> 225879 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/photosurface/images/qml-photosurface-example-small.png (renamed from basicsuite/Qt5Everywhere/demos/photosurface/images/qml-photosurface-example-small.png)bin47271 -> 47271 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/photosurface/photosurface.qml131
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/VolumeButton.qml185
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/VolumePoint.qml64
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/channels.xml (renamed from basicsuite/Qt5Everywhere/demos/radio/channels.xml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/images/radio_btn_pause.png (renamed from basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_pause.png)bin1573 -> 1573 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/images/radio_btn_play.png (renamed from basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_play.png)bin5402 -> 5402 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/images/radio_btn_stop.png (renamed from basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_stop.png)bin1388 -> 1388 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/images/radio_sound_icon.png (renamed from basicsuite/Qt5Everywhere/demos/radio/images/radio_sound_icon.png)bin1972 -> 1972 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/images/volume.png (renamed from basicsuite/Qt5Everywhere/demos/radio/images/volume.png)bin749 -> 749 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/radio/radio.qml285
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/content/BusyIndicator.qml53
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/content/CategoryDelegate.qml84
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/content/NewsDelegate.qml75
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/content/RssFeeds.qml58
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/content/ScrollBar.qml107
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/content/images/busy.png (renamed from basicsuite/Qt5Everywhere/demos/rssnews/content/images/busy.png)bin2629 -> 2629 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/content/images/scrollbar.png (renamed from basicsuite/Qt5Everywhere/demos/rssnews/content/images/scrollbar.png)bin161 -> 161 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/rssnews.qml121
-rw-r--r--basicsuite/qt5-everywhere/demos/rssnews/rssnews.qmlproject (renamed from basicsuite/Qt5Everywhere/demos/rssnews/rssnews.qmlproject)0
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/Block.qml114
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/BlockEmitter.qml57
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/Button.qml70
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/GameArea.qml226
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/LogoAnimation.qml102
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/MenuEmitter.qml53
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/PaintEmitter.qml98
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/PrimaryPack.qml122
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/PuzzleBlock.qml111
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/SamegameText.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/SamegameText.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/SimpleBlock.qml108
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/SmokeText.qml83
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/background-puzzle.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/background-puzzle.png)bin86666 -> 86666 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/background.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/background.png)bin101018 -> 101018 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/bar.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bar.png)bin10970 -> 10970 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/blue-puzzle.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/blue-puzzle.png)bin2219 -> 2219 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/blue.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/blue.png)bin1018 -> 1018 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/bubble-highscore.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bubble-highscore.png)bin2276 -> 2276 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/bubble-puzzle.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bubble-puzzle.png)bin2811 -> 2811 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-1.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-1.png)bin2728 -> 2728 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-2.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-2.png)bin3378 -> 3378 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-3.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-3.png)bin1423 -> 1423 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-4.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-4.png)bin2096 -> 2096 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-new.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-new.png)bin3662 -> 3662 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-menu.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-menu.png)bin2391 -> 2391 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-puzzle-next.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-puzzle-next.png)bin3658 -> 3658 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-quit.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-quit.png)bin2100 -> 2100 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/green-puzzle.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/green-puzzle.png)bin2271 -> 2271 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/green.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/green.png)bin1024 -> 1024 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-fail.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-fail.png)bin6549 -> 6549 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-ok.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-ok.png)bin7190 -> 7190 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-time.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-time.png)bin1159 -> 1159 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-a.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-a.png)bin1814 -> 1814 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-e.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-e.png)bin1725 -> 1725 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-g.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-g.png)bin1765 -> 1765 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-m.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-m.png)bin1743 -> 1743 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-s.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-s.png)bin1791 -> 1791 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo.png)bin3608 -> 3608 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-brick.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-brick.png)bin861 -> 861 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-paint.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-paint.png)bin714 -> 714 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-smoke.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-smoke.png)bin5409 -> 5409 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/red-puzzle.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/red-puzzle.png)bin2218 -> 2218 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/red.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/red.png)bin1018 -> 1018 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-highscore-new.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-highscore-new.png)bin6767 -> 6767 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-highscore.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-highscore.png)bin3179 -> 3179 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-no-winner.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-no-winner.png)bin6321 -> 6321 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1-go.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1-go.png)bin5395 -> 5395 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1-won.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1-won.png)bin5618 -> 5618 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1.png)bin1751 -> 1751 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2-go.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2-go.png)bin5874 -> 5874 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2-won.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2-won.png)bin6177 -> 6177 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2.png)bin2381 -> 2381 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/yellow-puzzle.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/yellow-puzzle.png)bin2239 -> 2239 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/gfx/yellow.png (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/gfx/yellow.png)bin1008 -> 1008 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/TemplateBase.qml70
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level0.qml59
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level1.qml59
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level2.qml61
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level3.qml60
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level4.qml58
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level5.qml59
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level6.qml60
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level7.qml58
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level8.qml59
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/levels/level9.qml62
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/content/samegame.js581
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/samegame.qml371
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/samegame.qrc (renamed from basicsuite/Qt5Everywhere/demos/samegame/samegame.qrc)0
-rw-r--r--basicsuite/qt5-everywhere/demos/samegame/settings.js (renamed from basicsuite/Qt5 Launch Presentation/samegame/settings.js)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Content.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Content.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/EffectSelectionPanel.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/EffectSelectionPanel.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/Effect.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/Effect.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectBillboard.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectBillboard.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectBlackAndWhite.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectBlackAndWhite.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectEmboss.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectEmboss.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectGaussianBlur.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectGaussianBlur.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectGlow.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectGlow.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectIsolate.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectIsolate.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectPassThrough.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPassThrough.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectPixelate.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPixelate.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectPosterize.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPosterize.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectRipple.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectRipple.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectSepia.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSepia.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectSharpen.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSharpen.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectShockwave.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectShockwave.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectSobelEdgeDetection1.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSobelEdgeDetection1.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectToon.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectToon.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectVignette.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectVignette.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectWarhol.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectWarhol.qml)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/Effects/EffectWobble.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectWobble.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/Logo.qml191
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/LogoContainer.qml87
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/ParameterPanel.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/ParameterPanel.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/Slider.qml138
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/images/particle-smoke.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-smoke.png)bin5409 -> 5409 bytes
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/images/qt-logo.png (renamed from basicsuite/Qt5Everywhere/demos/shaders/images/qt-logo.png)bin11465 -> 11465 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/images/wallpaper.png (renamed from basicsuite/Qt5Everywhere/demos/shaders/images/wallpaper.png)bin225879 -> 225879 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/import/import.pro20
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/import/main.cpp62
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/import/plugin.json0
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/import/qmldir (renamed from basicsuite/Qt5Everywhere/demos/shaders/import/qmldir)0
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/import/shaderfilereader.cpp97
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/import/shaderfilereader.h84
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/main.qml (renamed from basicsuite/Qt5Everywhere/demos/shaders/main.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/shaders/shaders.pro (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders.pro)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/billboard.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/billboard.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/blackandwhite.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/blackandwhite.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/emboss.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/emboss.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/gaussianblur_h.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/gaussianblur_h.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/gaussianblur_v.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/gaussianblur_v.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/glow.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/glow.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/isolate.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/isolate.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/pixelate.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/pixelate.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/posterize.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/posterize.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/ripple.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/ripple.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/selectionpanel.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/selectionpanel.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/sepia.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/sepia.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/sharpen.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/sharpen.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/shockwave.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/shockwave.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/sobeledgedetection1.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/sobeledgedetection1.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/toon.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/toon.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/vignette.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/vignette.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/warhol.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/warhol.fsh)0
-rwxr-xr-xbasicsuite/qt5-everywhere/demos/shaders/shaders/wobble.fsh (renamed from basicsuite/Qt5Everywhere/demos/shaders/shaders/wobble.fsh)0
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/content/AndroidDelegate.qml94
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/content/ButtonPage.qml121
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/content/CustomAppWindow.qml181
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/content/ProgressBarPage.qml114
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/content/SliderPage.qml105
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/content/TabBarPage.qml102
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/content/TextInputPage.qml106
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/NOTICE.txt (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/NOTICE.txt)0
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/button_default.pngbin0 -> 1406 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/button_pressed.pngbin0 -> 1694 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/navigation_next_item.png (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/navigation_next_item.png)bin1341 -> 1341 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/navigation_previous_item.png (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/navigation_previous_item.png)bin1343 -> 1343 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/tab_selected.png (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/tab_selected.png)bin217 -> 217 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/tabs_standard.png (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/tabs_standard.png)bin1230 -> 1230 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/textinput.png (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/textinput.png)bin4132 -> 4132 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/images/toolbar.png (renamed from basicsuite/Qt5Everywhere/demos/touchgallery/images/toolbar.png)bin1643 -> 1643 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/touchgallery/main.qml135
-rw-r--r--basicsuite/qt5-everywhere/demos/video/Content.qml (renamed from basicsuite/Qt5Everywhere/demos/video/Content.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/video/ContentVideo.qml (renamed from basicsuite/Qt5Everywhere/demos/video/ContentVideo.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/video/ControlBar.qml290
-rw-r--r--basicsuite/qt5-everywhere/demos/video/ImageButton.qml77
-rw-r--r--basicsuite/qt5-everywhere/demos/video/PlaybackControl.qml61
-rw-r--r--basicsuite/qt5-everywhere/demos/video/ScrollBar.qml69
-rw-r--r--basicsuite/qt5-everywhere/demos/video/SeekControl.qml125
-rw-r--r--basicsuite/qt5-everywhere/demos/video/Slider.qml140
-rw-r--r--basicsuite/qt5-everywhere/demos/video/VideoDelegate.qml111
-rw-r--r--basicsuite/qt5-everywhere/demos/video/VideoSelector.qml181
-rw-r--r--basicsuite/qt5-everywhere/demos/video/VolumeControl.qml80
-rw-r--r--basicsuite/qt5-everywhere/demos/video/images/CloseButton.png (renamed from basicsuite/Qt5Everywhere/demos/video/images/CloseButton.png)bin534 -> 534 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/images/PauseButton.png (renamed from basicsuite/Qt5Everywhere/demos/video/images/PauseButton.png)bin681 -> 681 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/images/PlayButton.png (renamed from basicsuite/Qt5Everywhere/demos/video/images/PlayButton.png)bin1617 -> 1617 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/images/RateButtonForward.png (renamed from basicsuite/Qt5Everywhere/demos/video/images/RateButtonForward.png)bin3175 -> 3175 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/images/RateButtonReverse.png (renamed from basicsuite/Qt5Everywhere/demos/video/images/RateButtonReverse.png)bin3289 -> 3289 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/images/StopButton.png (renamed from basicsuite/Qt5Everywhere/demos/video/images/StopButton.png)bin534 -> 534 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/images/VolumeDown.png (renamed from basicsuite/Qt5Everywhere/demos/video/images/VolumeDown.png)bin814 -> 814 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/images/VolumeUp.png (renamed from basicsuite/Qt5Everywhere/demos/video/images/VolumeUp.png)bin1972 -> 1972 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/main.qml (renamed from basicsuite/Qt5Everywhere/demos/video/main.qml)0
-rw-r--r--basicsuite/qt5-everywhere/demos/video/qt5_video_jens.png (renamed from basicsuite/Qt5Everywhere/demos/video/qt5_video_jens.png)bin34519 -> 34519 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/qt5_video_kenneth.png (renamed from basicsuite/Qt5Everywhere/demos/video/qt5_video_kenneth.png)bin42023 -> 42023 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/qt5_video_lars.png (renamed from basicsuite/Qt5Everywhere/demos/video/qt5_video_lars.png)bin52829 -> 52829 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/qt5_video_samuel.png (renamed from basicsuite/Qt5Everywhere/demos/video/qt5_video_samuel.png)bin27869 -> 27869 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/qt5_video_simon.png (renamed from basicsuite/Qt5Everywhere/demos/video/qt5_video_simon.png)bin33733 -> 33733 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/qt5_video_thiago.png (renamed from basicsuite/Qt5Everywhere/demos/video/qt5_video_thiago.png)bin31894 -> 31894 bytes
-rw-r--r--basicsuite/qt5-everywhere/demos/video/qt5_videos.xml (renamed from basicsuite/Qt5Everywhere/demos/video/qt5_videos.xml)0
-rw-r--r--basicsuite/qt5-everywhere/description.txt1
-rw-r--r--basicsuite/qt5-everywhere/engine.js302
-rw-r--r--basicsuite/qt5-everywhere/fonts/OFL.txt (renamed from basicsuite/Qt5Everywhere/fonts/OFL.txt)0
-rw-r--r--basicsuite/qt5-everywhere/fonts/PatrickHandSC-Regular.ttf (renamed from basicsuite/Qt5Everywhere/fonts/PatrickHandSC-Regular.ttf)bin152608 -> 152608 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/box.png (renamed from basicsuite/Qt5Everywhere/images/box.png)bin4666 -> 4666 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/box_open.png (renamed from basicsuite/Qt5Everywhere/images/box_open.png)bin5722 -> 5722 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/btn_help.png (renamed from basicsuite/Qt5Everywhere/images/btn_help.png)bin2587 -> 2587 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/btn_home.png (renamed from basicsuite/Qt5Everywhere/images/btn_home.png)bin3354 -> 3354 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/btn_next.png (renamed from basicsuite/Qt5Everywhere/images/btn_next.png)bin3374 -> 3374 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/btn_previous.png (renamed from basicsuite/Qt5Everywhere/images/btn_previous.png)bin3325 -> 3325 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/car_device.png (renamed from basicsuite/Qt5Everywhere/images/car_device.png)bin8356 -> 8356 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character0.png (renamed from basicsuite/Qt5Everywhere/images/character0.png)bin13119 -> 13119 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character1.png (renamed from basicsuite/Qt5Everywhere/images/character1.png)bin15654 -> 15654 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character10.png (renamed from basicsuite/Qt5Everywhere/images/character10.png)bin15243 -> 15243 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character2.png (renamed from basicsuite/Qt5Everywhere/images/character2.png)bin12270 -> 12270 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character3.png (renamed from basicsuite/Qt5Everywhere/images/character3.png)bin14991 -> 14991 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character4.png (renamed from basicsuite/Qt5Everywhere/images/character4.png)bin15077 -> 15077 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character5.png (renamed from basicsuite/Qt5Everywhere/images/character5.png)bin13011 -> 13011 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character6.png (renamed from basicsuite/Qt5Everywhere/images/character6.png)bin15671 -> 15671 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character7.png (renamed from basicsuite/Qt5Everywhere/images/character7.png)bin13589 -> 13589 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character8.png (renamed from basicsuite/Qt5Everywhere/images/character8.png)bin12914 -> 12914 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/character9.png (renamed from basicsuite/Qt5Everywhere/images/character9.png)bin18085 -> 18085 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/cloud1.png (renamed from basicsuite/Qt5Everywhere/images/cloud1.png)bin2860 -> 2860 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/cloud2.png (renamed from basicsuite/Qt5Everywhere/images/cloud2.png)bin3043 -> 3043 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/hand.png (renamed from basicsuite/Qt5Everywhere/images/hand.png)bin32258 -> 32258 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/highlight_mask.png (renamed from basicsuite/Qt5Everywhere/images/highlight_mask.png)bin10666 -> 10666 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/island.png (renamed from basicsuite/Qt5Everywhere/images/island.png)bin50597 -> 50597 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/laptop1.png (renamed from basicsuite/Qt5Everywhere/images/laptop1.png)bin12899 -> 12899 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/laptop2.png (renamed from basicsuite/Qt5Everywhere/images/laptop2.png)bin12448 -> 12448 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/man1.png (renamed from basicsuite/Qt5Everywhere/images/man1.png)bin12878 -> 12878 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/medical_device.png (renamed from basicsuite/Qt5Everywhere/images/medical_device.png)bin23780 -> 23780 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/mountain.png (renamed from basicsuite/Qt5Everywhere/images/mountain.png)bin5304 -> 5304 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/particle-smoke.png (renamed from basicsuite/Qt5Everywhere/demos/shaders/images/particle-smoke.png)bin5409 -> 5409 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/phone1.png (renamed from basicsuite/Qt5Everywhere/images/phone1.png)bin19454 -> 19454 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/phone2.png (renamed from basicsuite/Qt5Everywhere/images/phone2.png)bin10535 -> 10535 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/phone3.png (renamed from basicsuite/Qt5Everywhere/images/phone3.png)bin11835 -> 11835 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/stones.png (renamed from basicsuite/Qt5Everywhere/images/stones.png)bin3041 -> 3041 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/tablet1.png (renamed from basicsuite/Qt5Everywhere/images/tablet1.png)bin18363 -> 18363 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/tree1.png (renamed from basicsuite/Qt5Everywhere/images/tree1.png)bin2128 -> 2128 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/tree2.png (renamed from basicsuite/Qt5Everywhere/images/tree2.png)bin1747 -> 1747 bytes
-rw-r--r--basicsuite/qt5-everywhere/images/tv.png (renamed from basicsuite/Qt5Everywhere/images/tv.png)bin18685 -> 18685 bytes
-rw-r--r--basicsuite/qt5-everywhere/main.qml242
-rw-r--r--basicsuite/qt5-everywhere/preview_l.jpgbin0 -> 37050 bytes
-rw-r--r--basicsuite/qt5-everywhere/qt5-everywhere.pro5
-rw-r--r--basicsuite/qt5-everywhere/style.js49
-rw-r--r--basicsuite/qt5-everywhere/title.txt (renamed from basicsuite/Qt5Everywhere/title.txt)0
-rw-r--r--basicsuite/qt5-launchpresentation/Button.qml (renamed from basicsuite/Qt5 Launch Presentation/Button.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/CameraSlide.qml92
-rw-r--r--basicsuite/qt5-launchpresentation/CanvasSlide.qml161
-rw-r--r--basicsuite/qt5-launchpresentation/DemoMain.qml (renamed from basicsuite/Qt5 Launch Presentation/DemoMain.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/EffectsSlide.qml (renamed from basicsuite/Qt5 Launch Presentation/EffectsSlide.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/ExamplesSlide.qml (renamed from basicsuite/Qt5 Launch Presentation/ExamplesSlide.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/FontSlide.qml (renamed from basicsuite/Qt5 Launch Presentation/FontSlide.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/NoisyGradient.qml (renamed from basicsuite/Qt5 Launch Presentation/NoisyGradient.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/NormalMapGenerator.qml (renamed from basicsuite/Qt5 Launch Presentation/NormalMapGenerator.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/OpacityTransitionPresentation.qml104
-rw-r--r--basicsuite/qt5-launchpresentation/ParticleSlide.qml (renamed from basicsuite/Qt5 Launch Presentation/ParticleSlide.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/README (renamed from basicsuite/Qt5 Launch Presentation/README)0
-rw-r--r--basicsuite/qt5-launchpresentation/ShaderSlide.qml (renamed from basicsuite/Qt5 Launch Presentation/ShaderSlide.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/SlideDeck.qml (renamed from basicsuite/Qt5 Launch Presentation/SlideDeck.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/Swirl.qml (renamed from basicsuite/Qt5 Launch Presentation/Swirl.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/VideoSlide.qml116
-rw-r--r--basicsuite/qt5-launchpresentation/WebKitSlideContent.qml124
-rw-r--r--basicsuite/qt5-launchpresentation/WebkitSlide.qml59
-rw-r--r--basicsuite/qt5-launchpresentation/WidgetsSlide.qml (renamed from basicsuite/Qt5 Launch Presentation/WidgetsSlide.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/.DS_Store (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/.DS_Store)bin6148 -> 6148 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/Calqlatr.qml (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/Calqlatr.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/Button.qml (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/Button.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/Display.qml (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/Display.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/NumberPad.qml (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/NumberPad.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/StyleLabel.qml (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/StyleLabel.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/audio/touch.wav (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/audio/touch.wav)bin950 -> 950 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/calculator.js (renamed from basicsuite/Qt5 Launch Presentation/calqlatr/content/calculator.js)0
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-back.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-back.png)bin328 -> 328 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-close.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-close.png)bin488 -> 488 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-settings.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-settings.png)bin503 -> 503 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/logo.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/logo.png)bin5950 -> 5950 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-left.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-edge-left.png)bin12401 -> 12401 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-right.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-edge-right.png)bin12967 -> 12967 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-grip.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-grip.png)bin298 -> 298 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-a.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/settings-selected-a.png)bin2326 -> 2326 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-b.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/settings-selected-b.png)bin2334 -> 2334 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-green.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/touch-green.png)bin4808 -> 4808 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-white.png (renamed from basicsuite/Qt5Everywhere/demos/calqlatr/content/images/touch-white.png)bin4601 -> 4601 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/demo.qmlproject (renamed from basicsuite/Qt5 Launch Presentation/demo.qmlproject)0
-rw-r--r--basicsuite/qt5-launchpresentation/description.txt5
-rw-r--r--basicsuite/qt5-launchpresentation/images/ally.png (renamed from basicsuite/Qt5 Launch Presentation/images/ally.png)bin1907941 -> 1907941 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/butterfly.png (renamed from basicsuite/Qt5 Launch Presentation/images/butterfly.png)bin18668 -> 18668 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/displace.png (renamed from basicsuite/Qt5 Launch Presentation/images/displace.png)bin20269 -> 20269 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/fog.png (renamed from basicsuite/Qt5 Launch Presentation/images/fog.png)bin225653 -> 225653 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/particle.png (renamed from basicsuite/Qt5 Launch Presentation/particles/particle.png)bin861 -> 861 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/qt-logo.png (renamed from basicsuite/Qt5 Launch Presentation/images/qt-logo.png)bin49656 -> 49656 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/widgets_boxes.png (renamed from basicsuite/Qt5 Launch Presentation/images/widgets_boxes.png)bin589779 -> 589779 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/widgets_chips.png (renamed from basicsuite/Qt5 Launch Presentation/images/widgets_chips.png)bin211342 -> 211342 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/widgets_mainwindows.png (renamed from basicsuite/Qt5 Launch Presentation/images/widgets_mainwindows.png)bin95685 -> 95685 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/widgets_styles_fusion.png (renamed from basicsuite/Qt5 Launch Presentation/images/widgets_styles_fusion.png)bin65678 -> 65678 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/images/widgets_styles_macstyle.png (renamed from basicsuite/Qt5 Launch Presentation/images/widgets_styles_macstyle.png)bin70514 -> 70514 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/main.qml (renamed from basicsuite/Qt5 Launch Presentation/main.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/main_hifi.qml (renamed from basicsuite/Qt5 Launch Presentation/main_hifi.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/.DS_Store (renamed from basicsuite/Qt5Everywhere/demos/maroon/.DS_Store)bin6148 -> 6148 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/Maroon.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/Maroon.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/BuildButton.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/BuildButton.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/GameCanvas.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/GameCanvas.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/GameOverScreen.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/GameOverScreen.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/InfoBar.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/InfoBar.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/NewGameScreen.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/NewGameScreen.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/SoundEffect.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/SoundEffect.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/audio/bomb-action.wav (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/audio/bomb-action.wav)bin20972 -> 20972 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/audio/catch-action.wav (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/audio/catch-action.wav)bin13274 -> 13274 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/audio/catch.wav (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/audio/catch.wav)bin8638 -> 8638 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/audio/currency.wav (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/audio/currency.wav)bin15790 -> 15790 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/audio/factory-action.wav (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/audio/factory-action.wav)bin4936 -> 4936 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/audio/melee-action.wav (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/audio/melee-action.wav)bin17798 -> 17798 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/audio/projectile-action.wav (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/audio/projectile-action.wav)bin2562 -> 2562 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/audio/shooter-action.wav (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/audio/shooter-action.wav)bin27554 -> 27554 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/background.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/background.png)bin5802 -> 5802 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-action.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb-action.png)bin23974 -> 23974 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-idle.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb-idle.png)bin12238 -> 12238 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb.png)bin4067 -> 4067 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/button-help.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/button-help.png)bin8916 -> 8916 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/button-play.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/button-play.png)bin13945 -> 13945 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/catch-action.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/catch-action.png)bin6760 -> 6760 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/catch.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/catch.png)bin4771 -> 4771 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/cloud.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/cloud.png)bin3398 -> 3398 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/currency.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/currency.png)bin1889 -> 1889 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-bomb.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-bomb.png)bin3751 -> 3751 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-factory.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-factory.png)bin3946 -> 3946 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-melee.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-melee.png)bin4392 -> 4392 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-pointer.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-pointer.png)bin911 -> 911 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-shooter.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-shooter.png)bin3737 -> 3737 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog.png)bin3362 -> 3362 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-action.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory-action.png)bin22440 -> 22440 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-idle.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory-idle.png)bin12729 -> 12729 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/factory.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory.png)bin4138 -> 4138 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/grid.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/grid.png)bin2830 -> 2830 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/help.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/help.png)bin38255 -> 38255 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/lifes.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/lifes.png)bin1675 -> 1675 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-bubble.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo-bubble.png)bin7706 -> 7706 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-fish.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo-fish.png)bin3477 -> 3477 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/logo.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo.png)bin18332 -> 18332 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-action.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee-action.png)bin7797 -> 7797 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-idle.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee-idle.png)bin22832 -> 22832 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/melee.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee.png)bin4046 -> 4046 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/mob-idle.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/mob-idle.png)bin6181 -> 6181 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/mob.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/mob.png)bin2391 -> 2391 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/points.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/points.png)bin1561 -> 1561 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile-action.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/projectile-action.png)bin6257 -> 6257 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/projectile.png)bin801 -> 801 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/scores.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/scores.png)bin1535 -> 1535 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-action.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter-action.png)bin18121 -> 18121 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-idle.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter-idle.png)bin11929 -> 11929 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter.png)bin4137 -> 4137 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/sunlight.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/sunlight.png)bin248412 -> 248412 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/text-1.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-1.png)bin2777 -> 2777 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/text-2.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-2.png)bin4959 -> 4959 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/text-3.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-3.png)bin5063 -> 5063 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/text-blank.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-blank.png)bin1326 -> 1326 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/text-gameover.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-gameover.png)bin1515 -> 1515 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/text-go.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-go.png)bin4230 -> 4230 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/gfx/wave.png (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/gfx/wave.png)bin2763 -> 2763 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/logic.js (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/logic.js)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/mobs/MobBase.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/mobs/MobBase.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/towers/Bomb.qml (renamed from basicsuite/Qt5 Launch Presentation/maroon/content/towers/Bomb.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/towers/Factory.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/towers/Factory.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/towers/Melee.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/towers/Melee.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/towers/Ranged.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/towers/Ranged.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/maroon/content/towers/TowerBase.qml (renamed from basicsuite/Qt5Everywhere/demos/maroon/content/towers/TowerBase.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/particles/customemitter.qml (renamed from basicsuite/Qt5 Launch Presentation/particles/customemitter.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/particles/emitmask.qml (renamed from basicsuite/Qt5 Launch Presentation/particles/emitmask.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/particles/particle.png (renamed from basicsuite/Qt5 Particles Demo/images/particle.png)bin861 -> 861 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/particles/particle4.png (renamed from basicsuite/Qt5 Launch Presentation/particles/particle4.png)bin1799 -> 1799 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/particles/star.png (renamed from basicsuite/Qt5 Launch Presentation/particles/star.png)bin1550 -> 1550 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/particles/starfish_mask.png (renamed from basicsuite/Qt5 Launch Presentation/particles/starfish_mask.png)bin11301 -> 11301 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/particles/velocityfrommotion.qml306
-rw-r--r--basicsuite/qt5-launchpresentation/presentation/Clock.qml (renamed from basicsuite/Qt5 Launch Presentation/presentation/Clock.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/presentation/CodeSlide.qml (renamed from basicsuite/Qt5 Launch Presentation/presentation/CodeSlide.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/presentation/Presentation.qml (renamed from basicsuite/Qt5 Launch Presentation/presentation/Presentation.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/presentation/Slide.qml (renamed from basicsuite/Qt5 Launch Presentation/presentation/Slide.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/presentation/SlideCounter.qml (renamed from basicsuite/Qt5 Launch Presentation/presentation/SlideCounter.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/preview_l.jpg (renamed from basicsuite/Qt5 Launch Presentation/preview_l.jpg)bin16252 -> 16252 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/qt5-launchpresentation.pro18
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/.DS_Store (renamed from basicsuite/Qt5 Launch Presentation/samegame/.DS_Store)bin6148 -> 6148 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/Samegame.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/Samegame.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/Block.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/Block.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/BlockEmitter.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/BlockEmitter.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/Button.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/Button.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/GameArea.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/GameArea.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/LogoAnimation.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/LogoAnimation.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/MenuEmitter.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/MenuEmitter.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/PaintEmitter.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/PaintEmitter.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/PrimaryPack.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/PrimaryPack.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/PuzzleBlock.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/PuzzleBlock.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/SamegameText.qml (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/SamegameText.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/SimpleBlock.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/SimpleBlock.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/SmokeText.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/SmokeText.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/background-puzzle.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/background-puzzle.png)bin86666 -> 86666 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/background.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/background.png)bin101018 -> 101018 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/bar.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bar.png)bin10970 -> 10970 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/blue-puzzle.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/blue-puzzle.png)bin2219 -> 2219 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/blue.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/blue.png)bin1018 -> 1018 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/bubble-highscore.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bubble-highscore.png)bin2276 -> 2276 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/bubble-puzzle.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bubble-puzzle.png)bin2811 -> 2811 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-1.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-1.png)bin2728 -> 2728 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-2.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-2.png)bin3378 -> 3378 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-3.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-3.png)bin1423 -> 1423 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-4.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-4.png)bin2096 -> 2096 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-new.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-new.png)bin3662 -> 3662 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/but-menu.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-menu.png)bin2391 -> 2391 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/but-puzzle-next.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-puzzle-next.png)bin3658 -> 3658 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/but-quit.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-quit.png)bin2100 -> 2100 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/green-puzzle.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/green-puzzle.png)bin2271 -> 2271 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/green.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/green.png)bin1024 -> 1024 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-fail.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-fail.png)bin6549 -> 6549 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-ok.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-ok.png)bin7190 -> 7190 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-time.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-time.png)bin1159 -> 1159 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-a.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-a.png)bin1814 -> 1814 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-e.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-e.png)bin1725 -> 1725 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-g.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-g.png)bin1765 -> 1765 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-m.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-m.png)bin1743 -> 1743 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-s.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-s.png)bin1791 -> 1791 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/logo.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo.png)bin3608 -> 3608 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-brick.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-brick.png)bin861 -> 861 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-paint.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-paint.png)bin714 -> 714 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-smoke.png (renamed from basicsuite/Qt5Everywhere/images/particle-smoke.png)bin5409 -> 5409 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/red-puzzle.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/red-puzzle.png)bin2218 -> 2218 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/red.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/red.png)bin1018 -> 1018 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-highscore-new.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-highscore-new.png)bin6767 -> 6767 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-highscore.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-highscore.png)bin3179 -> 3179 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-no-winner.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-no-winner.png)bin6321 -> 6321 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1-go.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1-go.png)bin5395 -> 5395 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1-won.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1-won.png)bin5618 -> 5618 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1.png)bin1751 -> 1751 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2-go.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2-go.png)bin5874 -> 5874 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2-won.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2-won.png)bin6177 -> 6177 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2.png)bin2381 -> 2381 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/yellow-puzzle.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/yellow-puzzle.png)bin2239 -> 2239 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/gfx/yellow.png (renamed from basicsuite/Qt5Everywhere/demos/samegame/content/gfx/yellow.png)bin1008 -> 1008 bytes
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/TemplateBase.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/TemplateBase.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level0.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level0.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level1.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level1.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level2.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level2.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level3.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level3.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level4.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level4.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level5.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level5.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level6.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level6.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level7.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level7.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level8.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level8.qml)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/content/levels/level9.qml (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/levels/level9.qml)0
-rwxr-xr-xbasicsuite/qt5-launchpresentation/samegame/content/samegame.js (renamed from basicsuite/Qt5 Launch Presentation/samegame/content/samegame.js)0
-rw-r--r--basicsuite/qt5-launchpresentation/samegame/settings.js (renamed from basicsuite/Qt5Everywhere/demos/samegame/settings.js)0
-rw-r--r--basicsuite/qt5-launchpresentation/title.txt1
-rw-r--r--basicsuite/qt5-particlesdemo/content/burstandpulse.qml110
-rw-r--r--basicsuite/qt5-particlesdemo/content/customemitter.qml96
-rw-r--r--basicsuite/qt5-particlesdemo/content/emitmask.qml74
-rw-r--r--basicsuite/qt5-particlesdemo/content/maximumemitted.qml82
-rw-r--r--basicsuite/qt5-particlesdemo/content/shapeanddirection.qml112
-rw-r--r--basicsuite/qt5-particlesdemo/content/trailemitter.qml176
-rw-r--r--basicsuite/qt5-particlesdemo/content/velocityfrommotion.qml312
-rw-r--r--basicsuite/qt5-particlesdemo/description.txt (renamed from basicsuite/Qt5 Particles Demo/description.txt)0
-rw-r--r--basicsuite/qt5-particlesdemo/doc/images/qml-emitters-example.png (renamed from basicsuite/Qt5 Particles Demo/doc/images/qml-emitters-example.png)bin54749 -> 54749 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/doc/src/emitters.qdoc62
-rw-r--r--basicsuite/qt5-particlesdemo/emitters.pro (renamed from basicsuite/Qt5 Particles Demo/emitters.pro)0
-rw-r--r--basicsuite/qt5-particlesdemo/emitters.qmlproject (renamed from basicsuite/Qt5 Particles Demo/emitters.qmlproject)0
-rw-r--r--basicsuite/qt5-particlesdemo/emitters.qrc (renamed from basicsuite/Qt5 Particles Demo/emitters.qrc)0
-rw-r--r--basicsuite/qt5-particlesdemo/exclude.txt1
-rw-r--r--basicsuite/qt5-particlesdemo/images/_explo.png (renamed from basicsuite/Qt5 Particles Demo/images/_explo.png)bin81528 -> 81528 bytes
-rwxr-xr-xbasicsuite/qt5-particlesdemo/images/backgroundLeaves.jpg (renamed from basicsuite/Qt5 Particles Demo/images/backgroundLeaves.jpg)bin78665 -> 78665 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/bear_tiles.png (renamed from basicsuite/Qt5 Particles Demo/images/bear_tiles.png)bin40349 -> 40349 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/candle.png (renamed from basicsuite/Qt5 Particles Demo/images/candle.png)bin1348 -> 1348 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/colortable.png (renamed from basicsuite/Qt5 Particles Demo/images/colortable.png)bin704 -> 704 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/finalfrontier.png (renamed from basicsuite/Qt5 Particles Demo/images/finalfrontier.png)bin695061 -> 695061 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/flower.png (renamed from basicsuite/Qt5 Particles Demo/images/flower.png)bin4683 -> 4683 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/matchmask.png (renamed from basicsuite/Qt5 Particles Demo/images/matchmask.png)bin2369 -> 2369 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/meteor.png (renamed from basicsuite/Qt5 Particles Demo/images/meteor.png)bin83169 -> 83169 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/meteor_explo.png (renamed from basicsuite/Qt5 Particles Demo/images/meteor_explo.png)bin219946 -> 219946 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/meteors.png (renamed from basicsuite/Qt5 Particles Demo/images/meteors.png)bin132137 -> 132137 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/nullRock.png (renamed from basicsuite/Qt5 Particles Demo/images/nullRock.png)bin140 -> 140 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particle.png (renamed from basicsuite/Qt5Everywhere/demos/particledemo/particle.png)bin861 -> 861 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particle2.png (renamed from basicsuite/Qt5 Particles Demo/images/particle2.png)bin3909 -> 3909 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particle3.png (renamed from basicsuite/Qt5 Particles Demo/images/particle3.png)bin3186 -> 3186 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particle4.png (renamed from basicsuite/Qt5 Particles Demo/images/particle4.png)bin1799 -> 1799 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/particleA.png (renamed from basicsuite/Qt5 Particles Demo/images/particleA.png)bin3541 -> 3541 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/portal_bg.png (renamed from basicsuite/Qt5 Particles Demo/images/portal_bg.png)bin96858 -> 96858 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/realLeaf1.png (renamed from basicsuite/Qt5 Particles Demo/images/realLeaf1.png)bin15625 -> 15625 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/realLeaf2.png (renamed from basicsuite/Qt5 Particles Demo/images/realLeaf2.png)bin13660 -> 13660 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/realLeaf3.png (renamed from basicsuite/Qt5 Particles Demo/images/realLeaf3.png)bin23809 -> 23809 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/realLeaf4.png (renamed from basicsuite/Qt5 Particles Demo/images/realLeaf4.png)bin23655 -> 23655 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/rocket.png (renamed from basicsuite/Qt5 Particles Demo/images/rocket.png)bin7315 -> 7315 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/rocket2.png (renamed from basicsuite/Qt5 Particles Demo/images/rocket2.png)bin1918 -> 1918 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/sizeInOut.png (renamed from basicsuite/Qt5 Particles Demo/images/sizeInOut.png)bin251 -> 251 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/snowflake.png (renamed from basicsuite/Qt5 Particles Demo/images/snowflake.png)bin189327 -> 189327 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/sparkleSize.png (renamed from basicsuite/Qt5 Particles Demo/images/sparkleSize.png)bin378 -> 378 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/star.png (renamed from basicsuite/Qt5 Particles Demo/images/star.png)bin1550 -> 1550 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_0.png (renamed from basicsuite/Qt5 Particles Demo/images/starfish_0.png)bin15972 -> 15972 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_1.png (renamed from basicsuite/Qt5 Particles Demo/images/starfish_1.png)bin15746 -> 15746 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_2.png (renamed from basicsuite/Qt5 Particles Demo/images/starfish_2.png)bin16067 -> 16067 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_3.png (renamed from basicsuite/Qt5 Particles Demo/images/starfish_3.png)bin16201 -> 16201 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_4.png (renamed from basicsuite/Qt5 Particles Demo/images/starfish_4.png)bin14698 -> 14698 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/images/starfish_mask.png (renamed from basicsuite/Qt5 Particles Demo/images/starfish_mask.png)bin11301 -> 11301 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/main.cpp41
-rw-r--r--basicsuite/qt5-particlesdemo/main.qml60
-rw-r--r--basicsuite/qt5-particlesdemo/preview_l.jpg (renamed from basicsuite/Qt5 Particles Demo/preview_l.jpg)bin8889 -> 8889 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/qt5-particlesdemo.pro15
-rw-r--r--basicsuite/qt5-particlesdemo/shared/Button.qml91
-rw-r--r--basicsuite/qt5-particlesdemo/shared/LauncherList.qml148
-rw-r--r--basicsuite/qt5-particlesdemo/shared/README (renamed from basicsuite/Qt5 Particles Demo/shared/README)0
-rw-r--r--basicsuite/qt5-particlesdemo/shared/SimpleLauncherDelegate.qml89
-rw-r--r--basicsuite/qt5-particlesdemo/shared/images/back.png (renamed from basicsuite/Qt5 Particles Demo/shared/images/back.png)bin1590 -> 1590 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/shared/images/next.png (renamed from basicsuite/Qt5 Particles Demo/shared/images/next.png)bin1371 -> 1371 bytes
-rw-r--r--basicsuite/qt5-particlesdemo/shared/qmldir (renamed from basicsuite/Qt5 Particles Demo/shared/qmldir)0
-rw-r--r--basicsuite/qt5-particlesdemo/shared/quick_shared.qrc (renamed from basicsuite/Qt5 Particles Demo/shared/quick_shared.qrc)0
-rw-r--r--basicsuite/qt5-particlesdemo/shared/shared.h58
-rw-r--r--basicsuite/qt5-particlesdemo/shared/shared.qrc (renamed from basicsuite/Qt5 Particles Demo/shared/shared.qrc)0
-rw-r--r--basicsuite/qt5-particlesdemo/title.txt1
-rw-r--r--basicsuite/sensorexplorer/app.pro11
-rw-r--r--basicsuite/sensorexplorer/description.txt1
-rw-r--r--basicsuite/sensorexplorer/doc/src/sensor_explorer.qdoc82
-rw-r--r--basicsuite/sensorexplorer/exclude.txt1
-rw-r--r--basicsuite/sensorexplorer/imports/explorer.cpp136
-rw-r--r--basicsuite/sensorexplorer/imports/explorer.h79
-rw-r--r--basicsuite/sensorexplorer/imports/imports.pro24
-rw-r--r--basicsuite/sensorexplorer/imports/main.cpp63
-rw-r--r--basicsuite/sensorexplorer/imports/plugin.json1
-rw-r--r--basicsuite/sensorexplorer/imports/propertyinfo.cpp140
-rw-r--r--basicsuite/sensorexplorer/imports/propertyinfo.h83
-rw-r--r--basicsuite/sensorexplorer/imports/qmldir2
-rw-r--r--basicsuite/sensorexplorer/imports/sensoritem.cpp322
-rw-r--r--basicsuite/sensorexplorer/imports/sensoritem.h96
-rw-r--r--basicsuite/sensorexplorer/main.qml224
-rw-r--r--basicsuite/sensorexplorer/preview_l.jpgbin0 -> 21553 bytes
-rw-r--r--basicsuite/sensorexplorer/sensorexplorer.pro6
-rw-r--r--basicsuite/sensorexplorer/title.txt1
-rw-r--r--basicsuite/sensors/1.png (renamed from basicsuite/Sensors/1.png)bin33675 -> 33675 bytes
-rw-r--r--basicsuite/sensors/2.png (renamed from basicsuite/Sensors/2.png)bin27754 -> 27754 bytes
-rw-r--r--basicsuite/sensors/3.png (renamed from basicsuite/Sensors/3.png)bin27841 -> 27841 bytes
-rw-r--r--basicsuite/sensors/Accelbubble.qml108
-rw-r--r--basicsuite/sensors/Light.qml90
-rw-r--r--basicsuite/sensors/bluebubble.png (renamed from basicsuite/Sensors/bluebubble.png)bin12815 -> 12815 bytes
-rw-r--r--basicsuite/sensors/description.txt3
-rw-r--r--basicsuite/sensors/exclude.txt1
-rw-r--r--basicsuite/sensors/main.qml105
-rw-r--r--basicsuite/sensors/preview_l.jpgbin0 -> 19464 bytes
-rw-r--r--basicsuite/sensors/sensors.pro13
-rw-r--r--basicsuite/sensors/title.txt1
-rw-r--r--basicsuite/shared/engine.cpp35
-rw-r--r--basicsuite/shared/engine.h49
-rw-r--r--basicsuite/shared/loader.qml63
-rw-r--r--basicsuite/shared/main.cpp82
-rw-r--r--basicsuite/shared/shared.pri23
-rw-r--r--basicsuite/textinput/ScrollBar.qml67
-rw-r--r--basicsuite/textinput/TextArea.qml89
-rw-r--r--basicsuite/textinput/TextBase.qml96
-rw-r--r--basicsuite/textinput/TextField.qml94
-rw-r--r--basicsuite/textinput/description.txt3
-rw-r--r--basicsuite/textinput/main.qml114
-rw-r--r--basicsuite/textinput/preview_l.jpg (renamed from basicsuite/Text Input/preview_l.jpg)bin16465 -> 16465 bytes
-rw-r--r--basicsuite/textinput/textinput.pro13
-rw-r--r--basicsuite/textinput/title.txt1
-rw-r--r--doc/b2qt-demos.qdoc238
-rw-r--r--doc/b2qt-demos.qdocconf46
-rw-r--r--doc/doc.pro3
-rw-r--r--doc/html-offline.qdocconf54
-rw-r--r--doc/images/b2qt-demo-about-b2qt.jpgbin0 -> 28727 bytes
-rw-r--r--doc/images/b2qt-demo-camera.jpgbin0 -> 33458 bytes
-rw-r--r--doc/images/b2qt-demo-controls-touch.jpgbin0 -> 11179 bytes
-rw-r--r--doc/images/b2qt-demo-enterprise-charts.jpgbin0 -> 11070 bytes
-rw-r--r--doc/images/b2qt-demo-enterprise-dashboard.jpgbin0 -> 11239 bytes
-rw-r--r--doc/images/b2qt-demo-enterprise-gallery.jpgbin0 -> 9016 bytes
-rw-r--r--doc/images/b2qt-demo-graphicaleffects.jpgbin0 -> 33841 bytes
-rw-r--r--doc/images/b2qt-demo-mediaplayer.jpgbin0 -> 29015 bytes
-rw-r--r--doc/images/b2qt-demo-photogallery.jpgbin0 -> 55274 bytes
-rw-r--r--doc/images/b2qt-demo-qt5-cinematicdemo.jpgbin0 -> 36830 bytes
-rw-r--r--doc/images/b2qt-demo-qt5-everywhere.jpgbin0 -> 34331 bytes
-rw-r--r--doc/images/b2qt-demo-qt5-launchpresentation.jpgbin0 -> 16252 bytes
-rw-r--r--doc/images/b2qt-demo-qt5-particlesdemo.jpgbin0 -> 8889 bytes
-rw-r--r--doc/images/b2qt-demo-sensorexplorer.jpgbin0 -> 21553 bytes
-rw-r--r--doc/images/b2qt-demo-sensors.jpgbin0 -> 19464 bytes
-rw-r--r--doc/images/b2qt-demo-textinput.jpgbin0 -> 16465 bytes
-rw-r--r--doc/images/b2qt-demo.pngbin0 -> 5048 bytes
-rw-r--r--doc/template/images/arrow_bc.pngbin0 -> 1071 bytes
-rw-r--r--doc/template/images/bgrContent.pngbin0 -> 149 bytes
-rw-r--r--doc/template/images/blu_dot.pngbin0 -> 168 bytes
-rw-r--r--doc/template/images/btn_next.pngbin0 -> 689 bytes
-rw-r--r--doc/template/images/btn_prev.pngbin0 -> 676 bytes
-rw-r--r--doc/template/images/home.pngbin0 -> 1076 bytes
-rw-r--r--doc/template/images/ico_note.pngbin0 -> 649 bytes
-rw-r--r--doc/template/images/ico_note_attention.pngbin0 -> 529 bytes
-rw-r--r--doc/template/images/ico_out.pngbin0 -> 362 bytes
-rw-r--r--doc/template/style/offline.css628
-rw-r--r--experimental/Overlay Tester/main.qml40
-rw-r--r--experimental/Wifi/main.qml159
-rw-r--r--experimental/qt5-intro-android/WebKitSlideContent.qml40
-rw-r--r--experimental/qt5-intro-android/WebkitSlide.qml40
-rw-r--r--experimental/qt5-intro-android/main.cpp40
1206 files changed, 27337 insertions, 18361 deletions
diff --git a/.export b/.export
new file mode 100644
index 0000000..a8d1f44
--- /dev/null
+++ b/.export
@@ -0,0 +1 @@
+basicsuite
diff --git a/.qmake.conf b/.qmake.conf
new file mode 100644
index 0000000..53aeb41
--- /dev/null
+++ b/.qmake.conf
@@ -0,0 +1,2 @@
+load(qt_build_config)
+MODULE_VERSION=1.0.0
diff --git a/b2qt-demos.pro b/b2qt-demos.pro
index d5943bc..3adc812 100644
--- a/b2qt-demos.pro
+++ b/b2qt-demos.pro
@@ -1,3 +1,4 @@
TEMPLATE = subdirs
SUBDIRS += \
- basicsuite
+ basicsuite \
+ doc
diff --git a/basicsuite/About Boot to Qt/AboutBoot2Qt.qml b/basicsuite/About Boot to Qt/AboutBoot2Qt.qml
deleted file mode 100644
index 66346c1..0000000
--- a/basicsuite/About Boot to Qt/AboutBoot2Qt.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-import QtQuick 2.0
-
-Column {
-
- id: root
-
- width: parent.width
-
- spacing: engine.smallFontSize()
-
- Title {
- id: title
- text: "Boot to Qt"
- }
-
- ContentText {
- id: brief
- width: parent.width
- text: '<p align="justify">Boot to Qt is the working name for a light-weight UI stack for embedded linux,
- based on the Qt Framework by Digia. Boot to Qt places Qt on top of an Android
- kernel/baselayer and offers an elegant means of developing beautiful and
- performant embedded devices.
-
- <p align="justify">Boot to Qt is a commercial-only SDK offering which includes a ready-made stack
- with full Qt Creator integration. The SDK allows building and running on device
- with just a button. Embedded development has never been this easy!'
- }
-
- Column {
- id: diagram
- spacing: 1
- width: parent.width * 0.5
- anchors.horizontalCenter: parent.horizontalCenter
- Box { text: "Application"; accentColor: "coral" }
- Box { text: "Qt Framework"; accentColor: Qt.rgba(0.64, 0.82, 0.15) }
- Box { text: "Android Baselayer"; accentColor: "steelblue" }
- Box { text: "Embedded Hardware"; accentColor: "steelblue"}
- }
-
- ContentText {
- id: description
-
- width: parent.width
-
- text: '<p align="justify">Boot to Qt runs on top of Android 4.0 based kernels and has been tested and verified on
- a number of different hardware configurations, including:
- <ul>
- <li>Google Nexus 7 - NVIDIA Tegra3 Quad Core, 1 GB RAM</li>
- <li>Beagle Board xM - ARM Coretex A8 1GHz, 512 MB RAM, PowerVR SGX 530</li>
- <li>Freescale i.MX 6 - ARM Cortex A9 1.2GHz, 1 GB RAM, Vivante GC2000</li>
- </ul>
- Rough minimal requirements for running Boot to Qt are:
- <ul>
- <li>256Mb of RAM</li>
- <li>500Mhz CPU, 1Ghz preferred for 60 FPS velvet UIs</li>
- <li>OpenGL ES 2.0 support</li>
- <li>Android 4.0+ compatible hardware</li>
- </ul>
- '
- }
-}
diff --git a/basicsuite/About Boot to Qt/Box.qml b/basicsuite/About Boot to Qt/Box.qml
deleted file mode 100644
index cfbb995..0000000
--- a/basicsuite/About Boot to Qt/Box.qml
+++ /dev/null
@@ -1,30 +0,0 @@
-import QtQuick 2.0
-
-Rectangle {
- id: root
-
- width: parent.width
- height: label.font.pixelSize * 3
-
- radius: 4
-
- antialiasing: true
-
- property alias text: label.text;
-
- property color accentColor: "palegreen"
-
- gradient: Gradient {
- GradientStop { position: 0; color: root.accentColor; }
- GradientStop { position: 1; color: "black"; }
- }
-
- Text {
- id: label
- font.pixelSize: engine.smallFontSize()
- font.bold: true;
- color: "white"
- anchors.centerIn: parent
- }
-
-}
diff --git a/basicsuite/About Boot to Qt/ContentText.qml b/basicsuite/About Boot to Qt/ContentText.qml
deleted file mode 100644
index ed95064..0000000
--- a/basicsuite/About Boot to Qt/ContentText.qml
+++ /dev/null
@@ -1,8 +0,0 @@
-import QtQuick 2.0
-
-Text {
- color: "white"
- font.pixelSize: engine.smallFontSize()
- textFormat: Text.RichText
- wrapMode: Text.WordWrap
-}
diff --git a/basicsuite/About Boot to Qt/QtForAndroid.qml b/basicsuite/About Boot to Qt/QtForAndroid.qml
deleted file mode 100644
index 2eac080..0000000
--- a/basicsuite/About Boot to Qt/QtForAndroid.qml
+++ /dev/null
@@ -1,48 +0,0 @@
-import QtQuick 2.0
-
-Column {
- id: root
-
- width: parent.width
-
- spacing: engine.smallFontSize()
-
- Title {
- text: "Boot2Qt vs Qt for Android"
- }
-
- ContentText {
- width: parent.width
- text: '<p align="justify">Qt for Android is a port of the Qt Framework to be used
- for application development on the Android platform. Its
- purpose is to enable development of applications that
- can run on Android devices. For developers writing applications
- for the Android ecosystem, Qt for Android is the right choice.
-
- <p align="justify">Boot2Qt tries to strip down the Android stack to the bare minimum,
- relying only on basic Linux features. The majority of the Android stack,
- such as <i>SurfaceFlinger</i> or <i>DalvikVM</i> is not running in
- Boot2Qt, resulting in faster startup times, lower memory consumption
- and overall better performance.
- '
- }
-
- Column {
- id: diagram
- spacing: 1
- width: parent.width * 0.66
- anchors.horizontalCenter: parent.horizontalCenter
- Box { text: "Application"; accentColor: "coral" }
- Box { text: "Qt for Android"; accentColor: Qt.rgba(0.64, 0.82, 0.15) }
- Row {
- width: parent.width
- height: b.height
- Box { id: b; width: parent.width / 2; text: "Qt Framework"; accentColor: Qt.rgba(0.64, 0.82, 0.15) }
- Box { width: parent.width / 2; text: "Android (Dalvik)"; accentColor: "steelblue" }
- }
-
- Box { text: "Android Baselayer"; accentColor: "steelblue" }
- Box { text: "Embedded Hardware"; accentColor: "steelblue"}
- }
-
-}
diff --git a/basicsuite/About Boot to Qt/QtFramework.qml b/basicsuite/About Boot to Qt/QtFramework.qml
deleted file mode 100644
index 3cb2f10..0000000
--- a/basicsuite/About Boot to Qt/QtFramework.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-import QtQuick 2.0
-
-Column {
- id: root
-
- width: parent.width
-
- spacing: engine.smallFontSize()
-
- Title {
- text: "Qt Framework"
- }
-
- ContentText {
- id: brief
- width: parent.width
- text: '<p align="justify">Qt is a full development framework with tools designed to streamline
- the creation of applications and user interfaces for desktop, embedded
- and mobile platforms.
- <ul>
- <li><b>Qt Framework</b> - intuitive APIs for C++ and CSS/JavaScript-like
- programming with Qt Quick for rapid UI creation<\li>
- <li><b>Qt Creator IDE</b> - powerful cross-platform integrated
- development environment, including UI designer tools and on-device debugging</li>
- <li><b>Tools and toolchains</b> - internationalization support, embedded toolchains
- and more.</li>
- </ul>
- <p align="justify">With Qt, you can reuse code efficiently to target multiple platforms
- with one code base. The modular C++ class library and developer tools
- easily enables developers to create applications for one platform and
- easily build and run to deploy on another platform.'
- }
-
-
-}
diff --git a/basicsuite/About Boot to Qt/Title.qml b/basicsuite/About Boot to Qt/Title.qml
deleted file mode 100644
index 8fb13cc..0000000
--- a/basicsuite/About Boot to Qt/Title.qml
+++ /dev/null
@@ -1,8 +0,0 @@
-import QtQuick 2.0
-
-Text {
- font.pixelSize: engine.titleFontSize()
- font.italic: true
- color: "white"
- anchors.horizontalCenter: parent.horizontalCenter
-}
diff --git a/basicsuite/About Boot to Qt/description.txt b/basicsuite/About Boot to Qt/description.txt
deleted file mode 100644
index f546387..0000000
--- a/basicsuite/About Boot to Qt/description.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-The "About Boot to Qt" provides an introduction to what Boot to Qt is all about.
-
-It talks briefly about how the software stack is built up, rough hardware requirements and how Boot to Qt from the more traditional Qt editions.
diff --git a/basicsuite/About Boot to Qt/main.qml b/basicsuite/About Boot to Qt/main.qml
deleted file mode 100644
index 6586811..0000000
--- a/basicsuite/About Boot to Qt/main.qml
+++ /dev/null
@@ -1,135 +0,0 @@
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- id: root
-
- width: 1280
- height: 800
-
-// Rectangle {
-// anchors.fill: parent
-// color: "black"
-// }
-
- Flickable {
- id: flick
- property real inertia: 0.4
-
- property real cellWidth;
- property real cellHeight;
-
- width: parent.width
- height: parent.height
- anchors.horizontalCenter: parent.horizontalCenter
-
- contentHeight: content.height
-
- flickableDirection: Flickable.VerticalFlick
-
- property real topOvershoot: Math.max(0, contentItem.y);
- property real bottomOvershoot: Math.max(0, root.height - (contentItem.height + contentItem.y));
-// onTopOvershootChanged: print("Top Overshoot:", topOvershoot);
-// onBottomOvershootChanged: print("Bottom Overshoot:", bottomOvershoot);
-
- Item {
- id: shiftTrickery
-
- width: flick.width
- height: content.height
-
- Column {
- id: content;
-
- y: -flick.contentItem.y + offsetY;
- width: flick.width * 2 / 3
- anchors.horizontalCenter: parent.horizontalCenter
-
- property real offsetY: 0;
- property real inertia: flick.inertia;
- property real t;
- NumberAnimation on t {
- id: animation;
- from: 0;
- to: 1;
- duration: 1000;
- loops: Animation.Infinite
- running: Math.abs(content.y) > 0.001 || Math.abs(content.x) > 0.001
- }
-
- onTChanged: {
- offsetY += (flick.contentItem.y - offsetY) * inertia
- }
-
-
- spacing: engine.smallFontSize() * 2
-
- Item { width: 1; height: engine.smallFontSize() }
- AboutBoot2Qt { }
- QtFramework { }
- QtForAndroid { }
- Image {
- id: codeLessImage
- source: "codeless.png"
- anchors.horizontalCenter: parent.horizontalCenter
- }
- Item { width: 1; height: engine.smallFontSize() }
- }
-
- }
- }
-
- ParticleSystem {
-
- anchors.fill: parent
-
- ImageParticle {
- id: imageParticle
- source: "particle.png"
- color: "#80c342"
- alpha: 0
- colorVariation: 0.3
- entryEffect: ImageParticle.None
- }
-
- Emitter {
- id: topEmitter
- width: root.width
- height: 1
- x: 0
- y: -1
- shape: EllipseShape { fill: true }
-
- emitRate: 300
- lifeSpan: 1000
- size: 20
- sizeVariation: 4
- endSize: 0
-
- enabled: flick.topOvershoot > 0
-
- velocity: PointDirection { xVariation: 10; yVariation: 50; y: Math.sqrt(flick.topOvershoot) * 10; }
- acceleration: PointDirection { y: 50 }
- }
-
- Emitter {
- id: bottomEmitter
- width: root.width
- height: 1
- x: 0
- y: root.height + 1
- shape: EllipseShape { fill: true }
-
- emitRate: 300
- lifeSpan: 1000
- size: 20
- sizeVariation: 4
- endSize: 0
-
- enabled: flick.bottomOvershoot > 0
-
- velocity: PointDirection { xVariation: 10; yVariation: -50; y: Math.sqrt(flick.bottomOvershoot) * -10; }
- acceleration: PointDirection { y: -50 }
- }
- }
-}
diff --git a/basicsuite/Camera/Camera.pro b/basicsuite/Camera/Camera.pro
deleted file mode 100644
index d8e46c6..0000000
--- a/basicsuite/Camera/Camera.pro
+++ /dev/null
@@ -1,4 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS += \
- camerautils
-
diff --git a/basicsuite/Camera/CameraControlButton.qml b/basicsuite/Camera/CameraControlButton.qml
deleted file mode 100644
index dc82435..0000000
--- a/basicsuite/Camera/CameraControlButton.qml
+++ /dev/null
@@ -1,54 +0,0 @@
-import QtQuick 2.0
-
-MouseArea {
- id: buttonRoot
- property alias title: titleTxt.text
- property alias subtitle: valueTxt.text
- property bool toggled: false
-
- width: 78 * root.contentScale
- height: 78 * root.contentScale
- opacity: pressed ? 0.3 : 1.0
- rotation: root.contentRotation
- Behavior on rotation { NumberAnimation { } }
-
- Rectangle {
- anchors.fill: parent
- color: toggled ? "#8898c66c" : "#77333333"
- radius: 5 * root.contentScale
- }
-
- Column {
- id: expModeControls
- spacing: 2 * root.contentScale
- anchors.centerIn: parent
-
- Text {
- id: titleTxt
- anchors.horizontalCenter: expModeControls.horizontalCenter
- font.pixelSize: 22 * root.contentScale
- font.letterSpacing: -1
- color: "white"
- font.bold: true
- }
-
- Text {
- id: valueTxt
- anchors.horizontalCenter: expModeControls.horizontalCenter
- height: 22 * root.contentScale
- verticalAlignment: Text.AlignVCenter
- color: "white"
-
- Connections {
- target: root
- onContentScaleChanged: valueTxt.font.pixelSize = Math.round(18 * root.contentScale)
- }
-
- onTextChanged: font.pixelSize = Math.round(18 * root.contentScale)
- onPaintedWidthChanged: {
- if (paintedWidth > buttonRoot.width - (8 * root.contentScale))
- font.pixelSize -= Math.round(2 * root.contentScale);
- }
- }
- }
-}
diff --git a/basicsuite/Camera/CameraSetting.qml b/basicsuite/Camera/CameraSetting.qml
deleted file mode 100644
index 224c70c..0000000
--- a/basicsuite/Camera/CameraSetting.qml
+++ /dev/null
@@ -1,28 +0,0 @@
-import QtQuick 2.0
-
-Item {
- width: button.width
- height: button.height
- visible: enabled && picker.count > 1
-
- property alias title: button.title
- property alias selectedValue: picker.value
- property alias currentIndex: picker.currentIndex
- property alias model: picker.model
- property alias count: picker.count
-
- CameraControlButton {
- id: button
- anchors.centerIn: parent
-
- subtitle: picker.name
- toggled: picker.visible
-
- onClicked: picker.visible = true
- }
-
- Picker {
- id: picker
- }
-
-}
diff --git a/basicsuite/Camera/CaptureControl.qml b/basicsuite/Camera/CaptureControl.qml
deleted file mode 100644
index b8180f9..0000000
--- a/basicsuite/Camera/CaptureControl.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-import QtQuick 2.0
-import QtMultimedia 5.0
-
-Rectangle {
- id: controlRoot
-
- signal clicked
-
- property bool videoMode: camera.captureMode === Camera.CaptureVideo
-
- width: 180 * root.contentScale
- height: width
- radius: width / 2
- color: mouser.pressed ? (controlRoot.videoMode ? "#77fa334f" : "#7798c66c") : "#77333333"
- visible: enabled
-
- Rectangle {
- id: center
- anchors.centerIn: parent
- width: parent.width * 0.45
- height: width
- radius: width / 2
- opacity: mouser.pressed ? 0.7 : 1
- color: controlRoot.videoMode ? "#fa334f" : "#98c66c"
- }
-
- Rectangle {
- anchors.centerIn: parent
- color: "white"
- visible: camera.videoRecorder.recorderStatus === CameraRecorder.RecordingStatus
- width: center.width * 0.3
- height: width
- }
-
- MouseArea {
- id: mouser
- anchors.fill: parent
- onClicked: controlRoot.clicked()
- }
-}
diff --git a/basicsuite/Camera/CapturePreview.qml b/basicsuite/Camera/CapturePreview.qml
deleted file mode 100644
index 611fa53..0000000
--- a/basicsuite/Camera/CapturePreview.qml
+++ /dev/null
@@ -1,45 +0,0 @@
-import QtQuick 2.0
-
-Rectangle {
- id: root
- anchors.fill: parent
- color: "black"
- opacity: 0
- enabled: opacity !== 0
-
- property string previewSrc: ""
-
- onOpacityChanged: {
- if (opacity === 1 && previewSrc !== "") {
- previewImage.source = previewSrc;
- previewSrc = "";
- }
- }
-
- Behavior on opacity { NumberAnimation { duration: 100 } }
-
- function show() {
- previewImage.source = "";
- opacity = 1;
- }
-
- function setPreview(preview) {
- if (root.opacity === 1)
- previewImage.source = preview;
- else
- root.previewSrc = preview;
- }
-
- Image {
- id: previewImage
- anchors.fill: parent
- fillMode: Image.PreserveAspectFit
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- root.opacity = 0;
- }
- }
-}
diff --git a/basicsuite/Camera/Controls.qml b/basicsuite/Camera/Controls.qml
deleted file mode 100644
index 63f750b..0000000
--- a/basicsuite/Camera/Controls.qml
+++ /dev/null
@@ -1,159 +0,0 @@
-import QtQuick 2.0
-import QtMultimedia 5.0
-
-Item {
- id: controlsRoot
- anchors.fill: parent
-
- property alias cameraMode: cameraModeControl.selectedValue
-
- property alias requestedZoom: zoomControl.requestedZoom
- property alias actualZoom: zoomControl.actualZoom
- property alias maximumZoom: zoomControl.maximumZoom
-
- property alias flashMode: flashControl.selectedValue
- property alias focusMode: focusModeControl.selectedValue
- property alias exposureMode: expModeControl.selectedValue
- property alias exposureCompensation: expCompControl.selectedValue
- property alias whiteBalanceMode: wbControl.selectedValue
- property alias resolution: resControl.selectedValue
-
- property bool captureReady: false
-
- signal capture
- signal searchAndLock
-
- FocusControl {
- id: focusControl
- anchors.fill: parent
- onSearchAndLock: controlsRoot.searchAndLock()
- enabled: camera.captureMode === Camera.CaptureStillImage
- }
-
- ZoomControl {
- id: zoomControl
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 50
- }
-
- CameraSetting {
- id: cameraModeControl
- anchors.right: parent.right
- anchors.rightMargin: 20
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 20
- title: "MODE"
- model: ListModel {
- ListElement {
- name: "Picture"
- value: Camera.CaptureStillImage
- }
- ListElement {
- name: "Video"
- value: Camera.CaptureVideo
- }
- }
- onCountChanged: currentIndex = 0
- enabled: controlsRoot.captureReady
- }
-
- RecordingTime {
- anchors.right: parent.right
- anchors.rightMargin: 40
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 60 * root.contentScale
- visible: camera.videoRecorder.recorderStatus === CameraRecorder.RecordingStatus
- }
-
- Row {
- anchors.left: parent.left
- anchors.leftMargin: 20
- anchors.top: parent.top
- anchors.topMargin: 20
- height: 84
- spacing: 20
-
- CameraSetting {
- id: flashControl
- title: "FLASH"
- model: cameraUtils.supportedFlashModes
- }
-
- CameraSetting {
- id: focusModeControl
- title: "FOCUS"
- model: cameraUtils.supportedFocusModes
- enabled: camera.captureMode === Camera.CaptureStillImage
- }
-
- CameraSetting {
- id: expModeControl
- title: "SCENE"
- model: cameraUtils.supportedSceneModes
- }
-
- CameraSetting {
- id: expCompControl
- title: "EV"
- model: ListModel {
- ListElement {
- name: "+2"
- value: 2
- }
- ListElement {
- name: "+1"
- value: 1
- }
- ListElement {
- name: "0"
- value: 0
- }
- ListElement {
- name: "-1"
- value: -1
- }
- ListElement {
- name: "-2"
- value: -2
- }
- }
- }
-
- CameraSetting {
- id: wbControl
- title: "WB"
- model: cameraUtils.supportedWhiteBalanceModes
- }
-
- CameraSetting {
- id: resControl
- title: "SIZE"
- model: cameraUtils.supportedCaptureResolutions
-// onCountChanged: currentIndex = 1
-
- Component.onCompleted: currentIndex = 1
-
- Connections {
- target: camera
- onCaptureModeChanged: {
- if (camera.captureMode === Camera.CaptureStillImage) {
- resControl.model = cameraUtils.supportedCaptureResolutions;
- } else {
- resControl.model = cameraUtils.supportedVideoResolutions;
- }
- }
- }
- }
- }
-
- CaptureControl {
- id: captureControl
- anchors.verticalCenter: parent.verticalCenter
- anchors.right: parent.right
- anchors.rightMargin: -30
- enabled: controlsRoot.captureReady || camera.videoRecorder.recorderStatus === CameraRecorder.RecordingStatus
-
- onClicked: controlsRoot.capture()
- }
-}
diff --git a/basicsuite/Camera/FocusControl.qml b/basicsuite/Camera/FocusControl.qml
deleted file mode 100644
index f9b2f29..0000000
--- a/basicsuite/Camera/FocusControl.qml
+++ /dev/null
@@ -1,111 +0,0 @@
-import QtQuick 2.0
-import QtMultimedia 5.0
-
-MouseArea {
- id: focusRoot
-
- signal searchAndLock
-
- onClicked: {
- camera.focus.focusPointMode = Camera.FocusPointCustom
- camera.focus.customFocusPoint = viewfinder.mapPointToSourceNormalized(Qt.point(mouse.x, mouse.y))
- focusRoot.searchAndLock()
- }
-
- Item {
- id: zones
- anchors.fill: parent
-
- property color focusAreaColor
- property real focusAreaScale: 1
-
- Repeater {
- model: camera.focus.focusZones
-
- Rectangle {
- border {
- width: Math.round(2 * root.contentScale)
- color: zones.focusAreaColor
- }
- radius: 8 * root.contentScale
- color: "transparent"
- scale: zones.focusAreaScale
-
- // Map from the relative, normalized frame coordinates
- property rect mappedRect: viewfinder.mapNormalizedRectToItem(area);
-
- Connections {
- target: viewfinder
- onContentRectChanged: {
- mappedRect = viewfinder.mapNormalizedRectToItem(area);
- }
- }
-
- x: mappedRect.x - (width - mappedRect.width) / 2
- y: mappedRect.y - (height - mappedRect.height) / 2
- width: Math.round(120 * root.contentScale)
- height: width
-
- Rectangle {
- anchors.fill: parent
- anchors.margins: -1.5
- color: "transparent"
- border.width: 1
- border.color: "black"
- radius: parent.radius + 2
- }
-
- Rectangle {
- anchors.fill: parent
- anchors.margins: 1 + parent.border.width / 2 + 0.5
- color: "transparent"
- border.width: 1
- border.color: "black"
- radius: parent.radius - 3
- }
- }
- }
-
- states: [
- State {
- name: "unlocked"; when: camera.lockStatus === Camera.Unlocked
- PropertyChanges { target: zones; opacity: 0; focusAreaColor: "red" }
- },
- State {
- name: "searching"; when: camera.lockStatus === Camera.Searching
- PropertyChanges { target: zones; opacity: 1; focusAreaColor: "white" }
- },
- State {
- name: "locked"; when: camera.lockStatus === Camera.Locked
- PropertyChanges { target: zones; opacity: 0; focusAreaColor: "green" }
- }
- ]
-
- transitions: [
- Transition {
- to: "searching"
- NumberAnimation { properties: "opacity"; duration: 60 }
- SequentialAnimation {
- NumberAnimation {
- target: zones; property: "focusAreaScale"; from: 1; to: 1.3; duration: 150
- }
- PauseAnimation { duration: 20 }
- NumberAnimation {
- target: zones; property: "focusAreaScale"; easing.period: 1; easing.amplitude: 1.4
- easing.type: Easing.OutElastic; from: 1.3; to: 1
- duration: 450
- }
- }
- },
- Transition {
- from: "searching"
- SequentialAnimation {
- PauseAnimation { duration: 1500 }
- NumberAnimation { properties: "opacity"; duration: 60 }
- }
- }
-
- ]
- }
-
-}
diff --git a/basicsuite/Camera/Picker.qml b/basicsuite/Camera/Picker.qml
deleted file mode 100644
index 364fed7..0000000
--- a/basicsuite/Camera/Picker.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-import QtQuick 2.0
-
-MouseArea {
- id: pickerRoot
-
- parent: root
- anchors.fill: parent
-
- onClicked: visible = false
- visible: false
-
- property alias contentWidth: back.width
- property real contentHeight: 350 * root.contentScale
- property alias model: list.model
- property variant value: null
- property string name: ""
- property alias currentIndex: list.currentIndex
- property alias count: list.count
-
- onValueChanged: {
- for (var i = 0; i < list.count; ++i) {
- var data = list.model[i];
- if (data === undefined)
- data = list.model.get(i);
- if (data.value === pickerRoot.value) {
- list.currentIndex = i;
- return;
- }
- }
- list.currentIndex = -1;
- }
-
- Rectangle {
- id: back
- color: "#77333333"
- width: 200 * root.contentScale
- height: Math.min(pickerRoot.contentHeight, list.contentHeight + list.anchors.margins * 2)
- anchors.centerIn: parent
- property int itemHeight: 25 * root.contentScale
- rotation: root.contentRotation
- Behavior on rotation { NumberAnimation { } }
-
- ListView {
- id: list
- anchors.fill: parent
- clip: true
- anchors.margins: 14 * root.contentScale
-
- currentIndex: -1
-
- onCurrentIndexChanged: {
- if (list.currentIndex >= 0) {
- var data = list.model[list.currentIndex];
- if (data === undefined)
- data = list.model.get(list.currentIndex);
- pickerRoot.value = data.value;
- pickerRoot.name = data.name;
- } else {
- pickerRoot.value = null
- pickerRoot.name = ""
- }
- }
-
- delegate: Item {
- height: 40 * root.contentScale
- width: parent.width
- Rectangle {
- anchors.fill: parent
- border.color: index == list.currentIndex ? "#44ffffff" : "transparent"
- color: index == list.currentIndex ? "#22ffffff" : "transparent"
- radius: 3 * root.contentScale
- Text {
- color: "white"
- text: (typeof modelData === 'undefined' ? name : modelData.name)
- anchors.centerIn: parent
- font.pixelSize: Math.round(20 * root.contentScale)
- }
- MouseArea {
- anchors.fill: parent
- onClicked: {
- list.currentIndex = index;
- }
- }
- }
- }
- }
- }
-}
-
diff --git a/basicsuite/Camera/RecordingTime.qml b/basicsuite/Camera/RecordingTime.qml
deleted file mode 100644
index 504d232..0000000
--- a/basicsuite/Camera/RecordingTime.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-import QtQuick 2.0
-
-Rectangle {
- id: recRoot
- width: row.width + 14 * root.contentScale
- height: circle.height + 14 * root.contentScale
- color: "#77333333"
- radius: 5 * root.contentScale
- rotation: root.contentRotation
- Behavior on rotation { NumberAnimation { } }
-
- Row {
- id: row
- anchors.centerIn: parent
- spacing: 10 * root.contentScale
-
- Item {
- anchors.verticalCenter: timeText.verticalCenter
- width: 18 * root.contentScale
- height: width
-
- Rectangle {
- id: circle
- width: parent.width
- height: parent.height
- radius: width / 2
- color: "#fa334f"
-
- SequentialAnimation {
- loops: Animation.Infinite
- running: recRoot.visible
- PropertyAction { target: circle; property: "visible"; value: true }
- PauseAnimation { duration: 1000 }
- PropertyAction { target: circle; property: "visible"; value: false }
- PauseAnimation { duration: 1000 }
- }
- }
- }
-
- Text {
- id: timeText
- color: "white"
- font.pixelSize: 24 * root.contentScale
- text: formatTime(camera.videoRecorder.duration)
- }
- }
-
- function formatTime(time) {
- time = time / 1000
- var hours = Math.floor(time / 3600);
- time = time - hours * 3600;
- var minutes = Math.floor(time / 60);
- var seconds = Math.floor(time - minutes * 60);
-
- if (hours > 0)
- return formatTimeBlock(hours) + ":" + formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
- else
- return formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
-
- }
-
- function formatTimeBlock(time) {
- if (time === 0)
- return "00"
- if (time < 10)
- return "0" + time;
- else
- return time.toString();
- }
-}
diff --git a/basicsuite/Camera/Slider.qml b/basicsuite/Camera/Slider.qml
deleted file mode 100644
index 025d521..0000000
--- a/basicsuite/Camera/Slider.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-import QtQuick 2.0
-
-Item {
- id: slider
-
- height: handleBack.height
- // value is read/write.
- property real value: 0
- property real maximum: 1
- property real minimum: 0
- property int xMax: width - handle.width
- onXMaxChanged: updatePos()
- onMinimumChanged: updatePos()
- onValueChanged: if (!pressed) updatePos()
- property bool mutable: true
- property alias pressed : backgroundMouse.pressed
-
- signal valueChangedByHandle(int newValue)
-
- function updatePos() {
- if (maximum > minimum) {
- var pos = 0 + (value - minimum) * slider.xMax / (maximum - minimum);
- pos = Math.min(pos, width - handle.width - 0);
- pos = Math.max(pos, 0);
- handle.x = pos;
- } else {
- handle.x = 0;
- }
- }
-
- Rectangle {
- id: background
- width: slider.width
- anchors.verticalCenter: slider.verticalCenter
- height: 4 * root.contentScale
- color: "#666666"
-
- MouseArea {
- id: backgroundMouse
- anchors.fill: parent
- anchors.topMargin: -24 * root.contentScale
- anchors.bottomMargin: -24 * root.contentScale
- enabled: slider.mutable
- drag.target: handle
- drag.axis: Drag.XAxis
- drag.minimumX: 0
- drag.maximumX: slider.xMax
- onPressedChanged: {
- value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
- valueChangedByHandle(value);
- updatePos();
- }
- onPositionChanged: {
- value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
- valueChangedByHandle(value);
- }
- }
- }
-
- Rectangle {
- id: progress
- height: 8 * root.contentScale
- anchors.verticalCenter: background.verticalCenter
- anchors.left: background.left
- anchors.right: handle.right
- anchors.rightMargin: handle.width / 2
- visible: slider.enabled
- color: "#98c66c"
- }
-
- Rectangle {
- id: handleBack
- width: 40 * root.contentScale
- height: width
- radius: width / 2
- color: "#8898c66c"
- antialiasing: true
- anchors.centerIn: handle
- visible: handle.visible
- }
-
- Rectangle {
- id: handle
- width: 14 * root.contentScale
- height: width
- radius: width / 2
- antialiasing: true
- color: "#98c66c"
- anchors.verticalCenter: background.verticalCenter
- visible: slider.enabled
- }
-}
-
diff --git a/basicsuite/Camera/ZoomControl.qml b/basicsuite/Camera/ZoomControl.qml
deleted file mode 100644
index 493defe..0000000
--- a/basicsuite/Camera/ZoomControl.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-import QtQuick 2.0
-
-Column {
- width: 400 * root.contentScale
- spacing: 20 * root.contentScale
- visible: maximumZoom > 1
-
- property alias maximumZoom: zoomSlider.maximum
- property alias requestedZoom: zoomSlider.value
- property real actualZoom: 1
-
- Rectangle {
- anchors.horizontalCenter: zoomSlider.horizontalCenter
- width: zoomText.width + 10 * root.contentScale
- height: zoomText.height + 10 * root.contentScale
- color: "#77333333"
- radius: 5 * root.contentScale
- rotation: root.contentRotation
- Behavior on rotation { NumberAnimation { } }
-
- Text {
- id: zoomText
- anchors.centerIn: parent
- font.pixelSize: Math.round(24 * root.contentScale)
- color: "white"
- font.bold: true
- text: (Math.round(actualZoom * 100) / 100) + "x"
- }
- }
-
- Slider {
- id: zoomSlider
- width: parent.width
- rotation: root.contentRotation === -90 ? 180 : (root.contentRotation === 90 ? 0 : root.contentRotation)
-
- minimum: 1
- maximum: 1
- value: 1
- }
-}
diff --git a/basicsuite/Camera/camerautils/camerautils.cpp b/basicsuite/Camera/camerautils/camerautils.cpp
deleted file mode 100644
index 608bfaa..0000000
--- a/basicsuite/Camera/camerautils/camerautils.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-#include "camerautils.h"
-
-#include <QCamera>
-#include <QCameraImageCapture>
-#include <QCameraImageProcessing>
-#include <QCameraExposure>
-#include <QCameraFocus>
-#include <QMediaRecorder>
-
-static QList<CameraSettingsValue*> g_commonResolutions;
-static QList<CameraSettingsValue*> g_commonVideoResolutions;
-static QList<CameraSettingsValue*> g_whiteBalanceModes;
-static QList<CameraSettingsValue*> g_sceneModes;
-static QList<CameraSettingsValue*> g_flashModes;
-static QList<CameraSettingsValue*> g_focusModes;
-
-QDebug operator<<(QDebug dbg, const CameraSettingsValue &r) {
- dbg.nospace() << "CameraSettingsValue(" << r.name() << ", " << r.value() << ')';
- return dbg.space();
-}
-
-CameraUtils::CameraUtils(QObject *parent)
- : QObject(parent)
- , m_camera(0)
-{
- if (g_commonResolutions.isEmpty()) {
- g_commonResolutions << new CameraSettingsValue(QStringLiteral("QVGA"), QSize(320, 240))
- << new CameraSettingsValue(QStringLiteral("0.3M"), QSize(640, 480))
- << new CameraSettingsValue(QStringLiteral("0.8M"), QSize(1024, 768))
- << new CameraSettingsValue(QStringLiteral("1.2M"), QSize(1280, 960))
- << new CameraSettingsValue(QStringLiteral("2M"), QSize(1600, 1200))
- << new CameraSettingsValue(QStringLiteral("5M"), QSize(2560, 1920))
- << new CameraSettingsValue(QStringLiteral("8M"), QSize(3264, 2448));
-
- g_commonVideoResolutions << new CameraSettingsValue(QStringLiteral("1080p (16:9)"), QSize(1920, 1080))
- << new CameraSettingsValue(QStringLiteral("1080p (16:9)"), QSize(1920, 1088))
- << new CameraSettingsValue(QStringLiteral("1080p (4:3)"), QSize(1440, 1080))
- << new CameraSettingsValue(QStringLiteral("1080p (4:3)"), QSize(1440, 1088))
- << new CameraSettingsValue(QStringLiteral("720p (16:9)"), QSize(1280, 720))
- << new CameraSettingsValue(QStringLiteral("720p (4:3)"), QSize(960, 720))
- << new CameraSettingsValue(QStringLiteral("480p (16:9)"), QSize(720, 480))
- << new CameraSettingsValue(QStringLiteral("480p (4:3)"), QSize(640, 480))
- << new CameraSettingsValue(QStringLiteral("QVGA"), QSize(320, 240));
-
- g_whiteBalanceModes << new CameraSettingsValue(QStringLiteral("Auto"), QCameraImageProcessing::WhiteBalanceAuto)
- << new CameraSettingsValue(QStringLiteral("Manual"), QCameraImageProcessing::WhiteBalanceManual)
- << new CameraSettingsValue(QStringLiteral("Sunlight"), QCameraImageProcessing::WhiteBalanceSunlight)
- << new CameraSettingsValue(QStringLiteral("Cloudy"), QCameraImageProcessing::WhiteBalanceCloudy)
- << new CameraSettingsValue(QStringLiteral("Shade"), QCameraImageProcessing::WhiteBalanceShade)
- << new CameraSettingsValue(QStringLiteral("Tungsten"), QCameraImageProcessing::WhiteBalanceTungsten)
- << new CameraSettingsValue(QStringLiteral("Fluorescent"), QCameraImageProcessing::WhiteBalanceFluorescent)
- << new CameraSettingsValue(QStringLiteral("Flash"), QCameraImageProcessing::WhiteBalanceFlash)
- << new CameraSettingsValue(QStringLiteral("Sunset"), QCameraImageProcessing::WhiteBalanceSunset);
-
- g_sceneModes << new CameraSettingsValue(QStringLiteral("Auto"), QCameraExposure::ExposureAuto)
- << new CameraSettingsValue(QStringLiteral("Manual"), QCameraExposure::ExposureManual)
- << new CameraSettingsValue(QStringLiteral("Portrait"), QCameraExposure::ExposurePortrait)
- << new CameraSettingsValue(QStringLiteral("Night"), QCameraExposure::ExposureNight)
- << new CameraSettingsValue(QStringLiteral("Backlight"), QCameraExposure::ExposureBacklight)
- << new CameraSettingsValue(QStringLiteral("Spotlight"), QCameraExposure::ExposureSpotlight)
- << new CameraSettingsValue(QStringLiteral("Sports"), QCameraExposure::ExposureSports)
- << new CameraSettingsValue(QStringLiteral("Snow"), QCameraExposure::ExposureSnow)
- << new CameraSettingsValue(QStringLiteral("Beach"), QCameraExposure::ExposureBeach)
- << new CameraSettingsValue(QStringLiteral("Large Aperture"), QCameraExposure::ExposureLargeAperture)
- << new CameraSettingsValue(QStringLiteral("Small Aperture"), QCameraExposure::ExposureSmallAperture);
-
- g_flashModes << new CameraSettingsValue(QStringLiteral("Auto"), QCameraExposure::FlashAuto)
- << new CameraSettingsValue(QStringLiteral("Off"), QCameraExposure::FlashOff)
- << new CameraSettingsValue(QStringLiteral("On"), QCameraExposure::FlashOn)
- << new CameraSettingsValue(QStringLiteral("Red-Eye"), QCameraExposure::FlashRedEyeReduction)
- << new CameraSettingsValue(QStringLiteral("Torch"), QCameraExposure::FlashVideoLight);
-
- g_focusModes << new CameraSettingsValue(QStringLiteral("Auto"), QCameraFocus::AutoFocus)
- << new CameraSettingsValue(QStringLiteral("Continuous"), QCameraFocus::ContinuousFocus)
- << new CameraSettingsValue(QStringLiteral("Hyperfocal"), QCameraFocus::HyperfocalFocus)
- << new CameraSettingsValue(QStringLiteral("Infinity"), QCameraFocus::InfinityFocus)
- << new CameraSettingsValue(QStringLiteral("Macro"), QCameraFocus::MacroFocus)
- << new CameraSettingsValue(QStringLiteral("Off"), QCameraFocus::ManualFocus);
- }
-
-}
-
-CameraUtils::~CameraUtils()
-{
-}
-
-void CameraUtils::init()
-{
- m_camera = new QCamera;
- connect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SLOT(onCameraStatusChanged()));
- connect(m_camera, SIGNAL(error(QCamera::Error)), this, SLOT(onError()));
- m_camera->load();
-}
-
-void CameraUtils::setCamera(QObject *obj)
-{
- QObject *mediaObject = qvariant_cast<QObject*>(obj->property("mediaObject"));
- if (!mediaObject)
- return;
-
- m_camera = qobject_cast<QCamera*>(mediaObject);
- if (!m_camera)
- return;
-
- if (m_camera->status() >= QCamera::LoadedStatus)
- onCameraStatusChanged();
- else
- connect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SLOT(onCameraStatusChanged()));
-}
-
-void CameraUtils::onError()
-{
- if (m_camera && m_camera->status() == QCamera::UnavailableStatus) {
- delete m_camera;
- m_camera = 0;
-
- emit done();
- }
-}
-
-void CameraUtils::onCameraStatusChanged()
-{
- if (!m_camera || m_camera->status() < QCamera::LoadedStatus)
- return;
-
- disconnect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SLOT(onCameraStatusChanged()));
-
- QCameraImageCapture *imageCapture = new QCameraImageCapture(m_camera);
- QCameraImageProcessing *imageProc = m_camera->imageProcessing();
- QCameraExposure *exposure = m_camera->exposure();
- QCameraFocus *focus = m_camera->focus();
- QMediaRecorder rec(m_camera);
-
- // Supported image resolutions
- QList<QSize> resolutions = imageCapture->supportedResolutions();
- for (int i = resolutions.size() - 1; i >= 0; --i) {
- QSize reso = resolutions.at(i);
- int mp = reso.width() * reso.height();
- CameraSettingsValue *r = new CameraSettingsValue(QString::number(mp / double(1000000), 'f', 1) + QLatin1String("M"), reso);
- m_supportedResolutions.append(r);
- }
-
- // Supported video resolutions
- QList<QSize> suppRes = rec.supportedResolutions();
- for (int i = 0; i < g_commonVideoResolutions.size(); ++i) {
- CameraSettingsValue *r = g_commonVideoResolutions.at(i);
- if (suppRes.contains(r->value().toSize()))
- m_supportedVideoResolutions.append(r);
- }
-
-
- // Supported white balance modes
- for (int i = 0; i < g_whiteBalanceModes.size(); ++i) {
- CameraSettingsValue *m = g_whiteBalanceModes.at(i);
- if (imageProc->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceMode(m->value().toInt())))
- m_supportedWhiteBalanceModes.append(m);
- }
-
- // Supported scene modes
- for (int i = 0; i < g_sceneModes.size(); ++i) {
- CameraSettingsValue *sm = g_sceneModes.at(i);
- if (exposure->isExposureModeSupported(QCameraExposure::ExposureMode(sm->value().toInt())))
- m_supportedSceneModes.append(sm);
- }
-
- // Supported flash modes
- for (int i = 0; i < g_flashModes.size(); ++i) {
- CameraSettingsValue *sm = g_flashModes.at(i);
- if (exposure->isFlashModeSupported(QCameraExposure::FlashModes(sm->value().toInt())))
- m_supportedFlashModes.append(sm);
- }
-
- // Supported focus modes
- for (int i = 0; i < g_focusModes.size(); ++i) {
- CameraSettingsValue *sm = g_focusModes.at(i);
- if (focus->isFocusModeSupported(QCameraFocus::FocusModes(sm->value().toInt())))
- m_supportedFocusModes.append(sm);
- }
-
- delete imageCapture;
-
- emit supportedCaptureResolutionsChanged();
- emit supportedVideoResolutionsChanged();
- emit supportedWhiteBalanceModesChanged();
- emit supportedSceneModesChanged();
- emit supportedFlashModesChanged();
-}
-
-
diff --git a/basicsuite/Camera/camerautils/camerautils.h b/basicsuite/Camera/camerautils/camerautils.h
deleted file mode 100644
index 562b675..0000000
--- a/basicsuite/Camera/camerautils/camerautils.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef CAMERAUTILS_H
-#define CAMERAUTILS_H
-
-#include <QObject>
-#include <QVariant>
-
-class QCamera;
-
-class CameraSettingsValue : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
- Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged)
-
-public:
- CameraSettingsValue(const QString &n, const QVariant &v)
- : QObject()
- , m_name(n)
- , m_value(v)
- { }
-
- QString name() const { return m_name; }
- void setName(const QString &n) { m_name = n; emit nameChanged(); }
-
- QVariant value() const { return m_value; }
- void setValue(const QVariant &v) { m_value = v; emit valueChanged(); }
-
-Q_SIGNALS:
- void nameChanged();
- void valueChanged();
-
-private:
- QString m_name;
- QVariant m_value;
-};
-
-QDebug operator<<(QDebug, const CameraSettingsValue &);
-
-class CameraUtils : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QList<QObject*> supportedCaptureResolutions READ supportedCaptureResolutions NOTIFY supportedCaptureResolutionsChanged)
- Q_PROPERTY(QList<QObject*> supportedWhiteBalanceModes READ supportedWhiteBalanceModes NOTIFY supportedWhiteBalanceModesChanged)
- Q_PROPERTY(QList<QObject*> supportedSceneModes READ supportedSceneModes NOTIFY supportedSceneModesChanged)
- Q_PROPERTY(QList<QObject*> supportedFlashModes READ supportedFlashModes NOTIFY supportedFlashModesChanged)
- Q_PROPERTY(QList<QObject*> supportedFocusModes READ supportedFocusModes NOTIFY supportedFocusModesChanged)
- Q_PROPERTY(QList<QObject*> supportedVideoResolutions READ supportedVideoResolutions NOTIFY supportedVideoResolutionsChanged)
-public:
- explicit CameraUtils(QObject *parent = 0);
- ~CameraUtils();
-
- Q_INVOKABLE void init();
- Q_INVOKABLE void setCamera(QObject *cam);
-
- QList<QObject*> supportedCaptureResolutions() const { return m_supportedResolutions; }
- QList<QObject*> supportedVideoResolutions() const { return m_supportedVideoResolutions; }
- QList<QObject*> supportedWhiteBalanceModes() const { return m_supportedWhiteBalanceModes; }
- QList<QObject*> supportedSceneModes() const { return m_supportedSceneModes; }
- QList<QObject*> supportedFlashModes() const { return m_supportedFlashModes; }
- QList<QObject*> supportedFocusModes() const { return m_supportedFocusModes; }
-
-Q_SIGNALS:
- void supportedCaptureResolutionsChanged();
- void supportedWhiteBalanceModesChanged();
- void supportedSceneModesChanged();
- void supportedFlashModesChanged();
- void supportedFocusModesChanged();
- void supportedVideoResolutionsChanged();
-
- void done();
-
-private Q_SLOTS:
- void onCameraStatusChanged();
- void onError();
-
-private:
- QCamera *m_camera;
-
- QList<QObject*> m_supportedResolutions;
- QList<QObject*> m_supportedVideoResolutions;
- QList<QObject*> m_supportedWhiteBalanceModes;
- QList<QObject*> m_supportedSceneModes;
- QList<QObject*> m_supportedFlashModes;
- QList<QObject*> m_supportedFocusModes;
-};
-
-#endif // CAMERAUTILS_H
diff --git a/basicsuite/Camera/camerautils/camerautils.pro b/basicsuite/Camera/camerautils/camerautils.pro
deleted file mode 100644
index 938a0a9..0000000
--- a/basicsuite/Camera/camerautils/camerautils.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin
-QT += qml multimedia
-
-TARGET = camerautilsplugin
-
-SOURCES += plugin.cpp \
- camerautils.cpp
-
-HEADERS += camerautils.h
-
-pluginfiles.files += \
- qmldir \
-
-target.path += $$[QT_INSTALL_QML]/CameraUtils
-pluginfiles.path += $$[QT_INSTALL_QML]/CameraUtils
-
-INSTALLS += target pluginfiles
-
diff --git a/basicsuite/Camera/camerautils/plugin.cpp b/basicsuite/Camera/camerautils/plugin.cpp
deleted file mode 100644
index 2a8c3ea..0000000
--- a/basicsuite/Camera/camerautils/plugin.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQml/QQmlExtensionPlugin>
-#include <QtQml/qqml.h>
-#include <qdebug.h>
-
-#include "camerautils.h"
-
-class QExampleQmlPlugin : public QQmlExtensionPlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
-
-public:
- void registerTypes(const char *uri)
- {
- qmlRegisterType<CameraUtils>(uri, 1, 0, "CameraUtils");
- }
-};
-
-
-#include "plugin.moc"
diff --git a/basicsuite/Camera/description.txt b/basicsuite/Camera/description.txt
deleted file mode 100644
index 7e94e89..0000000
--- a/basicsuite/Camera/description.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This example demonstrates the use of the camera features of Qt Multimedia with Qt Quick.
-
-It can take pictures and record videos. Files are saved inside the 'DCIM' folder on the external storage.
-
-Camera parameters such as flash mode, scene mode or white balance can be changed. The availability of parameters depends on what the camera driver provides.
diff --git a/basicsuite/Camera/main.qml b/basicsuite/Camera/main.qml
deleted file mode 100644
index a1cc89c..0000000
--- a/basicsuite/Camera/main.qml
+++ /dev/null
@@ -1,223 +0,0 @@
-import QtQuick 2.0
-import QtMultimedia 5.0
-//import QtSensors 5.0
-import CameraUtils 1.0
-
-Rectangle {
- id: root
- color: "black"
-
- property real contentScale: root.width / 1280
- property int contentRotation: 0
-
- Text {
- anchors.centerIn: parent
- color: "white"
- font.pixelSize: 30
- text: "Camera service is not available..."
- visible: camera.cameraStatus === Camera.UnavailableStatus
- }
-
- CameraUtils {
- id: cameraUtils
- }
-
- Camera {
- id: camera
- property bool updateFocusPointMode: true
- property bool captureWhenLocked: false
-
- Component.onCompleted: cameraUtils.setCamera(camera)
-
- digitalZoom: controls.requestedZoom
- captureMode: Camera.CaptureStillImage
-
- onCaptureModeChanged: {
- if (camera.captureMode === Camera.CaptureVideo) {
- controls.focusMode = Camera.FocusContinuous;
- camera.unlock();
- } else {
- controls.focusMode = Camera.FocusAuto;
- }
- }
-
- onLockStatusChanged: {
- if (camera.lockStatus === Camera.Locked && captureWhenLocked) {
- camera.imageCapture.capture();
- captureWhenLocked = false;
- }
- }
-
- focus {
- onFocusModeChanged: {
- camera.unlock();
- if (camera.updateFocusPointMode)
- camera.focus.focusPointMode = Camera.FocusPointAuto
- }
- onCustomFocusPointChanged: {
- if (camera.focus.focusPointMode === Camera.FocusPointCustom
- && camera.focus.focusMode !== Camera.FocusAuto
- && camera.focus.focusMode !== Camera.FocusMacro) {
- camera.updateFocusPointMode = false;
- camera.focus.focusMode = Camera.FocusAuto
- controls.focusMode = Camera.FocusAuto
- camera.updateFocusPointMode = true;
- }
- }
- }
-
- onCameraStatusChanged: {
- if (cameraStatus === Camera.ActiveStatus) {
- controls.exposureMode = camera.exposure.exposureMode
- controls.exposureCompensation = camera.exposure.exposureCompensation
- controls.whiteBalanceMode = camera.imageProcessing.whiteBalanceMode
- controls.flashMode = Camera.FlashAuto
- if (camera.captureMode === Camera.CaptureStillImage)
- controls.focusMode = camera.focus.focusMode
- else
- camera.focus.focusMode = Camera.FocusContinuous
- }
- }
-
- imageCapture {
- onImageExposed: capturePreview.show()
- onImageCaptured: {
- camera.unlock();
- capturePreview.setPreview(preview);
- }
- onCaptureFailed: print(requestId + " " + message)
- }
-
- videoRecorder {
- // mediaContainer: "mp4"
- // audioCodec: "aac"
- // audioSampleRate: 48000
- // audioBitRate: 192000
- // audioChannels: 2
- // videoCodec: "h264"
- // resolution: Qt.size(960, 720)
- onResolutionChanged: {
- if (camera.videoRecorder.resolution == Qt.size(1920, 1080))
- camera.videoRecorder.videoBitRate = 20000000;
- else if (camera.videoRecorderresolution == Qt.size(1280, 720))
- camera.videoRecorder.videoBitRate = 10000000;
- else
- camera.videoRecorder.videoBitRate = 5000000;
- }
- }
-
- }
-
- VideoOutput {
- id: viewfinder
- source: camera
- anchors.fill: parent
- fillMode: VideoOutput.PreserveAspectFit
- }
-
- // OrientationSensor {
- // active: true
- // onReadingChanged: {
- // if (reading.orientation === OrientationReading.TopUp)
- // root.contentRotation = -90;
- // else if (reading.orientation === OrientationReading.RightUp)
- // root.contentRotation = 0;
- // else if (reading.orientation === OrientationReading.LeftUp)
- // root.contentRotation = 180;
- // else if (reading.orientation === OrientationReading.TopDown)
- // root.contentRotation = 90;
- // }
- // }
-
- // RotationSensor {
- // active: (camera.cameraStatus === Camera.ActiveStatus)
- // dataRate: 20
- // property real lastxvalue: 0
- // property real lastyvalue: 0
- // property real lastzvalue: 0
-
- // onActiveChanged: {
- // lastxvalue = 0
- // lastyvalue = 0
- // lastzvalue = 0
- // }
-
- // onReadingChanged: {
- // if (lastxvalue != 0 && camera.focus.focusMode === Camera.FocusContinuous && camera.lockStatus === Camera.Locked && camera.imageCapture.ready) {
- // if (Math.abs(reading.x - lastxvalue) > 3 || Math.abs(reading.y - lastyvalue) > 3 || Math.abs(reading.z - lastzvalue) > 3)
- // camera.unlock();
- // }
- // lastxvalue = reading.x;
- // lastyvalue = reading.y;
- // lastzvalue = reading.z;
- // }
- // }
-
- Controls {
- id: controls
- visible: camera.cameraStatus === Camera.ActiveStatus
-
- actualZoom: camera.digitalZoom
- maximumZoom: camera.maximumDigitalZoom
-
- onCameraModeChanged: camera.captureMode = controls.cameraMode
-
- onFlashModeChanged: if (visible) camera.flash.mode = controls.flashMode
- onFocusModeChanged: if (visible) camera.focus.focusMode = controls.focusMode
- onExposureModeChanged: if (visible) camera.exposure.exposureMode = controls.exposureMode
- onExposureCompensationChanged: if (visible) camera.exposure.exposureCompensation = controls.exposureCompensation
- onWhiteBalanceModeChanged: if (visible) camera.imageProcessing.whiteBalanceMode = controls.whiteBalanceMode
- onResolutionChanged: {
- if (controls.resolution != null) {
- if (camera.captureMode === Camera.CaptureStillImage)
- camera.imageCapture.resolution = controls.resolution;
- else
- camera.videoRecorder.resolution = controls.resolution;
- }
- }
-
- onSearchAndLock: {
- camera.searchAndLock();
- }
-
- captureReady: camera.imageCapture.ready
- onCapture: {
- if (camera.captureMode === Camera.CaptureVideo) {
- if (camera.videoRecorder.recorderState === CameraRecorder.RecordingState) {
- camera.videoRecorder.stop();
- } else {
- camera.videoRecorder.record();
- }
- } else {
- if ((camera.focus.focusMode === Camera.FocusAuto || camera.focus.focusMode === Camera.FocusMacro)
- && camera.focus.focusPointMode === Camera.FocusPointAuto
- && camera.lockStatus === Camera.Unlocked) {
- camera.captureWhenLocked = true;
- camera.searchAndLock();
- } else {
- camera.imageCapture.capture();
- }
- }
- }
- }
-
- // CameraControlButton {
- // anchors.left: parent.left
- // anchors.leftMargin: 30
- // anchors.bottom: parent.bottom
- // anchors.bottomMargin: 20
- // title: camera.cameraStatus === Camera.ActiveStatus ? "Stop" : "Start"
-
- // onClicked: {
- // if (camera.cameraStatus === Camera.ActiveStatus)
- // camera.cameraState = Camera.UnloadedState
- // else
- // camera.start();
- // }
- // }
-
- CapturePreview {
- id: capturePreview
- }
-
-}
diff --git a/basicsuite/Controls Layouts/description.txt b/basicsuite/Controls Layouts/description.txt
deleted file mode 100644
index 393f0dd..0000000
--- a/basicsuite/Controls Layouts/description.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-The "Controls Layout" demonstration aims to show some of the features available in the layout system of the Qt Quick Controls. The layout system in Qt Quick Controls adds GridLayout, RowLayout and ColumnLayout which interact with size-hints from individual controls, making it possible to create interfaces that adapt to various dimensions and still look good.
-
-The example has been adapted slightly to run inside this launcher, the original is available in the Qt Quick Controls repository.
diff --git a/basicsuite/Controls Layouts/main.qml b/basicsuite/Controls Layouts/main.qml
deleted file mode 100644
index b12b6c8..0000000
--- a/basicsuite/Controls Layouts/main.qml
+++ /dev/null
@@ -1,118 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Layouts 1.0
-
-Rectangle {
-
- gradient: Gradient {
- GradientStop { position: 0; color: "white" }
- GradientStop { position: 1; color: "lightgray" }
- }
-
- property int margin: 11
- width: 1280
- height: 720
-
- ColumnLayout {
- id: mainLayout
- anchors.fill: parent
- anchors.margins: margin
- GroupBox {
- id: rowBox
- title: "Row layout"
- Layout.fillWidth: true
-
- RowLayout {
- id: rowLayout
- anchors.fill: parent
- TextField {
- placeholderText: "This wants to grow horizontally"
- Layout.fillWidth: true
- }
- Button {
- text: "Button"
- }
- }
- }
-
- GroupBox {
- id: gridBox
- title: "Grid layout"
- Layout.fillWidth: true
-
- GridLayout {
- id: gridLayout
- rows: 3
- flow: GridLayout.TopToBottom
- anchors.fill: parent
-
- Label { text: "Line 1" }
- Label { text: "Line 2" }
- Label { text: "Line 3" }
-
- TextField { }
- TextField { }
- TextField { }
-
- TextArea {
- text: "This widget spans over three rows in the GridLayout.\n"
- + "All items in the GridLayout are implicitly positioned from top to bottom."
- Layout.rowSpan: 3
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
- }
- }
- TextArea {
- id: t3
- text: "This fills the whole cell"
- Layout.minimumHeight: 30
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
- }
-}
diff --git a/basicsuite/Controls Layouts/preview_l.jpg b/basicsuite/Controls Layouts/preview_l.jpg
deleted file mode 100644
index 03df43a..0000000
--- a/basicsuite/Controls Layouts/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/Controls Touch/content/AndroidDelegate.qml b/basicsuite/Controls Touch/content/AndroidDelegate.qml
deleted file mode 100644
index 36a439a..0000000
--- a/basicsuite/Controls Touch/content/AndroidDelegate.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-
-Item {
- id: root
- width: parent.width
- height: 88
-
- property alias text: textitem.text
- signal clicked
-
- Rectangle {
- anchors.fill: parent
- color: "#11ffffff"
- visible: mouse.pressed
- }
-
- Text {
- id: textitem
- color: "white"
- font.pixelSize: 32
- text: modelData
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- anchors.leftMargin: 30
- }
-
- Rectangle {
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.margins: 15
- height: 1
- color: "#424246"
- }
-
- Image {
- anchors.right: parent.right
- anchors.rightMargin: 20
- anchors.verticalCenter: parent.verticalCenter
- source: "../images/navigation_next_item.png"
- }
-
- MouseArea {
- id: mouse
- anchors.fill: parent
- onClicked: root.clicked()
-
- }
-}
diff --git a/basicsuite/Controls Touch/content/ButtonPage.qml b/basicsuite/Controls Touch/content/ButtonPage.qml
deleted file mode 100644
index f431a52..0000000
--- a/basicsuite/Controls Touch/content/ButtonPage.qml
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- Button {
- anchors.margins: 20
- text: "Press me"
- style: touchStyle
- }
-
- Button {
- anchors.margins: 20
- style: touchStyle
- text: "Press me too"
- }
-
- Button {
- anchors.margins: 20
- style: touchStyle
- text: "Dont press me"
- onClicked: if (stackView) stackView.pop()
- }
-
- }
-
- Component {
- id: touchStyle
- ButtonStyle {
- panel: Item {
- implicitHeight: 50
- implicitWidth: 320
- BorderImage {
- anchors.fill: parent
- antialiasing: true
- border.bottom: 8
- border.top: 8
- border.left: 8
- border.right: 8
- anchors.margins: control.pressed ? -4 : 0
- source: control.pressed ? "../images/button_pressed.png" : "../images/button_default.png"
- Text {
- text: control.text
- anchors.centerIn: parent
- color: "white"
- font.pixelSize: 23
- renderType: Text.NativeRendering
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/Controls Touch/content/ProgressBarPage.qml b/basicsuite/Controls Touch/content/ProgressBarPage.qml
deleted file mode 100644
index dc0f552..0000000
--- a/basicsuite/Controls Touch/content/ProgressBarPage.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- width: 400
- value: progress
- }
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- width: 400
- value: 1 - progress
- }
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- value: 1
- width: 400
- }
-
- }
-
- Component {
- id: touchStyle
- ProgressBarStyle {
- panel: Rectangle {
- implicitHeight: 15
- implicitWidth: 400
- color: "#444"
- opacity: 0.8
- Rectangle {
- antialiasing: true
- radius: 1
- color: "#468bb7"
- height: parent.height
- width: parent.width * control.value / control.maximumValue
- }
- }
- }
- }
-}
diff --git a/basicsuite/Controls Touch/content/SliderPage.qml b/basicsuite/Controls Touch/content/SliderPage.qml
deleted file mode 100644
index 8eb9190..0000000
--- a/basicsuite/Controls Touch/content/SliderPage.qml
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- Column {
- spacing: 12
- anchors.centerIn: parent
-
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 0
- }
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 0.5
- }
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 1.0
- }
-
- }
-
- Component {
- id: touchStyle
- SliderStyle {
- handle: Rectangle {
- width: 30
- height: 30
- radius: height
- antialiasing: true
- color: Qt.lighter("#468bb7", 1.2)
- }
-
- groove: Item {
- implicitHeight: 50
- implicitWidth: 400
- Rectangle {
- height: 8
- width: parent.width
- anchors.verticalCenter: parent.verticalCenter
- color: "#444"
- opacity: 0.8
- Rectangle {
- antialiasing: true
- radius: 1
- color: "#468bb7"
- height: parent.height
- width: parent.width * control.value / control.maximumValue
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/Controls Touch/content/TabBarPage.qml b/basicsuite/Controls Touch/content/TabBarPage.qml
deleted file mode 100644
index 7651a3c..0000000
--- a/basicsuite/Controls Touch/content/TabBarPage.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- TabView {
- anchors.fill: parent
- style: touchStyle
- Tab {
- title: "Buttons"
- ButtonPage{ visible: true }
- }
- Tab {
- title: "Sliders"
- SliderPage{ visible: true }
- }
- Tab {
- title: "Progress"
- ProgressBarPage{ visible: true }
- }
- }
-
- Component {
- id: touchStyle
- TabViewStyle {
- tabsAlignment: Qt.AlignVCenter
- tabOverlap: 0
- frame: Item { }
- tab: Item {
- implicitWidth: control.width/control.count
- implicitHeight: 50
- BorderImage {
- anchors.fill: parent
- border.bottom: 8
- border.top: 8
- source: styleData.selected ? "../images/tab_selected.png":"../images/tabs_standard.png"
- Text {
- anchors.centerIn: parent
- color: "white"
- text: styleData.title.toUpperCase()
- font.pixelSize: 16
- }
- Rectangle {
- visible: index > 0
- anchors.top: parent.top
- anchors.bottom: parent.bottom
- anchors.margins: 10
- width:1
- color: "#3a3a3a"
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/Controls Touch/content/TextInputPage.qml b/basicsuite/Controls Touch/content/TextInputPage.qml
deleted file mode 100644
index 605afef..0000000
--- a/basicsuite/Controls Touch/content/TextInputPage.qml
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- TextField {
- anchors.margins: 20
- text: "Text input"
- style: touchStyle
- }
-
- TextField {
- anchors.margins: 20
- text: "Readonly Text input"
- style: touchStyle
- readOnly: true
- }
- }
- Component {
- id: touchStyle
-
- TextFieldStyle {
- textColor: "white"
- font.pixelSize: 28
- background: Item {
- implicitHeight: 50
- implicitWidth: 320
- BorderImage {
- source: "../images/textinput.png"
- border.left: 8
- border.right: 8
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- }
- }
- }
- }
-}
diff --git a/basicsuite/Controls Touch/main.qml b/basicsuite/Controls Touch/main.qml
deleted file mode 100644
index e4d2562..0000000
--- a/basicsuite/Controls Touch/main.qml
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import "content"
-
-Item {
- width: 800
- height: 1280
-
- Rectangle {
- color: "#212126"
- anchors.fill: parent
- }
-
- // Implements back key navigation
- Keys.onReleased: {
- if (event.key === Qt.Key_Back) {
- if (stackView.depth > 1) {
- stackView.pop();
- event.accepted = true;
- } else { Qt.quit(); }
- }
- }
-
- BorderImage {
- id: toolbar
- border.bottom: 8
- source: "images/toolbar.png"
- width: parent.width
- height: 100
-
- Rectangle {
- id: backButton
- width: opacity ? 60 : 0
- anchors.left: parent.left
- anchors.leftMargin: 20
- opacity: stackView.depth > 1 ? 1 : 0
- anchors.verticalCenter: parent.verticalCenter
- antialiasing: true
- height: 60
- radius: 4
- color: backmouse.pressed ? "#222" : "transparent"
- Behavior on opacity { NumberAnimation{} }
- Image {
- anchors.verticalCenter: parent.verticalCenter
- source: "images/navigation_previous_item.png"
- }
- MouseArea {
- id: backmouse
- anchors.fill: parent
- anchors.margins: -10
- onClicked: stackView.pop()
- }
- }
-
- Text {
- font.pixelSize: 42
- Behavior on x { NumberAnimation{ easing.type: Easing.OutCubic} }
- x: backButton.x + backButton.width + 20
- anchors.verticalCenter: parent.verticalCenter
- color: "white"
- text: "Widget Gallery"
- }
- }
-
- ListModel {
- id: pageModel
- ListElement {
- title: "Buttons"
- page: "content/ButtonPage.qml"
- }
- ListElement {
- title: "Sliders"
- page: "content/SliderPage.qml"
- }
- ListElement {
- title: "ProgressBar"
- page: "content/ProgressBarPage.qml"
- }
- ListElement {
- title: "Tabs"
- page: "content/TabBarPage.qml"
- }
- ListElement {
- title: "TextInput"
- page: "content/TextInputPage.qml"
- }
- }
-
- StackView {
- id: stackView
- anchors.fill: parent
- anchors.topMargin: toolbar.height
-
- initialItem: Item {
- width: parent.width
- height: parent.height
- ListView {
- model: pageModel
- anchors.fill: parent
- delegate: AndroidDelegate {
- text: title
- onClicked: stackView.push(Qt.resolvedUrl(page))
- }
- }
- }
- }
-
-}
diff --git a/basicsuite/Graphical Effects/Checkers.qml b/basicsuite/Graphical Effects/Checkers.qml
deleted file mode 100644
index 9ebdcff..0000000
--- a/basicsuite/Graphical Effects/Checkers.qml
+++ /dev/null
@@ -1,28 +0,0 @@
-import QtQuick 2.0
-
-
-// The checkers background
-ShaderEffect {
-
- property real tileSize: 16
- property color color1: Qt.rgba(0.7, 0.7, 0.7, 1);
- property color color2: Qt.rgba(0.6, 0.6, 0.6, 1);
-
- property size _pixelSize: Qt.size(Math.PI * width / tileSize, Math.PI * height / tileSize);
-
- fragmentShader:
- "
- uniform lowp vec4 color1;
- uniform lowp vec4 color2;
- uniform lowp float qt_Opacity;
- uniform highp vec2 _pixelSize;
- varying highp vec2 qt_TexCoord0;
- void main() {
- highp vec2 tc = sign(sin(qt_TexCoord0 * _pixelSize));
- if (tc.x != tc.y)
- gl_FragColor = color1 * qt_Opacity;
- else
- gl_FragColor = color2 * qt_Opacity;
- }
- "
-}
diff --git a/basicsuite/Graphical Effects/description.txt b/basicsuite/Graphical Effects/description.txt
deleted file mode 100644
index 8623c2c..0000000
--- a/basicsuite/Graphical Effects/description.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This example shows the Qt Quick 2.0 ShaderEffect type and the QtGraphicalEffect module. Qt Quick 2.0 provides the ability to use inline GLSL in your Qt Quick applications to create stunning visual effects. However, as UIs typically reuse many of the same effects, the QtGraphicalEffects module provides a set of predefined, commonly used effects. This includes blur, drop-shadows, glow, blending, opacity maskes and more.
-
diff --git a/basicsuite/Graphical Effects/effect_BrightnessContrast.qml b/basicsuite/Graphical Effects/effect_BrightnessContrast.qml
deleted file mode 100644
index 97ccb48..0000000
--- a/basicsuite/Graphical Effects/effect_BrightnessContrast.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
-
- id: root
-
- property real inputX: 0.7;
- property real feedbackX: effect.brightness
- property string nameX: "Brightness"
-
- property real inputY: 0.8;
- property real feedbackY: effect.contrast
- property string nameY: "Contrast"
-
- Image {
- id: image
- source: "images/bug.jpg"
- anchors.centerIn: parent
- visible: false
- }
-
- BrightnessContrast {
- id: effect;
-
- source: image
- anchors.fill: source
-
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
-
- brightness: inputX * 2 - 1;
- contrast: inputY * 2 - 1;
- }
-
-}
diff --git a/basicsuite/Graphical Effects/effect_Colorize.qml b/basicsuite/Graphical Effects/effect_Colorize.qml
deleted file mode 100644
index 06c977e..0000000
--- a/basicsuite/Graphical Effects/effect_Colorize.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
- id: root
-
- property real inputX: 0.6;
- property real feedbackX: effect.hue
- property string nameX: "Hue"
-
- property real inputY: 0.7
- property real feedbackY: effect.saturation
- property string nameY: "Saturation"
-
- Image {
- id: image
- source: "images/bug.jpg"
- width: Math.min(root.width, root.height) * 0.8;
- height: width
- sourceSize: Qt.size(width, height);
- anchors.centerIn: parent
- }
-
- Colorize {
- id: effect;
-
- source: image
- anchors.fill: source
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
-
- hue: root.inputX * 2 - 1;
- saturation: root.inputY
- }
-}
diff --git a/basicsuite/Graphical Effects/effect_CustomDissolve.qml b/basicsuite/Graphical Effects/effect_CustomDissolve.qml
deleted file mode 100644
index bd843bd..0000000
--- a/basicsuite/Graphical Effects/effect_CustomDissolve.qml
+++ /dev/null
@@ -1,125 +0,0 @@
-import QtQuick 2.0
-
-Item {
-
-
- width: 700
- height: 600
- id: root
-
- property real inputX: 0.5;
- property real feedbackX: inputX
- property string nameX: "Dissolution"
-
- property real inputY: 0.5;
- property real feedbackY: effect.amplitude
- property string nameY: "Amplitude"
-
- Rectangle {
- id: sourceItem
- anchors.centerIn: parent
- width: text.width + 50
- height: text.height + 20
- gradient: Gradient {
- GradientStop { position: 0; color: "steelblue" }
- GradientStop { position: 1; color: "black" }
- }
- border.color: "lightsteelblue"
- border.width: 2
-
-//? color: "transparent"
-
- radius: 10
-
- layer.enabled: true
- layer.smooth: true
- layer.sourceRect: Qt.rect(-1, -1, width + 2, height + 2);
-
- visible: false
-
- Text {
- id: text
- font.pixelSize: root.height * 0.08
- anchors.centerIn: parent;
- text: "Code Less, Create More!"
- color: "lightsteelblue"
- style: Text.Raised
-
- }
- }
-
- ShaderEffect {
-
- id: effect
-
- anchors.fill: sourceItem;
-
- property variant source: sourceItem;
-
- property real t: (1 + tlength) * (1 - root.inputX) - tlength;
- property real tlength: 1.0
- property real amplitude: 2.0 * height * root.inputY;
-
- mesh: "40x4"
-
- vertexShader:
- "
- uniform highp mat4 qt_Matrix;
- uniform lowp float t;
- uniform lowp float tlength;
- uniform highp float amplitude;
-
- attribute highp vec4 qt_Vertex;
- attribute highp vec2 qt_MultiTexCoord0;
-
- varying highp vec2 vTexCoord;
- varying lowp float vOpacity;
-
- void main() {
- vTexCoord = qt_MultiTexCoord0;
-
- vec4 pos = qt_Vertex;
-
- lowp float tt = smoothstep(t, t+tlength, qt_MultiTexCoord0.x);
-
- vOpacity = 1.0 - tt;
-
- pos.y += (amplitude * (qt_MultiTexCoord0.y * 2.0 - 1.0) * (-2.0 * tt)
- + 3.0 * amplitude * (qt_MultiTexCoord0.y * 2.0 - 1.0)
- + amplitude * sin(0.0 + tt * 2.14152 * qt_MultiTexCoord0.x)
- + amplitude * sin(0.0 + tt * 7.4567)
- ) * tt;
-
- pos.x += amplitude * sin(6.0 + tt * 4.4567) * tt;
-
- gl_Position = qt_Matrix * pos;
- }
- "
- fragmentShader:
- "
- uniform sampler2D source;
-
- uniform lowp float t;
- uniform lowp float tlength;
- uniform lowp float qt_Opacity;
-
- varying highp vec2 vTexCoord;
- varying lowp float vOpacity;
-
- // Noise function from: http://stackoverflow.com/questions/4200224/random-noise-functions-for-glsl
- highp float rand(vec2 n) {
- return fract(sin(dot(n.xy, vec2(12.9898, 78.233))) * 43758.5453);
- }
-
- void main() {
- lowp vec4 tex = texture2D(source, vTexCoord);
- lowp float opacity = 1.0 - smoothstep(0.9, 1.0, vOpacity);
- lowp float particlify = smoothstep(1.0 - vOpacity, 1.0, rand(vTexCoord)) * vOpacity;
- gl_FragColor = tex * mix(vOpacity, particlify, opacity) * qt_Opacity;
- }
-
- "
-
- }
-
-}
diff --git a/basicsuite/Graphical Effects/effect_CustomWave.qml b/basicsuite/Graphical Effects/effect_CustomWave.qml
deleted file mode 100644
index 66e91be..0000000
--- a/basicsuite/Graphical Effects/effect_CustomWave.qml
+++ /dev/null
@@ -1,118 +0,0 @@
-import QtQuick 2.0
-
-Item {
- id: root
-
- property real inputX: 0.9;
- property real feedbackX: shader.zrot
- property string nameX: "Rotation"
-
- property real inputY: 0.7
- property real feedbackY: shader.amp
- property string nameY: "Amplitude"
-
-
- ShaderEffect {
- id: shader
- width: height
- height: parent.height
- anchors.centerIn: parent;
- scale: height > root.height * 0.8 ? root.height * 0.8 / height : 1;
-
- blending: true
-
- mesh: "50x50"
-
- property variant size: Qt.size(width, height);
-
- property variant source: Image { source: "images/bug.jpg" }
-
- property real amp: root.inputY * 0.1;
-
- property real xrot: 2 / 8 * Math.PI;
-
- property real zrot: -root.inputX * Math.PI * 2
-
- property real time: 0
- NumberAnimation on time {
- id: timeAnimation
- from: 0;
- to: Math.PI * 2;
- duration: 3457;
- loops: Animation.Infinite
- running: true;
- }
-
- vertexShader: "
- attribute highp vec4 qt_Vertex;
- attribute highp vec2 qt_MultiTexCoord0;
- uniform highp mat4 qt_Matrix;
- uniform highp float xrot;
- uniform highp float zrot;
- uniform highp vec2 size;
- uniform highp float time;
- uniform highp float amp;
- varying lowp vec2 v_TexCoord;
- varying lowp float v_light;
- void main() {
- highp float xcosa = cos(xrot);
- highp float xsina = sin(xrot);
-
- highp mat4 xrot = mat4(1, 0, 0, 0,
- 0, xcosa, xsina, 0,
- 0, -xsina, xcosa, 0,
- 0, 0, 0, 1);
-
- highp float zcosa = cos(zrot);
- highp float zsina = sin(zrot);
-
- highp mat4 zrot = mat4(zcosa, zsina, 0, 0,
- -zsina, zcosa, 0, 0,
- 0, 0, 1, 0,
- 0, 0, 0, 1);
-
- highp float near = 2.;
- highp float far = 6.;
- highp float fmn = far - near;
-
- highp mat4 proj = mat4(near, 0, 0, 0,
- 0, near, 0, 0,
- 0, 0, -(far + near) / fmn, -1.,
- 0, 0, -2. * far * near / fmn, 1);
-
- highp mat4 model = mat4(2, 0, 0, 0,
- 0, 2, 0, 0,
- 0, 0, 2, 0,
- 0, -.5, -4, 1);
-
- vec4 nLocPos = vec4(qt_Vertex.xy * 2.0 / size - 1.0, 0, 1);
- nLocPos.z = cos(nLocPos.x * 5. + time) * amp;
-
- vec4 pos = proj * model * xrot * zrot * nLocPos;
- pos = vec4(pos.xyx/pos.w, 1);
-
- gl_Position = qt_Matrix * vec4((pos.xy + 1.0) / 2.0 * size , 0, 1);
-
- v_TexCoord = qt_MultiTexCoord0;
-
-
- v_light = dot(normalize(vec3(-sin(nLocPos.x * 5.0 + time) * 5.0 * amp, 0, -1)), vec3(0, 0, -1));
- }
- "
-
- fragmentShader: "
- uniform lowp sampler2D source;
- uniform lowp float qt_Opacity;
- varying highp vec2 v_TexCoord;
- varying lowp float v_light;
- void main() {
- highp vec4 c = texture2D(source, v_TexCoord);
- gl_FragColor = (vec4(pow(v_light, 16.0)) * 0.3 + c) * qt_Opacity;
- }
- "
-
- }
-
-}
-
-
diff --git a/basicsuite/Graphical Effects/effect_Displacement.qml b/basicsuite/Graphical Effects/effect_Displacement.qml
deleted file mode 100644
index c25827c..0000000
--- a/basicsuite/Graphical Effects/effect_Displacement.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
-
- id: root
-
- property real inputX: 0.1;
-
- property real feedbackX: effect.displacement
-
- property string nameX: "Displacement"
-
- Image {
- id: image
- source: "images/bug.jpg"
- anchors.centerIn: parent
- visible: false
- }
-
- Image {
- id: displacementMap
- source: "images/glass_normal.png"
- smooth: true
- visible: false
- }
-
- Displace {
- id: effect;
-
- source: image
- displacementSource: displacementMap
- anchors.fill: source
-
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
-
- displacement: inputX
- }
-
-}
diff --git a/basicsuite/Graphical Effects/effect_DropShadow.qml b/basicsuite/Graphical Effects/effect_DropShadow.qml
deleted file mode 100644
index 125fe64..0000000
--- a/basicsuite/Graphical Effects/effect_DropShadow.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
-
- id: root
-
- property real inputX: 0.5;
- property real inputY: 0.2;
-
- property real feedbackX: effect.radius
- property real feedbackY: effect.spread
-
- property string nameX: "Radius"
- property string nameY: "Spread"
-
- Image {
- id: image
- source: "images/butterfly.png"
- anchors.centerIn: parent
- visible: false
- }
-
- DropShadow {
- id: effect;
-
- source: image
- anchors.fill: source
-
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
-
- samples: 4
-
- radius: root.inputX * 7
- spread: root.inputY;
-
- color: Qt.rgba(0, 0, 0, 0.4);
-
- verticalOffset: 30.5
- horizontalOffset: 30.5
- }
-
-}
diff --git a/basicsuite/Graphical Effects/effect_GaussianBlur.qml b/basicsuite/Graphical Effects/effect_GaussianBlur.qml
deleted file mode 100644
index f9a029c..0000000
--- a/basicsuite/Graphical Effects/effect_GaussianBlur.qml
+++ /dev/null
@@ -1,39 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
-
- id: root
-
- property real inputX: 0.5;
- property real inputY: 1
-
- property real feedbackX: effect.radius
- property real feedbackY: effect.deviation
-
- property string nameX: "Radius"
- property string nameY: "Deviation"
-
- Image {
- id: image
- source: "images/bug.jpg"
- width: Math.min(root.width, root.height) * 0.8;
- height: width
- sourceSize: Qt.size(width, height);
- anchors.centerIn: parent
- }
-
- GaussianBlur {
- id: effect;
-
- source: image
- anchors.fill: source
-
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
- samples: 4
-
- deviation: root.inputY * 20;
- radius: root.inputX * 7
- }
-
-}
diff --git a/basicsuite/Graphical Effects/effect_Glow.qml b/basicsuite/Graphical Effects/effect_Glow.qml
deleted file mode 100644
index dd7a078..0000000
--- a/basicsuite/Graphical Effects/effect_Glow.qml
+++ /dev/null
@@ -1,39 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
-
- id: root
-
- property real inputX: 0.5;
- property real inputY: 0.2;
-
- property real feedbackX: effect.radius
- property real feedbackY: effect.spread
-
- property string nameX: "Radius"
- property string nameY: "Spread"
-
- Image {
- id: image
- source: "images/butterfly.png"
- anchors.centerIn: parent
- visible: false
- }
-
- Glow {
- id: effect;
-
- source: image
- anchors.fill: source
-
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
-
- samples: 4
-
- radius: root.inputX * 7
- spread: root.inputY;
-
- color: Qt.rgba(1, 0, 1, 1);
- }
-}
diff --git a/basicsuite/Graphical Effects/effect_HueSaturation.qml b/basicsuite/Graphical Effects/effect_HueSaturation.qml
deleted file mode 100644
index 4e3846a..0000000
--- a/basicsuite/Graphical Effects/effect_HueSaturation.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
- id: root
-
- property real inputX: 0.6;
- property real feedbackX: effect.hue
- property string nameX: "Hue"
-
- property real inputY: 0.2
- property real feedbackY: effect.saturation
- property string nameY: "Saturation"
-
- Image {
- id: image
- source: "images/bug.jpg"
- width: Math.min(root.width, root.height) * 0.8;
- height: width
- sourceSize: Qt.size(width, height);
- anchors.centerIn: parent
- }
-
- HueSaturation {
- id: effect;
-
- source: image
- anchors.fill: source
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
-
- hue: root.inputX * 2 - 1;
- saturation: root.inputY * 2 - 1
- }
-}
diff --git a/basicsuite/Graphical Effects/effect_OpacityMask.qml b/basicsuite/Graphical Effects/effect_OpacityMask.qml
deleted file mode 100644
index e292ba4..0000000
--- a/basicsuite/Graphical Effects/effect_OpacityMask.qml
+++ /dev/null
@@ -1,30 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
-
- id: root
-
- Image {
- id: image
- source: "images/bug.jpg"
- anchors.centerIn: parent
- visible: false
- }
-
- Image {
- id: mask
- source: "images/butterfly.png"
- visible: false
- }
-
- OpacityMask {
- id: effect;
-
- source: image
- maskSource: mask
- anchors.fill: source
-
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
- }
-}
diff --git a/basicsuite/Graphical Effects/effect_ThresholdMask.qml b/basicsuite/Graphical Effects/effect_ThresholdMask.qml
deleted file mode 100644
index 24b73fc..0000000
--- a/basicsuite/Graphical Effects/effect_ThresholdMask.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-
-Item {
-
- id: root
-
- property real inputX: 0.5;
- property real inputY: 0.2;
-
- property real feedbackX: effect.threshold
- property real feedbackY: effect.spread
-
- property string nameX: "Threshold"
- property string nameY: "Spread"
-
- Image {
- id: image
- source: "images/bug.jpg"
- anchors.centerIn: parent
- visible: false
- }
-
- Image {
- id: mask
- source: "images/fog.png"
- visible: false
- }
-
- ThresholdMask {
- id: effect;
-
- source: image
- maskSource: mask;
- anchors.fill: source
-
- scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
-
- threshold: root.inputX
- spread: root.inputY
- }
-
-}
diff --git a/basicsuite/Graphical Effects/main.qml b/basicsuite/Graphical Effects/main.qml
deleted file mode 100644
index b4f148b..0000000
--- a/basicsuite/Graphical Effects/main.qml
+++ /dev/null
@@ -1,191 +0,0 @@
-import QtQuick 2.0
-
-Item {
- id: root
-
- width: 1280
- height: 720
-
- Checkers {
- id: checkers;
- anchors.fill: parent
- anchors.leftMargin: list.width
- tileSize: 32
- }
-
- Loader {
- id: loader
- anchors.fill: checkers;
- }
-
- Rectangle {
- id: listBackground
- anchors.left: parent.left
- anchors.right: checkers.left
- anchors.top: parent.top
- anchors.bottom: parent.bottom
- color: "black"
- }
-
- ListModel {
- id: listModel
- ListElement { name: "Brignthness / Contrast"; file: "effect_BrightnessContrast.qml" }
- ListElement { name: "Colorize"; file: "effect_Colorize.qml" }
- ListElement { name: "Displacement"; file: "effect_Displacement.qml" }
- ListElement { name: "Drop Shadow"; file: "effect_DropShadow.qml" }
- ListElement { name: "Gaussian Blur"; file: "effect_GaussianBlur.qml" }
- ListElement { name: "Glow"; file: "effect_Glow.qml" }
- ListElement { name: "Hue / Saturation"; file: "effect_HueSaturation.qml" }
- ListElement { name: "Opacity Mask"; file: "effect_OpacityMask.qml" }
- ListElement { name: "Threshold Mask"; file: "effect_ThresholdMask.qml" }
- ListElement { name: "Wave (custom)"; file: "effect_CustomWave.qml" }
- ListElement { name: "Dissolve (custom)"; file: "effect_CustomDissolve.qml" }
- }
-
- ListView
- {
- id: list
- anchors.top: parent.top
- anchors.left: parent.left
- width: parent.width / 4
- height: parent.height - width
-
- clip: true
- focus: true
-
- highlightMoveDuration: 0
-
- onCurrentItemChanged: {
- var entry = listModel.get(currentIndex);
- loader.source = entry.file;
- }
-
- model: listModel
-
- highlight: Rectangle {
- color: "steelblue"
- }
-
- delegate: Item {
- id: delegateRoot
-
- width: list.width
- height: root.height * 0.05
-
- Rectangle {
- width: parent.width
- height: 3
- anchors.bottom: parent.bottom
- gradient: Gradient {
- GradientStop { position: 0; color: "transparent" }
- GradientStop { position: 0.5; color: "lightgray" }
- GradientStop { position: 1; color: "transparent" }
- }
- }
-
- Text {
- color: "white"
- font.pixelSize: parent.height * 0.5
- anchors.verticalCenter: parent.verticalCenter
- anchors.verticalCenterOffset: -2
- x: parent.width * 0.1
- text: name
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: list.currentIndex = index;
- }
- }
- }
-
- Canvas {
- id: canvas
- anchors.fill: controller
- anchors.margins: 10
-
- property real padding: 20
-
- onPaint: {
- var ctx = canvas.getContext("2d");
-
- var w = canvas.width
- var h = canvas.height;
-
-
- ctx.fillStyle = "rgb(50, 50, 50)"
- ctx.beginPath();
- ctx.roundedRect(0, 0, w, h, w * 0.1, w * 0.1);
- ctx.fill();
-
- var margin = canvas.padding;
- var segmentSize = 4
- ctx.strokeStyle = "gray"
- ctx.beginPath();
- ctx.moveTo(margin, margin);
- ctx.lineTo(margin, h-margin);
- ctx.moveTo(margin, h - margin);
- ctx.lineTo(w-margin, h - margin);
-
- var segmentCount = 11
- for (var i = 0; i<segmentCount; ++i) {
- var offset = margin + i * (w - margin * 2) / (segmentCount - 1);
- ctx.moveTo(margin - segmentSize, offset);
- ctx.lineTo(margin + segmentSize, offset);
- ctx.moveTo(offset, h - margin - segmentSize);
- ctx.lineTo(offset, h - margin + segmentSize);
- }
-
- ctx.stroke();
- }
- }
-
- Text {
- id: labelX
- anchors.bottom: canvas.bottom
- x: canvas.width * 0.4
- anchors.bottomMargin: 2
- text: (loader.item != undefined && typeof loader.item.nameX != 'undefined' ? loader.item.nameX : "")
- + (loader.item != undefined && typeof loader.item.feedbackX != 'undefined' ? ": " + loader.item.feedbackX.toFixed(2) : "");
-
- color: "white"
- font.pixelSize: canvas.padding * 0.5
- }
-
- Text {
- id: labelY
-
- anchors.verticalCenter: canvas.verticalCenter
- anchors.verticalCenterOffset: canvas.height * 0.15
- anchors.left: canvas.left
- transformOrigin: Item.TopLeft
- rotation: -90
- text: (loader.item != undefined && typeof loader.item.nameY != 'undefined' ? loader.item.nameY : "")
- + (loader.item != undefined && typeof loader.item.feedbackY != 'undefined' ? ": " + loader.item.feedbackY.toFixed(2) : "");
- color: "white"
- font.pixelSize: canvas.padding * 0.5
- }
-
- MouseArea {
- id: controller
-
- anchors.top: list.bottom;
- anchors.left: parent.left
- anchors.right: checkers.left
- anchors.bottom: parent.bottom;
-
- onPositionChanged: {
- var effect = loader.item;
- function bound(val) { return Math.max(0, Math.min(1, val)); }
- if (effect != undefined) {
- if (typeof effect.inputX != 'undefined')
- effect.inputX = bound(mouseX / controller.width);
- if (typeof effect.inputY != 'undefined')
- effect.inputY = bound(1 - mouseY / controller.height);
- }
- }
-
- }
-
-
-}
diff --git a/basicsuite/Launcher Settings/BrightnessController.qml b/basicsuite/Launcher Settings/BrightnessController.qml
deleted file mode 100644
index 84eee8b..0000000
--- a/basicsuite/Launcher Settings/BrightnessController.qml
+++ /dev/null
@@ -1,9 +0,0 @@
-import QtDroid.Utils 1.0
-import QtQuick 2.0
-
-QtObject {
- function setBrightness(value)
- {
- DroidUtils.setDisplayBrightness(value)
- }
-}
diff --git a/basicsuite/Launcher Settings/NetworkController.qml b/basicsuite/Launcher Settings/NetworkController.qml
deleted file mode 100644
index 3ec36ac..0000000
--- a/basicsuite/Launcher Settings/NetworkController.qml
+++ /dev/null
@@ -1,21 +0,0 @@
-import QtDroid.Utils 1.0
-import QtQuick 2.0
-
-QtObject {
-
- function getIPAddress()
- {
- return DroidUtils.getIPAddress()
- }
-
- function getHostname()
- {
- return DroidUtils.getHostname()
- }
-
- function setHostname(value)
- {
- return DroidUtils.setHostname(value)
- }
-
-}
diff --git a/basicsuite/Launcher Settings/PoweroffAction.qml b/basicsuite/Launcher Settings/PoweroffAction.qml
deleted file mode 100644
index fd0e215..0000000
--- a/basicsuite/Launcher Settings/PoweroffAction.qml
+++ /dev/null
@@ -1,8 +0,0 @@
-import QtQuick.Controls 1.0
-import QtDroid.Utils 1.0
-
-Action
-{
- text: "Power Off!"
- onTriggered: DroidUtils.powerOffSystem()();
-}
diff --git a/basicsuite/Launcher Settings/RebootAction.qml b/basicsuite/Launcher Settings/RebootAction.qml
deleted file mode 100644
index cdf84a5..0000000
--- a/basicsuite/Launcher Settings/RebootAction.qml
+++ /dev/null
@@ -1,8 +0,0 @@
-import QtQuick.Controls 1.0
-import QtDroid.Utils 1.0
-
-Action
-{
- text: "Reboot"
- onTriggered: DroidUtils.rebootSystem();
-}
diff --git a/basicsuite/Launcher Settings/main.qml b/basicsuite/Launcher Settings/main.qml
deleted file mode 100644
index 140aebb..0000000
--- a/basicsuite/Launcher Settings/main.qml
+++ /dev/null
@@ -1,152 +0,0 @@
-import QtQuick 2.0
-
-import QtQuick.Controls 1.0
-import QtQuick.Layouts 1.0
-
-Rectangle {
- id: root;
-
- gradient: Gradient {
- GradientStop { position: 0; color: "white" }
- GradientStop { position: 1; color: "lightgray" }
- }
-
- width: 1280
- height: 800
-
- property int margin: 10
-
- Loader {
- id: rebootActionLoader
- source: "RebootAction.qml"
- }
-
- Loader {
- id: poweroffActionLoader
- source: "PoweroffAction.qml"
- }
-
- Loader {
- id: brightnessControllerLoader
- source: "BrightnessController.qml"
- }
-
- Loader {
- id: networkControllerLoader
- source: "NetworkController.qml"
- }
-
- Flickable {
- anchors.top: parent.top
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.margins: margin
- anchors.topMargin: 50
- height: parent.height
- width: mainLayout.width
-
- contentHeight: mainLayout.height
- contentWidth: mainLayout.width
-
- ColumnLayout {
- id: mainLayout
-
- height: implicitHeight;
- width: Math.min(root.width, root.height);
-
- GroupBox {
- id: powerOptions
- title: "Power Options"
-
- Layout.fillWidth: true
-
- RowLayout {
- id: powerButtonColumn
-
- anchors.fill: parent
-
- Button {
- text: "Shut Down"
- Layout.fillWidth: true
- action: poweroffActionLoader.item;
- enabled: action != undefined
- }
-
- Button {
- text: "Reboot"
- Layout.fillWidth: true
- action: rebootActionLoader.item;
- enabled: action != undefined
- }
- }
-
- }
-
- GroupBox {
- id: displayOptions
- title: "Display Options"
-
- Layout.fillWidth: true
-
- GridLayout {
- id: displayGrid
-
- rows: 2
- flow: GridLayout.TopToBottom
- anchors.fill: parent
-
- Label { text: "Brightness: "; }
- Label { text: "Display FPS: "; }
-
- Slider {
- maximumValue: 255
- minimumValue: 1
- value: 255
- Layout.fillWidth: true
- onValueChanged: {
- if (brightnessControllerLoader.item != undefined) {
- brightnessControllerLoader.item.setBrightness(value);
- }
- }
- }
- CheckBox {
- onCheckedChanged: engine.fpsEnabled = checked;
- }
- }
- }
-
- GroupBox {
- id: networkOptions
- title: "Network Options"
-
- Layout.fillWidth: true
-
- GridLayout {
- id: networkGrid
-
- rows: 2
- columns: 3
- flow: GridLayout.TopToBottom
- anchors.fill: parent
-
- Label { text: "Hostname: "; }
- Label { text: "IP address: "; }
-
- TextField {
- id: hostname
- text: if (networkControllerLoader.item != undefined) { networkControllerLoader.item.getHostname(); }
- Layout.fillWidth: true
- }
-
- Label { text: if (networkControllerLoader.item != undefined) { networkControllerLoader.item.getIPAddress(); } }
-
- Button {
- text: "Change hostname"
- onClicked: networkControllerLoader.item.setHostname(hostname.text);
- enabled: networkControllerLoader.item != undefined
- }
-
- }
- }
- }
- }
-}
diff --git a/basicsuite/Launcher Settings/preview_l.jpg b/basicsuite/Launcher Settings/preview_l.jpg
deleted file mode 100644
index 118edc4..0000000
--- a/basicsuite/Launcher Settings/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/Media Player/ControlBar.qml b/basicsuite/Media Player/ControlBar.qml
deleted file mode 100755
index 1778728..0000000
--- a/basicsuite/Media Player/ControlBar.qml
+++ /dev/null
@@ -1,285 +0,0 @@
-
-import QtQuick 2.0
-import QtMultimedia 5.0
-
-Rectangle {
- id: controlBar
- height: 150
- color: "#88333333"
-
- property MediaPlayer mediaPlayer: null
- property bool isMouseAbove: false
-
- signal openFile()
- signal openCamera()
- signal openURL()
- signal openFX()
- signal toggleFullScreen()
-
- state: "VISIBLE"
-
- onMediaPlayerChanged: {
- if (mediaPlayer === null)
- return;
- volumeControl.volume = mediaPlayer.volume;
- }
-
-// MouseArea {
-// anchors.fill: controlBar
-// hoverEnabled: true
-
-// onEntered: controlBar.isMouseAbove = true;
-// onExited: controlBar.isMouseAbove = false;
-// }
-
- function statusString(stat)
- {
- if (stat === MediaPlayer.NoMedia)
- return "No Media";
- else if (stat === MediaPlayer.Loading)
- return "Loading";
- else if (stat === MediaPlayer.Loaded)
- return "Loaded";
- else if (stat === MediaPlayer.Buffering)
- return "Buffering";
- else if (stat === MediaPlayer.Stalled)
- return "Stalled";
- else if (stat === MediaPlayer.Buffered)
- return "Buffered";
- else if (stat === MediaPlayer.EndOfMedia)
- return "EndOfMedia";
- else if (stat === MediaPlayer.InvalidMedia)
- return "InvalidMedia";
- else if (stat === MediaPlayer.UnknownStatus)
- return "UnknownStatus";
- }
-
-// Text {
-// id: statusText
-// anchors.left: parent.left
-// anchors.bottom: parent.top
-// anchors.bottomMargin: 12
-// font.pixelSize: 18
-// color: "white"
-// text: "Status: " + statusString(mediaPlayer.status)
-// }
-
-// Text {
-// anchors.verticalCenter: statusText.verticalCenter
-// anchors.left: statusText.right
-// anchors.leftMargin: 16
-// font.pixelSize: 18
-// color: "white"
-// text: Math.round(mediaPlayer.bufferProgress * 100.0) + "%"
-// }
-
- VolumeControl {
- id: volumeControl
- anchors.verticalCenter: playbackControl.verticalCenter
- anchors.left: controlBar.left
- anchors.leftMargin: 15
- onVolumeChanged: mediaPlayer.volume = volume
-
- Component.onCompleted: {
- volumeControl.volume = 0.5;
- }
-
- Connections {
- target: mediaPlayer
- onVolumeChanged: volumeControl.volume = mediaPlayer.volume
- }
- }
-
- //Playback Controls
- PlaybackControl {
- id: playbackControl
- anchors.horizontalCenter: controlBar.horizontalCenter
- anchors.bottom: seekControl.top
- anchors.bottomMargin: 20
-
- onPlayButtonPressed: {
- if (isPlaying) {
- mediaPlayer.pause();
- } else {
- mediaPlayer.play();
- }
- }
-
- onReverseButtonPressed: {
- if (mediaPlayer.seekable) {
- //Subtract 10 seconds
- mediaPlayer.seek(normalizeSeek(Math.round(-mediaPlayer.duration * 0.1)));
- }
- }
-
- onForwardButtonPressed: {
- if (mediaPlayer.seekable) {
- //Add 10 seconds
- mediaPlayer.seek(normalizeSeek(Math.round(mediaPlayer.duration * 0.1)));
- }
- }
-
- onStopButtonPressed: mediaPlayer.stop();
- }
-
- //Toolbar Controls
- Row {
- id: toolbarMenuButtons
- anchors.right: controlBar.right
- anchors.rightMargin: 15
- anchors.verticalCenter: playbackControl.verticalCenter
- spacing: 22
-
- ImageButton {
- id: fxButton
- imageSource: "images/FXButton.png"
- checkable: true
- checked: effectSelectionPanel.visible
- onClicked: {
- openFX();
- }
- }
- ImageButton {
- id: fileButton
- imageSource: "images/FileButton.png"
- onClicked: {
- openFile();
- }
- }
- ImageButton {
- id: urlButton
- imageSource: "images/UrlButton.png"
- onClicked: {
- openURL();
- }
- }
- }
-
-// ImageButton {
-// id: fullscreenButton
-// imageSource: "images/FullscreenButton.png"
-// onClicked: {
-// //Toggle fullscreen
-// toggleFullScreen();
-// }
-// checkable: true
-// checked: applicationWindow.isFullScreen
-// anchors.right: controlBar.right
-// anchors.top: controlBar.top
-// anchors.rightMargin: 15
-// anchors.topMargin: 15
-// }
-
- //Seek controls
- SeekControl {
- id: seekControl
- anchors.bottom: controlBar.bottom
- anchors.bottomMargin: 10
- anchors.right: controlBar.right
- anchors.left: controlBar.left
- anchors.rightMargin: 15
- anchors.leftMargin: 15
- enabled: playbackControl.isPlaybackEnabled
-
- duration: mediaPlayer.duration
-
- onSeekValueChanged: {
- mediaPlayer.seek(newPosition);
- position = mediaPlayer.position;
- }
-
- Component.onCompleted: {
- seekable = mediaPlayer.seekable;
- }
- }
-
- Connections {
- target: mediaPlayer
- onPositionChanged: {
- if (!seekControl.pressed) seekControl.position = mediaPlayer.position;
- }
- onStatusChanged: {
- if ((mediaPlayer.status == MediaPlayer.Loaded) || (mediaPlayer.status == MediaPlayer.Buffered) || mediaPlayer.status === MediaPlayer.Buffering || mediaPlayer.status === MediaPlayer.EndOfMedia)
- playbackControl.isPlaybackEnabled = true;
- else
- playbackControl.isPlaybackEnabled = false;
- }
- onPlaybackStateChanged: {
- if (mediaPlayer.playbackState === MediaPlayer.PlayingState) {
- playbackControl.isPlaying = true;
- applicationWindow.resetTimer();
- } else {
- show();
- playbackControl.isPlaying = false;
- }
- }
-
- onSeekableChanged: {
- // console.log("seekableChanged: " + mediaPlayer.seekable);
- seekControl.seekable = mediaPlayer.seekable;
- }
- }
-
- function hide() {
- controlBar.state = "HIDDEN";
- }
-
- function show() {
- controlBar.state = "VISIBLE";
- }
-
- //Usage: give the value you wish to modify position,
- //returns a value between 0 and duration
- function normalizeSeek(value) {
- var newPosition = mediaPlayer.position + value;
- if (newPosition < 0)
- newPosition = 0;
- else if (newPosition > mediaPlayer.duration)
- newPosition = mediaPlayer.duration;
- return newPosition;
- }
-
- states: [
- State {
- name: "HIDDEN"
- PropertyChanges {
- target: controlBar
- opacity: 0.0
- }
- },
- State {
- name: "VISIBLE"
- PropertyChanges {
- target: controlBar
- opacity: 0.95
- }
- }
- ]
-
- transitions: [
- Transition {
- from: "HIDDEN"
- to: "VISIBLE"
- NumberAnimation {
- id: showAnimation
- target: controlBar
- properties: "opacity"
- from: 0.0
- to: 1.0
- duration: 200
- }
- },
- Transition {
- from: "VISIBLE"
- to: "HIDDEN"
- NumberAnimation {
- id: hideAnimation
- target: controlBar
- properties: "opacity"
- from: 0.95
- to: 0.0
- duration: 200
- }
- }
- ]
-}
diff --git a/basicsuite/Media Player/ImageButton.qml b/basicsuite/Media Player/ImageButton.qml
deleted file mode 100755
index 274efd5..0000000
--- a/basicsuite/Media Player/ImageButton.qml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-import QtQuick 2.0
-
-Item {
- id: root
-
- property alias enabled: mouseArea.enabled
- property alias imageSource: image.source
-
- property bool checkable: false
- property bool checked: false
- property alias hover: mouseArea.containsMouse
- property alias pressed: mouseArea.pressed
-
- opacity: enabled ? 1.0 : 0.3
- signal clicked
-
- width: image.width
- height: image.height
-
- Image {
- id: image
- anchors.centerIn: parent
- visible: true
- opacity: pressed ? 0.6 : 1
- smooth: true
- }
-
-// ColorOverlay {
-// id: glowEffect
-// anchors.fill: image
-// source: image
-// color: pressed ? "#22000000" : checked ? "orange" : "white"
-// visible: checked || hover || pressed
-// }
-
- MouseArea {
- id: mouseArea
- hoverEnabled: true
- anchors.fill: root
- onPositionChanged: applicationWindow.resetTimer()
- onClicked: root.clicked();
- }
-}
diff --git a/basicsuite/Media Player/Intro.qml b/basicsuite/Media Player/Intro.qml
deleted file mode 100644
index a5dbb2a..0000000
--- a/basicsuite/Media Player/Intro.qml
+++ /dev/null
@@ -1,48 +0,0 @@
-import QtQuick 2.0
-
-Rectangle {
- id: root
- color: "#111111"
-
-// Image {
-// anchors.fill: parent
-// source: "images/gradient.png"
-// }
-
- Image {
- id: logo
- anchors.centerIn: root
- anchors.verticalCenterOffset: -60
- source: "images/qt-logo.png"
- opacity: 0.5
-
- }
-// Rectangle {
-// id: button
-// opacity: mouse.containsMouse ? 1 : 0
-// Behavior on opacity {NumberAnimation{duration: 100}}
-// color: mouse.pressed ? "#11000000" : "#11ffffff"
-// anchors.top: logo.bottom
-// anchors.horizontalCenter: parent.horizontalCenter
-// border.color: "#33ffffff"
-// width: text.width + 40
-// height: text.height + 4
-// antialiasing: true
-// radius: 4
-// MouseArea {
-// id: mouse
-// anchors.fill: parent
-// hoverEnabled: true
-// onClicked: applicationWindow.openVideo()
-// }
-// }
-
-// Text {
-// id: text
-// color: "#44ffffff"
-// text: "Open File"
-// font.bold: true
-// font.pixelSize: 18
-// anchors.centerIn: button
-// }
-}
diff --git a/basicsuite/Media Player/MetadataView.qml b/basicsuite/Media Player/MetadataView.qml
deleted file mode 100644
index b0b907b..0000000
--- a/basicsuite/Media Player/MetadataView.qml
+++ /dev/null
@@ -1,173 +0,0 @@
-import QtQuick 2.0
-
-Rectangle {
- id: root
-
- property variant mediaPlayer: null
-
- anchors.fill: parent
- color: "#AA000000"
- Behavior on opacity { NumberAnimation { } }
- opacity: 0
-
- Rectangle {
- height: column.height + 30
- width: 500
- color: "#BB222222"
- anchors.centerIn: parent
- anchors.verticalCenterOffset: -50
-
-
- Column {
- id: column
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.margins: 15
- spacing: 12
-
- Text {
- text: "Media Type: " + (mediaPlayer ? mediaPlayer.metaData.mediaType : "")
- visible: mediaPlayer && mediaPlayer.metaData.mediaType !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Title: " + (mediaPlayer ? mediaPlayer.metaData.title : "")
- visible: mediaPlayer && mediaPlayer.metaData.title !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Artist: " + (mediaPlayer ? mediaPlayer.metaData.leadPerformer : "")
- visible: mediaPlayer && mediaPlayer.metaData.leadPerformer !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Artist: " + (mediaPlayer ? mediaPlayer.metaData.contributingArtist : "")
- visible: mediaPlayer && mediaPlayer.metaData.contributingArtist !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Album: " + (mediaPlayer ? mediaPlayer.metaData.albumTitle : "")
- visible: mediaPlayer && mediaPlayer.metaData.albumTitle !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Album Artist: " + (mediaPlayer ? mediaPlayer.metaData.albumArtist : "")
- visible: mediaPlayer && mediaPlayer.metaData.albumArtist !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Author: " + (mediaPlayer ? mediaPlayer.metaData.author : "")
- visible: mediaPlayer && mediaPlayer.metaData.author !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Composer: " + (mediaPlayer ? mediaPlayer.metaData.composer : "")
- visible: mediaPlayer && mediaPlayer.metaData.composer !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Writer: " + (mediaPlayer ? mediaPlayer.metaData.writer : "")
- visible: mediaPlayer && mediaPlayer.metaData.writer !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Genre: " + (mediaPlayer ? mediaPlayer.metaData.genre : "")
- visible: mediaPlayer && mediaPlayer.metaData.genre !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Track Number: " + (mediaPlayer ? mediaPlayer.metaData.trackNumber : "")
- visible: mediaPlayer && mediaPlayer.metaData.trackNumber !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Year: " + (mediaPlayer ? mediaPlayer.metaData.year : "")
- visible: mediaPlayer && mediaPlayer.metaData.year !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Duration: " + (mediaPlayer ? Qt.formatTime(new Date(mediaPlayer.metaData.duration), mediaPlayer.metaData.duration >= 3600000 ? "H:mm:ss" : "m:ss") : "")
- visible: mediaPlayer && mediaPlayer.metaData.duration !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Resolution: " + (mediaPlayer && mediaPlayer.metaData.resolution !== undefined ? (mediaPlayer.metaData.resolution.width + "x" + mediaPlayer.metaData.resolution.height) : "")
- visible: mediaPlayer && mediaPlayer.metaData.resolution !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Audio Bitrate: " + (mediaPlayer ? Math.round(mediaPlayer.metaData.audioBitRate / 1000) + " kbps" : "")
- visible: mediaPlayer && mediaPlayer.metaData.audioBitRate !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Video Bitrate: " + (mediaPlayer ? Math.round(mediaPlayer.metaData.videoBitRate / 1000) + " kbps" : "")
- visible: mediaPlayer && mediaPlayer.metaData.videoBitRate !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Text {
- text: "Date: " + (mediaPlayer ? Qt.formatDate(mediaPlayer.metaData.date) : "")
- visible: mediaPlayer && mediaPlayer.metaData.date !== undefined
- color: "white"
- font.pixelSize: 24
- width: parent.width
- wrapMode: Text.WordWrap
- }
- }
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: root.opacity = 0
- enabled: root.opacity !== 0
- }
-}
diff --git a/basicsuite/Media Player/PlaybackControl.qml b/basicsuite/Media Player/PlaybackControl.qml
deleted file mode 100755
index 2dc609f..0000000
--- a/basicsuite/Media Player/PlaybackControl.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-import QtQuick 2.0
-
-Row {
- id: root
- spacing: 26
- height: playButton.height
-
- property bool isPlaybackEnabled: false
- property bool isPlaying: false
-
- signal forwardButtonPressed()
- signal reverseButtonPressed()
- signal playButtonPressed()
- signal stopButtonPressed()
-
- //Playback Controls
- ImageButton {
- id: rateReverseButton
- enabled: isPlaybackEnabled
- imageSource: "images/RateButtonReverse.png"
- anchors.verticalCenter: root.verticalCenter
- onClicked: {
- reverseButtonPressed();
- }
- }
- ImageButton {
- id: playButton
- enabled: isPlaybackEnabled
- imageSource: !isPlaying ? "images/PlayButton.png" : "images/PauseButton.png"
- anchors.verticalCenter: root.verticalCenter
-// anchors.right: rateForwardButton.left
-// anchors.rightMargin: 10
- onClicked: {
- playButtonPressed();
- }
- }
-// Rectangle{
-// enabled: isPlaybackEnabled
-// color: "white"
-// opacity: enabled ? 1 : 0.3
-// width: playButton.width
-// height: width
-// anchors.verticalCenter: root.verticalCenter
-// MouseArea {
-// anchors.fill: parent
-// onClicked: stopButtonPressed();
-// }
-// }
-
- ImageButton {
- id: rateForwardButton
- enabled: isPlaybackEnabled
- imageSource: "images/RateButtonForward.png"
- anchors.verticalCenter: root.verticalCenter
- onClicked: {
- forwardButtonPressed();
- }
- }
-}
diff --git a/basicsuite/Media Player/SeekControl.qml b/basicsuite/Media Player/SeekControl.qml
deleted file mode 100755
index fa0842d..0000000
--- a/basicsuite/Media Player/SeekControl.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-import QtQuick 2.0
-
-Item {
- id: root
- height: seekSlider.height
-
- property int position: 0
- property int duration: 0
- property bool seekable: false
- property alias pressed : seekSlider.pressed
- property bool enabled
-
- signal seekValueChanged(int newPosition)
-
- onPositionChanged: {
- elapsedText.text = formatTime(position);
- seekSlider.value = position;
- }
-
- onDurationChanged: {
- remainingText.text = formatTime(duration);
- }
-
- Text {
- id: elapsedText
- anchors.verticalCenter: seekSlider.verticalCenter
- anchors.left: root.left
- text: "00:00"
- font.pixelSize: 20
- color: "#cccccc"
- }
-
- Slider {
- id: seekSlider
- anchors.leftMargin: 30
- anchors.rightMargin: 30
- anchors.left: elapsedText.right
- anchors.right: remainingText.left
- anchors.verticalCenter: root.verticalCenter
- mutable: root.seekable
- enabled: root.enabled
-
- minimum: 0.0
- maximum: root.duration !== 0 ? root.duration : 1
-
- onValueChangedByHandle: {
- seekValueChanged(newValue);
- applicationWindow.resetTimer()
- }
- }
-
- Text {
- id: remainingText
- anchors.verticalCenter: seekSlider.verticalCenter
- anchors.right: root.right
- text: "00:00"
- font.pixelSize: 20
- color: "#cccccc"
- }
-
- function formatTime(time) {
- time = time / 1000
- var hours = Math.floor(time / 3600);
- time = time - hours * 3600;
- var minutes = Math.floor(time / 60);
- var seconds = Math.floor(time - minutes * 60);
-
- if (hours > 0)
- return formatTimeBlock(hours) + ":" + formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
- else
- return formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
-
- }
-
- function formatTimeBlock(time) {
- if (time === 0)
- return "00"
- if (time < 10)
- return "0" + time;
- else
- return time.toString();
- }
-}
diff --git a/basicsuite/Media Player/Slider.qml b/basicsuite/Media Player/Slider.qml
deleted file mode 100644
index 17fd8cd..0000000
--- a/basicsuite/Media Player/Slider.qml
+++ /dev/null
@@ -1,98 +0,0 @@
-import QtQuick 2.0
-
-Item {
- id: slider
-
- height: handleBack.height
- // value is read/write.
- property real value: 0
- property real maximum: 1
- property real minimum: 0
- property int xMax: width - handle.width
- onXMaxChanged: updatePos()
- onMinimumChanged: updatePos()
- onValueChanged: if (!pressed) updatePos()
- property bool mutable: true
- property alias pressed : backgroundMouse.pressed
-
- signal valueChangedByHandle(int newValue)
-
- function updatePos() {
- if (maximum > minimum) {
- var pos = 0 + (value - minimum) * slider.xMax / (maximum - minimum);
- pos = Math.min(pos, width - handle.width - 0);
- pos = Math.max(pos, 0);
- handle.x = pos;
- } else {
- handle.x = 0;
- }
- }
-
- Rectangle {
- id: background
- width: slider.width
- anchors.verticalCenter: slider.verticalCenter
- height: 2
- color: "#666666"
-
- MouseArea {
- id: backgroundMouse
- anchors.fill: parent
- anchors.topMargin: -24
- anchors.bottomMargin: -24
- enabled: slider.mutable
- drag.target: handle
- drag.axis: Drag.XAxis
- drag.minimumX: 0
- drag.maximumX: slider.xMax
- onPressedChanged: {
- value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
- valueChangedByHandle(value);
- updatePos();
- }
- onPositionChanged: {
- value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
- valueChangedByHandle(value);
- }
- onWheel: {
- value = Math.max(minimum, Math.min(maximum, value + (wheel.angleDelta.y > 0 ? 1 : -1) * (10 / slider.xMax) * (slider.maximum - slider.minimum)));
- valueChangedByHandle(value);
- updatePos();
- }
- }
- }
-
- Rectangle {
- id: progress
- height: 5
- anchors.verticalCenter: background.verticalCenter
- anchors.left: background.left
- anchors.right: handle.right
- anchors.rightMargin: handle.width / 2
- visible: slider.enabled
- color: "#98c66c"
- }
-
- Rectangle {
- id: handleBack
- width: 40
- height: width
- radius: width / 2
- color: "#8898c66c"
- antialiasing: true
- anchors.centerIn: handle
- visible: handle.visible
- }
-
- Rectangle {
- id: handle
- width: 14
- height: width
- radius: width / 2
- antialiasing: true
- color: "#98c66c"
- anchors.verticalCenter: background.verticalCenter
- visible: slider.enabled
- }
-}
-
diff --git a/basicsuite/Media Player/UrlBar.qml b/basicsuite/Media Player/UrlBar.qml
deleted file mode 100644
index cfada41..0000000
--- a/basicsuite/Media Player/UrlBar.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-import QtQuick 2.0
-
-Rectangle {
- id: root
- height: 50
- signal urlAccepted(string text)
- color: "#cc222222"
- Behavior on opacity { NumberAnimation{} }
- onOpacityChanged: {
- if (opacity == 1)
- urlInput.focus = true
- else if (opacity == 0)
- urlInput.focus = false
- }
-
- Keys.onEscapePressed: root.opacity = 0
-
- MouseArea {
- anchors.fill: parent
- onClicked: root.opacity = 0
- }
-
- Text {
- anchors.bottom: urlBar.top
- anchors.left: urlBar.left
- anchors.bottomMargin: 8
- text: "Enter URL"
- color: "white"
- font.pixelSize: 20
- }
-
- BorderImage {
- id: urlBar
- source: "images/ControlBar.png"
- border.top: 12
- border.bottom: 12
- border.left: 12
- border.right: 12
- height: 70
- anchors.centerIn: parent
- anchors.verticalCenterOffset: -170
- width: 600
-
- Rectangle {
- anchors.fill: parent
- anchors.margins: 16
- color: "#66ffffff"
- border.color: "#bbffffff"
- radius: 2
- antialiasing: true
-
- TextInput {
- id: urlInput
- selectionColor: "#aaffffff"
- selectedTextColor: "black"
- selectByMouse: true
- anchors.fill: parent
- anchors.margins: 5
- font.pixelSize: 24
- color: "black"
- text: "http://"
- onAccepted: root.urlAccepted(urlInput.text);
-
- }
- }
- }
-
-// Rectangle {
-// anchors.right: urlBar.left
-// anchors.rightMargin: 32
-// anchors.verticalCenter: urlBar.verticalCenter
-// height: 70
-// width: 70
-// color: "gray"
-// MouseArea {
-// anchors.fill: parent
-// onClicked: { urlInput.text = ""; urlInput.paste(); }
-// }
-// }
-}
diff --git a/basicsuite/Media Player/VolumeControl.qml b/basicsuite/Media Player/VolumeControl.qml
deleted file mode 100755
index e814b99..0000000
--- a/basicsuite/Media Player/VolumeControl.qml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-import QtQuick 2.0
-
-Item {
- id: root
- width: 210
- height: volumeUp.height
-
- property alias volume: volumeSlider.value
-
- //Volume Controls
- ImageButton {
- id: volumeDown
- imageSource: "images/VolumeDown.png"
- anchors.verticalCenter: root.verticalCenter
- anchors.left: root.left
- scale: 1.4
- onClicked: {
- root.volume = 0.0;
- }
- }
- Slider {
- id: volumeSlider
- anchors.left: volumeDown.right
- anchors.leftMargin: 22
- anchors.rightMargin: 22
- anchors.right: volumeUp.left
- maximum: 1.0
- minimum: 0.0
- anchors.verticalCenter: root.verticalCenter
- anchors.verticalCenterOffset: 1
- }
-
- ImageButton {
- id: volumeUp
- imageSource: "images/VolumeUp.png"
- anchors.verticalCenter: root.verticalCenter
- anchors.verticalCenterOffset: 1
- anchors.right: root.right
- scale: 1.4
- onClicked: {
- root.volume = 1.0
- }
- }
-}
diff --git a/basicsuite/Media Player/description.txt b/basicsuite/Media Player/description.txt
deleted file mode 100644
index bf034e5..0000000
--- a/basicsuite/Media Player/description.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-The Media Player example demonstrates the use of the media playback features of Qt Multimedia with Qt Quick.
-
-It can play from a file or from Internet, both videos and music.
diff --git a/basicsuite/Photo Gallery/description.txt b/basicsuite/Photo Gallery/description.txt
deleted file mode 100644
index a619aee..0000000
--- a/basicsuite/Photo Gallery/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is simple photo gallery, indexing images found in /data/images.
diff --git a/basicsuite/Photo Gallery/main.qml b/basicsuite/Photo Gallery/main.qml
deleted file mode 100644
index b2779e8..0000000
--- a/basicsuite/Photo Gallery/main.qml
+++ /dev/null
@@ -1,255 +0,0 @@
-import QtQuick 2.0
-import Qt.labs.folderlistmodel 1.0
-
-Item {
- id: root
-
- width: 320
- height: 480
-
- Rectangle {
- anchors.fill: parent
- color: "black"
- }
-
- FolderListModel {
- id: imageList
- folder: "/data/images"
- nameFilters: ["*.png", "*.jpg"]
-
- showDirs: false
- }
-
- Text {
- id: noImages
- color: "white"
- visible: grid.count == 0
- text: "No images in " + imageList.folder
- anchors.centerIn: parent
- }
-
- GridView {
- id: grid
-
- anchors.fill: parent
-
- cellHeight: root.width / 3
- cellWidth: cellHeight
-
- model: imageList
-
-// NumberAnimation on contentY { from: 0; to: 2000; duration: 3000; loops: 1; easing.type: Easing.InOutCubic }
-
- delegate: Rectangle {
-
- id: box
- color: "white"
- width: grid.cellWidth
- height: grid.cellHeight
- scale: 0.97
- rotation: 2;
- antialiasing: true
-
- Rectangle {
- id: sepia
- color: "#b08050"
- width: image.width
- height: image.height
- anchors.centerIn: parent
-
- property real fakeOpacity: image.status == Image.Ready ? 1.5 : 0
- Behavior on fakeOpacity { NumberAnimation { duration: 1000 } }
-
- opacity: fakeOpacity
- visible: image.opacity <= 0.99;
- antialiasing: true
- }
-
- Image {
- id: image
- source: filePath
- width: grid.cellWidth * 0.9
- height: grid.cellHeight * 0.9
- anchors.centerIn: sepia
- asynchronous: true
- opacity: sepia.fakeOpacity - .5
- sourceSize.width: width;
- antialiasing: true
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- root.showBigImage(filePath, box.x - grid.contentX, box.y - grid.contentY, image);
- }
- }
- }
- }
-
- function showBigImage(filePath, itemX, itemY, image) {
- fakeBigImage.x = itemX;
- fakeBigImage.y = itemY;
- fakeBigImage.sourceSize = image.sourceSize;
- fakeBigImage.source = filePath;
-
- beginEnterLargeAnimation.running = true;
- }
-
- property int time: 500;
- property real xPos: width < height ? 0 : width / 2 - height / 2;
- property real yPos: width < height ? height / 2 - width / 2: 0;
- property real size: Math.min(width, height);
-
- states: [
- State { name: "grid" },
- State { name: "enter-large" },
- State { name: "large" },
- State { name: "exit-large" }
- ]
-
- SequentialAnimation {
- id: beginEnterLargeAnimation
- PropertyAction { target: mouseArea; property: "enabled"; value: "true" }
- PropertyAction { target: fakeBigImage; property: "rotation"; value: 2; }
- PropertyAction { target: fakeBigImage; property: "scale"; value: 0.97 * 0.9; }
- PropertyAction { target: fakeBigImage; property: "width"; value: grid.cellWidth; }
- PropertyAction { target: fakeBigImage; property: "height"; value: grid.cellHeight; }
- PropertyAction { target: fakeBigImage; property: "visible"; value: true; }
-
- ParallelAnimation {
- NumberAnimation { target: fakeBigImage; property: "rotation"; to: 0; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: fakeBigImage; property: "scale"; to: 1; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: fakeBigImage; property: "x"; to: root.xPos; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: fakeBigImage; property: "y"; to: root.yPos; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: fakeBigImage; property: "width"; to: root.size; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: fakeBigImage; property: "height"; to: root.size; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: grid; property: "opacity"; to: 0; duration: root.time; easing.type: Easing.InOutCubic }
- }
- ScriptAction {
- script: {
-
- bigImage = realBigImageComponent.createObject(root);
- bigImage.source = fakeBigImage.source;
- }
- }
- }
-
- property Item bigImage;
- property real targetRotation: 0;
- property real targetWidth: 0
- property real targetHeight: 0
- property bool bigImageShowing: false;
-
- SequentialAnimation {
- id: finalizeEnterLargeAnimation
- ScriptAction { script: {
- fakeBigImage.anchors.centerIn = root;
- }
- }
- ParallelAnimation {
- NumberAnimation { target: bigImage; property: "opacity"; to: 1; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: fakeBigImage; property: "rotation"; to: root.targetRotation; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: bigImage; property: "rotation"; to: root.targetRotation; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: fakeBigImage; property: "width"; to: root.targetWidth; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: fakeBigImage; property: "height"; to: root.targetHeight; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: bigImage; property: "width"; to: root.targetWidth; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: bigImage; property: "height"; to: root.targetHeight; duration: root.time; easing.type: Easing.InOutCubic }
- }
- PropertyAction { target: fakeBigImage; property: "visible"; value: false }
- PropertyAction { target: root; property: "bigImageShowing"; value: true }
- }
-
- SequentialAnimation {
- id: backToGridAnimation
- ParallelAnimation {
- NumberAnimation { target: bigImage; property: "opacity"; to: 0; duration: root.time; easing.type: Easing.InOutCubic }
- NumberAnimation { target: grid; property: "opacity"; to: 1; duration: root.time; easing.type: Easing.InOutCubic }
- }
- PropertyAction { target: fakeBigImage; property: "source"; value: "" }
- PropertyAction { target: root; property: "bigImageShowing"; value: false }
- PropertyAction { target: mouseArea; property: "enabled"; value: false }
- ScriptAction { script: {
- bigImage.destroy();
- fakeBigImage.anchors.centerIn = undefined
- }
- }
- }
-
- Image {
- id: fakeBigImage
- width: grid.cellWidth
- height: grid.cellHeight
- visible: false
- antialiasing: true
- }
-
- Component {
- id: realBigImageComponent
-
- Image {
- id: realBigImage
-
- anchors.centerIn: parent;
-
- asynchronous: true;
-
- // Bound size to the current display size, to try to avoid any GL_MAX_TEXTURE_SIZE issues.
- sourceSize: Qt.size(Math.max(root.width, root.height), Math.max(root.width, root.height));
-
- opacity: 0
- onStatusChanged: {
-
- if (status != Image.Ready)
- return;
-
- var imageIsLandscape = width > height;
- var screenIsLandscape = root.width > root.height;
-
- var targetScale;
-
- // Rotation needed...
- if (imageIsLandscape != screenIsLandscape && width != height) {
- root.targetRotation = 90;
- var aspect = width / height
- var screenAspect = root.height / root.width
-
- if (aspect > screenAspect) {
- targetScale = root.height / width
- } else {
- targetScale = root.width / height;
- }
- } else {
- root.targetRotation = 0;
- var aspect = height / width;
- var screenAspect = root.height / root.width
-
- if (aspect > screenAspect) {
- targetScale = root.height / height
- } else {
- targetScale = root.width / width;
- }
- }
-
- root.targetWidth = width * targetScale
- root.targetHeight = height * targetScale;
-
- width = root.size
- height = root.size;
-
- finalizeEnterLargeAnimation.running = true;
- }
- }
- }
-
- MouseArea {
- id: mouseArea
- anchors.fill: parent
- enabled: false
-
- onClicked: {
- if (root.bigImageShowing)
- backToGridAnimation.running = true;
- }
- }
-
-}
diff --git a/basicsuite/Qt5 Cinematic Demo/Qt5_CinematicExperience.qmlproject b/basicsuite/Qt5 Cinematic Demo/Qt5_CinematicExperience.qmlproject
deleted file mode 100644
index fd24655..0000000
--- a/basicsuite/Qt5 Cinematic Demo/Qt5_CinematicExperience.qmlproject
+++ /dev/null
@@ -1,20 +0,0 @@
-/* File generated by Qt Creator, version 2.4.1 */
-
-import QmlProject 1.1
-
-Project {
- mainFile: "Qt5_CinematicExperience.qml"
-
- /* Include .qml, .js, and image files from current directory and subdirectories */
- QmlFiles {
- directory: "."
- }
- JavaScriptFiles {
- directory: "."
- }
- ImageFiles {
- directory: "."
- }
- /* List of plugin directories passed to QML runtime */
- // importPaths: [ "../exampleplugin" ]
-}
diff --git a/basicsuite/Qt5 Cinematic Demo/README b/basicsuite/Qt5 Cinematic Demo/README
deleted file mode 100644
index 1f16c7e..0000000
--- a/basicsuite/Qt5 Cinematic Demo/README
+++ /dev/null
@@ -1,49 +0,0 @@
-
-INTRO
-==========
-
-This UX demo application presents some graphical features of Qt5.
-The name 'Cinematic Experience' reflects how it's possible to build user
-interfaces with increased dynamics.
-
-
-RUNNING
-==========
-
-To run this application you need relatively recent build of Qt5:
-- http://qt-project.org
-- http://qt.gitorious.org/qt/qt5
-
-There are two different ways to run the application:
-
-1) If your target platform contains 'qmlscene' binary, just use it:
----
-cd Qt5_CinematicExperience
-[path to Qt5]/qtbase/bin/qmlscene Qt5_CinematicExperience.qml
----
-
-2) Alternatively, a simple launcher is provided to start the application:
----
-cd Qt5_CinematicExperience
-[path to Qt5]/qtbase/bin/qmake
-make
-./Qt5_CinematicExperience
----
-
-The run application in fullscreen mode, use '--fullscreen' parameter for
-qmlscene or launcher. If you want to tweak the window resolution,
-modify 'width' and 'height' properties in Qt5_CinematicExperience.qml
-
-
-LICENSE
-==========
-
-Source codes are licensed under a Creative Commons Attribution 3.0 Unported
-License. http://creativecommons.org/licenses/by/3.0/
-
-No attribution required, but feel free to mention us or
-contact info@quitcoding.com
-
-Qt, and the Qt logo are trademarks of Nokia Corporation
-Movie reviews copyright © IMDb.com
-DVD cover icons from http://www.iconarchive.com
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/heading.png b/basicsuite/Qt5 Cinematic Demo/content/images/heading.png
deleted file mode 100644
index 509b12b..0000000
--- a/basicsuite/Qt5 Cinematic Demo/content/images/heading.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/heading_big.png b/basicsuite/Qt5 Cinematic Demo/content/images/heading_big.png
deleted file mode 100644
index ec37388..0000000
--- a/basicsuite/Qt5 Cinematic Demo/content/images/heading_big.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/description.txt b/basicsuite/Qt5 Cinematic Demo/description.txt
deleted file mode 100644
index 449cc28..0000000
--- a/basicsuite/Qt5 Cinematic Demo/description.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-The Qt5 Cinematic Experience is a demo by "QUIt Coding", a small group of talented individuals enjoying software development with cutting edge technologies. They are official members of the Qt Ambassador Program.
-
-The demo shows off a number features of Qt Quick 2.0. A nicely styled list control with movie covers with lighting effects. Particles and transitions. The information roll-down curvy curtain and is implemented using inline GLSL in the QML file.
-
-The source code for this demo and more awesome looking Qt Quick stuff is available from quitcoding.com.
diff --git a/basicsuite/Qt5 Launch Presentation/CameraSlide.qml b/basicsuite/Qt5 Launch Presentation/CameraSlide.qml
deleted file mode 100644
index 564b467..0000000
--- a/basicsuite/Qt5 Launch Presentation/CameraSlide.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt 5 launch demo.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtMultimedia 5
-import "presentation"
-
-import QtGraphicalEffects 1.0
-
-Slide {
-
- id: slide
-
- title: "Qt Multimedia - Camera"
-
- Camera {
- id: camera
- Component.onCompleted: camera.stop();
- }
-
- VideoOutput {
- id: videoOut
- anchors.fill: parent
- source: camera
- layer.enabled: true;
- layer.effect: ZoomBlur {
- samples: 16
- length: button.pressed ? parent.height / 5 : 0
- Behavior on length {
- NumberAnimation { duration: 250 }
- }
- }
- }
-
- onVisibleChanged: {
- if (slide.visible)
- camera.start();
- else
- camera.stop();
- }
-
- Button {
- id: button
- anchors.bottom: videoOut.bottom
- anchors.horizontalCenter: videoOut.horizontalCenter
- anchors.bottomMargin: height / 2;
-// anchors.bottom: slide.top;
-// anchors.right: slide.right;
-// anchors.bottomMargin: height;
- label: pressed ? "Remove Effect" : "Zoom Effect";
- width: height * 4;
- height: parent.height * 0.1
- }
-
-}
diff --git a/basicsuite/Qt5 Launch Presentation/CanvasSlide.qml b/basicsuite/Qt5 Launch Presentation/CanvasSlide.qml
deleted file mode 100644
index d972b41..0000000
--- a/basicsuite/Qt5 Launch Presentation/CanvasSlide.qml
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt 5 launch demo.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-import "presentation"
-
-Slide {
- id: slide
-
- title: "Qt Quick - Canvas"
-
-
-
- Rectangle {
- height: parent.height
- width: parent.width * 0.45
- anchors.right: parent.right;
- antialiasing: true
- radius: slide.height * 0.03;
- color: Qt.rgba(0.0, 0.0, 0.0, 0.2);
- Canvas {
- id:canvas
- anchors.fill: parent;
-
- renderTarget: Canvas.Image;
- antialiasing: true;
- onPaint: {
- eval(editor.text);
- }
- }
- }
-
- Rectangle {
- height: parent.height
- width: parent.width * 0.45
- anchors.left: parent.left
- antialiasing: true
- radius: slide.height * 0.03;
- color: Qt.rgba(0.0, 0.0, 0.0, 0.2);
-
- clip: true;
-
- TextEdit {
- id: editor
- anchors.fill: parent;
- anchors.margins: 10
-
- font.pixelSize: 16
- color: "white"
- font.family: "courier"
- font.bold: true
-
- text:
-"var ctx = canvas.getContext('2d');
-ctx.save();
-ctx.clearRect(0, 0, canvas.width, canvas.height);
-ctx.strokeStyle = 'palegreen'
-ctx.fillStyle = 'limegreen';
-ctx.lineWidth = 5;
-
-ctx.beginPath();
-ctx.moveTo(100, 100);
-ctx.lineTo(300, 100);
-ctx.lineTo(100, 200);
-ctx.closePath();
-ctx.fill();
-ctx.stroke();
-
-ctx.fillStyle = 'aquamarine'
-ctx.font = '20px sansserif'
-ctx.fillText('HTML Canvas API!', 100, 300);
-ctx.fillText('Imperative Drawing!', 100, 340);
-
-ctx.restore();
-"
- onTextChanged: canvas.requestPaint();
-
- onCursorRectangleChanged: {
- emitter.burst(10)
-
- }
-
- ParticleSystem {
- id: sys1
- running: slide.visible
- }
-
- ImageParticle {
- system: sys1
- source: "images/particle.png"
- color: "white"
- colorVariation: 0.2
- alpha: 0
- }
-
- Emitter {
- id: emitter
- system: sys1
-
- x: editor.cursorRectangle.x - editor.cursorRectangle.height / 2;
- y: editor.cursorRectangle.y
- width: editor.cursorRectangle.height
- height: editor.cursorRectangle.height
- enabled: false
-
- lifeSpan: 1000
-
- velocity: PointDirection { xVariation: 30; yVariation: 30; }
- acceleration: PointDirection {xVariation: 30; yVariation: 30; y: 100 }
-
- endSize: 0
-
- size: 4
- sizeVariation: 2
- }
-
- }
-
-
-
-
- }
-}
diff --git a/basicsuite/Qt5 Launch Presentation/OpacityTransitionPresentation.qml b/basicsuite/Qt5 Launch Presentation/OpacityTransitionPresentation.qml
deleted file mode 100644
index dc7cc02..0000000
--- a/basicsuite/Qt5 Launch Presentation/OpacityTransitionPresentation.qml
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt 5 launch demo.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-import QtQuick 2.0
-import "presentation"
-
-Presentation {
-
- id: deck
-
- width: 1280
- height: 720
-
- property bool inTransition: false;
-
- property variant fromSlide;
- property variant toSlide;
-
- property int transitionTime: 500;
-
- SequentialAnimation {
- id: forwardTransition
- PropertyAction { target: deck; property: "inTransition"; value: true }
- PropertyAction { target: toSlide; property: "visible"; value: true }
- ParallelAnimation {
- NumberAnimation { target: fromSlide; property: "opacity"; from: 1; to: 0; duration: deck.transitionTime; easing.type: Easing.OutQuart }
- NumberAnimation { target: fromSlide; property: "scale"; from: 1; to: 1.1; duration: deck.transitionTime; easing.type: Easing.InOutQuart }
- NumberAnimation { target: toSlide; property: "opacity"; from: 0; to: 1; duration: deck.transitionTime; easing.type: Easing.InQuart }
- NumberAnimation { target: toSlide; property: "scale"; from: 0.7; to: 1; duration: deck.transitionTime; easing.type: Easing.InOutQuart }
- }
- PropertyAction { target: fromSlide; property: "visible"; value: false }
- PropertyAction { target: fromSlide; property: "scale"; value: 1 }
- PropertyAction { target: deck; property: "inTransition"; value: false }
- }
- SequentialAnimation {
- id: backwardTransition
- running: false
- PropertyAction { target: deck; property: "inTransition"; value: true }
- PropertyAction { target: toSlide; property: "visible"; value: true }
- ParallelAnimation {
- NumberAnimation { target: fromSlide; property: "opacity"; from: 1; to: 0; duration: deck.transitionTime; easing.type: Easing.OutQuart }
- NumberAnimation { target: fromSlide; property: "scale"; from: 1; to: 0.7; duration: deck.transitionTime; easing.type: Easing.InOutQuart }
- NumberAnimation { target: toSlide; property: "opacity"; from: 0; to: 1; duration: deck.transitionTime; easing.type: Easing.InQuart }
- NumberAnimation { target: toSlide; property: "scale"; from: 1.1; to: 1; duration: deck.transitionTime; easing.type: Easing.InOutQuart }
- }
- PropertyAction { target: fromSlide; property: "visible"; value: false }
- PropertyAction { target: fromSlide; property: "scale"; value: 1 }
- PropertyAction { target: deck; property: "inTransition"; value: false }
- }
-
- function switchSlides(from, to, forward)
- {
- if (deck.inTransition)
- return false
-
- deck.fromSlide = from
- deck.toSlide = to
-
- if (forward)
- forwardTransition.running = true
- else
- backwardTransition.running = true
-
- return true
- }
-}
diff --git a/basicsuite/Qt5 Launch Presentation/VideoSlide.qml b/basicsuite/Qt5 Launch Presentation/VideoSlide.qml
deleted file mode 100644
index d5abd89..0000000
--- a/basicsuite/Qt5 Launch Presentation/VideoSlide.qml
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt 5 launch demo.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtMultimedia 5
-import "presentation"
-
-import QtGraphicalEffects 1.0
-
-Slide {
-
- id: slide
-
- title: "Qt Multimedia - Video"
-
- Video {
- id: video
-
- anchors.fill: parent
- source: "bunny.mov"
- autoLoad: true;
-
- layer.enabled: true;
- layer.smooth: true;
- layer.effect: Displace {
- displacementSource: normalMap
- displacement: button.pressed ? 1.0 : 0.0
- Behavior on displacement {
- NumberAnimation { duration: 1000 }
- }
- }
- }
-
- Rectangle {
- id: theItem;
- width: 256
- height: 128
- color: "transparent"
- Text {
- id: label
- color: "white"
- text: "Qt 5"
-// font.family: "Times New Roman"
- font.bold: true;
- font.pixelSize: 80
- anchors.centerIn: parent
- }
- visible: false;
- }
-
- NormalMapGenerator {
- anchors.left: theItem.right
- width: 256
- height: 128
- id: normalMap
- source: theItem;
- visible: false
- }
-
- centeredText: video.hasVideo ? "" : "'bunny.mov' is not found or cannot be played: " + video.errorString
-
- onVisibleChanged: {
- if (slide.visible)
- video.play();
- else
- video.pause();
- }
-
- Button {
- id: button
- anchors.bottom: video.bottom
- anchors.horizontalCenter: video.horizontalCenter
- anchors.bottomMargin: height / 2;
- label: pressed ? "Remove Effect" : "Displacement Effect";
- width: height * 4;
- height: parent.height * 0.1
- }
-
-}
diff --git a/basicsuite/Qt5 Launch Presentation/WebKitSlideContent.qml b/basicsuite/Qt5 Launch Presentation/WebKitSlideContent.qml
deleted file mode 100644
index ea5a364..0000000
--- a/basicsuite/Qt5 Launch Presentation/WebKitSlideContent.qml
+++ /dev/null
@@ -1,84 +0,0 @@
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-import QtWebKit 3.0
-
-Item {
- id: slide
-
- anchors.fill: parent;
-
- WebView {
- id: browser
- anchors.fill: parent
- url: editor.text
-
- // This works around rendering bugs in webkit. CSS animations
- // and webGL content gets a bad offset, but this hack
- // clips it so it is not visible. Not ideal, but it kinda works
- // for now.
- layer.enabled: true
- layer.smooth: true
- }
-
- Rectangle {
- border.width: 2
- border.color: "black"
- opacity: 0.5
- color: "black"
- anchors.fill: editor
- anchors.margins: -editor.height * 0.2;
-
- radius: -anchors.margins
- antialiasing: true
- }
-
- TextInput {
- id: editor
- anchors.top: browser.bottom;
- anchors.horizontalCenter: browser.horizontalCenter
- font.pixelSize: slide.height * 0.05;
- text: "http://qt.digia.com"
- onAccepted: browser.reload();
- color: "white"
-
- onCursorPositionChanged: {
- var rect = positionToRectangle(cursorPosition);
- emitter.x = rect.x;
- emitter.y = rect.y;
- emitter.width = rect.width;
- emitter.height = rect.height;
- emitter.burst(10);
- }
-
- ParticleSystem {
- id: sys1
- running: slide.visible
- }
-
- ImageParticle {
- system: sys1
- source: "images/particle.png"
- color: "white"
- colorVariation: 0.2
- alpha: 0
- }
-
- Emitter {
- id: emitter
- system: sys1
-
- enabled: false
-
- lifeSpan: 2000
-
- velocity: PointDirection { xVariation: 30; yVariation: 30; }
- acceleration: PointDirection {xVariation: 30; yVariation: 30; y: 100 }
-
- endSize: 0
-
- size: 8
- sizeVariation: 2
- }
- }
-
-}
diff --git a/basicsuite/Qt5 Launch Presentation/WebkitSlide.qml b/basicsuite/Qt5 Launch Presentation/WebkitSlide.qml
deleted file mode 100644
index edb8e4c..0000000
--- a/basicsuite/Qt5 Launch Presentation/WebkitSlide.qml
+++ /dev/null
@@ -1,19 +0,0 @@
-import QtQuick 2.0
-import "presentation"
-
-Slide {
- id: slide
-
- title: "Qt WebKit - WebView"
-
- Loader {
- id: webkitLoader
-
- anchors.fill: parent
-
- source: "WebKitSlideContent.qml"
- }
-
- centeredText: webkitLoader.status == Loader.Error ? "Qt WebKit not installed or otherwise failed to load" : ""
-}
-
diff --git a/basicsuite/Qt5 Launch Presentation/description.txt b/basicsuite/Qt5 Launch Presentation/description.txt
deleted file mode 100644
index 48d03f3..0000000
--- a/basicsuite/Qt5 Launch Presentation/description.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-The following is a quick tour of what is new in Qt 5.
-
-It is an application written with Qt Quick, based on Qt 5. The source code is available from: https://qt.gitorious.org/qt-labs/qt5-launch-demo
-The demo makes use of the QML Presentation System, available from: ssh://codereview.qt-project.org/qt-labs/qml-presentation-system.git
-
-The demo has been modified slightly to run in this launcher.
diff --git a/basicsuite/Qt5 Launch Presentation/particles/velocityfrommotion.qml b/basicsuite/Qt5 Launch Presentation/particles/velocityfrommotion.qml
deleted file mode 100644
index 2aa3617..0000000
--- a/basicsuite/Qt5 Launch Presentation/particles/velocityfrommotion.qml
+++ /dev/null
@@ -1,305 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
-
- id: root
-
- height: 480
- width: 320
-
- MouseArea {
- id: mouseArea
- anchors.fill: root
- }
-
- ParticleSystem { id: sys1 }
- ImageParticle {
- system: sys1
- source: "particle.png"
- color: "cyan"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "cyan"
- to: "magenta"
- duration: 1000
- }
- ColorAnimation {
- from: "magenta"
- to: "blue"
- duration: 2000
- }
- ColorAnimation {
- from: "blue"
- to: "violet"
- duration: 2000
- }
- ColorAnimation {
- from: "violet"
- to: "cyan"
- duration: 2000
- }
- }
- colorVariation: 0.3
- }
- //! [0]
- Emitter {
- id: trailsNormal
- system: sys1
-
- emitRate: 500
- lifeSpan: 2000
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
- velocityFromMovement: 8
-
- size: 8
- sizeVariation: 4
- }
- //! [0]
- ParticleSystem { id: sys2 }
- ImageParticle {
- color: "cyan"
- system: sys2
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "magenta"
- to: "cyan"
- duration: 1000
- }
- ColorAnimation {
- from: "cyan"
- to: "magenta"
- duration: 2000
- }
- }
- colorVariation: 0.5
- source: "star.png"
- }
- Emitter {
- id: trailsStars
- system: sys2
-
- emitRate: 100
- lifeSpan: 2200
-
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
- velocityFromMovement: 8
-
- size: 22
- sizeVariation: 4
- }
- ParticleSystem { id: sys3; }
- ImageParticle {
- source: "particle.png"
- system: sys3
- color: "orange"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "red"
- to: "green"
- duration: 2000
- }
- ColorAnimation {
- from: "green"
- to: "red"
- duration: 2000
- }
- }
-
- colorVariation: 0.2
-
- }
- Emitter {
- id: trailsNormal2
- system: sys3
-
- emitRate: 300
- lifeSpan: 2000
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
-
- velocityFromMovement: 16
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
-
- size: 12
- sizeVariation: 4
- }
- ParticleSystem { id: sys4; }
- ImageParticle {
- system: sys4
- source: "star.png"
- color: "green"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "green"
- to: "red"
- duration: 2000
- }
- ColorAnimation {
- from: "red"
- to: "green"
- duration: 2000
- }
- }
-
- colorVariation: 0.5
- }
- Emitter {
- id: trailsStars2
- system: sys4
-
- emitRate: 50
- lifeSpan: 2200
-
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
-
- velocityFromMovement: 16
- velocity: PointDirection {xVariation: 2; yVariation: 2;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
-
- size: 22
- sizeVariation: 4
- }
-
-
-
- Item {
- id: circle
- //anchors.fill: parent
- property real radius: 0
- property real dx: root.width / 2
- property real dy: root.height / 2
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- duration: 1000
- from: 1
- to: 0
- loops: 8
- }
- NumberAnimation {
- duration: 1000
- from: 0
- to: 1
- loops: 8
- }
-
- }
-
- SequentialAnimation on radius {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- duration: 4000
- from: 0
- to: 100
- }
- NumberAnimation {
- duration: 4000
- from: 100
- to: 0
- }
- }
- }
-
- Item {
- id: circle3
- property real radius: 100
- property real dx: root.width / 2
- property real dy: root.height / 2
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation { from: 0.0; to: 1 ; duration: 10000; }
- }
- }
-
- Item {
- id: circle2
- property real radius: 30
- property real dx: circle3.cx
- property real dy: circle3.cy
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation { from: 0.0; to: 1 ; duration: 1000; }
- }
- }
-
-}
diff --git a/basicsuite/Qt5 Particles Demo/content/burstandpulse.qml b/basicsuite/Qt5 Particles Demo/content/burstandpulse.qml
deleted file mode 100644
index c44c8dc..0000000
--- a/basicsuite/Qt5 Particles Demo/content/burstandpulse.qml
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- width: 320
- height: 480
- color: "black"
- property bool lastWasPulse: false
- Timer {
- interval: 3500
- triggeredOnStart: true
- running: true
- repeat: true
- onTriggered: {
- //! [0]
- if (lastWasPulse) {
- burstEmitter.burst(500);
- lastWasPulse = false;
- } else {
- pulseEmitter.pulse(500);
- lastWasPulse = true;
- }
- //! [0]
- }
- }
- ParticleSystem {
- id: particles
- anchors.fill: parent
- ImageParticle {
- source: "../images/star.png"
- alpha: 0
- colorVariation: 0.6
- }
-
- Emitter {
- id: burstEmitter
- x: parent.width/2
- y: parent.height/3
- emitRate: 1000
- lifeSpan: 2000
- enabled: false
- velocity: AngleDirection{magnitude: 64; angleVariation: 360}
- size: 24
- sizeVariation: 8
- Text {
- anchors.centerIn: parent
- color: "white"
- font.pixelSize: 18
- text: "Burst"
- }
- }
- Emitter {
- id: pulseEmitter
- x: parent.width/2
- y: 2*parent.height/3
- emitRate: 1000
- lifeSpan: 2000
- enabled: false
- velocity: AngleDirection{magnitude: 64; angleVariation: 360}
- size: 24
- sizeVariation: 8
- Text {
- anchors.centerIn: parent
- color: "white"
- font.pixelSize: 18
- text: "Pulse"
- }
- }
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/content/customemitter.qml b/basicsuite/Qt5 Particles Demo/content/customemitter.qml
deleted file mode 100644
index bcf7da3..0000000
--- a/basicsuite/Qt5 Particles Demo/content/customemitter.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-ParticleSystem {
- id: sys
- width: 360
- height: 600
- running: true
- Rectangle {
- z: -1
- anchors.fill: parent
- color: "black"
- }
-
- property real petalLength: 180
- property real petalRotation: 0
- NumberAnimation on petalRotation {
- from: 0;
- to: 360;
- loops: -1;
- running: true
- duration: 24000
- }
-
- function convert(a) {return a*(Math.PI/180);}
- Emitter {
- lifeSpan: 4000
- emitRate: 120
- size: 12
- anchors.centerIn: parent
- //! [0]
- onEmitParticles: {
- for (var i=0; i<particles.length; i++) {
- var particle = particles[i];
- particle.startSize = Math.max(02,Math.min(492,Math.tan(particle.t/2)*24));
- var theta = Math.floor(Math.random() * 6.0);
- particle.red = theta == 0 || theta == 1 || theta == 2 ? 0.2 : 1;
- particle.green = theta == 2 || theta == 3 || theta == 4 ? 0.2 : 1;
- particle.blue = theta == 4 || theta == 5 || theta == 0 ? 0.2 : 1;
- theta /= 6.0;
- theta *= 2.0*Math.PI;
- theta += sys.convert(sys.petalRotation);//Convert from degrees to radians
- particle.initialVX = petalLength * Math.cos(theta);
- particle.initialVY = petalLength * Math.sin(theta);
- particle.initialAX = particle.initialVX * -0.5;
- particle.initialAY = particle.initialVY * -0.5;
- }
- }
- //! [0]
- }
-
- ImageParticle {
- source: "../images/particle4.png"
- alpha: 0.0
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/content/emitmask.qml b/basicsuite/Qt5 Particles Demo/content/emitmask.qml
deleted file mode 100644
index 575f9a1..0000000
--- a/basicsuite/Qt5 Particles Demo/content/emitmask.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- color: "goldenrod"
- width: 400
- height: 400
- ParticleSystem {
- width: 300
- height: 300
- anchors.centerIn: parent
-
- ImageParticle {
- source: "../images/particle.png"
- z: 2
- anchors.fill: parent
- color: "#336666CC"
- colorVariation: 0.0
- }
-
- Emitter {
- anchors.fill: parent
- emitRate: 6000
- lifeSpan: 720
- size: 10
- //! [0]
- shape: MaskShape {
- source: "../images/starfish_mask.png"
- }
- //! [0]
- }
-
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/content/maximumemitted.qml b/basicsuite/Qt5 Particles Demo/content/maximumemitted.qml
deleted file mode 100644
index cf87159..0000000
--- a/basicsuite/Qt5 Particles Demo/content/maximumemitted.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- color: "black"
- width: 360
- height: 540
- ParticleSystem {
- id: sys
- anchors.fill: parent
- onEmptyChanged: if (empty) sys.pause();
-
- ImageParticle {
- system: sys
- id: cp
- source: "../images/particle.png"
- colorVariation: 0.4
- color: "#000000FF"
- }
-
- Emitter {
- //burst on click
- id: bursty
- system: sys
- enabled: ma.pressed
- x: ma.mouseX
- y: ma.mouseY
- emitRate: 16000
- maximumEmitted: 4000
- acceleration: AngleDirection {angleVariation: 360; magnitude: 360; }
- size: 8
- endSize: 16
- sizeVariation: 4
- }
-
- MouseArea {
- anchors.fill: parent
- onPressed: sys.resume()
- id: ma
- }
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/content/shapeanddirection.qml b/basicsuite/Qt5 Particles Demo/content/shapeanddirection.qml
deleted file mode 100644
index 9d5ea98..0000000
--- a/basicsuite/Qt5 Particles Demo/content/shapeanddirection.qml
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- id: root
- width: 360
- height: 540
- color: "black"
- Image {
- anchors.fill: parent
- source: "../images/portal_bg.png"
- }
-
- ParticleSystem {
- id: particles
- anchors.fill: parent
-
- ImageParticle {
- groups: ["center","edge"]
- anchors.fill: parent
- source: "../images/particle.png"
- colorVariation: 0.1
- color: "#009999FF"
- }
-
- Emitter {
- anchors.fill: parent
- group: "center"
- emitRate: 400
- lifeSpan: 2000
- size: 20
- sizeVariation: 2
- endSize: 0
- //! [0]
- shape: EllipseShape {fill: false}
- velocity: TargetDirection {
- targetX: root.width/2
- targetY: root.height/2
- proportionalMagnitude: true
- magnitude: 0.5
- }
- //! [0]
- }
-
- Emitter {
- anchors.fill: parent
- group: "edge"
- startTime: 2000
- emitRate: 2000
- lifeSpan: 2000
- size: 28
- sizeVariation: 2
- endSize: 16
- shape: EllipseShape {fill: false}
- velocity: TargetDirection {
- targetX: root.width/2
- targetY: root.height/2
- proportionalMagnitude: true
- magnitude: 0.1
- magnitudeVariation: 0.1
- }
- acceleration: TargetDirection {
- targetX: root.width/2
- targetY: root.height/2
- targetVariation: 200
- proportionalMagnitude: true
- magnitude: 0.1
- magnitudeVariation: 0.1
- }
- }
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/content/trailemitter.qml b/basicsuite/Qt5 Particles Demo/content/trailemitter.qml
deleted file mode 100644
index d876bbb..0000000
--- a/basicsuite/Qt5 Particles Demo/content/trailemitter.qml
+++ /dev/null
@@ -1,176 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- id: root
- width: 360
- height: 540
- color: "black"
-
- ParticleSystem {
- id: particles
- anchors.fill: parent
-
- ImageParticle {
- id: smoke
- system: particles
- anchors.fill: parent
- groups: ["A", "B"]
- source: "../images/particle.png"
- colorVariation: 0
- color: "#00111111"
- }
- ImageParticle {
- id: flame
- anchors.fill: parent
- system: particles
- groups: ["C", "D"]
- source: "../images/particle.png"
- colorVariation: 0.1
- color: "#00ff400f"
- }
-
- Emitter {
- id: fire
- system: particles
- group: "C"
-
- y: parent.height
- width: parent.width
-
- emitRate: 350
- lifeSpan: 3500
-
- acceleration: PointDirection { y: -17; xVariation: 3 }
- velocity: PointDirection {xVariation: 3}
-
- size: 24
- sizeVariation: 8
- endSize: 4
- }
-
- TrailEmitter {
- id: fireSmoke
- group: "B"
- system: particles
- follow: "C"
- width: root.width
- height: root.height - 68
-
- emitRatePerParticle: 1
- lifeSpan: 2000
-
- velocity: PointDirection {y:-17*6; yVariation: -17; xVariation: 3}
- acceleration: PointDirection {xVariation: 3}
-
- size: 36
- sizeVariation: 8
- endSize: 16
- }
-
- TrailEmitter {
- id: fireballFlame
- anchors.fill: parent
- system: particles
- group: "D"
- follow: "E"
-
- emitRatePerParticle: 120
- lifeSpan: 180
- emitWidth: TrailEmitter.ParticleSize
- emitHeight: TrailEmitter.ParticleSize
- emitShape: EllipseShape{}
-
- size: 16
- sizeVariation: 4
- endSize: 4
- }
-
- TrailEmitter {
- id: fireballSmoke
- anchors.fill: parent
- system: particles
- group: "A"
- follow: "E"
-
- emitRatePerParticle: 128
- lifeSpan: 2400
- emitWidth: TrailEmitter.ParticleSize
- emitHeight: TrailEmitter.ParticleSize
- emitShape: EllipseShape{}
-
- velocity: PointDirection {yVariation: 16; xVariation: 16}
- acceleration: PointDirection {y: -16}
-
- size: 24
- sizeVariation: 8
- endSize: 8
- }
-
- Emitter {
- id: balls
- system: particles
- group: "E"
-
- y: parent.height
- width: parent.width
-
- emitRate: 2
- lifeSpan: 7000
-
- velocity: PointDirection {y:-17*4*2; xVariation: 6*6}
- acceleration: PointDirection {y: 17*2; xVariation: 6*6}
-
- size: 8
- sizeVariation: 4
- }
-
- Turbulence { //A bit of turbulence makes the smoke look better
- anchors.fill: parent
- groups: ["A","B"]
- strength: 32
- system: particles
- }
- }
-}
-
diff --git a/basicsuite/Qt5 Particles Demo/content/velocityfrommotion.qml b/basicsuite/Qt5 Particles Demo/content/velocityfrommotion.qml
deleted file mode 100644
index 40698b1..0000000
--- a/basicsuite/Qt5 Particles Demo/content/velocityfrommotion.qml
+++ /dev/null
@@ -1,312 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
-
- id: root
-
- height: 540
- width: 360
-
- gradient: Gradient {
- GradientStop { position: 0; color: "#000020" }
- GradientStop { position: 1; color: "#000000" }
- }
-
- MouseArea {
- id: mouseArea
- anchors.fill: root
- }
-
- ParticleSystem { id: sys1 }
- ImageParticle {
- system: sys1
- source: "../images/particle.png"
- color: "cyan"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "cyan"
- to: "magenta"
- duration: 1000
- }
- ColorAnimation {
- from: "magenta"
- to: "blue"
- duration: 2000
- }
- ColorAnimation {
- from: "blue"
- to: "violet"
- duration: 2000
- }
- ColorAnimation {
- from: "violet"
- to: "cyan"
- duration: 2000
- }
- }
- colorVariation: 0.3
- }
- //! [0]
- Emitter {
- id: trailsNormal
- system: sys1
-
- emitRate: 500
- lifeSpan: 2000
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
- velocityFromMovement: 8
-
- size: 8
- sizeVariation: 4
- }
- //! [0]
- ParticleSystem { id: sys2 }
- ImageParticle {
- color: "cyan"
- system: sys2
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "magenta"
- to: "cyan"
- duration: 1000
- }
- ColorAnimation {
- from: "cyan"
- to: "magenta"
- duration: 2000
- }
- }
- colorVariation: 0.5
- source: "../images/star.png"
- }
- Emitter {
- id: trailsStars
- system: sys2
-
- emitRate: 100
- lifeSpan: 2200
-
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
- velocityFromMovement: 8
-
- size: 22
- sizeVariation: 4
- }
- ParticleSystem { id: sys3; }
- ImageParticle {
- source: "../images/particle.png"
- system: sys3
- color: "orange"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "red"
- to: "green"
- duration: 2000
- }
- ColorAnimation {
- from: "green"
- to: "red"
- duration: 2000
- }
- }
-
- colorVariation: 0.2
-
- }
- Emitter {
- id: trailsNormal2
- system: sys3
-
- emitRate: 300
- lifeSpan: 2000
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
-
- velocityFromMovement: 16
-
- velocity: PointDirection {xVariation: 4; yVariation: 4;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
-
- size: 12
- sizeVariation: 4
- }
- ParticleSystem { id: sys4; }
- ImageParticle {
- system: sys4
- source: "../images/star.png"
- color: "green"
- alpha: 0
- SequentialAnimation on color {
- loops: Animation.Infinite
- ColorAnimation {
- from: "green"
- to: "red"
- duration: 2000
- }
- ColorAnimation {
- from: "red"
- to: "green"
- duration: 2000
- }
- }
-
- colorVariation: 0.5
- }
- Emitter {
- id: trailsStars2
- system: sys4
-
- emitRate: 50
- lifeSpan: 2200
-
-
- y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
- x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
-
- velocityFromMovement: 16
- velocity: PointDirection {xVariation: 2; yVariation: 2;}
- acceleration: PointDirection {xVariation: 10; yVariation: 10;}
-
- size: 22
- sizeVariation: 4
- }
-
-
-
- color: "white"
-
- Item {
- id: circle
- //anchors.fill: parent
- property real radius: 0
- property real dx: root.width / 2
- property real dy: root.height / 2
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- duration: 1000
- from: 1
- to: 0
- loops: 8
- }
- NumberAnimation {
- duration: 1000
- from: 0
- to: 1
- loops: 8
- }
-
- }
-
- SequentialAnimation on radius {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- duration: 4000
- from: 0
- to: 100
- }
- NumberAnimation {
- duration: 4000
- from: 100
- to: 0
- }
- }
- }
-
- Item {
- id: circle3
- property real radius: 100
- property real dx: root.width / 2
- property real dy: root.height / 2
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation { from: 0.0; to: 1 ; duration: 10000; }
- }
- }
-
- Item {
- id: circle2
- property real radius: 30
- property real dx: circle3.cx
- property real dy: circle3.cy
- property real cx: radius * Math.sin(percent*6.283185307179) + dx
- property real cy: radius * Math.cos(percent*6.283185307179) + dy
- property real percent: 0
-
- SequentialAnimation on percent {
- loops: Animation.Infinite
- running: true
- NumberAnimation { from: 0.0; to: 1 ; duration: 1000; }
- }
- }
-
-}
diff --git a/basicsuite/Qt5 Particles Demo/doc/src/emitters.qdoc b/basicsuite/Qt5 Particles Demo/doc/src/emitters.qdoc
deleted file mode 100644
index 5644ab1..0000000
--- a/basicsuite/Qt5 Particles Demo/doc/src/emitters.qdoc
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: http://www.gnu.org/copyleft/fdl.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-/*!
- \title QtQuick.Particles Examples - Emitters
- \example quick/particles/emitters
- \brief This is a collection of examples using Emitters in the QML particle system.
- \image qml-emitters-example.png
-
- This is a collection of small QML examples relating to using Emitters in the particle system.
- Each example is a small QML file emphasizing a particular element or feature.
-
- Velocity from motion gives the effect of strong particle motion through primarily moving the emitters:
- \snippet quick/particles/emitters/content/velocityfrommotion.qml 0
-
- Burst and pulse calls the burst and pulse methods on two idential emitters.
- \snippet quick/particles/emitters/content/burstandpulse.qml 0
- Note how burst takes an argument of number of particles to emit, and pulse takes an argument of number of milliseconds to emit for.
- This gives a slightly different behaviour, which is easy to see in this example.
-
- Custom Emitter connects to the emitParticles signal to set arbitrary values on particle data as they're emitted;
- \snippet quick/particles/emitters/content/customemitter.qml 0
- This is used to emit curving particles in six rotating spokes.
-
- Emit mask sets an image mask on the Emitter, to emit out of an arbitrary shape.
- \snippet quick/particles/emitters/content/emitmask.qml 0
-
- Maximum emitted emits no more than a certain number of particles at a time. This example makes it easy to see what happens when the limit is reached.
-
- Shape and Direction emits particles out of an unfilled Ellipse shape, using a TargetDirection
- \snippet quick/particles/emitters/content/shapeanddirection.qml 0
- This sends the particles towards the center of the ellipse with proportional speed, keeping the ellipse outline as they move to the center.
-
- TrailEmitter uses that element to add smoke particles to trail the fire particles in the scene.
- \snippet quick/particles/emitters/content/customemitter.qml 0
-
-*/
diff --git a/basicsuite/Qt5 Particles Demo/main.cpp b/basicsuite/Qt5 Particles Demo/main.cpp
deleted file mode 100644
index 66e7ce4..0000000
--- a/basicsuite/Qt5 Particles Demo/main.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "../../shared/shared.h"
-DECLARATIVE_EXAMPLE_MAIN(particles/emitters/emitters)
diff --git a/basicsuite/Qt5 Particles Demo/main.qml b/basicsuite/Qt5 Particles Demo/main.qml
deleted file mode 100644
index 2b9a338..0000000
--- a/basicsuite/Qt5 Particles Demo/main.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "shared" as Examples
-
-Item {
- height: 480
- width: 320
- Examples.LauncherList {
- id: ll
- anchors.fill: parent
- Component.onCompleted: {
- addExample("Velocity from Motion", "Particle motion just by moving emitters", Qt.resolvedUrl("content/velocityfrommotion.qml"));
- addExample("Burst and Pulse", "Emit imperatively", Qt.resolvedUrl("content/burstandpulse.qml"));
- addExample("Custom Emitter", "Custom starting state", Qt.resolvedUrl("content/customemitter.qml"));
- addExample("Emit Mask", "Emit arbitrary shapes", Qt.resolvedUrl("content/emitmask.qml"));
- addExample("Maximum Emitted", "Put a limit on emissions", Qt.resolvedUrl("content/maximumemitted.qml"));
- addExample("Shape and Direction", "Creates a portal effect", Qt.resolvedUrl("content/shapeanddirection.qml"));
- addExample("TrailEmitter", "Emit from other particles", Qt.resolvedUrl("content/trailemitter.qml"));
- }
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/shared/Button.qml b/basicsuite/Qt5 Particles Demo/shared/Button.qml
deleted file mode 100644
index 9bbc01a..0000000
--- a/basicsuite/Qt5 Particles Demo/shared/Button.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: container
-
- property string text: "Button"
- property string subText: ""
- signal clicked
- property alias containsMouse: mouseArea.containsMouse
- property alias pressed: mouseArea.pressed
- implicitHeight: col.height
- height: implicitHeight
- width: buttonLabel.width + 20
-
- MouseArea {
- id: mouseArea
- anchors.fill: parent
- onClicked: container.clicked()
- hoverEnabled: true
- }
-
- Column {
- spacing: 2
- id: col
- anchors.verticalCenter: parent.verticalCenter
- width: parent.width
- Text {
- id: buttonLabel
- anchors.left: parent.left
- anchors.leftMargin: 10
- anchors.right: parent.right
- anchors.rightMargin: 10
- text: container.text
- color: "black"
- font.pixelSize: 22
- wrapMode: Text.WrapAtWordBoundaryOrAnywhere
- styleColor: "white"
- style: Text.Raised
-
- }
- Text {
- id: buttonLabel2
- anchors.left: parent.left
- anchors.leftMargin: 10
- text: container.subText
- wrapMode: Text.WrapAtWordBoundaryOrAnywhere
- color: "#666"
- font.pixelSize: 12
- }
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/shared/LauncherList.qml b/basicsuite/Qt5 Particles Demo/shared/LauncherList.qml
deleted file mode 100644
index 4336cf3..0000000
--- a/basicsuite/Qt5 Particles Demo/shared/LauncherList.qml
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-
-Item {
- //model is a list of {"name":"somename", "url":"file:///some/url/mainfile.qml"}
- //function used to add to model A) to enforce scheme B) to allow Qt.resolveUrl in url assignments
-
- function addExample(name, desc, url)
- {
- myModel.append({"name":name, "description":desc, "url":url})
- }
- function hideExample()
- {
- ei.visible = false;
- }
-
- ListView {
- clip: true
- delegate: SimpleLauncherDelegate{exampleItem: ei}
- model: ListModel {id:myModel}
- anchors.fill: parent
- visible: !ei.visible
- }
-
- Item {
- id: ei
- visible: false
- clip: true
- property url exampleUrl
- onExampleUrlChanged: visible = (exampleUrl == '' ? false : true); //Setting exampleUrl automatically shows example
- anchors.fill: parent
- anchors.bottomMargin: 40
- MouseArea{
- anchors.fill: parent
- enabled: ei.visible
- //Eats mouse events
- }
- Loader{
- focus: true
- source: ei.exampleUrl
- anchors.fill: parent
- }
- }
- Rectangle {
- id: bar
- visible: ei.visible
- anchors.bottom: parent.bottom
- width: parent.width
- height: 40
-
- Rectangle {
- height: 1
- color: "#ccc"
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- }
-
- Rectangle {
- height: 1
- color: "#fff"
- anchors.top: parent.top
- anchors.topMargin: 1
- anchors.left: parent.left
- anchors.right: parent.right
- }
-
- gradient: Gradient {
- GradientStop { position: 0 ; color: "#eee" }
- GradientStop { position: 1 ; color: "#ccc" }
- }
-
- MouseArea{
- anchors.fill: parent
- enabled: ei.visible
- //Eats mouse events
- }
-
- Image {
- id: back
- source: "images/back.png"
- anchors.verticalCenter: parent.verticalCenter
- anchors.verticalCenterOffset: 2
- anchors.left: parent.left
- anchors.leftMargin: 16
-
- MouseArea {
- id: mouse
- hoverEnabled: true
- anchors.centerIn: parent
- width: 38
- height: 31
- anchors.verticalCenterOffset: -1
- onClicked: ei.exampleUrl = ""
- Rectangle {
- anchors.fill: parent
- opacity: mouse.pressed ? 1 : 0
- Behavior on opacity { NumberAnimation{ duration: 100 }}
- gradient: Gradient {
- GradientStop { position: 0 ; color: "#22000000" }
- GradientStop { position: 0.2 ; color: "#11000000" }
- }
- border.color: "darkgray"
- antialiasing: true
- radius: 4
- }
- }
- }
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/shared/SimpleLauncherDelegate.qml b/basicsuite/Qt5 Particles Demo/shared/SimpleLauncherDelegate.qml
deleted file mode 100644
index e891266..0000000
--- a/basicsuite/Qt5 Particles Demo/shared/SimpleLauncherDelegate.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-
-Rectangle {
- id: container
- property Item exampleItem
- width: ListView.view.width
- height: button.implicitHeight + 22
-
- gradient: Gradient {
- GradientStop {
- position: 0
- Behavior on color {ColorAnimation { duration: 100 }}
- color: button.pressed ? "#e0e0e0" : "#fff"
- }
- GradientStop {
- position: 1
- Behavior on color {ColorAnimation { duration: 100 }}
- color: button.pressed ? "#e0e0e0" : button.containsMouse ? "#f5f5f5" : "#eee"
- }
- }
-
- Image {
- id: image
- opacity: 0.7
- Behavior on opacity {NumberAnimation {duration: 100}}
- source: "images/next.png"
- anchors.verticalCenter: parent.verticalCenter
- anchors.right: parent.right
- anchors.rightMargin: 16
- }
-
- Button {
- id: button
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.bottom: parent.bottom
- anchors.right:image.left
- text: name
- subText: description
- onClicked: exampleItem.exampleUrl = url;
- }
-
- Rectangle {
- height: 1
- color: "#ccc"
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- }
-}
diff --git a/basicsuite/Qt5 Particles Demo/shared/shared.h b/basicsuite/Qt5 Particles Demo/shared/shared.h
deleted file mode 100644
index eab15f3..0000000
--- a/basicsuite/Qt5 Particles Demo/shared/shared.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <QDir>
-#include <QGuiApplication>
-#include <QQmlEngine>
-#include <QQuickView>
-#define DECLARATIVE_EXAMPLE_MAIN(NAME) int main(int argc, char* argv[]) \
-{\
- QGuiApplication app(argc,argv);\
- QQuickView view;\
- view.connect(view.engine(), SIGNAL(quit()), &app, SLOT(quit()));\
- view.setSource(QUrl("qrc:///" #NAME ".qml")); \
- if (QGuiApplication::platformName() == QLatin1String("qnx") || \
- QGuiApplication::platformName() == QLatin1String("eglfs")) {\
- view.setResizeMode(QQuickView::SizeRootObjectToView);\
- view.showFullScreen();\
- } else {\
- view.show();\
- }\
- return app.exec();\
-}
diff --git a/basicsuite/Qt5Everywhere/Button.qml b/basicsuite/Qt5Everywhere/Button.qml
deleted file mode 100644
index 43e93b8..0000000
--- a/basicsuite/Qt5Everywhere/Button.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: root
- width: (app.height + app.width) * 0.04
- height: width
-
- property string imageSource : ""
- property double rotation: 0
- signal clicked()
-
- Image {
- id: buttonImage
- anchors.fill: root
- anchors.margins: 0
- source: root.imageSource
- opacity: 1.0
- rotation: root.rotation
- }
-
- MouseArea {
- id: buttonMouseArea
- anchors.fill: root
- anchors.margins: -20
- hoverEnabled: true
- onClicked: root.clicked()
- onEntered: buttonImage.anchors.margins = -(root.width * 0.1)
- onExited: buttonImage.anchors.margins = 0
- onPressed: {buttonImage.opacity = 0.7; buttonImage.anchors.margins = -(root.width * 0.1)}
- onReleased: { buttonImage.opacity = 1.0; buttonImage.anchors.margins = 0}
- }
-}
diff --git a/basicsuite/Qt5Everywhere/Cloud.qml b/basicsuite/Qt5Everywhere/Cloud.qml
deleted file mode 100644
index b399308..0000000
--- a/basicsuite/Qt5Everywhere/Cloud.qml
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: cloudRoot
- x: app.width
- y: randomY+deltaY
- width: app.width*0.2
- height: width*0.4
-
- property int duration: 20000
- property string sourceImage: ""
- property real deltaY: 0
- property real randomY: app.height*0.3
- property real amplitudeY: app.height*0.2
-
- function start() {
- recalculate()
- cloudXAnimation.restart();
- cloudYAnimation.restart();
- }
-
- function recalculate() {
- cloudRoot.duration = Math.random()*15000 + 10000
- cloudRoot.x = app.width
- cloudRoot.randomY = Math.random()*app.height
- cloudRoot.width = app.width*0.2
- cloudRoot.height = cloudRoot.width*0.4
- cloudRoot.scale = Math.random()*0.6 + 0.7
- }
-
- Image {
- id: cloud
- anchors.fill: cloudRoot
- source: cloudRoot.sourceImage
- }
-
- SequentialAnimation{
- id: cloudYAnimation
- NumberAnimation { target: cloudRoot; property: "deltaY"; duration: cloudRoot.duration*0.3; from: 0; to:cloudRoot.amplitudeY; easing.type: Easing.InOutQuad }
- NumberAnimation { target: cloudRoot; property: "deltaY"; duration: cloudRoot.duration*0.3; from: cloudRoot.amplitudeY; to:0; easing.type: Easing.InOutQuad }
- running: true
- onRunningChanged: {
- if (!running) {
- cloudRoot.amplitudeY = Math.random() * (app.height*0.2)
- restart()
- }
- }
- }
-
- NumberAnimation {
- id: cloudXAnimation
- target: cloudRoot
- property: "x"
- duration: cloudRoot.duration
- to:-cloudRoot.width
- running: true
-
- onRunningChanged: {
- if (!running) {
- recalculate()
- restart()
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/DialogButton.qml b/basicsuite/Qt5Everywhere/DialogButton.qml
deleted file mode 100644
index 7f24e5d..0000000
--- a/basicsuite/Qt5Everywhere/DialogButton.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: button
- radius: 10
- height: 0.3 * dialog.height
- width: dialog.width * 0.5 - dialog.dialogMargin
- color: "transparent"
-
- property string buttonText
- signal clicked()
-
- Text {
- anchors.centerIn: parent
- text: button.buttonText
- font.pixelSize: 0.4 * button.height
- color: "#ffffff"
- }
-
- MouseArea {
- anchors.fill: parent
- onPressed: parent.color = Qt.rgba(0.2, 0.2, 0.2, 0.4)
- onReleased: parent.color = "transparent"
- onClicked: button.clicked()
- }
-}
diff --git a/basicsuite/Qt5Everywhere/Element.qml b/basicsuite/Qt5Everywhere/Element.qml
deleted file mode 100644
index 097a3fc..0000000
--- a/basicsuite/Qt5Everywhere/Element.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: root
- width: 1
- height: 1
-
- property int itemId : 1
-
- Image {
- id: elementImage
- anchors.centerIn: root
- z: 5
- }
-
- Component.onCompleted: {
- elementImage.source = root.itemId === 1 ? "images/tree1.png" :
- root.itemId === 2 ? "images/tree2.png" :
- root.itemId === 3 ? "images/mountain.png" :
- root.itemId === 4 ? "images/stones.png" :
- root.itemId === 5 ? "images/box_open.png" :
- root.itemId === 6 ? "images/box.png" :
- root.itemId === 10 ? "images/character0.png" :
- root.itemId === 11 ? "images/character1.png" :
- root.itemId === 12 ? "images/character3.png" :
- root.itemId === 13 ? "images/character7.png" :
- root.itemId === 14 ? "images/character8.png" :
- root.itemId === 15 ? "images/character9.png" :
- root.itemId === 20 ? "images/character2.png" :
- root.itemId === 21 ? "images/character4.png" :
- root.itemId === 22 ? "images/character5.png" :
- root.itemId === 23 ? "images/character6.png" :
- root.itemId === 24 ? "images/character10.png" :
- ""
- }
-}
diff --git a/basicsuite/Qt5Everywhere/Group.qml b/basicsuite/Qt5Everywhere/Group.qml
deleted file mode 100644
index 6ee3304..0000000
--- a/basicsuite/Qt5Everywhere/Group.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "style.js" as Style
-
-Item {
- id: group
- objectName: "group"
-
- property int uid: 0
- property real targetScale: 1
- property int textX: 0
- property int textY: 0
- property string name: "Text"
- property real imageScale: 6.0
-
- property int fontSize: 160
- property string uiFont: Style.FONT_FAMILY
- property bool bold: true
- property int fontTransition: 6
-
- Text {
- text: group.name
- x: textX
- y: textY
- font.pixelSize: group.fontSize
- font.family: Style.FONT_FAMILY
- font.bold: group.bold
- color: "#42200a"
- smooth: true
-
- Text {
- text: group.name
- color: "#1d6cb0"
- x:group.fontTransition
- y:-group.fontTransition
- font.pixelSize: group.fontSize
- font.family: Style.FONT_FAMILY
- font.bold: group.bold
- smooth: true
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/HelpScreen.qml b/basicsuite/Qt5Everywhere/HelpScreen.qml
deleted file mode 100644
index 3fb540c..0000000
--- a/basicsuite/Qt5Everywhere/HelpScreen.qml
+++ /dev/null
@@ -1,329 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "style.js" as Style
-
-Item {
- id: root
- anchors.fill:parent
- property int delay: 500
- property int rotationAngle:0
-
- SequentialAnimation {
- id: closeAnimation
-
- ScriptAction{
- script: {
- pointer.visible = false
- instructionText.text = ""
- instructionText2.text = ""
- highlightImage.smooth = false
- highlight.size = Math.max(root.height, root.width)*2.5
- }
- }
-
- PauseAnimation { duration: root.delay }
-
- onRunningChanged: if (!running){
- stopAnimations()
- root.visible=false
- highlight.size=0
- highlightImage.smooth = true
- }
- }
-
-
- Item{
- id: highlight
- property int size: 0
- property bool hidden: false
- width:1
- height:1
- Behavior on x {NumberAnimation{duration: root.delay}}
- Behavior on y {NumberAnimation{duration: root.delay}}
- Behavior on size {id: sizeBehavior; NumberAnimation{duration: root.delay}}
- }
-
- Image{
- id: highlightImage
- anchors.centerIn: highlight
- width: highlight.hidden? 0: highlight.size
- height: highlight.hidden? 0: highlight.size
- source: "images/highlight_mask.png"
- opacity: .8
- smooth: true
- }
-
- Rectangle{
- id: top
- anchors {left:parent.left; top: parent.top; right: parent.right; bottom: highlightImage.top}
- color: "black"
- opacity: .8
- }
-
- Rectangle{
- id: bottom
- anchors {left:parent.left; top: highlightImage.bottom; right: parent.right; bottom: parent.bottom}
- color: "black"
- opacity: .8
- }
-
- Rectangle{
- id: left
- anchors {left:parent.left; top: highlightImage.top; right: highlightImage.left; bottom: highlightImage.bottom}
- color: "black"
- opacity: .8
- }
-
- Rectangle{
- id: right
- anchors {left:highlightImage.right; top: highlightImage.top; right: parent.right; bottom: highlightImage.bottom}
- color: "black"
- opacity: .8
- }
-
- Text{
- id: instructionText
- anchors {horizontalCenter: parent.horizontalCenter; top: parent.top; topMargin: parent.height*.05}
- text: ""
- font.pixelSize: parent.width*.075
- font.family: Style.FONT_FAMILY
- smooth: true
- color: "white"
-
- Text{
- id: instructionText2
- anchors {horizontalCenter: parent.horizontalCenter; top: parent.bottom; topMargin: -parent.height/2}
- text: ""
- font.pixelSize: parent.font.pixelSize
- font.family: Style.FONT_FAMILY
- smooth: true
- color: "white"
- }
- }
-
- Item{
- id: pointer
- width: parent.width*.3
- height: parent.width*.3
-
- Image{
- id: handImage
- width: parent.width*.8
- height: width
- source: "images/hand.png"
- y: parent.height/2-height/2
- x: parent.width/2-width/2+deltaX
- property int deltaX:0
- anchors.verticalCenter: parent.verticalCenter
- rotation: 90
-
- SequentialAnimation{
- id: pointingAnimation
- PauseAnimation { duration: root.delay}
- NumberAnimation{
- target: handImage
- property: "deltaX"
- from: -handImage.width*.2
- to: handImage.width*.2
- duration: 500
- easing.type: Easing.InOutCubic
- }
- PauseAnimation { duration: 200 }
- NumberAnimation{
- target: handImage
- property: "deltaX"
- from: handImage.width*.2
- to: -handImage.width*.2
- duration: 500
- easing.type: Easing.InOutCubic
-
- }
- }
-
- }
- }
-
- SequentialAnimation {
- id: helpAnimation
- loops: Animation.Infinite
-
- PauseAnimation { duration: 1000 }
- PropertyAction { target: handImage; property: "mirror"; value: true}
- PropertyAction { target: instructionText; property: "text"; value: "Tap on the devices to"}
- PropertyAction { target: instructionText2; property: "text"; value: "open applications"}
- PropertyAction { target: pointer; property: "visible"; value: true}
- PropertyAction { target: highlight; property: "hidden"; value: false}
-
- SequentialAnimation {
- id: clickAnimation
- property int index: 0
- property variant uids: [8,12]
- loops: 2
-
- ScriptAction{
- script: {
- clickAnimation.index+=1
- if (clickAnimation.index>=clickAnimation.uids.length) clickAnimation.index=0
- }
- }
-
- ScriptAction{
- script: {
- highlight.size= (700+clickAnimation.index*100)*canvas.scalingFactor
-
- highlight.x=root.width/2 +getPosition(clickAnimation.uids[clickAnimation.index]).x*canvas.scalingFactor
- highlight.y=root.height/2 +getPosition(clickAnimation.uids[clickAnimation.index]).y*canvas.scalingFactor
-
- pointer.x= root.width/2 -pointer.width/2 +getPosition(clickAnimation.uids[clickAnimation.index]).x*canvas.scalingFactor*.5
- pointer.y= root.height/2 -pointer.height/2 +getPosition(clickAnimation.uids[clickAnimation.index]).y*canvas.scalingFactor*.5
- pointer.rotation=Math.atan2(getPosition(clickAnimation.uids[clickAnimation.index]).y*canvas.scalingFactor, getPosition(clickAnimation.uids[clickAnimation.index]).x*canvas.scalingFactor)*180.0/Math.PI
- pointingAnimation.restart()
- }
- }
-
- PauseAnimation { duration: 3000 }
- }
- PauseAnimation { duration: 1000 }
-
- SequentialAnimation{
- id: navigationAnimation
- PropertyAction { target: handImage; property: "mirror"; value: false}
- PropertyAction { target: instructionText; property: "text"; value: "Use the Arrow to navigate"}
- PropertyAction { target: instructionText2; property: "text"; value: "between applications"}
- ScriptAction{
- script: {
- highlight.size= Math.min(root.width, root.height)*.4
-
- var _x=0;
- var _y=0;
-
- if (root.width > root.height){
- _x = navigationPanel.x+navigationPanel.width /2
- _y = navigationPanel.y+navigationPanel.height*.33
- pointer.x= root.width/2 -pointer.width/2 +root.width*.2
- pointer.y= root.height/2 -pointer.height/2
- highlight.x=_x
- highlight.y=_y
-
- }else{
- _x=navigationPanel.x+navigationPanel.width*.33
- _y=navigationPanel.y + navigationPanel.height /2
- pointer.x= root.width/2 -pointer.width/2
- pointer.y= root.height/2 -pointer.height/2 +root.height*.2
- highlight.x=_x
- highlight.y=_y
- }
-
- pointer.rotation=Math.atan2(_y-(pointer.y+pointer.height/2), _x-(pointer.x+pointer.width/2))*180.0/Math.PI
-
- pointingAnimation.restart()
- }
- }
- PauseAnimation { duration: 5000 }
-
- PropertyAction { target: instructionText; property: "text"; value: "Use the Home button to"}
- PropertyAction { target: instructionText2; property: "text"; value: "return to the beginning"}
- ScriptAction{
- script: {
- highlight.size= Math.min(root.width, root.height)*.3
-
- var _x=0;
- var _y=0;
-
- if (root.width > root.height){
- _x = navigationPanel.x+navigationPanel.width /2
- _y = navigationPanel.y+navigationPanel.height-navigationPanel.width /2
- pointer.x= root.width/2 -pointer.width/2 +root.width*.2
- pointer.y= root.height/2 -pointer.height/2
- highlight.x=_x
- highlight.y=_y
-
- }else{
- _x=navigationPanel.x+navigationPanel.width-navigationPanel.height /2
- _y=navigationPanel.y + navigationPanel.height /2
- pointer.x= root.width/2 -pointer.width/2
- pointer.y= root.height/2 -pointer.height/2 +root.height*.2
- highlight.x=_x
- highlight.y=_y
- }
- pointer.rotation=Math.atan2(_y-(pointer.y+pointer.height/2), _x-(pointer.x+pointer.width/2))*180.0/Math.PI
-
- pointingAnimation.restart()
- }
- }
- PauseAnimation { duration: 5000 }
- }
-
- }
-
- onWidthChanged: if (visible) show()
- onHeightChanged: if (visible) show()
-
- function show(){
- highlight.hidden = true
-
- pointer.visible = false
- rotationAngle = 0
-
- startAnimations()
- visible = true
- }
-
- function startAnimations(){
- pointingAnimation.restart()
- helpAnimation.restart()
- }
-
- function stopAnimations(){
- pointingAnimation.stop()
- helpAnimation.stop()
- }
-
- MouseArea{
- anchors.fill: root
- onClicked: {
- stopAnimations()
- closeAnimation.restart()
- }
- }
-}
-
diff --git a/basicsuite/Qt5Everywhere/IslandElementContainer.qml b/basicsuite/Qt5Everywhere/IslandElementContainer.qml
deleted file mode 100644
index c191d68..0000000
--- a/basicsuite/Qt5Everywhere/IslandElementContainer.qml
+++ /dev/null
@@ -1,158 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: elementContainer
-
- width: place == 2 ? parent.width : (islandWidth-parent.width)/2
- height: place == 2 ? 0.1*islandHeight : 0.4*islandHeight
- x: place == 0 ? -width : place == 1 ? parent.width : 0
- y: place == 2 ? parent.height : (parent.height - height*0.6)
-
- property int place : 0
- property int itemWidth : islandWidth * 0.1
- property int islandWidth: 100
- property int islandHeight: 100
-
- function createElement(xx, yy, itemId) {
- var component = Qt.createComponent("Element.qml")
- if (component.status === Component.Ready)
- component.createObject(elementContainer, {"x": xx, "y": yy, "itemId": itemId});
- }
-
- function createElements()
- {
- // Left side
- if (place === 0) {
- var temp0 = Math.floor(Math.random()*6.9);
- switch(temp0) {
- case 0:
- createElement(elementContainer.width*0.4, elementContainer.height*0.2, 1);
- createElement(elementContainer.width*0.25, elementContainer.height*0.3, 1);
- createElement(elementContainer.width*0.15, elementContainer.height*0.5, 1);
- createElement(elementContainer.width*0.55, elementContainer.height*0.4, 1);
- break;
- case 1:
- createElement(elementContainer.width*0.6, elementContainer.height*0.1, 1);
- createElement(elementContainer.width*0.4, elementContainer.height*0.2, 1);
- createElement(elementContainer.width*0.7, elementContainer.height*0.3, 1);
- createElement(elementContainer.width*0.3, elementContainer.height*0.5, 1);
- break;
- case 2:
- createElement(elementContainer.width*0.6, elementContainer.height*0.1, 3);
- createElement(elementContainer.width*0.4, elementContainer.height*0.6, 4);
- createElement(elementContainer.width*0.8, elementContainer.height*0.8, 4);
- break;
- case 3:
- createElement(elementContainer.width*0.6, elementContainer.height*0.1, 3);
- createElement(elementContainer.width*0.4, elementContainer.height*0.4, 1);
- createElement(elementContainer.width*0.5, elementContainer.height*0.5, 2);
- createElement(elementContainer.width*0.7, elementContainer.height*0.6, 2);
- break;
- case 4:
- case 5:
- var characterId = 10 + Math.floor(Math.random()*5.9);
- createElement(elementContainer.width*0.7, elementContainer.height*0.3, characterId);
- break;
- default: break;
- }
- }
- else if (place === 1) {
- var temp1 = Math.floor(Math.random()*6.9);
- switch(temp1) {
- case 0:
- createElement(elementContainer.width*0.6, elementContainer.height*0.2, 1);
- createElement(elementContainer.width*0.75, elementContainer.height*0.3, 1);
- createElement(elementContainer.width*0.85, elementContainer.height*0.5, 1);
- createElement(elementContainer.width*0.45, elementContainer.height*0.4, 1);
- break;
- case 1:
- createElement(elementContainer.width*0.4, elementContainer.height*0.1, 1);
- createElement(elementContainer.width*0.6, elementContainer.height*0.2, 1);
- createElement(elementContainer.width*0.3, elementContainer.height*0.3, 1);
- createElement(elementContainer.width*0.7, elementContainer.height*0.5, 1);
- break;
- case 2:
- createElement(elementContainer.width*0.4, elementContainer.height*0.1, 3);
- createElement(elementContainer.width*0.6, elementContainer.height*0.6, 4);
- createElement(elementContainer.width*0.2, elementContainer.height*0.8, 4);
- break;
- case 3:
- createElement(elementContainer.width*0.4, elementContainer.height*0.1, 3);
- createElement(elementContainer.width*0.6, elementContainer.height*0.4, 2);
- createElement(elementContainer.width*0.5, elementContainer.height*0.5, 1);
- createElement(elementContainer.width*0.3, elementContainer.height*0.6, 2);
- break;
- case 4:
- case 5:
- var characterId1 = 20 + Math.floor(Math.random()*4.9);
- createElement(elementContainer.width*0.3, elementContainer.height*0.3, characterId1);
- break;
- default: break;
- }
- }
- else {
- var temp2 = Math.floor(Math.random()*4.9);
- switch(temp2) {
- case 0:
- createElement(elementContainer.width*0.8, elementContainer.height*0.8, 5);
- createElement(elementContainer.width*0.4, elementContainer.height*0.5, 5);
- break;
- case 1:
- createElement(elementContainer.width*0.1, elementContainer.height*0.5, 1);
- createElement(elementContainer.width*0.2, elementContainer.height*0.9, 2);
- createElement(elementContainer.width*0.6, elementContainer.height*0.8, 4);
- break;
- case 2:
- createElement(elementContainer.width*0.2, elementContainer.height*0.5, 6);
- createElement(elementContainer.width*0.7, elementContainer.height*0.6, 2);
- createElement(elementContainer.width*0.6, elementContainer.height*0.7, 1);
- break;
- case 3:
- createElement(elementContainer.width*0.2, elementContainer.height*0.8, 6);
- createElement(elementContainer.width*0.7, elementContainer.height*0.6, 6);
- break;
- default: break;
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/NavigationPanel.qml b/basicsuite/Qt5Everywhere/NavigationPanel.qml
deleted file mode 100644
index e73cc7f..0000000
--- a/basicsuite/Qt5Everywhere/NavigationPanel.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Grid {
- id: root
-
- function checkOrientation() {
- root.spacing = (app.height + app.width) * 0.02
-
- if (app.width >= app.height) {
- root.columns = 1
- root.anchors.bottom = undefined
- root.anchors.horizontalCenter = undefined
- root.anchors.right = app.right
- root.anchors.verticalCenter = app.verticalCenter
- root.anchors.rightMargin = app.width * 0.02
- root.anchors.bottomMargin = 0
- }
- else {
- root.columns = 3
- root.anchors.right = undefined
- root.anchors.verticalCenter = undefined
- root.anchors.bottom = app.bottom
- root.anchors.horizontalCenter = app.horizontalCenter
- root.anchors.rightMargin = 0
- root.anchors.bottomMargin = app.width * 0.02
- }
- }
-
- Button {
- id: nextButton
- imageSource: "images/btn_next.png"
- onClicked: canvas.goNext()
- }
-
- Button {
- id: prevButton
- imageSource: "images/btn_previous.png"
- onClicked: canvas.goPrevious()
- }
-
- Button {
- id: homeButton
- imageSource: app.navigationState === 0 && !helpscreen.visible ? "images/btn_help.png" : "images/btn_home.png"
- onClicked: {
- if (app.navigationState===0){
- helpscreen.show()
- return;
- }
- canvas.goBack()
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/Qt5Everywhere.pro b/basicsuite/Qt5Everywhere/Qt5Everywhere.pro
deleted file mode 100644
index 7168613..0000000
--- a/basicsuite/Qt5Everywhere/Qt5Everywhere.pro
+++ /dev/null
@@ -1,3 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS += \
- demos \
diff --git a/basicsuite/Qt5Everywhere/QuitDialog.qml b/basicsuite/Qt5Everywhere/QuitDialog.qml
deleted file mode 100644
index 897afb9..0000000
--- a/basicsuite/Qt5Everywhere/QuitDialog.qml
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: root
- anchors.fill: parent
- color: Qt.rgba(0.0, 0.0, 0.0, 0.7)
-
- signal yes()
- signal no()
-
- MouseArea {
- anchors.fill: parent
- }
-
- Rectangle {
- id: dialog
- anchors.centerIn: parent
- width: dialogText.paintedWidth * 1.1
- height: parent.height * 0.3
- property double dialogMargin: height * 0.05
-
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#222222" }
- GradientStop { position: 0.3; color: "#000000" }
- GradientStop { position: 1.0; color: "#111111" }
- }
- radius: 10
- border { color: "#999999"; width: 1 }
-
- Item {
- id: content
- anchors { left: parent.left; right: parent.right; top: parent.top }
- height: dialog.height * 0.6
-
- Text {
- id: dialogText
- anchors.centerIn: parent
- verticalAlignment: Text.AlignVCenter
- text: qsTr("Are you sure you want to quit?")
- color: "#ffffff"
- font.pixelSize: 0.2 *content.height
- }
- }
-
- Rectangle {
- id: line
- anchors { left: parent.left; right: parent.right; top: content.bottom }
- anchors.leftMargin: dialog.dialogMargin
- anchors.rightMargin: dialog.dialogMargin
- height: 1
- color: "#777777"
- }
-
- DialogButton {
- anchors { bottom: dialog.bottom; left:dialog.left; bottomMargin: dialog.dialogMargin; leftMargin: dialog.dialogMargin }
- buttonText: "Yes"
- onClicked: root.yes()
- }
- DialogButton {
- anchors { bottom: dialog.bottom; right:dialog.right; bottomMargin: dialog.dialogMargin; rightMargin: dialog.dialogMargin }
- buttonText: "No"
- onClicked: root.no()
- }
-
- }
-
-}
diff --git a/basicsuite/Qt5Everywhere/Slide.qml b/basicsuite/Qt5Everywhere/Slide.qml
deleted file mode 100644
index 36e0b08..0000000
--- a/basicsuite/Qt5Everywhere/Slide.qml
+++ /dev/null
@@ -1,252 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "style.js" as Style
-
-Item {
- id: slide
- objectName: "slide"
-
- property int uid: 0
- property int gid: 0
- property string url: ""
- property int device: 0
- property string imageSource: ""
- property bool loaded: false
- property bool loading: false
- property real targetScale: 1
- property bool animationRunning: navigationAnimation.running || zoomAnimation.running
- property int demoWidth: 603
- property int demoHeight: 378
- property int maskVerticalOffset: 51
- property int maskHorizontalOffset: 1
- property string demoColor: "#4353c3"
- property string name: ""
-
- function targetWidth()
- {
- return demoWidth*scale;
- }
-
- function targetHeight()
- {
- return demoHeight*scale;
- }
-
- Rectangle {
- id: demoBackground
- anchors.centerIn: parent
- width: demoContainer.width * 1.03
- height: demoContainer.height * 1.03
- color: "black"
- z: slide.loading || slide.loaded ? 1:-1
-
- Rectangle{
- id: demoContainer
- anchors.centerIn: parent
- width: demoWidth
- height: demoHeight
- color: demoColor
- clip: true
-
- Text {
- id: splashScreenText
- color: 'white'
- font.pixelSize: parent.width *.2
- font.family: Style.FONT_FAMILY
- text: slide.name
- anchors.centerIn: parent
- smooth: true
- visible: true
- }
- }
- }
-
- ShaderEffectSource{
- id: demo
- anchors.centerIn: parent
- width: demoWidth
- height: demoHeight
- sourceItem: demoContainer
- live: false
- visible: (hasSnapshot && !slide.loaded) || updating
- hideSource: visible && !updating && !loading
- clip: true
-
- property bool updating: false
- property bool hasSnapshot: false
-
- onScheduledUpdateCompleted: {
- updating = false
- hasSnapshot = true
- releaseDemo(true)
- }
- }
-
- Image {
- id: deviceMaskImage
- anchors.centerIn: parent
- anchors.verticalCenterOffset: maskVerticalOffset
- anchors.horizontalCenterOffset: maskHorizontalOffset
- smooth: !animationRunning
- antialiasing: !animationRunning
- source: slide.imageSource
- width: slide.width
- height: slide.height
- z: 2
-
- IslandElementContainer { id: leftElementcontainer; place: 0; islandHeight: islandImage.height; islandWidth: islandImage.width }
- IslandElementContainer { id: rightElementcontainer;place: 1; islandHeight: islandImage.height; islandWidth: islandImage.width }
- IslandElementContainer { id: bottomElementcontainer;place: 2; islandHeight: islandImage.height; islandWidth: islandImage.width }
- }
-
- Image {
- id: islandImage
- anchors.top: deviceMaskImage.bottom
- anchors.topMargin: -height * 0.3
- anchors.horizontalCenter: deviceMaskImage.horizontalCenter
- source: "images/island.png"
- smooth: !animationRunning
- antialiasing: !animationRunning
- width: Math.max(deviceMaskImage.width, deviceMaskImage.height) * 1.6
- height: width/2
- z: -3
- }
-
- // Load timer
- Timer {
- id: loadTimer
- interval: 5
- running: false
- repeat: false
- onTriggered: {
- loadSplashScreen();
- load()
- }
- }
-
- function loadDemo(){
- if (!slide.loaded)
- {
- splashScreenText.visible = true
- loadTimer.start();
- } else if (slide.url==="demos/radio/radio.qml"){
- for (var i =0; i<demoContainer.children.length; i++){
- if (demoContainer.children[i].objectName === "demoApp"){
- demoContainer.children[i].focus = true;
- }
- }
- }
- }
-
- function load() {
- if (!slide.url || slide.loaded) return;
-
- print("CREATING DEMO: "+ slide.url)
- var component = Qt.createComponent(slide.url);
- print ("CREATED: "+slide.url)
- var incubator = component.incubateObject(demoContainer, { x: 0, y: 0, objectName: "demoApp" });
- if (incubator.status !== Component.Ready) {
- incubator.onStatusChanged = function(status) {
- if (status === Component.Ready) {
- print ("Object", incubator.object, "is now ready!");
- slide.loaded = true
- releaseSplashScreen()
- }
- }
- } else {
- print ("Object", incubator.object, "is ready immediately!");
- slide.loaded = true
- releaseSplashScreen()
- }
- }
-
- function loadSplashScreen()
- {
- slide.loading = true
- var splash = Qt.createComponent("SplashScreen.qml");
- if (splash.status === Component.Ready)
- splash.createObject(demoContainer, {objectName: "splashScreen", text: slide.name});
- }
-
- function releaseSplashScreen()
- {
- splashScreenText.visible = false
- slide.loading = false
- for (var i =0; i<demoContainer.children.length; i++){
- if (demoContainer.children[i].objectName === "splashScreen"){
- demoContainer.children[i].explode();
- }
- }
- }
-
- function releaseDemo(snapShotCreated){
- if (!slide.loaded) return;
- if (!snapShotCreated){
- demo.updating = true
- demo.scheduleUpdate()
- return;
- }
-
- if (slide.url === "demos/radio/radio.qml")
- return; //Always alive
-
- app.forceActiveFocus();
-
- if (!slide.loaded)
- return;
-
- slide.loaded = false;
-
- for (var i =0; i<demoContainer.children.length; i++){
- if (demoContainer.children[i].objectName === "demoApp"){
- demoContainer.children[i].destroy(500);
- }
- }
- }
-
- function createElements()
- {
- leftElementcontainer.createElements()
- rightElementcontainer.createElements()
- bottomElementcontainer.createElements()
- }
-}
diff --git a/basicsuite/Qt5Everywhere/SplashScreen.qml b/basicsuite/Qt5Everywhere/SplashScreen.qml
deleted file mode 100644
index 42dd8d3..0000000
--- a/basicsuite/Qt5Everywhere/SplashScreen.qml
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-import "style.js" as Style
-//based on the SmokeText component from SameGame
-
-Item {
- id: root
- anchors.fill: parent
- z:1
-
- property alias text: txt.text
-
- Rectangle{
- id: background
- anchors.fill:parent
- color: "black"
- }
-
- ParticleSystem{
- id: particleSystem;
- anchors.fill: parent
-
- Text {
- id: txt
- color: 'white'
- font.pixelSize: parent.width *.2
- font.family: Style.FONT_FAMILY
- anchors.centerIn: parent
- smooth: true
- }
-
- Emitter {
- id: emitter
- anchors.fill: txt
- enabled: false
- emitRate: 1000
- lifeSpan: 1500
- size: parent.height * .2
- endSize: parent.height * .1
- velocity: AngleDirection { angleVariation: 360; magnitudeVariation: 160 }
- }
-
- ImageParticle {
- id: smokeParticle
- source: "images/particle-smoke.png"
- alpha: 0.1
- alphaVariation: 0.1
- color: 'white'
- }
- }
-
- SequentialAnimation {
- id: anim
- running: false
- ScriptAction { script: emitter.pulse(100); }
- NumberAnimation { target: txt; property: "opacity"; from: 1.0; to: 0.0; duration: 400}
- NumberAnimation { target: background; property: "opacity"; from: 1.0; to: 0.0; duration: 1000}
- PauseAnimation { duration: 200 }
- onRunningChanged: if (!running) root.destroy();
- }
-
- function explode(){
- anim.restart()
- }
-}
diff --git a/basicsuite/Qt5Everywhere/WorldCanvas.qml b/basicsuite/Qt5Everywhere/WorldCanvas.qml
deleted file mode 100644
index f73116b..0000000
--- a/basicsuite/Qt5Everywhere/WorldCanvas.qml
+++ /dev/null
@@ -1,145 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "style.js" as Style
-
-Item{
- id:canvas
- width:1
- height:1
-
- x: app.width/2+xOffset
- y: app.height/2+yOffset
-
- property real xOffset: 0
- property real yOffset: 0
- property real angle: 0
-
- property real zoomInTarget: 5
- property real scalingFactor: 5
-
- property real rotationOriginX
- property real rotationOriginY
-
- function goHome()
- {
- worldMouseArea.panning = false
- xOffset = 0; //(app.homeCenterX * app.homeScaleFactor);
- yOffset = 0; //(-app.homeCenterY * app.homeScaleFactor);
- rotationOriginX = 0;
- rotationOriginY = 0;
- angle = 0;
- zoomInTarget = app.homeScaleFactor;
- app.navigationState = 0 //home
- app.forceActiveFocus()
- zoomAnimation.restart();
- }
- function goTo(target, updateScalingFactor)
- {
- if (target)
- {
- worldMouseArea.panning = false
- xOffset = -target.x;
- yOffset = -target.y;
- rotationOriginX = target.x;
- rotationOriginY = target.y;
- angle = 0
- zoomInTarget = target.targetScale;
- if (updateScalingFactor)
- scalingFactor = zoomInTarget
- app.navigationState = target.navState
- }
- }
-
- function goNext() {
- goTo(app.getNext(), false);
- navigationAnimation.restartAnimation()
- }
- function goPrevious() {
- goTo(app.getPrevious(), false);
- navigationAnimation.restartAnimation()
- }
-
- function goBack()
- {
- if (app.useGroups && app.navigationState == 2) {
- goTo(app.getCurrentGroup(), false)
- zoomAnimation.restart()
- }
- else
- canvas.goHome()
- }
-
- Behavior on xOffset {
- id: xOffsetBehaviour
- enabled: !worldMouseArea.panning
- NumberAnimation{duration: Style.APP_ANIMATION_DELAY}
- }
-
- Behavior on yOffset {
- id: yOffsetBehaviour
- enabled: !worldMouseArea.panning
- NumberAnimation{duration: Style.APP_ANIMATION_DELAY}
- }
-
- Behavior on rotationOriginX {
- NumberAnimation{
- duration: Style.APP_ANIMATION_DELAY
- }
- }
- Behavior on rotationOriginY {
- NumberAnimation{
- duration: Style.APP_ANIMATION_DELAY
- }
- }
-
- transform: [
-
- Scale{
- id: canvasScale
- origin.x: canvas.rotationOriginX
- origin.y: canvas.rotationOriginY
- xScale: canvas.scalingFactor
- yScale :canvas.scalingFactor
-
- }
- ]
-}
diff --git a/basicsuite/Qt5Everywhere/WorldMouseArea.qml b/basicsuite/Qt5Everywhere/WorldMouseArea.qml
deleted file mode 100644
index ee22054..0000000
--- a/basicsuite/Qt5Everywhere/WorldMouseArea.qml
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-MouseArea{
- id: worldMouseArea
- anchors.fill: parent
-
- property int oldX: 0
- property int oldY: 0
- property int startMouseX: 0
- property int startMouseY: 0
- property bool panning: false
-
- onReleased: {
- var dx = mouse.x - startMouseX;
- var dy = mouse.y - startMouseY;
-
- // Check the point only if we didn't move the mouse too much
- if (!mouse.wasHeld && Math.abs(dx) <= app.tapLimitX && Math.abs(dy) <= app.tapLimitY)
- {
- panning = false
- var target = null;
- var object = mapToItem(canvas, mouse.x, mouse.y)
- var item = canvas.childAt(object.x,object.y)
- if (item) {
- if (item.objectName === 'slide')
- target = app.selectTarget(item.uid)
- else if (item.objectName === 'group')
- target = app.selectGroup(item.uid)
- }
-
- // If we found target, go to the target
- if (target) {
- canvas.goTo(target, false, item.objectName === 'slide' ? 2 : 1)
- zoomAnimation.restart()
- }
- else // If not target under mouse -> go home
- canvas.goHome()
- }
- }
-
- onPressed: {
- // Save mouse state
- oldX = mouse.x
- oldY = mouse.y
- startMouseX = mouse.x
- startMouseY = mouse.y
- }
-
- onPositionChanged: {
- var dx = mouse.x - oldX;
- var dy = mouse.y - oldY;
-
- oldX = mouse.x;
- oldY = mouse.y;
-
- if (!zoomAnimation.running && !navigationAnimation.running)
- {
- panning = true;
- canvas.xOffset += dx;
- canvas.yOffset += dy;
- app.navigationState = 3 //dirty
- }
- }
- onWheel: {
- var newScalingFactor = canvas.scalingFactor
- if (wheel.angleDelta.y > 0){
- newScalingFactor+=canvas.scalingFactor*.05
- }else{
- newScalingFactor-=canvas.scalingFactor*.05
- }
- if (newScalingFactor < app.minScaleFactor) newScalingFactor = app.minScaleFactor
- if (newScalingFactor > app.maxScaleFactor) newScalingFactor = app.maxScaleFactor
- canvas.scalingFactor = newScalingFactor
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/canvasclock/canvasClock.qml b/basicsuite/Qt5Everywhere/demos/canvasclock/canvasClock.qml
deleted file mode 100644
index e2b3bb0..0000000
--- a/basicsuite/Qt5Everywhere/demos/canvasclock/canvasClock.qml
+++ /dev/null
@@ -1,404 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: root
- anchors.fill: parent
- property color rimColor: Qt.rgba(1,0,0,1) //'#ff0000'
- property color dialColor: Qt.rgba(0.2,0.2,0.2,1) //'#333333'
- property color bgcolor: Qt.rgba(1,1,1,1)
- property int dialStyle: 0
- color: "#333333"
-
- Text{
- id: codeText
- anchors {fill:parent}
- text: ""
- rotation: 10
- color: "#666666"
- font.pixelSize: root.height*.05
-
- verticalAlignment:Text.AlignBottom
-
- property int pos: 0
-
- property string code: "
-var ctx = clockCanvas.getContext('2d')
-ctx.clearRect(0,0,clockContainer.clockRadius,clockContainer.clockRadius)
-
-var gradient = ctx.createRadialGradient(clockContainer.clockRadius/4, clockContainer.clockRadius/4, 0, clockContainer.clockRadius/4, clockContainer.clockRadius/4, clockContainer.clockRadius)
-gradient.addColorStop(0, '#ffffff')
-gradient.addColorStop(1, '#888888')
-
-ctx.fillStyle = gradient
-ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
-ctx.fill()
-
-drawDials(ctx)
-
-var gradient2 = ctx.createLinearGradient(0, 0, clockContainer.clockRadius, clockContainer.clockRadius)
-gradient2.addColorStop(0, Qt.rgba(0,0,0,.5))
-gradient2.addColorStop(.5, Qt.rgba(1,1,1,.5))
-gradient2.addColorStop(1, Qt.rgba(0,0,0,.5))
-
-var gradient3 = ctx.createLinearGradient(0, 0, clockContainer.clockRadius, clockContainer.clockRadius)
-gradient3.addColorStop(0, Qt.rgba(1,1,1,.5))
-gradient3.addColorStop(.5, Qt.rgba(0,0,0,.5))
-gradient3.addColorStop(1, Qt.rgba(1,1,1,.5))
-
-ctx.lineWidth = clockContainer.clockRadius*.05
-ctx.strokeStyle = root.rimColor
-
-ctx.beginPath()
-ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.45, 0, 360, false)
-ctx.stroke()
-
-ctx.strokeStyle = gradient2
-ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.45, 0, 360, false)
-ctx.stroke()
-
-ctx.beginPath()
-ctx.strokeStyle = root.rimColor
-ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
-ctx.stroke()
-
-ctx.strokeStyle = gradient3
-ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
-ctx.stroke()
-ctx.closePath()
-
-function drawPointer(context, angle, len, thickness, color){
- context.beginPath()
- context.lineWidth = thickness
- context.strokeStyle = color
- context.moveTo(clockContainer.clockRadius/2, clockContainer.clockRadius/2)
- var x1=Math.cos(angle*0.01745)*len
- var y1=Math.sin(angle*0.01745)*len
- context.lineTo(clockContainer.clockRadius/2+.5+x1,clockContainer.clockRadius/2+.5+y1)
- context.stroke()
- context.closePath()
-}"
-
- Timer{
- id: textTimer
- interval: 10
- onTriggered: {
- codeText.pos++
- if (codeText.pos >= codeText.code.length)codeText.pos=0
- codeText.text+=codeText.code.charAt(codeText.pos)
- if (codeText.text.length >1000){
- codeText.text=codeText.text.substring(codeText.text.length-1000)
- }
- }
- repeat: true
- running: true
- }
- }
-
- Rectangle {
- anchors.fill: parent
- gradient: Gradient {
- GradientStop {position: .0; color :"black"}
- GradientStop {position: .5; color :"transparent"}
- GradientStop {position: 1.0; color :"black"}
-
- }
- opacity: .5
- }
-
- Item {
- id: clockContainer
- width: 2* Math.min(root.width*.8, root.height*.8)
- height: width
- scale: 0.5
- anchors.centerIn: parent
- property int clockRadius: width
-
- ShaderEffectSource{
- id: clockBg
- anchors.fill: parent
- sourceItem: clockCanvas
- hideSource: true
- live: false
- }
-
- Canvas {
- id: clockCanvas
- anchors.fill: parent
- onPaint: {
- var ctx = clockCanvas.getContext('2d')
-
- ctx.clearRect(0,0,clockContainer.clockRadius,clockContainer.clockRadius)
-
- var gradient = ctx.createRadialGradient(clockContainer.clockRadius/4, clockContainer.clockRadius/4, 0, clockContainer.clockRadius/4, clockContainer.clockRadius/4, clockContainer.clockRadius)
-
- ctx.fillStyle = root.bgcolor
- ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
- ctx.fill()
-
- gradient.addColorStop(0, Qt.rgba(0,0,0,0))
- gradient.addColorStop(1, Qt.rgba(0,0,0,.5))
-
- ctx.fillStyle = gradient
- ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
- ctx.fill()
-
- drawDials(ctx)
-
- var gradient2 = ctx.createLinearGradient(0, 0, clockContainer.clockRadius, clockContainer.clockRadius)
- gradient2.addColorStop(0, Qt.rgba(0,0,0,.5))
- gradient2.addColorStop(.5, Qt.rgba(1,1,1,.5))
- gradient2.addColorStop(1, Qt.rgba(0,0,0,.5))
-
- var gradient3 = ctx.createLinearGradient(0, 0, clockContainer.clockRadius, clockContainer.clockRadius)
- gradient3.addColorStop(0, Qt.rgba(1,1,1,.5))
- gradient3.addColorStop(.5, Qt.rgba(0,0,0,.5))
- gradient3.addColorStop(1, Qt.rgba(1,1,1,.5))
-
- ctx.lineWidth = clockContainer.clockRadius*.05
-
- ctx.strokeStyle = root.rimColor
- ctx.beginPath()
- ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.45, 0, 360, false)
- ctx.stroke()
-
- ctx.strokeStyle = gradient2
- ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.45, 0, 360, false)
- ctx.stroke()
-
- ctx.beginPath()
- ctx.strokeStyle = root.rimColor
- ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
- ctx.stroke()
-
- ctx.strokeStyle = gradient3
-
- ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
- ctx.stroke()
- ctx.closePath()
-
-
- clockBg.scheduleUpdate()
- }
-
- function drawDials(context){
-
- context.strokeStyle = "#888888"
- context.fillStyle = root.dialColor
- context.lineWidth = 2
- context.beginPath()
- for (var i=1; i<=60; i++){
- var x1=Math.cos(((i)*6)*0.01745)*clockContainer.clockRadius*.4
- var y1=Math.sin(((i)*6)*0.01745)*clockContainer.clockRadius*.4
-
- var x2=Math.cos(((i)*6)*0.01745)*clockContainer.clockRadius*.45
- var y2=Math.sin(((i)*6)*0.01745)*clockContainer.clockRadius*.45
-
- context.moveTo(clockContainer.clockRadius/2+.5+x1,clockContainer.clockRadius/2+.5+y1)
- context.lineTo(clockContainer.clockRadius/2+.5+x2,clockContainer.clockRadius/2+.5+y2)
- context.stroke()
- }
- context.closePath()
-
- context.beginPath()
-
- var romans = ['I','II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII']
-
- for (i=1; i<=12; i++){
- x1=Math.cos((-90+(i)*30)*0.01745)*clockContainer.clockRadius*.35 -clockContainer.width*0.03
- y1=Math.sin((-90+(i)*30)*0.01745)*clockContainer.clockRadius*.35 +clockContainer.height*0.04
-
- if (root.dialStyle === 1) x1-=clockContainer.width*0.01
-
- context.font = 'bold '+Math.floor(clockContainer.width*.1)+'px Arial'
-
-
- if (i >= 10)
- x1 -= clockContainer.width*0.02
- context.textAlign = 'center';
- context.textBaseline = 'middle'
-
- var dial = i
-
- if (root.dialStyle === 1) dial = romans[i-1]
- context.text(dial,clockContainer.clockRadius/2+x1,clockContainer.clockRadius/2+y1)
-
- context.fill()
- context.stroke()
- }
- context.closePath()
- }
- }
-
- Canvas {
- id: clockPointers
- anchors.fill: parent
- antialiasing: true
- renderTarget: Canvas.Image
- onPaint: {
- var ctx = clockPointers.getContext('2d')
- ctx.clearRect(0,0,clockContainer.clockRadius,clockContainer.clockRadius)
- ctx.lineCap = 'round'
- drawPointer(ctx, -90+clock.hours*30, clockContainer.clockRadius*.25, clockContainer.clockRadius*.05, "#000000")
- drawPointer(ctx, -90+clock.minutes*6, clockContainer.clockRadius*.375, clockContainer.clockRadius*.025, "#333333")
- drawPointer(ctx, -90+clock.seconds*6, clockContainer.clockRadius*.40, 4, "#aa0000")
-
- // Draw nail
- ctx.beginPath()
- ctx.fillStyle = "#535353"
- ctx.ellipse(clockContainer.clockRadius/2-16,clockContainer.clockRadius/2-16,32,32)
- ctx.fill()
- ctx.closePath()
- }
-
- function drawPointer(context, angle, len, thickness, color){
- context.beginPath()
- context.lineWidth = thickness
- context.strokeStyle = color
- context.moveTo(clockContainer.clockRadius/2, clockContainer.clockRadius/2)
- var x1=Math.cos(angle*0.01745)*len
- var y1=Math.sin(angle*0.01745)*len
- context.lineTo(clockContainer.clockRadius/2+.5+x1,clockContainer.clockRadius/2+.5+y1)
- context.stroke()
- context.closePath()
- }
- }
-
- Timer{
- id: clock
- interval: 1000
- repeat: true
- running: !mouseArea.pressed
-
- property int hours: 0
- property int minutes: 0
- property int seconds: 0
-
- onTriggered: {
- seconds ++
- if (seconds == 60) seconds = 0
-
- if (seconds == 0) minutes++
- if (minutes == 60) {
- hours++
- minutes=0
- }
-
- if (hours >= 12) hours=0
-
- clockPointers.requestPaint()
- }
- }
- }
-
- MouseArea {
- id: mouseArea
- anchors.fill: clockContainer
- property bool grabbed: false
-
- onPressed: {
-
- var temp = clockContainer.clockRadius/2
- var ang = (90+Math.atan2((mouseY-temp), (mouseX-temp))*57.2957795)
- if (ang <0) ang+=360
-
- if (ang/6 > clock.minutes-2 && ang/6<clock.minutes+2){
-
- grabbed = true
- return;
- } else {
- var y = mouseY-temp
- var x = mouseX-temp
- var dist = Math.sqrt(y*y+x*x)
-
- if (dist>clockContainer.clockRadius*.42*clockContainer.scale){
- root.rimColor = newColor()
- clockCanvas.requestPaint()
- return;
- }else if (dist>clockContainer.clockRadius*.32*clockContainer.scale) {
- root.dialStyle = Math.round(Math.random())
- root.dialColor = newColor()
- clockCanvas.requestPaint()
- }else{
- root.bgcolor = newColor()
- clockCanvas.requestPaint()
- }
- }
- }
-
- onPositionChanged: {
- if (grabbed) {
- var temp = clockContainer.clockRadius/2
- var ang = (90+Math.atan2((mouseY-temp), (mouseX-temp))*57.2957795)
- if (ang <0) ang+=360
-
- var oldMinutes = clock.minutes
- clock.minutes=ang/6
-
- if (oldMinutes>55 && clock.minutes <5) clock.hours++
- if (oldMinutes<5 && clock.minutes >50) clock.hours--
- if (clock.hours >12) clock.hours=1
- if (clock.hours <0) clock.hours=11
-
-
- clockPointers.requestPaint()
- }
- }
- onReleased: grabbed = false;
- }
-
- function newColor(){
- var r=Math.random()
- var g=Math.random()
- var b=Math.random()
- return Qt.rgba(r,g,b,1)
- }
-
- Component.onCompleted: {
- var d = new Date()
- clock.hours = d.getHours()
- if (clock.hours>=12)clock.hours-=12
- clock.minutes = d.getMinutes()
- clock.seconds = d.getSeconds()
- clockCanvas.requestPaint()
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/gridrssnews/RssDelegate.qml b/basicsuite/Qt5Everywhere/demos/gridrssnews/RssDelegate.qml
deleted file mode 100644
index b0c2047..0000000
--- a/basicsuite/Qt5Everywhere/demos/gridrssnews/RssDelegate.qml
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: delegate
- height: grid.cellHeight
- width: grid.cellWidth
- color: mainWindow.appBackground
- property int tileMargin: mainWindow.tileMargin
-
- Rectangle {
- anchors.left: parent.left
- anchors.top: parent.top
- anchors.topMargin: parent.tileMargin/2
- width: parent.width - tileMargin
- height: parent.height - tileMargin
- color: mainWindow.tileBackground
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- grid.currentIndex = index
- console.log(link)
- Qt.openUrlExternally(link)
- }
- }
-
- states: [
- State {
- name: "selected"
- when: delegate.GridView.isCurrentItem
- }
- ]
-
-
- Image {
- id: iconImage
- source: url
- width: parent.width
- height: parent.height
- }
-
- Rectangle{
- width: parent.width
- height: dateText.height + tileMargin
- anchors.top: dateText.top
- anchors.bottom: parent.bottom
- color: "Black"
- opacity: 0.5
- visible: iconImage.source
-
- }
-
- Text {
- id: dateText
- anchors.left: parent.left
- anchors.leftMargin: tileMargin
- anchors.bottom: parent.bottom
- anchors.bottomMargin: tileMargin
- anchors.right: parent.right
- anchors.rightMargin: tileMargin
-
- color: mainWindow.textColor
- text: title
- width: parent.width;
- wrapMode: Text.WordWrap;
- smooth: true
- font { family: mainWindow.uiFont; pixelSize: mainWindow.tileFontSize }
- }
- }
-}
-
diff --git a/basicsuite/Qt5Everywhere/demos/gridrssnews/ScrollBar.qml b/basicsuite/Qt5Everywhere/demos/gridrssnews/ScrollBar.qml
deleted file mode 100644
index dae206b..0000000
--- a/basicsuite/Qt5Everywhere/demos/gridrssnews/ScrollBar.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: scrollBar
-
- // The properties that define the scrollbar's state.
- // position and pageSize are in the range 0.0 - 1.0. They are relative to the
- // height of the page, i.e. a pageSize of 0.5 means that you can see 50%
- // of the height of the view.
- // orientation can be either Qt.Vertical or Qt.Horizontal
- property real position
- property real pageSize
- property variant orientation : Qt.Vertical
-
- // A light, semi-transparent background
- Rectangle {
- id: background
- anchors.fill: parent
- radius: width/2 - 1
- color: mainWindow.appBackground
- }
-
- // Size the bar to the required size, depending upon the orientation.
- Rectangle {
- x: scrollBar.position * (scrollBar.width-2) + 1
- y: 1
- width: scrollBar.pageSize * (scrollBar.width-2)
- height: parent.height
- radius: height/2 - 1
- color: mainWindow.tileBackground
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/gridrssnews/main.qml b/basicsuite/Qt5Everywhere/demos/gridrssnews/main.qml
deleted file mode 100644
index d85d292..0000000
--- a/basicsuite/Qt5Everywhere/demos/gridrssnews/main.qml
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.XmlListModel 2.0
-
-Rectangle {
- id: mainWindow
- anchors.fill: parent
- color: appBackground
-
- property int tileHeight: parseInt(grid.height / 3)
- property int tileFontSize: tileHeight * 0.08
- property int horizontalMargin: height * 0.08
- property int topBarsize: height * 0.2
- property int bottomBarSize: height * 0.08
- property int tileMargin: height * 0.01
- property int appHeaderFontSize: topBarsize * 0.4
- property string appBackground: "#262626"
- property string tileBackground: "#86bc24"
- property string textColor: "white"
- property string uiFont: "Segoe UI"
-
- XmlListModel {
- id: feedModel
- //source: "http://blog.qt.digia.com/feed/"
- source: "http://news.yahoo.com/rss/tech"
- //query: "/rss/channel/item"
- // Filter out items that don't have images
- query: "/rss/channel/item[exists(child::media:content)]"
- namespaceDeclarations: "declare namespace media=\"http://search.yahoo.com/mrss/\";"
- XmlRole { name: "url"; query: "media:content/@url/string()" }
- XmlRole { name: "title"; query: "title/string()" }
- XmlRole { name: "pubDate"; query: "pubDate/string()" }
- XmlRole { name: "link"; query: "link/string()" }
-
- onStatusChanged: {
- if (status == XmlListModel.Ready) {
- playbanner.start();
- }
- }
- }
-
- // Top bar
- Item {
- id: topBar
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.top: parent.top
- anchors.leftMargin: horizontalMargin
- opacity: 0
- height: topBarsize
- Text {
- id: title
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- text: qsTr("Yahoo Technology")
- font.family: uiFont;
- font.pixelSize: appHeaderFontSize;
- color: textColor
- smooth: true
- }
- }
-
- // Grid view
- GridView {
- id: grid
- anchors.fill: parent
- anchors.topMargin: topBarsize
- anchors.bottomMargin: bottomBarSize
- anchors.leftMargin: horizontalMargin
- anchors.rightMargin: horizontalMargin
- opacity: 0
- flow: GridView.TopToBottom
- cellHeight: tileHeight
- cellWidth: parseInt(tileHeight * 1.5)
- cacheBuffer: cellWidth
- clip: false
- focus: true
- model: feedModel
- delegate: RssDelegate {}
-
- // Only show the scrollbars when the view is moving.
- states: State {
- when: grid.movingHorizontally
- PropertyChanges { target: horizontalScrollBar; opacity: 1 }
- }
-
- transitions: Transition {
- NumberAnimation { properties: "opacity"; duration: 400 }
- }
- }
-
- ScrollBar {
- id: horizontalScrollBar
- width: parent.width; height: 6
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- opacity: 0
- orientation: Qt.Horizontal
- position: grid.visibleArea.xPosition
- pageSize: grid.visibleArea.widthRatio
- }
-
- SequentialAnimation {
- id: playbanner
- running: false
- NumberAnimation { target: topBar; property: "opacity"; to: 1.0; duration: 300}
- NumberAnimation { target: grid; property: "opacity"; to: 1.0; duration: 300}
- }
-
-}
-
diff --git a/basicsuite/Qt5Everywhere/demos/heartmonitor/HeartData.js b/basicsuite/Qt5Everywhere/demos/heartmonitor/HeartData.js
deleted file mode 100644
index 467e431..0000000
--- a/basicsuite/Qt5Everywhere/demos/heartmonitor/HeartData.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-var heartData = [0,0,0,0,0]
-
-function fillHeartData(length) {
- if (length !== heartData.length) {
- heartData = new Array(length);
- for (var i=0; i<length; i++) {
- heartData[i] = 0;
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/heartmonitor/main.qml b/basicsuite/Qt5Everywhere/demos/heartmonitor/main.qml
deleted file mode 100644
index 08b8f28..0000000
--- a/basicsuite/Qt5Everywhere/demos/heartmonitor/main.qml
+++ /dev/null
@@ -1,266 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "HeartData.js" as Data
-
-Rectangle {
- id: app
- anchors.fill: parent
- color: "black"
-
- property int frequency: 60
- property int beatDataIndex: -1
- property int heartDataIndex: 0
- property int beatDifference: 1200
- property var previousTime: 0
- property string curveColor: "#22ff22"
- property string alarmColor: "#ff2222"
- property string textColor: "#22ff22"
- property string gridColor: "#333333"
-
- function pulse() {
- if (!heartAnimation.running) {
- heartAnimation.restart()
- heartTimer.restart()
- calculateFrequency();
- app.beatDataIndex = 0
- }
- }
-
- function calculateFrequency() {
- var ms = new Date().getTime();
- if (app.previousTime > 0)
- app.beatDifference = 0.8*beatDifference + 0.2*(ms - app.previousTime)
- app.frequency = Math.round(60000.0 / app.beatDifference)
- app.previousTime = ms;
- }
-
- function updateData() {
- app.heartDataIndex++;
- if (app.heartDataIndex >= Data.heartData.length)
- app.heartDataIndex = 0;
- else
- app.heartDataIndex++;
-
- if (beatDataIndex >= 0)
- fillBeatData()
- else
- fillRandomData()
-
- heartCanvas.requestPaint()
- }
-
- function fillBeatData() {
- var value = 0;
- switch (app.beatDataIndex) {
- case 0: value = Math.random()*0.1+0.1; break;
- case 1: value = Math.random()*0.1+0.0; break;
- case 2: value = Math.random()*0.3+0.7; break;
- case 3: value = Math.random()*0.1-0.05; break;
- case 4: value = Math.random()*0.3-0.8; break;
- case 5: value = Math.random()*0.1-0.05; break;
- case 6: value = Math.random()*0.1-0.05; break;
- case 7: value = Math.random()*0.1+0.15; break;
- default: value = 0; break;
- }
-
- Data.heartData[app.heartDataIndex] = value;
- app.beatDataIndex++;
- if (app.beatDataIndex > 7)
- app.beatDataIndex = -1
- }
-
- function fillRandomData() {
- Data.heartData[app.heartDataIndex] = Math.random()*0.05-0.025
- }
-
- onWidthChanged: {
- Data.fillHeartData(Math.floor(app.width*0.5))
- gridCanvas.requestPaint();
- }
- onHeightChanged: gridCanvas.requestPaint()
-
- Item {
- id: grid
- anchors.fill: parent
-
- Canvas {
- id: gridCanvas
- anchors.fill: parent
- antialiasing: true
- renderTarget: Canvas.Image
- onPaint: {
- var ctx = gridCanvas.getContext('2d')
-
- ctx.clearRect(0,0,grid.width,grid.height)
- var step = 1000 / updateTimer.interval * (app.width / Data.heartData.length)
- var xCount = app.width / step
- var yCount = app.height / step
- ctx.strokeStyle = app.gridColor;
-
- var x=0;
- ctx.beginPath()
- for (var i=0; i<xCount; i++) {
- x = i*step
- ctx.moveTo(x,0)
- ctx.lineTo(x,app.height)
- }
- ctx.stroke()
- ctx.closePath()
-
- var y=0;
- ctx.beginPath()
- for (var j=0; j<yCount; j++) {
- y = j*step
- ctx.moveTo(0, y)
- ctx.lineTo(app.width,y)
- }
- ctx.stroke()
- ctx.closePath()
- }
- }
- }
-
- Rectangle {
- id: canvasBackground
- anchors { bottom: parent.bottom; left: parent.left; right: parent.right }
- height: 0.75 * parent.height
-
- gradient: Gradient {
- GradientStop {position: .0; color :"black"}
- GradientStop {position: .5; color :"#00ff00"}
- GradientStop {position: 1.0; color :"black"}
- }
- opacity: .3
- }
-
- Item {
- id: canvasContainer
- anchors.fill: canvasBackground
-
- Canvas {
- id: heartCanvas
- anchors.fill: parent
- antialiasing: true
- renderTarget: Canvas.Image
- onPaint: {
- var ctx = heartCanvas.getContext('2d')
-
- ctx.clearRect(0,0,canvasContainer.width,canvasContainer.height)
-
- var baseY = heartCanvas.height/2;
- var length = Data.heartData.length;
- var step = (heartCanvas.width-5) / length;
- var yFactor = heartCanvas.height * 0.35;
- var heartIndex = (heartDataIndex+1) % length;
- ctx.strokeStyle = app.curveColor;
-
- ctx.beginPath()
- ctx.moveTo(0,baseY)
- var i=0, x=0, y=0;
- for (i=0; i<length; i++) {
- x=i*step;
- y=baseY - Data.heartData[heartIndex]*yFactor;
- ctx.lineTo(x,y)
- heartIndex = (heartIndex+1)%length;
- }
- ctx.stroke()
- ctx.closePath()
-
- ctx.beginPath()
- ctx.fillStyle = app.curveColor
- ctx.ellipse(x-5,y-5,10,10)
- ctx.fill()
- ctx.closePath()
- }
- }
- }
- Image {
- id: heart
- anchors { left: parent.left; top: parent.top }
- anchors.margins: app.width * 0.05
- height: parent.height * 0.2
- width: height*1.2
- source: "heart.png"
- MouseArea {
- anchors.fill: parent
- onPressed: pulse()
- }
- }
-
- Text {
- id: pulseText
- anchors { right: parent.right; verticalCenter: heart.verticalCenter }
- anchors.margins: app.width * 0.05
- antialiasing: true
- text: app.frequency
- color: app.frequency > 100 ? app.alarmColor : app.textColor
- font { pixelSize: app.width * .1; bold: true }
- }
-
- // Pulse timer
- Timer {
- id: heartTimer
- interval: 1200
- running: true
- repeat: false
- onTriggered: pulse()
- }
-
- // Update timer
- Timer {
- id: updateTimer
- interval: 30
- running: true
- repeat: true
- onTriggered: updateData()
- }
-
- SequentialAnimation{
- id: heartAnimation
- NumberAnimation { target: heart; property: "scale"; duration: 100; from: 1.0; to:1.2; easing.type: Easing.Linear }
- NumberAnimation { target: heart; property: "scale"; duration: 100; from: 1.2; to:1.0; easing.type: Easing.Linear }
- }
-
- Component.onCompleted: {
- Data.fillHeartData(Math.max(100,Math.floor(app.width*0.5)))
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/particledemo/BootScreenDemo.qml b/basicsuite/Qt5Everywhere/demos/particledemo/BootScreenDemo.qml
deleted file mode 100644
index eb4e29e..0000000
--- a/basicsuite/Qt5Everywhere/demos/particledemo/BootScreenDemo.qml
+++ /dev/null
@@ -1,181 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- id: root
- property real size: Math.min(root.width, root.height);
- signal finished()
-
- SequentialAnimation {
- id: entryAnimation
- running: true
- PropertyAction { target: sphereEmitter; property: "emitRate"; value: 150 }
- PropertyAction { target: starEmitter; property: "emitRate"; value: 100 }
- PropertyAction { target: starEmitter; property: "enabled"; value: true }
- PropertyAction { target: sphereEmitter; property: "enabled"; value: true }
- PropertyAction { target: sphereSystem; property: "running"; value: true }
- PropertyAction { target: starSystem; property: "running"; value: true }
- PauseAnimation { duration: 5000 }
-
- onRunningChanged: if (!running) explodeAnimation.restart()
- }
-
- SequentialAnimation{
- id: explodeAnimation
- ScriptAction { script: {
- starAccel.x = 5
- starAccel.xVariation = 20;
- starAccel.yVariation = 20;
- sphereAccel.x = -5
- sphereAccel.xVariation = 20
- sphereAccel.yVariation = 20
- sphereParticle.alpha = 0;
- }
- }
- PropertyAction { target: sphereEmitter; property: "emitRate"; value: 200 }
- PropertyAction { target: starEmitter; property: "emitRate"; value: 200 }
- PauseAnimation { duration: 2000 }
- PropertyAction { target: starEmitter; property: "enabled"; value: false }
- PropertyAction { target: sphereEmitter; property: "enabled"; value: false }
- PauseAnimation { duration: 5000 }
-
- onRunningChanged: {
- if (!running) {
- root.finished()
- root.destroy()
- }
- }
- }
-
- Item {
- id: logo;
- width: root.size / 2;
- height: root.size / 2;
- anchors.centerIn: parent
- }
-
- ParticleSystem {
- id: sphereSystem;
- anchors.fill: logo
- running: false
-
- ImageParticle {
- id: sphereParticle
- source: "images/particle.png"
- color: "#80c342"
- alpha: 1
- colorVariation: 0.0
- }
-
- Emitter {
- id: sphereEmitter
- anchors.fill: parent
- emitRate: 100
- lifeSpan: 4000
- size: root.width*.15
- sizeVariation: size *.2
- velocity: PointDirection { xVariation: 2; yVariation: 2; }
-
- acceleration: PointDirection {
- id: sphereAccel
- xVariation: 1;
- yVariation: 1;
- }
-
- shape: MaskShape {
- source: "images/qt-logo-green-mask.png"
- }
- }
- }
-
- ParticleSystem {
- id: starSystem;
- anchors.fill: logo
- running: false
-
- ImageParticle {
- id: starParticle
- source: "images/particle_star.png"
- color: "#ffffff"
- alpha: 0
- colorVariation: 0
- }
-
- Emitter {
- id: starEmitter
- anchors.fill: parent
- emitRate: 50
- lifeSpan: 5000
- size: root.width*.1
- sizeVariation: size *.2
- velocity: PointDirection { xVariation: 1; yVariation: 1; }
-
- acceleration: PointDirection {
- id: starAccel
- xVariation: 0;
- yVariation: 0;
- }
-
- shape: MaskShape {
- source: "images/qt-logo-white-mask.png"
- }
- }
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
-
- if (entryAnimation.running) {
- entryAnimation.complete()
- return;
- }
-
- if (explodeAnimation.running) {
- root.finished()
- root.destroy()
- }
-
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/particledemo/ParticleSysComponent.qml b/basicsuite/Qt5Everywhere/demos/particledemo/ParticleSysComponent.qml
deleted file mode 100644
index fc74037..0000000
--- a/basicsuite/Qt5Everywhere/demos/particledemo/ParticleSysComponent.qml
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-/**
- * ParticleSystem component draw particles with the given color.
- */
-
-ParticleSystem {
- id: root
- anchors.fill: parent
- running: true
-
- property color particleColor: "#ff0000"
- property real angle: particleRoot.angle;
- property int pointCount: particleRoot.pointCount;
- property real radius: particleRoot.distance;
- property real movement: particleRoot.movement;
- property bool emitting: particleRoot.running;
- property int touchX: 0
- property int touchY: 0
- property int startAngle: 0
- property bool pressed: false
- property real targetX: pressed ? touchX : width/2+radius * Math.cos(targetAngle*(Math.PI/180))
- property real targetY: pressed ? touchY : height/2+radius * Math.sin(targetAngle*(Math.PI/180))
- property real targetAngle: angle+startAngle
-
- Emitter {
- id: emitter
- lifeSpan: 1000
- emitRate: 80
- x: targetX
- y: targetY
- enabled: root.emitting
- size: root.height*.05
- endSize: root.height*.1
- sizeVariation: .5
- velocity: AngleDirection{angle:0; angleVariation: 360; magnitude: 10}
- acceleration: AngleDirection{angle:0; angleVariation: 360; magnitude: 10}
- velocityFromMovement: root.movement
- }
-
- ImageParticle {
- id: imageParticle
- source: "images/particle.png"
- color: root.pointCount >0 && root.pressed ? root.particleColor: "#444444"
- alpha: .0
- colorVariation: root.pointCount >0 && root.pressed ? 0.3: .0
-
- Behavior on color{
- enabled: root.pointCount != 0
- ColorAnimation { duration: 500 }
- }
-
- SequentialAnimation on color {
- id: colorAnimation
- loops: Animation.Infinite
- running: root.pointCount === 0
- ColorAnimation {from: root.particleColor; to: "magenta"; duration: 2000}
- ColorAnimation {from: "magenta"; to: "blue"; duration: 1000}
- ColorAnimation {from: "blue"; to: "violet"; duration: 1000}
- ColorAnimation {from: "violet"; to: "red"; duration: 1000}
- ColorAnimation {from: "red"; to: "orange"; duration: 1000}
- ColorAnimation {from: "orange"; to: "yellow"; duration: 1000}
- ColorAnimation {from: "yellow"; to: "green"; duration: 1000}
- ColorAnimation {from: "green"; to: root.particleColor; duration: 2000}
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/particledemo/particledemo.qml b/basicsuite/Qt5Everywhere/demos/particledemo/particledemo.qml
deleted file mode 100644
index c3f8253..0000000
--- a/basicsuite/Qt5Everywhere/demos/particledemo/particledemo.qml
+++ /dev/null
@@ -1,213 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Rectangle {
- id: particleRoot
- color: "#000000"
- anchors.fill: parent
-
- property real distance: parent.height*.4
- property real angle: 0
- property real movement: 0
- property alias running: angleAnimation.running
- property int pointCount: mouseArea.pointCount + multiPointTouchArea.pointCount
-
- BootScreenDemo {
- width: Math.min(parent.width,parent.height)
- height: width
- anchors.centerIn: parent
- z: 1
- onFinished: {
- distanceAnimation.restart()
- angleAnimation.restart()
- }
- }
-
- RotationAnimation on angle {
- id: angleAnimation
- from: 0
- to: 360
- running: false
- duration: distanceAnimation.delay
- direction: RotationAnimation.Shortest
- loops: Animation.Infinite
- }
-
- SequentialAnimation on distance {
- id: distanceAnimation
- property int easingType:0
- property int delay: 1000
- running: false
-
- NumberAnimation {
- from: 0
- to: parent.height*.4
- duration: distanceAnimation.delay/2
- easing.type: distanceAnimation.easingType
- }
-
- NumberAnimation {
- from: parent.height*.4
- to: 0
- duration: distanceAnimation.delay/2
- easing.type: distanceAnimation.easingType
- }
-
- onRunningChanged: {
- if (!running){
- var type = Math.floor(Math.random()*10)
- switch (type){
- case 0:
- distanceAnimation.easingType=Easing.InOutBack
- break;
- case 1:
- distanceAnimation.easingType=Easing.InOutBounce
- break;
- case 2:
- distanceAnimation.easingType=Easing.InOutCirc
- break;
- case 3:
- distanceAnimation.easingType=Easing.InOutElastic
- break;
- case 4:
- distanceAnimation.easingType=Easing.InOutSine
- break;
- case 5:
- distanceAnimation.easingType=Easing.OutInQuad
- break;
- case 6:
- distanceAnimation.easingType=Easing.OutInCubic
- break;
- case 7:
- distanceAnimation.easingType=Easing.OutExpo
- break;
- case 8:
- distanceAnimation.easingType=Easing.OutCurve
- break;
- default:
- distanceAnimation.easingType=Easing.Linear
- break;
- }
-
- distanceAnimation.delay = 500 + Math.floor(Math.random()*1500)
- angleAnimation.from = 180 + Math.random()*90 - 45
- particleRoot.movement = Math.random()*2
- angleAnimation.restart()
- distanceAnimation.restart()
- }
- }
- }
-
- /**
- * Create five ParticleSysComponents for drawing particles
- * in the place of multitouch points with the given color.
- */
- ParticleSysComponent{ id: p1; particleColor: "#ff0000"; startAngle: 1*360/(5-particleRoot.pointCount); }
- ParticleSysComponent{ id: p2; particleColor: "#00ff00"; startAngle: 2*360/(5-particleRoot.pointCount); }
- ParticleSysComponent{ id: p3; particleColor: "#0000ff"; startAngle: 3*360/(5-particleRoot.pointCount); }
- ParticleSysComponent{ id: p4; particleColor: "#ffff00"; startAngle: 4*360/(5-particleRoot.pointCount); }
- ParticleSysComponent{ id: p5; particleColor: "#ff00ff"; startAngle: 5*360/(5-particleRoot.pointCount); }
-
- /**
- * In this demo we only support five touch point at the same time.
- * One from mouseArea (because of Desktop-support) and four from MultiPointTouchArea.
- */
- MultiPointTouchArea {
- id: multiPointTouchArea
- anchors.fill: parent
- minimumTouchPoints: 1
- maximumTouchPoints: 6
-
- property int pointCount:0
-
- touchPoints: [
- TouchPoint { id: point1 },
- TouchPoint { id: point2 },
- TouchPoint { id: point3 },
- TouchPoint { id: point4 }
- ]
-
- onPressed: updatePointCount()
- onReleased: updatePointCount()
- onTouchUpdated: {
- p2.touchX = point1.x; p2.touchY = point1.y; p2.pressed = point1.pressed;
- p3.touchX = point2.x; p3.touchY = point2.y; p3.pressed = point2.pressed;
- p4.touchX = point3.x; p4.touchY = point3.y; p4.pressed = point3.pressed;
- p5.touchX = point4.x; p5.touchY = point4.y; p5.pressed = point4.pressed;
- }
-
- function updatePointCount(){
- var tmp = 0
- for (var i=0; i<4; i++) {
- if (touchPoints[i].pressed)
- tmp++
- }
- pointCount = tmp
- }
- }
-
- /**
- * For desktop.
- */
- MouseArea {
- id: mouseArea
- anchors.fill: parent
-
- property int pointCount:0
-
- onPressed: {
- pointCount = 1;
- p1.touchX = mouse.x;
- p1.touchY = mouse.y;
- p1.pressed = true;
- }
- onReleased: {
- pointCount = 0;
- p1.pressed = false;
- }
- onPositionChanged: {
- p1.touchX = mouse.x;
- p1.touchY = mouse.y;
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/photosurface/photosurface.qml b/basicsuite/Qt5Everywhere/demos/photosurface/photosurface.qml
deleted file mode 100644
index 6ca2626..0000000
--- a/basicsuite/Qt5Everywhere/demos/photosurface/photosurface.qml
+++ /dev/null
@@ -1,131 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-
-Rectangle {
- id: root
- visible: true
- anchors.fill: parent
- property int highestZ: 0
- property real defaultSize: 200
-
- gradient: Gradient{
- GradientStop{position: 0.0; color: "#333333"}
- GradientStop{position: 1.0; color: "#111111"}
- }
-
- Repeater {
-// model: FolderListModel {
-// id: folderModel
-// objectName: "folderModel"
-// showDirs: false
-// nameFilters: ["*.png", "*.jpg", "*.gif"]
-// }
- id: repeater
- model: 5
- anchors.fill: parent
-
- clip: true
- Rectangle {
- id: photoFrame
- width: image.width * image.scale + 20
- height: image.height * image.scale + 20
- border.color: "black"
- border.width: 2
- smooth: true
- antialiasing: true
- x: Math.random() * root.width - defaultSize / 2
- y: Math.random() * root.height - defaultSize / 2
- rotation: Math.random() * 13 - 6
- Image {
- id: image
- anchors.centerIn: parent
- fillMode: Image.PreserveAspectFit
- source: "images/image"+index+".png"
- scale: defaultSize / Math.max(sourceSize.width, sourceSize.height)
- antialiasing: true
- }
- PinchArea {
- anchors.fill: parent
- pinch.target: photoFrame
- pinch.minimumRotation: -360
- pinch.maximumRotation: 360
- pinch.minimumScale: 0.1
- pinch.maximumScale: 10
- onPinchFinished: photoFrame.border.color = "black";
- MouseArea {
- id: dragArea
- hoverEnabled: true
- anchors.fill: parent
- drag.target: photoFrame
- onPressed: photoFrame.z = ++root.highestZ;
- onEntered: photoFrame.border.color = "red";
- onExited: photoFrame.border.color = "black";
- onWheel: {
- if (wheel.modifiers & Qt.ControlModifier) {
- photoFrame.rotation += wheel.angleDelta.y / 120 * 5;
- if (Math.abs(photoFrame.rotation) < 4)
- photoFrame.rotation = 0;
- } else {
- photoFrame.rotation += wheel.angleDelta.x / 120;
- if (Math.abs(photoFrame.rotation) < 0.6)
- photoFrame.rotation = 0;
- var scaleBefore = image.scale;
- image.scale += image.scale * wheel.angleDelta.y / 120 / 10;
- photoFrame.x -= image.width * (image.scale - scaleBefore) / 2.0;
- photoFrame.y -= image.height * (image.scale - scaleBefore) / 2.0;
- }
- }
- }
- }
- }
- }
-// Text {
-// anchors.bottom: parent.bottom
-// anchors.left: parent.left
-// anchors.margins: 10
-// color: "darkgrey"
-// text: "On a touchscreen: use two fingers to zoom and rotate, one finger to drag\n" +
-// "With a mouse: drag normally, use the vertical wheel to zoom, horizontal wheel to rotate, or hold Ctrl while using the vertical wheel to rotate"
-// wrapMode: Text.Wrap
-// }
-
- //Component.onCompleted: fileDialog.open()
-}
diff --git a/basicsuite/Qt5Everywhere/demos/radio/VolumeButton.qml b/basicsuite/Qt5Everywhere/demos/radio/VolumeButton.qml
deleted file mode 100644
index 76635b6..0000000
--- a/basicsuite/Qt5Everywhere/demos/radio/VolumeButton.qml
+++ /dev/null
@@ -1,185 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: root
- width: size
- height: size
-
- property int steps: 10
- property int size: 0
- property real volume: .5
- property bool playing: false
- signal clicked();
-
- Item {
- id: bg
- anchors.fill: parent
-
- Rectangle {
- id: bgRect
-
- gradient: Gradient {
- GradientStop {position: .0; color: "lightgray"}
- GradientStop {position: 1.0; color: "white"}
- }
-
- border {width:1; color: "#888888"}
- radius: root.size/2
- anchors.centerIn: parent
- width: parent.width
- height: parent.height
- }
-
- Rectangle {
- gradient: Gradient {
- GradientStop {position: .0; color: playButtonMouseArea.pressed ? "#052e41": "#095477"}
- GradientStop {position: 1.0; color: playButtonMouseArea.pressed ? "#095477": "#052e41"}
- }
-
- border {width:1; color: "#888888"}
- radius: width/2
- anchors.centerIn: parent
- width: parent.width*.6
- height: parent.height*.6
-
- Image {
- anchors {fill: parent; margins: parent.height*.3}
- source: !root.playing ? "images/radio_btn_play.png" : "images/radio_btn_pause.png"
- }
-
- MouseArea {
- id: playButtonMouseArea
- anchors.fill: parent
- anchors.margins: parent.width*.2
- onClicked:{
- root.clicked()
- }
- }
- }
- }
-
- Item {
- id: volumeIndicator
- anchors.centerIn: root
- width: root.size
- height: root.size
- z:2
-
- Rectangle{
- id: volumeCircle
- objectName: "volumeCircle"
- anchors {horizontalCenter: parent.horizontalCenter; top: parent.top}
-
- gradient: Gradient {
- GradientStop {position: .1; color: "#095477"}
- GradientStop {position: 1.0; color: "#0e82b8"}
- }
-
- width: root.size * .2
- height: width
- radius: width/2
- border {width:1; color: "#888888"}
-
- Image {
- anchors {fill: parent; margins: parent.height*.2}
- source: "images/radio_sound_icon.png"
- rotation: -volumeRotation.angle
- }
- }
-
- transform: Rotation {
- id: volumeRotation
- origin.x: volumeIndicator.width/2
- origin.y: volumeIndicator.height/2
- angle: 270.0*root.volume+225
- }
- }
-
- MouseArea {
- id: mouseArea
- anchors.fill: volumeIndicator
- property bool grabbed: false
- anchors.margins: -root.size*.2
- z: -1
-
- onPressed: {
- var object = mapToItem(volumeIndicator, mouse.x, mouse.y)
- var item = volumeIndicator.childAt(object.x,object.y)
- if (item && item.objectName === 'volumeCircle') {
- grabbed = true
- return;
- } else {
- grabbed = false
- }
-
- object = mapToItem(root, mouse.x, mouse.y)
- item = root.childAt(object.x,object.y)
- if (item && item.objectName === 'volumePoint') {
- root.volume = item.level
- }
- }
-
- onPositionChanged: {
- if (!grabbed) return;
- var ang = (225+Math.atan2((mouse.y-mouseArea.height/2.0), (mouse.x-mouseArea.width/2.0))*180.0/Math.PI)
- if (ang >360) ang-=360
- if (ang > 270) return;
- root.volume = (ang)/270.0
- }
- }
-
- function init(){
- for (var i=0; i<=root.steps; i++){
- var x=Math.cos(((i)*270/root.steps+135)*0.01745)*root.size*.40
- var y=Math.sin(((i)*270/root.steps+135)*0.01745)*root.size*.40
- var component = Qt.createComponent("VolumePoint.qml")
- if (component.status === Component.Ready) {
- var object = component.createObject(root);
- object.size = root.size*.05
- object.x = root.size/2+x-object.size/2
- object.y = root.size/2+y-object.size/2
- object.level = i/root.steps
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/radio/VolumePoint.qml b/basicsuite/Qt5Everywhere/demos/radio/VolumePoint.qml
deleted file mode 100644
index c107823..0000000
--- a/basicsuite/Qt5Everywhere/demos/radio/VolumePoint.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: root
- objectName: "volumePoint"
- width: size
- height: size
- radius: size/2
- color: volume >= level ? "#0e82b8": "#095477"
- border {width:1; color: "#888888"}
- property int size: 10
- property real level: 0
- property real volume: parent.volume
-
- Behavior on color{ColorAnimation { duration: 500 }}
-
- Item {
- id: pointClickArea
- objectName: "pointClickArea"
- property alias value: root.level
- anchors.fill: parent
- anchors.margins: -root.size*2
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/radio/radio.qml b/basicsuite/Qt5Everywhere/demos/radio/radio.qml
deleted file mode 100644
index 8615f9b..0000000
--- a/basicsuite/Qt5Everywhere/demos/radio/radio.qml
+++ /dev/null
@@ -1,261 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtMultimedia 5.0
-import QtQuick.XmlListModel 2.0
-
-FocusScope {
- id: scope
- x: parent.x; y: parent.y
- width: parent.width; height: parent.height
- focus: true
- property bool active: false
-
- Rectangle {
- id: root
- width:parent.width
- height: parent.height
- anchors.centerIn: parent
- focus: true
- color: "#262626"
-
- Audio {
- id: playMusic
- source: ""
- volume: volumeButton.volume
- onSourceChanged: {
- if (volumeButton.playing) playMusic.play()
- }
- onAvailabilityChanged: {
- if (availability === Audio.Available) {
- if (volumeButton.playing) playMusic.play()
- }
- }
- Component.onDestruction: {
- volumeButton.playing = false
- playMusic.stop()
- playMusic.source = ""
- }
- }
-
- Rectangle {
- id: playerRect
- anchors.top: volumeButton.top
- anchors.left: volumeButton.left
- anchors.bottom: volumeButton.bottom
- anchors.right: parent.right
- anchors.rightMargin: parent.height*.05
- gradient: Gradient {
- GradientStop {position: .1; color: "lightgrey"}
- GradientStop {position: 1.0; color: "white"}
- }
- border {width:1; color: "#888888"}
- radius: height/2
-
- Rectangle {
- id: displayRect
- anchors.fill: parent
- anchors.margins: parent.height*.1
- gradient: Gradient {
- GradientStop {position: .0; color: "#095477"}
- GradientStop {position: 1.0; color: "#052e41"}
- }
- border {width:1; color: "#888888"}
- radius: height/2
-
-
- PathView {
- enabled: root.activeFocus
- id: stationList
- anchors.fill:parent
- anchors.leftMargin: parent.height*.9
- model: stationModel
- pathItemCount: 6
- clip: true
- property int openedIndex: -1
-
- onMovementStarted: {
- idleTimer.stop()
- openedIndex = -1
- pathItemCount = 5
- }
- onMovementEnded: idleTimer.restart()
-
- onOpenedIndexChanged: {
- if (openedIndex === -1) return
- idleTimer.lastIndex=openedIndex
- positionViewAtIndex(openedIndex, PathView.Center)
- }
-
- Timer {
- id: idleTimer
- interval: 5000
- property int lastIndex: -1
- onTriggered: {
- stationList.openedIndex = idleTimer.lastIndex
- }
- }
-
- Timer {
- id: browseTimer
- interval: 500
- property string source:""
- onTriggered: playMusic.source = source
- }
-
- path: Path {
- startX: stationList.x; startY: 0
- PathArc {
- id: pathArc
- x: stationList.x; relativeY: stationList.height*1.1
- radiusX: volumeButton.height/2
- radiusY: volumeButton.height/2
- useLargeArc: false
- }
- }
-
- delegate: Item {
- id: stationDelegate
- property bool opened: stationList.openedIndex === index
- width: stationList.width*.7
- height: opened? stationList.height*.4: stationList.height*.2
-
- Behavior on height {NumberAnimation{duration:200}}
-
- Text {
- id: delegateText
- anchors.left: parent.left
- anchors.top: parent.top
- text: (index+1) +". " +title
- font.pixelSize: stationDelegate.opened? stationList.height*.15 : stationList.height*.1
- font.weight: stationDelegate.opened? Font.Bold: Font.Normal
- color: stationList.openedIndex ===-1 || opened? "white": "#0e82b8"
- Behavior on font.pixelSize {NumberAnimation{duration:200}}
- }
-
- Text {
- id: statustextText
- anchors.left: parent.left
- anchors.top: delegateText.bottom
-
- text: playMusic.playbackState=== Audio.PlayingState ? "Playing...":
- playMusic.status=== Audio.Buffering ? "Buffering...":
- playMusic.status=== Audio.Loading ? "Loading...":
- playMusic.playbackState=== Audio.StoppedState ? "Stopped":"Error"
-
- font.pixelSize: stationList.height*.1
- color: delegateText.color
- opacity: opened? 1.0: .0
- Behavior on opacity {NumberAnimation{duration:200}}
- }
-
-
- MouseArea {
- anchors.fill: parent
- visible: root.activeFocus
-
- onClicked: {
- if (opened){
- idleTimer.lastIndex=-1
- stationList.openedIndex=-1
- }else {
- stationList.openedIndex= index
- browseTimer.source = url
- browseTimer.restart()
- }
- }
- }
- }
- }
- }
- }
-
- XmlListModel {
- id: stationModel
- source: "http://qt-project.org/uploads/videos/qt5_radio_channels.xml"
- query: "/radio/channel"
- XmlRole {name: "title"; query: "title/string()"}
- XmlRole {name: "url"; query: "url/string()"}
- }
-
- VolumeButton {
- id: volumeButton
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- anchors.leftMargin: size*.1
- size:parent.height*.5
- playing: playMusic.playbackState === Audio.PlayingState
- onClicked: {
- if (!playMusic.source) return;
- if (!playing) {
- playMusic.play()
- }else {
- playMusic.stop()
- }
- }
- }
-
- Component.onCompleted: {
- volumeButton.init()
- scope.focus = true
- }
-
- Keys.onPressed: {
- if (event.key === Qt.Key_Down || event.key === Qt.Key_VolumeDown) {
- event.accepted = true
- if (volumeButton.volume > .1){
- volumeButton.volume-=.1
- }else{
- volumeButton.volume = 0.0
- }
- }
-
- if (event.key === Qt.Key_Up || event.key === Qt.Key_VolumeUp) {
- event.accepted = true
- if (volumeButton.volume < .9){
- volumeButton.volume+=.1
- }else{
- volumeButton.volume = 1.0
- }
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/content/BusyIndicator.qml b/basicsuite/Qt5Everywhere/demos/rssnews/content/BusyIndicator.qml
deleted file mode 100644
index c16f582..0000000
--- a/basicsuite/Qt5Everywhere/demos/rssnews/content/BusyIndicator.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Image {
- id: container
- property bool on: false
-
- source: "images/busy.png"; visible: container.on
-
- NumberAnimation on rotation {
- running: container.on; from: 0; to: 360; loops: Animation.Infinite; duration: 1200
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/content/CategoryDelegate.qml b/basicsuite/Qt5Everywhere/demos/rssnews/content/CategoryDelegate.qml
deleted file mode 100644
index 2916d1b..0000000
--- a/basicsuite/Qt5Everywhere/demos/rssnews/content/CategoryDelegate.qml
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: delegate
- property double margin: delegate.height * 0.2;
- width: delegate.ListView.view.width;
- height: 60
-
- Text {
- text: name
- color: delegate.ListView.isCurrentItem ? "white" : "black"
- font { family: "Helvetica"; pixelSize: delegate.height * 0.25; bold: true }
- anchors {
- left: parent.left;
- leftMargin: margin
- verticalCenter: parent.verticalCenter
- }
- }
-
- BusyIndicator {
- scale: 0.6
- on: delegate.ListView.isCurrentItem && window.loading
- anchors { right: parent.right; rightMargin: margin; verticalCenter: parent.verticalCenter }
- }
-
- Rectangle {
- width: delegate.width; height: 1; color: "#cccccc"
- anchors.bottom: delegate.bottom
- visible: delegate.ListView.isCurrentItem ? false : true
- }
- Rectangle {
- width: delegate.width; height: 1; color: "white"
- visible: delegate.ListView.isCurrentItem ? false : true
- }
-
- MouseArea {
- anchors.fill: delegate
- onClicked: {
- delegate.ListView.view.currentIndex = index
- window.currentFeed = feed
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/content/NewsDelegate.qml b/basicsuite/Qt5Everywhere/demos/rssnews/content/NewsDelegate.qml
deleted file mode 100644
index 4050af6..0000000
--- a/basicsuite/Qt5Everywhere/demos/rssnews/content/NewsDelegate.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: delegate
- height: column.height + 2*margin
- width: delegate.ListView.view.width
-
- property double margin: width * 0.03
-
- Column {
- id: column
- x: margin; y: margin
- width: parent.width - 2*margin
-
- Text {
- id: titleText
- text: title; width: parent.width; wrapMode: Text.WordWrap
- font { bold: true; family: "Helvetica"; pixelSize: 20}
- }
-
- Text {
- id: descriptionText
- width: parent.width; text: description
- wrapMode: Text.WordWrap
- font.family: "Helvetica"
- font.pixelSize: 12
- }
- }
-
- Rectangle {
- width: parent.width; height: 1; color: "#cccccc"
- anchors.bottom: parent.bottom
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/content/RssFeeds.qml b/basicsuite/Qt5Everywhere/demos/rssnews/content/RssFeeds.qml
deleted file mode 100644
index da26d6a..0000000
--- a/basicsuite/Qt5Everywhere/demos/rssnews/content/RssFeeds.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-ListModel {
- id: rssFeeds
-
- ListElement { name: "Top Stories"; feed: "feeds.bbci.co.uk/news/rss.xml" }
- ListElement { name: "Popular Stories"; feed: "finance.yahoo.com/rss/popularstories" }
- ListElement { name: "Qt Blog"; feed: "blog.qt.digia.com/feed/" }
- ListElement { name: "Planet Qt"; feed: "planet.qt-project.org/rss20.xml" }
- ListElement { name: "World"; feed: "rss.news.yahoo.com/rss/world" }
- ListElement { name: "Oceania"; feed: "rss.news.yahoo.com/rss/oceania" }
- ListElement { name: "U.S. National"; feed: "rss.news.yahoo.com/rss/us" }
- ListElement { name: "Business"; feed: "rss.news.yahoo.com/rss/business" }
- ListElement { name: "Technology"; feed: "rss.news.yahoo.com/rss/tech" }
- ListElement { name: "Entertainment"; feed: "rss.news.yahoo.com/rss/entertainment" }
- ListElement { name: "Sports"; feed: "sports.yahoo.com/mlb/teams/bos/rss.xml" }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/content/ScrollBar.qml b/basicsuite/Qt5Everywhere/demos/rssnews/content/ScrollBar.qml
deleted file mode 100644
index d3cf4a6..0000000
--- a/basicsuite/Qt5Everywhere/demos/rssnews/content/ScrollBar.qml
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: container
-
- property variant scrollArea
- property variant orientation: Qt.Vertical
-
- opacity: 0
-
- function position()
- {
- var ny = 0;
- if (container.orientation == Qt.Vertical)
- ny = scrollArea.visibleArea.yPosition * container.height;
- else
- ny = scrollArea.visibleArea.xPosition * container.width;
- if (ny > 2) return ny; else return 2;
- }
-
- function size()
- {
- var nh, ny;
-
- if (container.orientation == Qt.Vertical)
- nh = scrollArea.visibleArea.heightRatio * container.height;
- else
- nh = scrollArea.visibleArea.widthRatio * container.width;
-
- if (container.orientation == Qt.Vertical)
- ny = scrollArea.visibleArea.yPosition * container.height;
- else
- ny = scrollArea.visibleArea.xPosition * container.width;
-
- if (ny > 3) {
- var t;
- if (container.orientation == Qt.Vertical)
- t = Math.ceil(container.height - 3 - ny);
- else
- t = Math.ceil(container.width - 3 - ny);
- if (nh > t) return t; else return nh;
- } else return nh + ny;
- }
-
- Rectangle { anchors.fill: parent; color: "Black"; opacity: 0.3 }
-
- BorderImage {
- source: "images/scrollbar.png"
- border { left: 1; right: 1; top: 1; bottom: 1 }
- x: container.orientation == Qt.Vertical ? 2 : position()
- width: container.orientation == Qt.Vertical ? container.width - 4 : size()
- y: container.orientation == Qt.Vertical ? position() : 2
- height: container.orientation == Qt.Vertical ? size() : container.height - 4
- }
-
- states: State {
- name: "visible"
- when: container.orientation == Qt.Vertical ? scrollArea.movingVertically : scrollArea.movingHorizontally
- PropertyChanges { target: container; opacity: 1.0 }
- }
-
- transitions: Transition {
- from: "visible"; to: ""
- NumberAnimation { properties: "opacity"; duration: 600 }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/rssnews.qml b/basicsuite/Qt5Everywhere/demos/rssnews/rssnews.qml
deleted file mode 100644
index 5eae0a0..0000000
--- a/basicsuite/Qt5Everywhere/demos/rssnews/rssnews.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.XmlListModel 2.0
-import "content"
-
-Rectangle {
- id: window
- anchors.fill: parent
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#eeeeee" }
- GradientStop { position: 0.1; color: "#ffffff" }
- GradientStop { position: 0.9; color: "#ffffff" }
- GradientStop { position: 1.0; color: "#bbbbbb" }
- }
-
- property int listWidth: window.width*0.35
- property string currentFeed: "feeds.bbci.co.uk/news/rss.xml"
- property bool loading: feedModel.status == XmlListModel.Loading
-
- RssFeeds { id: rssFeeds }
-
- XmlListModel {
- id: feedModel
- source: "http://" + window.currentFeed
- query: "/rss/channel/item"
-
- XmlRole { name: "title"; query: "title/string()" }
- XmlRole { name: "link"; query: "link/string()" }
- XmlRole { name: "description"; query: "description/string()" }
- }
-
- Row {
- Rectangle {
- id: categoryContent
- width: window.listWidth; height: window.height
- color: "#efefef"
-
- ListView {
- id: categories
- anchors.fill: parent
- model: rssFeeds
- delegate: CategoryDelegate {}
- highlight: Rectangle { color: "steelblue" }
- highlightMoveVelocity: 9999999
- }
- ScrollBar {
- scrollArea: categories; height: categories.height; width: 8
- anchors.right: categories.right
- }
- }
- ListView {
- id: list
- width: window.width - window.listWidth; height: window.height
- model: feedModel
- delegate: NewsDelegate {}
- }
- }
-
- ScrollBar { scrollArea: list; height: list.height; width: 8; anchors.right: window.right }
- Rectangle { x: window.listWidth; height: window.height; width: 1; color: "#cccccc" }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/Block.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/Block.qml
deleted file mode 100644
index 0b10b7f..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/Block.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- id: block
- property bool dying: false
- property bool spawned: false
- property int type: 0
- property ParticleSystem particleSystem
-
- Behavior on x {
- enabled: spawned;
- SpringAnimation{ spring: 2; damping: 0.2 }
- }
- Behavior on y {
- SpringAnimation{ spring: 2; damping: 0.2 }
- }
-
- Image {
- id: img
- source: {
- if (type == 0){
- "gfx/red.png";
- } else if (type == 1) {
- "gfx/blue.png";
- } else if (type == 2) {
- "gfx/green.png";
- } else {
- "gfx/yellow.png";
- }
- }
- opacity: 0
- Behavior on opacity { NumberAnimation { duration: 200 } }
- anchors.fill: parent
- }
-
- //Foreground particles
- BlockEmitter {
- id: particles
- system: particleSystem
- group: {
- if (type == 0){
- "red";
- } else if (type == 1) {
- "blue";
- } else if (type == 2) {
- "green";
- } else {
- "yellow";
- }
- }
- anchors.fill: parent
- }
-
- //Paint particles on the background
- PaintEmitter {
- id: particles2
- system: particleSystem
- }
-
- states: [
- State {
- name: "AliveState"; when: spawned == true && dying == false
- PropertyChanges { target: img; opacity: 1 }
- },
-
- State {
- name: "DeathState"; when: dying == true
- StateChangeScript { script: {particleSystem.paused = false; particles.pulse(100); particles2.pulse(100);} }
- PropertyChanges { target: img; opacity: 0 }
- StateChangeScript { script: block.destroy(1000); }
- }
- ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/BlockEmitter.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/BlockEmitter.qml
deleted file mode 100644
index ba6261c..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/BlockEmitter.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-import "../settings.js" as Settings
-
-Emitter {
- property Item block: parent
- velocity: TargetDirection{targetX: block.width/2; targetY: block.height/2; magnitude: -40; magnitudeVariation: 40}
- acceleration: TargetDirection{targetX: block.width/2; targetY: block.height/2; magnitude: -100;}
- shape: EllipseShape{fill:true}
- enabled: false;
- lifeSpan: 700; lifeSpanVariation: 100
- emitRate: 1000
- maximumEmitted: 100 //only fires 0.1s bursts (still 2x old number)
- size: Settings.blockSize * 0.85
- endSize: Settings.blockSize * 0.85 /2
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/Button.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/Button.qml
deleted file mode 100644
index 4b825ba..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/Button.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- property alias imgSrc: image.source
- property alias system: emitter.system
- property alias group: emitter.group
- signal clicked
- property bool rotatedButton: false
-
- width: image.width
- height: image.sourceSize.height
- Image {
- id: image
- height: parent.height
- width: height/sourceSize.height * sourceSize.width
-
- anchors.horizontalCenter: parent.horizontalCenter
- rotation: rotatedButton ? ((Math.random() * 3 + 2) * (Math.random() <= 0.5 ? -1 : 1)) : 0
- MenuEmitter {
- id: emitter
- anchors.fill: parent
- //shape: MaskShape {source: image.source}
- }
- }
- MouseArea {
- anchors.fill: parent
- onClicked: {parent.clicked(); emitter.burst(400);}
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/GameArea.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/GameArea.qml
deleted file mode 100644
index 6e72161..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/GameArea.qml
+++ /dev/null
@@ -1,226 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-import "samegame.js" as Logic
-
-Item {
- id: gameCanvas
- property bool gameOver: true
- property int score: 0
- property int highScore: 0
- property int moves: 0
- property string mode: ""
- property ParticleSystem ps: particleSystem
- //For easy theming
- property alias backgroundVisible: bg.visible
- property string background: "gfx/background.png"
- property string blockFile: "Block.qml"
- onBlockFileChanged: Logic.changeBlock(blockFile);
- property alias particlePack: auxLoader.source
- //For multiplayer
- property int score2: 0
- property int curTurn: 1
- property bool autoTurnChange: false
- signal swapPlayers
- property bool swapping: false
- //onSwapPlayers: if (autoTurnChange) Logic.turnChange();//Now implemented below
- //For puzzle
- property url level
- property bool puzzleWon: false
- signal puzzleLost //Since root is tracking the puzzle progress
- function showPuzzleEnd (won) {
- if (won) {
- smokeParticle.color = Qt.rgba(0,1,0,0);
- puzzleWin.play();
- } else {
- smokeParticle.color = Qt.rgba(1,0,0,0);
- puzzleFail.play();
- puzzleLost();
- }
- }
- function showPuzzleGoal (str) {
- puzzleTextBubble.opacity = 1;
- puzzleTextLabel.text = str;
- }
- Image {
- id: bg
- z: -1
- anchors.fill: parent
- source: background;
- fillMode: Image.PreserveAspectCrop
- }
-
- MouseArea {
- anchors.fill: parent; onClicked: {
- if (puzzleTextBubble.opacity == 1) {
- puzzleTextBubble.opacity = 0;
- Logic.finishLoadingMap();
- } else if (!swapping) {
- Logic.handleClick(mouse.x,mouse.y);
- }
- }
- }
-
- Image {
- id: highScoreTextBubble
- opacity: mode == "arcade" && gameOver && gameCanvas.score == gameCanvas.highScore ? 1 : 0
- Behavior on opacity { NumberAnimation {} }
- anchors.centerIn: parent
- z: 10
- source: "gfx/bubble-highscore.png"
- Image {
- anchors.centerIn: parent
- source: "gfx/text-highscore-new.png"
- rotation: -10
- }
- }
-
- Image {
- id: puzzleTextBubble
- anchors.centerIn: parent
- opacity: 0
- Behavior on opacity { NumberAnimation {} }
- z: 10
- source: "gfx/bubble-puzzle.png"
- Connections {
- target: gameCanvas
- onModeChanged: if (mode != "puzzle" && puzzleTextBubble.opacity > 0) puzzleTextBubble.opacity = 0;
- }
- Text {
- id: puzzleTextLabel
- width: parent.width - 24
- anchors.centerIn: parent
- horizontalAlignment: Text.AlignHCenter
- color: "white"
- font.pixelSize: 24
- font.bold: true
- wrapMode: Text.WordWrap
- }
- }
- onModeChanged: {
- p1WonImg.opacity = 0;
- p2WonImg.opacity = 0;
- }
- SmokeText { id: puzzleWin; source: "gfx/icon-ok.png"; system: particleSystem }
- SmokeText { id: puzzleFail; source: "gfx/icon-fail.png"; system: particleSystem }
-
- onSwapPlayers: {
- smokeParticle.color = "yellow"
- Logic.turnChange();
- if (curTurn == 1) {
- p1Text.play();
- } else {
- p2Text.play();
- }
- clickDelay.running = true;
- }
- SequentialAnimation {
- id: clickDelay
- ScriptAction { script: gameCanvas.swapping = true; }
- PauseAnimation { duration: 750 }
- ScriptAction { script: gameCanvas.swapping = false; }
- }
-
- SmokeText {
- id: p1Text; source: "gfx/text-p1-go.png";
- system: particleSystem; playerNum: 1
- opacity: p1WonImg.opacity + p2WonImg.opacity > 0 ? 0 : 1
- }
-
- SmokeText {
- id: p2Text; source: "gfx/text-p2-go.png";
- system: particleSystem; playerNum: 2
- opacity: p1WonImg.opacity + p2WonImg.opacity > 0 ? 0 : 1
- }
-
- onGameOverChanged: {
- if (gameCanvas.mode == "multiplayer") {
- if (gameCanvas.score >= gameCanvas.score2) {
- p1WonImg.opacity = 1;
- } else {
- p2WonImg.opacity = 1;
- }
- }
- }
- Image {
- id: p1WonImg
- source: "gfx/text-p1-won.png"
- anchors.centerIn: parent
- opacity: 0
- Behavior on opacity { NumberAnimation {} }
- z: 10
- }
- Image {
- id: p2WonImg
- source: "gfx/text-p2-won.png"
- anchors.centerIn: parent
- opacity: 0
- Behavior on opacity { NumberAnimation {} }
- z: 10
- }
-
- ParticleSystem{
- id: particleSystem;
- anchors.fill: parent
- z: 5
- ImageParticle {
- id: smokeParticle
- groups: ["smoke"]
- source: "gfx/particle-smoke.png"
- alpha: 0.1
- alphaVariation: 0.1
- color: "yellow"
- }
- Loader {
- id: auxLoader
- anchors.fill: parent
- source: "PrimaryPack.qml"
- onItemChanged: {
- if (item && "particleSystem" in item)
- item.particleSystem = particleSystem
- if (item && "gameArea" in item)
- item.gameArea = gameCanvas
- }
- }
- }
-}
-
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/LogoAnimation.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/LogoAnimation.qml
deleted file mode 100644
index fb050e7..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/LogoAnimation.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- id: container //Positioned where the 48x48 S/G should be
- property alias running: mainAnim.running
- property ParticleSystem particleSystem
- property int dur: 500
- signal boomTime
- Image {
- id: s1
- source: "gfx/logo-s.png"
- y: 0
- }
- Image {
- id: g1
- source: "gfx/logo-g.png"
- y: -128
- }
- Column {
- Repeater {
- model: 2
- Item {
- width: 48
- height: 48
- BlockEmitter {
- id: emitter
- anchors.fill: parent
- group: "red"
- system: particleSystem
- Connections {
- target: container
- onBoomTime: emitter.pulse(100);
- }
- }
- }
- }
- }
- SequentialAnimation {
- id: mainAnim
- running: true
- loops: -1
- PropertyAction { target: g1; property: "y"; value: -128}
- PropertyAction { target: g1; property: "opacity"; value: 1}
- PropertyAction { target: s1; property: "y"; value: 0}
- PropertyAction { target: s1; property: "opacity"; value: 1}
- NumberAnimation { target: g1; property: "y"; from: -96; to: -48; duration: dur}
- ParallelAnimation {
- NumberAnimation { target: g1; property: "y"; from: -48; to: 0; duration: dur}
- NumberAnimation { target: s1; property: "y"; from: 0; to: 48; duration: dur }
- }
- PauseAnimation { duration: dur }
- ScriptAction { script: container.boomTime(); }
- ParallelAnimation {
- NumberAnimation { target: g1; property: "opacity"; to: 0; duration: dur }
- NumberAnimation { target: s1; property: "opacity"; to: 0; duration: dur }
- }
- PropertyAction { target: s1; property: "y"; value: -128}
- PropertyAction { target: s1; property: "opacity"; value: 1}
- NumberAnimation { target: s1; property: "y"; from: -96; to: 0; duration: dur * 2}
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/MenuEmitter.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/MenuEmitter.qml
deleted file mode 100644
index 93089fc..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/MenuEmitter.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Emitter {
- anchors.fill: parent
- velocity: AngleDirection{angleVariation: 360; magnitude: 140; magnitudeVariation: 40}
- enabled: false;
- lifeSpan: 500;
- emitRate: 1
- size: 28
- endSize: 14
- group: "yellow"
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/PaintEmitter.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/PaintEmitter.qml
deleted file mode 100644
index fe758af..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/PaintEmitter.qml
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-import "../settings.js" as Settings
-
-Emitter {
- property Item block: parent
- anchors.fill: parent
- shape: EllipseShape { fill: true }
- group: {
- if (block.type == 0){
- "redspots";
- } else if (block.type == 1) {
- "bluespots";
- } else if (block.type == 2) {
- "greenspots";
- } else {
- "yellowspots";
- }
- }
- size: Settings.blockSize * 2
- endSize: Settings.blockSize/2
- lifeSpan: 30000
- enabled: false
- emitRate: 60
- maximumEmitted: 60
- velocity: PointDirection{ y: 4; yVariation: 4 }
- /* Possibly better, but dependent on gerrit change,28212
- property real mainIntensity: 0.8
- property real subIntensity: 0.1
- property real colorVariation: 0.005
- onEmitParticles: {//One group, many colors, for better stacking
- for (var i=0; i<particles.length; i++) {
- var particle = particles[i];
- if (block.type == 0) {
- particle.red = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.green = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.blue = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- } else if (block.type == 1) {
- particle.red = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.green = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.blue = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- } else if (block.type == 2) {
- particle.red = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.green = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.blue = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- } else if (block.type == 3) {
- particle.red = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.green = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.blue = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- } else {
- particle.red = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.green = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- particle.blue = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
- }
- }
- }
- */
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/PrimaryPack.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/PrimaryPack.qml
deleted file mode 100644
index 3fe7fb1..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/PrimaryPack.qml
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- id: container
- property ParticleSystem particleSystem
- property GameArea gameArea
- onGameAreaChanged: bgstacker.parent = gameArea;//Move to direct child of game canvas
- Item {
- id: bgstacker
- z: 0
- ImageParticle {
- groups: ["yellowspots"]
- color: Qt.darker("yellow");//Actually want desaturated...
- system: particleSystem
- source: "gfx/particle-paint.png"
- colorVariation: 0.2
- alpha: 0.2
- entryEffect: ImageParticle.None
- }
- ImageParticle {
- groups: ["redspots"]
- system: particleSystem
- color: Qt.darker("red");//Actually want desaturated...
- source: "gfx/particle-paint.png"
- colorVariation: 0.2
- alpha: 0.2
- entryEffect: ImageParticle.None
- }
- ImageParticle {
- groups: ["greenspots"]
- system: particleSystem
- color: Qt.darker("green");//Actually want desaturated...
- source: "gfx/particle-paint.png"
- colorVariation: 0.2
- alpha: 0.2
- entryEffect: ImageParticle.None
- }
- ImageParticle {
- groups: ["bluespots"]
- system: particleSystem
- color: Qt.darker("blue");//Actually want desaturated...
- source: "gfx/particle-paint.png"
- colorVariation: 0.2
- alpha: 0.2
- entryEffect: ImageParticle.None
- }
- }
- ImageParticle {
- groups: ["yellow"]
- system: particleSystem
- color: Qt.darker("yellow");//Actually want desaturated...
- source: "gfx/particle-brick.png"
- colorVariation: 0.4
- alpha: 0.1
- }
- ImageParticle {
- groups: ["red"]
- system: particleSystem
- color: Qt.darker("red");//Actually want desaturated...
- source: "gfx/particle-brick.png"
- colorVariation: 0.4
- alpha: 0.1
- }
- ImageParticle {
- groups: ["green"]
- system: particleSystem
- color: Qt.darker("green");//Actually want desaturated...
- source: "gfx/particle-brick.png"
- colorVariation: 0.4
- alpha: 0.1
- }
- ImageParticle {
- groups: ["blue"]
- system: particleSystem
- color: Qt.darker("blue");//Actually want desaturated...
- source: "gfx/particle-brick.png"
- colorVariation: 0.4
- alpha: 0.1
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/PuzzleBlock.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/PuzzleBlock.qml
deleted file mode 100644
index 4f5b043..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/PuzzleBlock.qml
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- id: block
- property bool dying: false
- property bool spawned: false
- property int type: 0
- property ParticleSystem particleSystem
-
- Behavior on x {
- enabled: spawned;
- NumberAnimation{ easing.type: Easing.OutBounce }
- }
- Behavior on y {
- NumberAnimation{ easing.type: Easing.InQuad }
- }
-
- Image {
- id: img
- source: {
- if (type == 0){
- "gfx/red-puzzle.png";
- } else if (type == 1) {
- "gfx/blue-puzzle.png";
- } else if (type == 2) {
- "gfx/green-puzzle.png";
- } else {
- "gfx/yellow-puzzle.png";
- }
- }
- opacity: 0
- Behavior on opacity { NumberAnimation { duration: 200 } }
- anchors.centerIn: parent
- anchors.verticalCenterOffset: -4
- anchors.horizontalCenterOffset: 4
- }
-
- //Foreground particles
- BlockEmitter {
- id: particles
- system: particleSystem
- group: {
- if (type == 0){
- "red";
- } else if (type == 1) {
- "blue";
- } else if (type == 2) {
- "green";
- } else {
- "yellow";
- }
- }
- anchors.fill: parent
- }
-
- states: [
- State {
- name: "AliveState"; when: spawned == true && dying == false
- PropertyChanges { target: img; opacity: 1 }
- },
-
- State {
- name: "DeathState"; when: dying == true
- PropertyChanges { target: img; scale: 2 }
- StateChangeScript { script: particles.pulse(200); }
- PropertyChanges { target: img; opacity: 0 }
- StateChangeScript { script: block.destroy(1000); }
- }
- ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/SimpleBlock.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/SimpleBlock.qml
deleted file mode 100644
index 5ae4782..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/SimpleBlock.qml
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- id: block
- property bool dying: false
- property bool spawned: false
- property int type: 0
- property ParticleSystem particleSystem
-
- Behavior on x {
- enabled: spawned;
- SpringAnimation{ spring: 2; damping: 0.2 }
- }
- Behavior on y {
- SpringAnimation{ spring: 2; damping: 0.2 }
- }
-
- Image {
- id: img
- source: {
- if (type == 0){
- "gfx/red.png";
- } else if (type == 1) {
- "gfx/blue.png";
- } else if (type == 2) {
- "gfx/green.png";
- } else {
- "gfx/yellow.png";
- }
- }
- opacity: 0
- Behavior on opacity { NumberAnimation { duration: 200 } }
- anchors.fill: parent
- }
-
- //Foreground particles
- BlockEmitter {
- id: particles
- system: particleSystem
- group: {
- if (type == 0){
- "red";
- } else if (type == 1) {
- "blue";
- } else if (type == 2) {
- "green";
- } else {
- "yellow";
- }
- }
- anchors.fill: parent
- }
-
- states: [
- State {
- name: "AliveState"; when: spawned == true && dying == false
- PropertyChanges { target: img; opacity: 1 }
- },
-
- State {
- name: "DeathState"; when: dying == true
- StateChangeScript { script: {particleSystem.paused = false; particles.pulse(100); } }
- PropertyChanges { target: img; opacity: 0 }
- StateChangeScript { script: block.destroy(1000); }
- }
- ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/SmokeText.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/SmokeText.qml
deleted file mode 100644
index 46bc509..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/SmokeText.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- z: 10
- property alias source: img.source
- property alias system: emitter.system
- property int playerNum: 1
- function play() {
- anim.running = true;
- }
- anchors.centerIn: parent
- Image {
- opacity: 0
- id: img
- anchors.centerIn: parent
- rotation: playerNum == 1 ? -8 : -5
- Emitter {
- id: emitter
- group: "smoke"
- anchors.fill: parent
- shape: MaskShape { source: img.source }
- enabled: false
- emitRate: 1000
- lifeSpan: 600
- size: 64
- endSize: 32
- velocity: AngleDirection { angleVariation: 360; magnitudeVariation: 160 }
- }
- }
- SequentialAnimation {
- id: anim
- running: false
- PauseAnimation { duration: 500}
- ParallelAnimation {
- NumberAnimation { target: img; property: "opacity"; from: 0.1; to: 1.0 }
- NumberAnimation { target: img; property: "scale"; from: 0.1; to: 1.0 }
- }
- PauseAnimation { duration: 250}
- ScriptAction { script: emitter.pulse(100); }
- NumberAnimation { target: img; property: "opacity"; from: 1.0; to: 0.0 }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/TemplateBase.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/TemplateBase.qml
deleted file mode 100644
index 48ea399..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/TemplateBase.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle{
- id: control
- property int scoreTarget: -1
- property int timeTarget: -1
- property int moveTarget: -1
- property bool mustClear: true
- property string goalText: "Clear the level..."
-
- property var startingGrid //If this isn't an array of ints, we will refuse to load the level.
- /* Ints are 0-4. If not enough ints are there it will be prepadded with 0s to fill the grid
- (which ruins everything if you have the wrong number of rows).
- 0 - No block
- 1 - Red
- 2 - Blue
- 3 - Green
- 4 - Yellow
- Ideas for future colors, but not supported in this version:
- 5 - Purple
- 6 - Cyan
- 7 - Gray
- 8 - Black
- 9 - White
- */
-
- width: 320
- height: 416
- color: "white" //TODO: Theme support for both setting themes per level, and seeing it in the control!
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level0.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level0.qml
deleted file mode 100644
index 7ac7ed8..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level0.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- moveTarget: 3
- goalText: "1 of 10<br><br>Clear in three moves..."
- startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 ,
- 0 , 0 , 0 , 0 , 0 , 1 , 1 , 2 , 1 , 1 ,
- 0 , 0 , 0 , 1 , 1 , 3 , 3 , 3 , 3 , 3 ,
- 0 , 1 , 1 , 3 , 3 , 3 , 1 , 3 , 1 , 1 ,
- 1 , 2 , 3 , 3 , 1 , 1 , 3 , 3 , 3 , 3 ,
- 1 , 3 , 3 , 2 , 3 , 3 , 3 , 3 , 1 , 1 ,
- 1 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level1.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level1.qml
deleted file mode 100644
index 0b7a889..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level1.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- timeTarget: 10
- goalText: "2 of 10<br><br>Clear in 10 seconds..."
- startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 1 , 3 , 3 , 3 , 1 , 1 , 1 , 1 , 2 , 2 ,
- 1 , 2 , 3 , 3 , 3 , 1 , 1 , 1 , 1 , 2 ,
- 2 , 2 , 1 , 3 , 3 , 3 , 1 , 1 , 1 , 2 ,
- 2 , 1 , 1 , 1 , 3 , 3 , 3 , 1 , 2 , 2 ,
- 1 , 1 , 1 , 1 , 1 , 3 , 3 , 3 , 2 , 1 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level2.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level2.qml
deleted file mode 100644
index 986f217..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level2.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- scoreTarget: 1200
- timeTarget: 60
- goalText: "3 of 10<br><br>Score over 1200 points in one minute..."
- mustClear: false
- startingGrid: [ 3 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 3 , 3 ,
- 1 , 3 , 3 , 2 , 3 , 3 , 1 , 1 , 3 , 1 ,
- 3 , 1 , 3 , 3 , 2 , 3 , 3 , 3 , 1 , 2 ,
- 3 , 2 , 2 , 1 , 3 , 3 , 2 , 1 , 1 , 2 ,
- 3 , 1 , 2 , 2 , 2 , 2 , 2 , 1 , 3 , 1 ,
- 2 , 3 , 1 , 2 , 2 , 3 , 3 , 1 , 3 , 2 ,
- 3 , 2 , 1 , 1 , 3 , 3 , 3 , 2 , 2 , 1 ,
- 1 , 2 , 2 , 3 , 2 , 3 , 3 , 3 , 1 , 1 ,
- 1 , 3 , 3 , 3 , 1 , 2 , 2 , 3 , 3 , 1 ,
- 3 , 3 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 ,
- 2 , 1 , 3 , 2 , 3 , 2 , 3 , 2 , 2 , 1 ,
- 1 , 3 , 1 , 2 , 1 , 2 , 3 , 1 , 2 , 2 ,
- 1 , 2 , 2 , 2 , 1 , 1 , 2 , 3 , 1 , 2 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level3.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level3.qml
deleted file mode 100644
index eff5182..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level3.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- scoreTarget: 3000
- timeTarget: 60
- goalText: "4 of 10<br>Clear the board with over 3000 points in under a minute..."
- startingGrid: [ 3 , 3 , 1 , 1 , 1 , 2 , 2 , 4 , 3 , 3 ,
- 4 , 3 , 1 , 4 , 2 , 2 , 2 , 4 , 3 , 4 ,
- 4 , 3 , 3 , 4 , 1 , 1 , 3 , 3 , 4 , 4 ,
- 3 , 3 , 3 , 3 , 3 , 1 , 3 , 2 , 2 , 4 ,
- 4 , 4 , 3 , 4 , 3 , 1 , 4 , 4 , 4 , 4 ,
- 4 , 4 , 3 , 4 , 1 , 1 , 4 , 4 , 3 , 3 ,
- 4 , 2 , 2 , 2 , 2 , 2 , 4 , 4 , 4 , 1 ,
- 4 , 4 , 2 , 4 , 2 , 2 , 1 , 1 , 1 , 1 ,
- 4 , 4 , 2 , 4 , 2 , 2 , 1 , 4 , 4 , 1 ,
- 4 , 1 , 1 , 4 , 3 , 3 , 4 , 2 , 4 , 1 ,
- 4 , 1 , 1 , 2 , 3 , 3 , 4 , 2 , 2 , 1 ,
- 1 , 1 , 2 , 2 , 2 , 3 , 3 , 3 , 2 , 1 ,
- 4 , 1 , 1 , 2 , 2 , 3 , 4 , 3 , 4 , 4 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level4.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level4.qml
deleted file mode 100644
index 4438de1..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level4.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- goalText: "5 of 10<br><br>Clear the level..."
- startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 1 , 3 , 2 , 1 , 1 , 1 , 1 , 3 , 2 , 3 ,
- 1 , 2 , 3 , 1 , 3 , 2 , 2 , 1 , 1 , 2 ,
- 3 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 3 , 3 ,
- 2 , 1 , 1 , 3 , 2 , 1 , 1 , 2 , 1 , 3 ,
- 1 , 3 , 3 , 1 , 2 , 1 , 2 , 1 , 3 , 3 ,
- 1 , 3 , 2 , 2 , 2 , 1 , 1 , 3 , 2 , 3 ,
- 1 , 1 , 3 , 2 , 3 , 3 , 2 , 1 , 1 , 1 ,
- 1 , 2 , 2 , 3 , 2 , 2 , 1 , 3 , 1 , 3 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level5.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level5.qml
deleted file mode 100644
index ee48217..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level5.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- moveTarget: 4
- goalText: "6 of 10<br><br>Clear in four or less moves..."
- startingGrid: [ 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ,
- 4 , 2 , 2 , 2 , 4 , 3 , 3 , 3 , 4 , 4 ,
- 4 , 2 , 4 , 4 , 4 , 3 , 2 , 3 , 4 , 4 ,
- 4 , 2 , 2 , 2 , 4 , 3 , 3 , 3 , 4 , 4 ,
- 4 , 4 , 4 , 2 , 4 , 3 , 4 , 3 , 4 , 4 ,
- 4 , 2 , 2 , 2 , 4 , 3 , 4 , 3 , 4 , 4 ,
- 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ,
- 4 , 3 , 4 , 3 , 4 , 2 , 2 , 2 , 4 , 3 ,
- 4 , 3 , 3 , 3 , 4 , 2 , 4 , 4 , 4 , 3 ,
- 4 , 3 , 3 , 3 , 4 , 2 , 2 , 2 , 4 , 3 ,
- 4 , 3 , 4 , 3 , 4 , 2 , 4 , 4 , 4 , 4 ,
- 4 , 3 , 4 , 3 , 4 , 2 , 2 , 2 , 4 , 3 ,
- 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level6.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level6.qml
deleted file mode 100644
index 2b34baa..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level6.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- moveTarget: 20
- timeTarget: 40
- goalText: "7 of 10<br><br>Clear with 20 moves in 40 seconds (or better)."
- startingGrid: [ 1 , 3 , 1 , 1 , 1 , 1 , 2 , 1 , 2 , 2 ,
- 2 , 1 , 2 , 3 , 3 , 1 , 3 , 1 , 1 , 3 ,
- 3 , 1 , 1 , 1 , 2 , 2 , 3 , 2 , 3 , 1 ,
- 1 , 3 , 1 , 1 , 3 , 1 , 1 , 1 , 2 , 3 ,
- 2 , 1 , 1 , 1 , 3 , 2 , 3 , 3 , 2 , 3 ,
- 3 , 3 , 3 , 3 , 2 , 2 , 3 , 1 , 3 , 2 ,
- 2 , 2 , 3 , 2 , 2 , 3 , 2 , 2 , 2 , 2 ,
- 1 , 2 , 1 , 2 , 1 , 3 , 2 , 3 , 2 , 3 ,
- 1 , 1 , 2 , 3 , 3 , 3 , 3 , 1 , 1 , 2 ,
- 3 , 3 , 2 , 2 , 2 , 2 , 3 , 1 , 3 , 1 ,
- 1 , 2 , 3 , 3 , 3 , 1 , 3 , 2 , 1 , 2 ,
- 1 , 2 , 1 , 1 , 2 , 3 , 1 , 2 , 1 , 3 ,
- 3 , 1 , 2 , 2 , 1 , 3 , 3 , 1 , 3 , 2 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level7.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level7.qml
deleted file mode 100644
index 280bbb1..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level7.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- goalText: "8 of 10<br><br>Clear the grid."
- startingGrid: [ 2 , 4 , 3 , 2 , 3 , 2 , 3 , 3 , 4 , 3 ,
- 2 , 2 , 3 , 3 , 1 , 4 , 3 , 3 , 3 , 2 ,
- 1 , 4 , 2 , 3 , 4 , 3 , 3 , 1 , 1 , 1 ,
- 2 , 1 , 2 , 4 , 4 , 2 , 2 , 3 , 2 , 1 ,
- 3 , 4 , 4 , 1 , 3 , 2 , 4 , 2 , 1 , 1 ,
- 2 , 2 , 3 , 1 , 2 , 4 , 1 , 2 , 1 , 2 ,
- 1 , 2 , 3 , 2 , 4 , 4 , 3 , 1 , 1 , 2 ,
- 4 , 4 , 2 , 1 , 2 , 4 , 2 , 2 , 4 , 3 ,
- 4 , 2 , 4 , 1 , 3 , 4 , 1 , 4 , 2 , 4 ,
- 4 , 3 , 4 , 1 , 4 , 3 , 1 , 3 , 1 , 1 ,
- 3 , 3 , 2 , 3 , 2 , 4 , 1 , 2 , 4 , 4 ,
- 3 , 4 , 2 , 2 , 4 , 3 , 4 , 1 , 3 , 2 ,
- 4 , 3 , 3 , 4 , 2 , 4 , 1 , 2 , 3 , 2 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level8.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level8.qml
deleted file mode 100644
index 7661485..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level8.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- scoreTarget: 1000
- goalText: "9 of 10<br><br>Score over 1000 points"
- startingGrid: [ 1 , 4 , 4 , 3 , 2 , 1 , 4 , 2 , 4 , 2 ,
- 2 , 3 , 4 , 4 , 1 , 1 , 1 , 4 , 4 , 4 ,
- 1 , 3 , 1 , 2 , 2 , 1 , 2 , 1 , 4 , 2 ,
- 4 , 3 , 4 , 2 , 1 , 4 , 1 , 2 , 2 , 3 ,
- 3 , 4 , 2 , 4 , 4 , 3 , 2 , 2 , 2 , 1 ,
- 4 , 4 , 3 , 2 , 4 , 4 , 2 , 1 , 1 , 1 ,
- 1 , 2 , 1 , 3 , 4 , 1 , 1 , 3 , 2 , 3 ,
- 3 , 4 , 2 , 2 , 1 , 3 , 2 , 2 , 4 , 2 ,
- 2 , 4 , 1 , 2 , 2 , 4 , 3 , 3 , 3 , 1 ,
- 1 , 2 , 2 , 4 , 1 , 2 , 2 , 3 , 3 , 3 ,
- 4 , 4 , 1 , 4 , 3 , 1 , 3 , 3 , 3 , 4 ,
- 1 , 2 , 4 , 1 , 2 , 1 , 1 , 4 , 2 , 1 ,
- 1 , 2 , 3 , 4 , 2 , 4 , 4 , 2 , 1 , 3 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level9.qml b/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level9.qml
deleted file mode 100644
index c75d8e5..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/levels/level9.qml
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TemplateBase{
- scoreTarget: 2000
- timeTarget: 60
- moveTarget: 20
- mustClear: false
- goalText: "10 of 10<br><br>Score 2000 in one minute with less than 20 moves!"
- startingGrid: [ 3 , 2 , 3 , 1 , 3 , 3 , 4 , 1 , 3 , 3 ,
- 2 , 3 , 2 , 1 , 1 , 2 , 2 , 2 , 4 , 1 ,
- 2 , 4 , 4 , 4 , 3 , 1 , 4 , 4 , 4 , 1 ,
- 3 , 1 , 3 , 4 , 4 , 2 , 2 , 2 , 2 , 3 ,
- 2 , 1 , 4 , 4 , 3 , 3 , 1 , 1 , 3 , 2 ,
- 3 , 2 , 1 , 4 , 3 , 4 , 1 , 3 , 4 , 2 ,
- 3 , 3 , 1 , 4 , 4 , 4 , 2 , 1 , 2 , 3 ,
- 2 , 3 , 4 , 3 , 4 , 1 , 1 , 3 , 2 , 4 ,
- 4 , 4 , 1 , 2 , 4 , 3 , 2 , 2 , 2 , 4 ,
- 1 , 4 , 2 , 2 , 1 , 1 , 2 , 1 , 1 , 4 ,
- 1 , 4 , 3 , 3 , 3 , 1 , 3 , 4 , 4 , 2 ,
- 3 , 4 , 1 , 1 , 2 , 2 , 2 , 3 , 2 , 1 ,
- 3 , 3 , 4 , 3 , 1 , 1 , 1 , 4 , 4 , 3 ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/samegame.js b/basicsuite/Qt5Everywhere/demos/samegame/content/samegame.js
deleted file mode 100644
index 96b8167..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/samegame.js
+++ /dev/null
@@ -1,581 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/* This script file handles the game logic */
-.pragma library
-.import QtQuick.LocalStorage 2.0 as Sql
-.import "../settings.js" as Settings
-
-var maxColumn = 10;
-var maxRow = 13;
-var types = 3;
-var maxIndex = maxColumn*maxRow;
-var board = new Array(maxIndex);
-var blockSrc = "Block.qml";
-var gameDuration;
-var component = Qt.createComponent(blockSrc);
-var gameCanvas;
-var betweenTurns = false;
-
-var puzzleLevel = null;
-var puzzlePath = "";
-
-var gameMode = "arcade"; //Set in new game, then tweaks behavior of other functions
-var gameOver = false;
-
-function changeBlock(src)
-{
- blockSrc = src;
- component = Qt.createComponent(blockSrc);
-}
-
-// Index function used instead of a 2D array
-function index(column, row)
-{
- return column + row * maxColumn;
-}
-
-function timeStr(msecs)
-{
- var secs = Math.floor(msecs/1000);
- var m = Math.floor(secs/60);
- var ret = "" + m + "m " + (secs%60) + "s";
- return ret;
-}
-
-function cleanUp()
-{
- if (gameCanvas == undefined)
- return;
- // Delete blocks from previous game
- for (var i = 0; i < maxIndex; i++) {
- if (board[i] != null)
- board[i].destroy();
- board[i] = null;
- }
- if (puzzleLevel != null){
- puzzleLevel.destroy();
- puzzleLevel = null;
- }
- gameCanvas.mode = ""
-}
-
-function startNewGame(gc, mode, map)
-{
- gameCanvas = gc;
- if (mode == undefined)
- gameMode = "arcade";
- else
- gameMode = mode;
- gameOver = false;
-
- cleanUp();
-
- gc.gameOver = false;
- gc.mode = gameMode;
- // Calculate board size
- maxColumn = Math.floor(gameCanvas.width/Settings.blockSize);
- maxRow = Math.floor(gameCanvas.height/Settings.blockSize);
- maxIndex = maxRow * maxColumn;
- if (gameMode == "arcade") //Needs to be after board sizing
- getHighScore();
-
-
- // Initialize Board
- board = new Array(maxIndex);
- gameCanvas.score = 0;
- gameCanvas.score2 = 0;
- gameCanvas.moves = 0;
- gameCanvas.curTurn = 1;
- if (gameMode == "puzzle")
- loadMap(map);
- else//Note that we load them in reverse order for correct visual stacking
- for (var column = maxColumn - 1; column >= 0; column--)
- for (var row = maxRow - 1; row >= 0; row--)
- createBlock(column, row);
- if (gameMode == "puzzle")
- getLevelHistory();//Needs to be after map load
- gameDuration = new Date();
-}
-
-var fillFound; // Set after a floodFill call to the number of blocks found
-var floodBoard; // Set to 1 if the floodFill reaches off that node
-
-// NOTE: Be careful with vars named x,y, as the calling object's x,y are still in scope
-function handleClick(x,y)
-{
- if (betweenTurns || gameOver || gameCanvas == undefined)
- return;
- var column = Math.floor(x/Settings.blockSize);
- var row = Math.floor(y/Settings.blockSize);
- if (column >= maxColumn || column < 0 || row >= maxRow || row < 0)
- return;
- if (board[index(column, row)] == null)
- return;
- // If it's a valid block, remove it and all connected (does nothing if it's not connected)
- floodFill(column,row, -1);
- if (fillFound <= 0)
- return;
- if (gameMode == "multiplayer" && gameCanvas.curTurn == 2)
- gameCanvas.score2 += (fillFound - 1) * (fillFound - 1);
- else
- gameCanvas.score += (fillFound - 1) * (fillFound - 1);
- if (gameMode == "multiplayer" && gameCanvas.curTurn == 2)
- shuffleUp();
- else
- shuffleDown();
- gameCanvas.moves += 1;
- if (gameMode == "endless")
- refill();
- else if (gameMode != "multiplayer")
- victoryCheck();
- if (gameMode == "multiplayer" && !gc.gameOver){
- betweenTurns = true;
- gameCanvas.swapPlayers();//signal, animate and call turnChange() when ready
- }
-}
-
-function floodFill(column,row,type)
-{
- if (board[index(column, row)] == null)
- return;
- var first = false;
- if (type == -1) {
- first = true;
- type = board[index(column,row)].type;
-
- // Flood fill initialization
- fillFound = 0;
- floodBoard = new Array(maxIndex);
- }
- if (column >= maxColumn || column < 0 || row >= maxRow || row < 0)
- return;
- if (floodBoard[index(column, row)] == 1 || (!first && type != board[index(column, row)].type))
- return;
- floodBoard[index(column, row)] = 1;
- floodFill(column + 1, row, type);
- floodFill(column - 1, row, type);
- floodFill(column, row + 1, type);
- floodFill(column, row - 1, type);
- if (first == true && fillFound == 0)
- return; // Can't remove single blocks
- board[index(column, row)].dying = true;
- board[index(column, row)] = null;
- fillFound += 1;
-}
-
-function shuffleDown()
-{
- // Fall down
- for (var column = 0; column < maxColumn; column++) {
- var fallDist = 0;
- for (var row = maxRow - 1; row >= 0; row--) {
- if (board[index(column,row)] == null) {
- fallDist += 1;
- } else {
- if (fallDist > 0) {
- var obj = board[index(column, row)];
- obj.y = (row + fallDist) * Settings.blockSize;
- board[index(column, row + fallDist)] = obj;
- board[index(column, row)] = null;
- }
- }
- }
- }
- // Fall to the left
- fallDist = 0;
- for (column = 0; column < maxColumn; column++) {
- if (board[index(column, maxRow - 1)] == null) {
- fallDist += 1;
- } else {
- if (fallDist > 0) {
- for (row = 0; row < maxRow; row++) {
- obj = board[index(column, row)];
- if (obj == null)
- continue;
- obj.x = (column - fallDist) * Settings.blockSize;
- board[index(column - fallDist,row)] = obj;
- board[index(column, row)] = null;
- }
- }
- }
- }
-}
-
-
-function shuffleUp()
-{
- // Fall up
- for (var column = 0; column < maxColumn; column++) {
- var fallDist = 0;
- for (var row = 0; row < maxRow; row++) {
- if (board[index(column,row)] == null) {
- fallDist += 1;
- } else {
- if (fallDist > 0) {
- var obj = board[index(column, row)];
- obj.y = (row - fallDist) * Settings.blockSize;
- board[index(column, row - fallDist)] = obj;
- board[index(column, row)] = null;
- }
- }
- }
- }
- // Fall to the left (or should it be right, so as to be left for P2?)
- fallDist = 0;
- for (column = 0; column < maxColumn; column++) {
- if (board[index(column, 0)] == null) {
- fallDist += 1;
- } else {
- if (fallDist > 0) {
- for (row = 0; row < maxRow; row++) {
- obj = board[index(column, row)];
- if (obj == null)
- continue;
- obj.x = (column - fallDist) * Settings.blockSize;
- board[index(column - fallDist,row)] = obj;
- board[index(column, row)] = null;
- }
- }
- }
- }
-}
-
-function turnChange()//called by ui outside
-{
- betweenTurns = false;
- if (gameCanvas.curTurn == 1){
- shuffleUp();
- gameCanvas.curTurn = 2;
- victoryCheck();
- }else{
- shuffleDown();
- gameCanvas.curTurn = 1;
- victoryCheck();
- }
-}
-
-function refill()
-{
- for (var column = 0; column < maxColumn; column++) {
- for (var row = 0; row < maxRow; row++) {
- if (board[index(column, row)] == null)
- createBlock(column, row);
- }
- }
-}
-
-function victoryCheck()
-{
- // Awards bonuses for no blocks left
- var deservesBonus = true;
- if (board[index(0,maxRow - 1)] != null || board[index(0,0)] != null)
- deservesBonus = false;
- // Checks for game over
- if (deservesBonus){
- if (gameCanvas.curTurn = 1)
- gameCanvas.score += 1000;
- else
- gameCanvas.score2 += 1000;
- }
- gameOver = deservesBonus;
- if (gameCanvas.curTurn == 1){
- if (!(floodMoveCheck(0, maxRow - 1, -1)))
- gameOver = true;
- }else{
- if (!(floodMoveCheck(0, 0, -1, true)))
- gameOver = true;
- }
- if (gameMode == "puzzle"){
- puzzleVictoryCheck(deservesBonus);//Takes it from here
- return;
- }
- if (gameOver) {
- var winnerScore = Math.max(gameCanvas.score, gameCanvas.score2);
- if (gameMode == "multiplayer"){
- gameCanvas.score = winnerScore;
- saveHighScore(gameCanvas.score2);
- }
- saveHighScore(gameCanvas.score);
- gameDuration = new Date() - gameDuration;
- gameCanvas.gameOver = true;
- }
-}
-
-// Only floods up and right, to see if it can find adjacent same-typed blocks
-function floodMoveCheck(column, row, type, goDownInstead)
-{
- if (column >= maxColumn || column < 0 || row >= maxRow || row < 0)
- return false;
- if (board[index(column, row)] == null)
- return false;
- var myType = board[index(column, row)].type;
- if (type == myType)
- return true;
- if (goDownInstead)
- return floodMoveCheck(column + 1, row, myType, goDownInstead) ||
- floodMoveCheck(column, row + 1, myType, goDownInstead);
- else
- return floodMoveCheck(column + 1, row, myType) ||
- floodMoveCheck(column, row - 1, myType);
-}
-
-function createBlock(column,row,type)
-{
- // Note that we don't wait for the component to become ready. This will
- // only work if the block QML is a local file. Otherwise the component will
- // not be ready immediately. There is a statusChanged signal on the
- // component you could use if you want to wait to load remote files.
- if (component.status == 1){
- if (type == undefined)
- type = Math.floor(Math.random() * types);
- if (type < 0 || type > 4) {
- console.log("Invalid type requested");//TODO: Is this triggered by custom levels much?
- return;
- }
- var dynamicObject = component.createObject(gameCanvas,
- {"type": type,
- "x": column*Settings.blockSize,
- "y": -1*Settings.blockSize,
- "width": Settings.blockSize,
- "height": Settings.blockSize,
- "particleSystem": gameCanvas.ps});
- if (dynamicObject == null){
- console.log("error creating block");
- console.log(component.errorString());
- return false;
- }
- dynamicObject.y = row*Settings.blockSize;
- dynamicObject.spawned = true;
-
- board[index(column,row)] = dynamicObject;
- }else{
- console.log("error loading block component");
- console.log(component.errorString());
- return false;
- }
- return true;
-}
-
-function showPuzzleError(str)
-{
- //TODO: Nice user visible UI?
- console.log(str);
-}
-
-function loadMap(map)
-{
- puzzlePath = map;
- var levelComp = Qt.createComponent(puzzlePath);
- if (levelComp.status != 1){
- console.log("Error loading level");
- showPuzzleError(levelComp.errorString());
- return;
- }
- puzzleLevel = levelComp.createObject();
- if (puzzleLevel == null || !puzzleLevel.startingGrid instanceof Array) {
- showPuzzleError("Bugger!");
- return;
- }
- gameCanvas.showPuzzleGoal(puzzleLevel.goalText);
- //showPuzzleGoal should call finishLoadingMap as the next thing it does, before handling more events
-}
-
-function finishLoadingMap()
-{
- for (var i in puzzleLevel.startingGrid)
- if (! (puzzleLevel.startingGrid[i] >= 0 && puzzleLevel.startingGrid[i] <= 9) )
- puzzleLevel.startingGrid[i] = 0;
- //TODO: Don't allow loading larger levels, leads to cheating
- while (puzzleLevel.startingGrid.length > maxIndex) puzzleLevel.startingGrid.shift();
- while (puzzleLevel.startingGrid.length < maxIndex) puzzleLevel.startingGrid.unshift(0);
- for (var i in puzzleLevel.startingGrid)
- if (puzzleLevel.startingGrid[i] > 0)
- createBlock(i % maxColumn, Math.floor(i / maxColumn), puzzleLevel.startingGrid[i] - 1);
-
- //### Experimental feature - allow levels to contain arbitrary QML scenes as well!
- //while (puzzleLevel.children.length)
- // puzzleLevel.children[0].parent = gameCanvas;
- gameDuration = new Date(); //Don't start until we finish loading
-}
-
-function puzzleVictoryCheck(clearedAll)//gameOver has also been set if no more moves
-{
- var won = true;
- var soFar = new Date() - gameDuration;
- if (puzzleLevel.scoreTarget != -1 && gameCanvas.score < puzzleLevel.scoreTarget){
- won = false;
- } if (puzzleLevel.scoreTarget != -1 && gameCanvas.score >= puzzleLevel.scoreTarget && !puzzleLevel.mustClear){
- gameOver = true;
- } if (puzzleLevel.timeTarget != -1 && soFar/1000.0 > puzzleLevel.timeTarget){
- gameOver = true;
- } if (puzzleLevel.moveTarget != -1 && gameCanvas.moves >= puzzleLevel.moveTarget){
- gameOver = true;
- } if (puzzleLevel.mustClear && gameOver && !clearedAll) {
- won = false;
- }
-
- if (gameOver) {
- gameCanvas.gameOver = true;
- gameCanvas.showPuzzleEnd(won);
-
- if (won) {
- // Store progress
- saveLevelHistory();
- }
- }
-}
-
-function getHighScore()
-{
- var db = Sql.LocalStorage.openDatabaseSync(
- "SameGame",
- "2.0",
- "SameGame Local Data",
- 100
- );
- db.transaction(
- function(tx) {
- tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(game TEXT, score NUMBER, gridSize TEXT, time NUMBER)');
- // Only show results for the current grid size
- var rs = tx.executeSql('SELECT * FROM Scores WHERE gridSize = "'
- + maxColumn + "x" + maxRow + '" AND game = "' + gameMode + '" ORDER BY score desc');
- if (rs.rows.length > 0)
- gameCanvas.highScore = rs.rows.item(0).score;
- else
- gameCanvas.highScore = 0;
- }
- );
-}
-
-function saveHighScore(score)
-{
- // Offline storage
- var db = Sql.LocalStorage.openDatabaseSync(
- "SameGame",
- "2.0",
- "SameGame Local Data",
- 100
- );
- var dataStr = "INSERT INTO Scores VALUES(?, ?, ?, ?)";
- var data = [
- gameMode,
- score,
- maxColumn + "x" + maxRow,
- Math.floor(gameDuration / 1000)
- ];
- if (score >= gameCanvas.highScore)//Update UI field
- gameCanvas.highScore = score;
-
- db.transaction(
- function(tx) {
- tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(game TEXT, score NUMBER, gridSize TEXT, time NUMBER)');
- tx.executeSql(dataStr, data);
- }
- );
-}
-
-function getLevelHistory()
-{
- var db = Sql.LocalStorage.openDatabaseSync(
- "SameGame",
- "2.0",
- "SameGame Local Data",
- 100
- );
- db.transaction(
- function(tx) {
- tx.executeSql('CREATE TABLE IF NOT EXISTS Puzzle(level TEXT, score NUMBER, moves NUMBER, time NUMBER)');
- var rs = tx.executeSql('SELECT * FROM Puzzle WHERE level = "' + puzzlePath + '" ORDER BY score desc');
- if (rs.rows.length > 0) {
- gameCanvas.puzzleWon = true;
- gameCanvas.highScore = rs.rows.item(0).score;
- } else {
- gameCanvas.puzzleWon = false;
- gameCanvas.highScore = 0;
- }
- }
- );
-}
-
-function saveLevelHistory()
-{
- var db = Sql.LocalStorage.openDatabaseSync(
- "SameGame",
- "2.0",
- "SameGame Local Data",
- 100
- );
- var dataStr = "INSERT INTO Puzzle VALUES(?, ?, ?, ?)";
- var data = [
- puzzlePath,
- gameCanvas.score,
- gameCanvas.moves,
- Math.floor(gameDuration / 1000)
- ];
- gameCanvas.puzzleWon = true;
-
- db.transaction(
- function(tx) {
- tx.executeSql('CREATE TABLE IF NOT EXISTS Puzzle(level TEXT, score NUMBER, moves NUMBER, time NUMBER)');
- tx.executeSql(dataStr, data);
- }
- );
-}
-
-function nuke() //For "Debug mode"
-{
- for (var row = 1; row <= 5; row++) {
- for (var col = 0; col < 5; col++) {
- if (board[index(col, maxRow - row)] != null) {
- board[index(col, maxRow - row)].dying = true;
- board[index(col, maxRow - row)] = null;
- }
- }
- }
- if (gameMode == "multiplayer" && gameCanvas.curTurn == 2)
- shuffleUp();
- else
- shuffleDown();
- if (gameMode == "endless")
- refill();
- else
- victoryCheck();
-}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/samegame.qml b/basicsuite/Qt5Everywhere/demos/samegame/samegame.qml
deleted file mode 100644
index 49eab55..0000000
--- a/basicsuite/Qt5Everywhere/demos/samegame/samegame.qml
+++ /dev/null
@@ -1,371 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-import "content/samegame.js" as Logic
-import "settings.js" as Settings
-import "content"
-
-Rectangle {
- id: root
- anchors.fill: parent
- property int acc: 0
-
-
- function loadPuzzle() {
- if (gameCanvas.mode != "")
- Logic.cleanUp();
- Logic.startNewGame(gameCanvas,"puzzle","levels/level"+acc+".qml")
- }
- function nextPuzzle() {
- acc = (acc + 1) % 10;
- loadPuzzle();
- }
- Timer {
- id: gameOverTimer
- interval: 1500
- running : gameCanvas.gameOver && gameCanvas.mode == "puzzle" //mode will be reset by cleanUp();
- repeat : false
- onTriggered: {
- Logic.cleanUp();
- nextPuzzle();
- }
- }
-
- Image {
- source: "content/gfx/background.png"
- anchors.fill: parent
- }
-
- GameArea {
- id: gameCanvas
- z: 1
- y: Settings.headerHeight
-
- width: parent.width
- height: parent.height - Settings.headerHeight - Settings.footerHeight
-
- backgroundVisible: root.state == "in-game"
- onModeChanged: if (gameCanvas.mode != "puzzle") puzzleWon = false; //UI has stricter constraints on this variable than the game does
- Age {
- groups: ["redspots", "greenspots", "bluespots", "yellowspots"]
- enabled: root.state == ""
- system: gameCanvas.ps
- }
-
- onPuzzleLost: acc--;//So that nextPuzzle() reloads the current one
-
- }
-
- Item {
- id: menu
- z: 2
- width: parent.width;
- anchors.top: parent.top
- anchors.bottom: bottomBar.top
-
- LogoAnimation {
- x: 64
- y: Settings.headerHeight
- particleSystem: gameCanvas.ps
- running: root.state == ""
- }
- Row {
- x: 112
- y: 20
- Image { source: "content/gfx/logo-a.png" }
- Image { source: "content/gfx/logo-m.png" }
- Image { source: "content/gfx/logo-e.png" }
- }
-
- Column {
- y: 100 + 40
- spacing: Settings.menuButtonSpacing
-
- Button {
- width: root.width
- rotatedButton: true
- imgSrc: "content/gfx/but-game-1.png"
- onClicked: {
- if (root.state == "in-game")
- return //Prevent double clicking
- root.state = "in-game"
- gameCanvas.blockFile = "Block.qml"
- gameCanvas.background = "gfx/background.png"
- arcadeTimer.start();
- }
- //Emitted particles don't fade out, because ImageParticle is on the GameArea
- system: gameCanvas.ps
- group: "green"
- Timer {
- id: arcadeTimer
- interval: Settings.menuDelay
- running : false
- repeat : false
- onTriggered: Logic.startNewGame(gameCanvas)
- }
- }
-
- Button {
- width: root.width
- rotatedButton: true
- imgSrc: "content/gfx/but-game-2.png"
- onClicked: {
- if (root.state == "in-game")
- return
- root.state = "in-game"
- gameCanvas.blockFile = "Block.qml"
- gameCanvas.background = "gfx/background.png"
- twopTimer.start();
- }
- system: gameCanvas.ps
- group: "green"
- Timer {
- id: twopTimer
- interval: Settings.menuDelay
- running : false
- repeat : false
- onTriggered: Logic.startNewGame(gameCanvas, "multiplayer")
- }
- }
-
- Button {
- width: root.width
- rotatedButton: true
- imgSrc: "content/gfx/but-game-3.png"
- onClicked: {
- if (root.state == "in-game")
- return
- root.state = "in-game"
- gameCanvas.blockFile = "SimpleBlock.qml"
- gameCanvas.background = "gfx/background.png"
- endlessTimer.start();
- }
- system: gameCanvas.ps
- group: "blue"
- Timer {
- id: endlessTimer
- interval: Settings.menuDelay
- running : false
- repeat : false
- onTriggered: Logic.startNewGame(gameCanvas, "endless")
- }
- }
-
- Button {
- width: root.width
- rotatedButton: true
- imgSrc: "content/gfx/but-game-4.png"
- group: "yellow"
- onClicked: {
- if (root.state == "in-game")
- return
- root.state = "in-game"
- gameCanvas.blockFile = "PuzzleBlock.qml"
- gameCanvas.background = "gfx/background.png"
- puzzleTimer.start();
- }
- Timer {
- id: puzzleTimer
- interval: Settings.menuDelay
- running : false
- repeat : false
- onTriggered: loadPuzzle();
- }
- system: gameCanvas.ps
- }
- }
- }
-
- Image {
- id: scoreBar
- source: "content/gfx/bar.png"
- width: parent.width
- z: 6
- y: -Settings.headerHeight
- height: Settings.headerHeight
- Behavior on opacity { NumberAnimation {} }
- SamegameText {
- id: arcadeScore
- anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top}
- text: '<font color="#f7d303">P1:</font> ' + gameCanvas.score
- font.pixelSize: Settings.fontPixelSize
- textFormat: Text.StyledText
- color: "white"
- opacity: gameCanvas.mode == "arcade" ? 1 : 0
- Behavior on opacity { NumberAnimation {} }
- }
- SamegameText {
- id: arcadeHighScore
- anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top}
- text: '<font color="#f7d303">Highscore:</font> ' + gameCanvas.highScore
- opacity: gameCanvas.mode == "arcade" ? 1 : 0
- }
- SamegameText {
- id: p1Score
- anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top}
- text: '<font color="#f7d303">P1:</font> ' + gameCanvas.score
- opacity: gameCanvas.mode == "multiplayer" ? 1 : 0
- }
- SamegameText {
- id: p2Score
- anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top}
- text: '<font color="#f7d303">P2:</font> ' + gameCanvas.score2
- opacity: gameCanvas.mode == "multiplayer" ? 1 : 0
- rotation: 180
- }
- SamegameText {
- id: puzzleMoves
- anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top}
- text: '<font color="#f7d303">Moves:</font> ' + gameCanvas.moves
- opacity: gameCanvas.mode == "puzzle" ? 1 : 0
- }
- SamegameText {
- Image {
- source: "content/gfx/icon-time.png"
- x: -20
- }
- id: puzzleTime
- anchors { topMargin: 3; top: parent.top; horizontalCenter: parent.horizontalCenter; horizontalCenterOffset: 20}
- text: "00:00"
- opacity: gameCanvas.mode == "puzzle" ? 1 : 0
- Timer {
- interval: 1000
- repeat: true
- running: gameCanvas.mode == "puzzle" && !gameCanvas.gameOver
- onTriggered: {
- var elapsed = Math.floor((new Date() - Logic.gameDuration)/ 1000.0);
- var mins = Math.floor(elapsed/60.0);
- var secs = (elapsed % 60);
- puzzleTime.text = (mins < 10 ? "0" : "") + mins + ":" + (secs < 10 ? "0" : "") + secs;
- }
- }
- }
- SamegameText {
- id: puzzleScore
- anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top}
- text: '<font color="#f7d303">Score:</font> ' + gameCanvas.score
- opacity: gameCanvas.mode == "puzzle" ? 1 : 0
- }
- }
-
- Image {
- id: bottomBar
- width: parent.width
- height: Settings.footerHeight
- source: "content/gfx/bar.png"
- y: parent.height - Settings.footerHeight;
- z: 2
- /*Button {
- id: quitButton
- height: Settings.toolButtonHeight
- imgSrc: "content/gfx/but-quit.png"
- onClicked: {Qt.quit(); }
- anchors { left: parent.left; verticalCenter: parent.verticalCenter; leftMargin: 11 }
- }*/
- Button {
- id: menuButton
- height: Settings.toolButtonHeight
- imgSrc: "content/gfx/but-menu.png"
- visible: (root.state == "in-game");
- onClicked: {root.state = ""; Logic.cleanUp(); gameCanvas.mode = ""}
- anchors { left: parent.left; verticalCenter: parent.verticalCenter; leftMargin: 0 }
- }
- Button {
- id: againButton
- height: Settings.toolButtonHeight
- imgSrc: "content/gfx/but-game-new.png"
- visible: (root.state == "in-game");
- opacity: gameCanvas.gameOver && (gameCanvas.mode == "arcade" || gameCanvas.mode == "multiplayer")
- Behavior on opacity{ NumberAnimation {} }
- onClicked: {if (gameCanvas.gameOver) { Logic.startNewGame(gameCanvas, gameCanvas.mode);}}
- anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 11 }
- }
- Button {
- id: nextButton
- height: Settings.toolButtonHeight
- imgSrc: "content/gfx/but-puzzle-next.png"
- visible: (root.state == "in-game") && gameCanvas.mode == "puzzle" && gameCanvas.puzzleWon
- opacity: gameCanvas.puzzleWon ? 1 : 0
- Behavior on opacity{ NumberAnimation {} }
- onClicked: {if (gameCanvas.puzzleWon) nextPuzzle();}
- anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 11 }
- }
- }
-
- Connections {
- target: root
- onStateChanged: stateChangeAnim.running = true
- }
- SequentialAnimation {
- id: stateChangeAnim
- ParallelAnimation {
- NumberAnimation { target: bottomBar; property: "y"; to: root.height; duration: Settings.menuDelay/2; easing.type: Easing.OutQuad }
- NumberAnimation { target: scoreBar; property: "y"; to: -Settings.headerHeight; duration: Settings.menuDelay/2; easing.type: Easing.OutQuad }
- }
- ParallelAnimation {
- NumberAnimation { target: bottomBar; property: "y"; to: root.height - Settings.footerHeight; duration: Settings.menuDelay/2; easing.type: Easing.OutBounce}
- NumberAnimation { target: scoreBar; property: "y"; to: root.state == "" ? -Settings.headerHeight : 0; duration: Settings.menuDelay/2; easing.type: Easing.OutBounce}
- }
- }
-
- states: [
- State {
- name: "in-game"
- PropertyChanges {
- target: menu
- opacity: 0
- visible: false
- }
- }
- ]
-
- transitions: [
- Transition {
- NumberAnimation {properties: "x,y,opacity"}
- }
- ]
-
- //"Debug mode"
- focus: true
- Keys.onAsteriskPressed: Logic.nuke();
- Keys.onSpacePressed: gameCanvas.puzzleWon = true;
-}
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Logo.qml b/basicsuite/Qt5Everywhere/demos/shaders/Logo.qml
deleted file mode 100644
index 2e2617a..0000000
--- a/basicsuite/Qt5Everywhere/demos/shaders/Logo.qml
+++ /dev/null
@@ -1,191 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Particles 2.0
-
-Item {
- id: root
-
- property int logoSize: Math.min(parent.height, parent.width) / 2
- property int logoSizeDivider: 1
- property int logoState: 1
- property double posX: parent.width / 2
- property double posY: parent.height / 2
- property double rot: 0
- property double dx: 10
- property double dy: 10
- property double drot: 1
- property string explodeColor: "#ff3333"
-
- function play() {
- randomValues();
- animationTimer.restart()
- }
-
- function logoClicked() {
- switch(root.logoState) {
- case 1: {
- parent.createNewLogos(root.posX,root.posY,logoSize,2)
- parent.decreaseCounter();
- logo.visible = false;
- root.logoState = 2;
- root.explodeColor = "#33ff33"
- explodeAnimation.restart()
- break;
- }
- default: {
- // return true if we must destroy this logo
- if (parent.decreaseCounter(root.posX,root.posY) === true) {
- logo.visible = false;
- root.logoState = 2;
- root.dx = 0;
- root.dy = 0;
- root.drot = 0;
- root.explodeColor = "#ff3333"
- explodeAnimation.restart()
- }
- else { // It was last logo, we will keep it
- root.logoState = 1
- root.logoSizeDivider = 1
- root.explodeColor = "#3333ff"
- explodeAnimation.restart()
- }
- break;
- }
- }
-
- }
-
- function randomValues() {
- root.dx = Math.random()*5
- root.dy = Math.random()*5
- root.drot = Math.floor(Math.random()*10) - 5
- }
-
- function move() {
- var x = root.posX + root.dx;
- var y = root.posY + root.dy;
- var limit = logoSize / logoState;
-
- // Check x
- if (x + limit >= parent.width) {
- x = parent.width - limit;
- root.dx = -root.dx;
- }
- else if (x <= 0) {
- x = 0;
- root.dx = -root.dx;
- }
-
- // Check y
- if (y + limit >= parent.height) {
- y = parent.height - limit;
- root.dy = -root.dy;
- }
- else if (y <= 0) {
- y = 0;
- root.dy = -root.dy;
- }
-
- root.posX = x
- root.posY = y
- root.rot = root.rot + root.drot
- }
-
- ParticleSystem{
- id: particleSystem;
- anchors.fill: logo
-
- Emitter {
- id: emitter
- anchors.fill: particleSystem
- enabled: false
- emitRate: 1000
- lifeSpan: 500
- size: logo.height * .5
- endSize: logo.height * .1
- velocity: AngleDirection { angleVariation: 360; magnitudeVariation: 160 }
- }
-
- ImageParticle {
- id: smokeParticle
- source: "images/particle-smoke.png"
- alpha: 0.3
- alphaVariation: 0.1
- color: root.explodeColor
- }
- }
-
- Timer {
- id: animationTimer
- interval: 20
- running: false
- repeat: true
- onTriggered: move();
- }
-
- Image {
- id: logo
- width: (logoSize / logoSizeDivider)
- height: (logoSize / logoSizeDivider)
- x: root.posX
- y: root.posY
- rotation: root.rot
- source: "images/qt-logo.png"
-
- MouseArea {
- anchors.fill: parent
- onClicked: logoClicked();
- }
- }
-
- SequentialAnimation {
- id: explodeAnimation
- running: false
- ScriptAction { script: emitter.pulse(100); }
- PauseAnimation { duration: 600 }
- onRunningChanged: {
- if (!explodeAnimation.running && root.logoState > 1)
- root.destroy();
- }
- }
-
-}
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/LogoContainer.qml b/basicsuite/Qt5Everywhere/demos/shaders/LogoContainer.qml
deleted file mode 100644
index 1237305..0000000
--- a/basicsuite/Qt5Everywhere/demos/shaders/LogoContainer.qml
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: root
- anchors.fill: parent
-
- property int logoCount: 0
-
- Image {
- id: background
- source: "images/wallpaper.png"
- anchors.fill: root
- }
-
- function createNewLogo(x,y,logoState) {
- logoCount++;
- var component = Qt.createComponent("Logo.qml")
- if (component.status === Component.Ready) {
- var logo = component.createObject(root, {"posX": x, "posY": y, "logoState": logoState, "logoSizeDivider" : logoState, "objectName": "logo"});
- logo.play();
- }
- }
-
- function createNewLogos(x, y, logoSize, logoState) {
- var newSize = logoSize / logoState;
- var temp = logoSize - newSize;
-
- createNewLogo(x, y, logoState);
- createNewLogo(x+temp, y, logoState);
- createNewLogo(x+temp, y+temp, logoState);
- createNewLogo(x, y+temp, logoState);
- createNewLogo(x+logoSize/2-newSize/2, y+logoSize/2-newSize/2, logoState);
- }
-
- function decreaseCounter() {
- if (logoCount > 1) {
- logoCount--;
- return true;
- }
- return false;
- }
-
- Component.onCompleted: {
- var logoSize = Math.min(root.height, root.width) / 2;
- createNewLogo(root.width/2 - logoSize/2, root.height/2 - logoSize/2, 1)
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Slider.qml b/basicsuite/Qt5Everywhere/demos/shaders/Slider.qml
deleted file mode 100644
index 5ceefcc..0000000
--- a/basicsuite/Qt5Everywhere/demos/shaders/Slider.qml
+++ /dev/null
@@ -1,138 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: slider
-
- height: handleBack.height
- // value is read/write.
- property real value: 0
- property real maximum: 1
- property real minimum: 0
- property int xMax: width - handle.width
- onXMaxChanged: updatePos()
- onMinimumChanged: updatePos()
- onValueChanged: if (!pressed) updatePos()
- property bool mutable: true
- property alias pressed : backgroundMouse.pressed
-
- signal valueChangedByHandle(int newValue)
-
- function updatePos() {
- if (maximum > minimum) {
- var pos = 0 + (value - minimum) * slider.xMax / (maximum - minimum);
- pos = Math.min(pos, width - handle.width - 0);
- pos = Math.max(pos, 0);
- handle.x = pos;
- } else {
- handle.x = 0;
- }
- }
-
- Rectangle {
- id: background
- width: slider.width
- anchors.verticalCenter: slider.verticalCenter
- height: 2
- color: "#666666"
-
- MouseArea {
- id: backgroundMouse
- anchors.fill: parent
- anchors.topMargin: -24
- anchors.bottomMargin: -24
- enabled: slider.mutable
- drag.target: handle
- drag.axis: Drag.XAxis
- drag.minimumX: 0
- drag.maximumX: slider.xMax
- onPressedChanged: {
- value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
- valueChangedByHandle(value);
- updatePos();
- }
- onPositionChanged: {
- value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
- valueChangedByHandle(value);
- }
- onWheel: {
- value = Math.max(minimum, Math.min(maximum, value + (wheel.angleDelta.y > 0 ? 1 : -1) * (10 / slider.xMax) * (slider.maximum - slider.minimum)));
- valueChangedByHandle(value);
- updatePos();
- }
- }
- }
-
- Rectangle {
- id: progress
- height: 5
- anchors.verticalCenter: background.verticalCenter
- anchors.left: background.left
- anchors.right: handle.right
- anchors.rightMargin: handle.width / 2
- visible: slider.enabled
- color: "#98c66c"
- }
-
- Rectangle {
- id: handleBack
- width: 40
- height: width
- radius: width / 2
- color: "#8898c66c"
- antialiasing: true
- anchors.centerIn: handle
- visible: handle.visible
- }
-
- Rectangle {
- id: handle
- width: 14
- height: width
- radius: width / 2
- antialiasing: true
- color: "#98c66c"
- anchors.verticalCenter: background.verticalCenter
- visible: slider.enabled
- }
-}
-
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/import/import.pro b/basicsuite/Qt5Everywhere/demos/shaders/import/import.pro
deleted file mode 100644
index d72fb60..0000000
--- a/basicsuite/Qt5Everywhere/demos/shaders/import/import.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-CXX_MODULE = qml
-TARGET = shaderreader
-TARGETPATH = ShaderReader
-IMPORT_VERSION = 1.0
-
-QT += quick
-
-SOURCES = main.cpp \
- shaderfilereader.cpp \
-
-HEADERS = shaderfilereader.h \
-
-load(qml_plugin)
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/import/main.cpp b/basicsuite/Qt5Everywhere/demos/shaders/import/main.cpp
deleted file mode 100644
index 738a850..0000000
--- a/basicsuite/Qt5Everywhere/demos/shaders/import/main.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <QtQml/QQmlExtensionPlugin>
-#include <QtQml/QtQml>
-#include "shaderfilereader.h"
-
-QT_BEGIN_NAMESPACE
-
-class SensorExplorerDeclarativeModule : public QQmlExtensionPlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface" FILE "plugin.json")
-public:
- virtual void registerTypes(const char *uri)
- {
- Q_ASSERT(QLatin1String(uri) == QLatin1String("ShaderReader"));
- qmlRegisterType<ShaderFileReader>(uri, 1, 0, "ShaderFileReader");
- }
-};
-
-QT_END_NAMESPACE
-
-#include "main.moc"
-
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp b/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp
deleted file mode 100644
index 985a28c..0000000
--- a/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "shaderfilereader.h"
-#include <QtCore/QFile>
-#include <QtCore/QTextStream>
-
-ShaderFileReader::ShaderFileReader(QObject* parent)
- : QObject(parent)
-{
- if (qEnvironmentVariableIsEmpty("QT_SHADER_PATH"))
- setenv("QT_SHADER_PATH", "/data/user/qt/Qt5Everywhere/demos/shaders/",1);
-}
-
-ShaderFileReader::~ShaderFileReader()
-{
-}
-
-void ShaderFileReader::setFragmentShaderFilename(const QString &name)
-{
- m_fragmentShaderFilename = name;
- Q_EMIT fragmentShaderFilenameChanged();
-}
-
-void ShaderFileReader::setVertexShaderFilename(const QString &name)
-{
- m_vertexShaderFilename = name;
- Q_EMIT vertexShaderFilenameChanged();
-}
-
-QString ShaderFileReader::fragmentShader() const
-{
- return readShaderFile(m_fragmentShaderFilename);
-}
-
-QString ShaderFileReader::vertexShader() const
-{
- return readShaderFile(m_vertexShaderFilename);
-}
-
-QString ShaderFileReader::readShaderFile(const QString &fileName) const
-{
- QString content;
- QString path = qgetenv("QT_SHADER_PATH");
- QFile file(path.append(fileName));
- if (file.open(QIODevice::ReadOnly)) {
- QTextStream stream(&file);
- content = stream.readAll();
- file.close();
- }
- return content;
-}
-
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.h b/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.h
deleted file mode 100644
index 5731bbb..0000000
--- a/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef SHADERFILEREADER_H
-#define SHADERFILEREADER_H
-
-#include <QtCore/QObject>
-#include <QtCore/QString>
-
-class ShaderFileReader : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString fragmentShaderFilename READ fragmentShaderFilename
- WRITE setFragmentShaderFilename NOTIFY fragmentShaderFilenameChanged)
- Q_PROPERTY(QString vertexShaderFilename READ vertexShaderFilename
- WRITE setVertexShaderFilename NOTIFY vertexShaderFilenameChanged)
-
- Q_PROPERTY(QString fragmentShader READ fragmentShader)
- Q_PROPERTY(QString vertexShader READ vertexShader)
-
-public:
- ShaderFileReader(QObject* parent = 0);
- ~ShaderFileReader();
-
- void setFragmentShaderFilename(const QString &name);
- void setVertexShaderFilename(const QString &name);
- QString fragmentShaderFilename() const { return m_fragmentShaderFilename; }
- QString vertexShaderFilename() const { return m_vertexShaderFilename; }
-
- QString fragmentShader() const;
- QString vertexShader() const;
-
-protected:
- QString readShaderFile(const QString &fileName) const;
-
-Q_SIGNALS:
- void fragmentShaderFilenameChanged();
- void vertexShaderFilenameChanged();
-
-private:
- QString m_fragmentShaderFilename;
- QString m_vertexShaderFilename;
-};
-
-Q_DECLARE_METATYPE(ShaderFileReader*)
-
-#endif // SHADERFILEREADER_H
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/content/AndroidDelegate.qml b/basicsuite/Qt5Everywhere/demos/touchgallery/content/AndroidDelegate.qml
deleted file mode 100644
index 21160eb..0000000
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/content/AndroidDelegate.qml
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-
-Item {
- id: root
- width: parent.width
- height: app.height*.1
-
- property alias text: textitem.text
- signal clicked
-
- Rectangle {
- anchors.fill: parent
- color: "#11ffffff"
- visible: mouse.pressed
- }
-
- Text {
- id: textitem
- color: "white"
- font.pixelSize: root.height*.6
- text: modelData
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- anchors.leftMargin: 30
- }
-
- Rectangle {
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.margins: 15
- height: 1
- color: "#424246"
- }
-
- Image {
- anchors.right: parent.right
- anchors.rightMargin: 20
- anchors.verticalCenter: parent.verticalCenter
- height: root.height*.8
- width: height
- source: "../images/navigation_next_item.png"
- }
-
- MouseArea {
- id: mouse
- anchors.fill: parent
- onClicked: root.clicked()
-
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/content/ButtonPage.qml b/basicsuite/Qt5Everywhere/demos/touchgallery/content/ButtonPage.qml
deleted file mode 100644
index 63f9646..0000000
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/content/ButtonPage.qml
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
- anchors {leftMargin: width*.1; rightMargin: width*.1}
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- Button {
- anchors.margins: 20
- text: "Press me"
- style: touchStyle
- }
-
- Button {
- anchors.margins: 20
- style: touchStyle
- text: "Press me too"
- }
-
- Button {
- anchors.margins: 20
- style: touchStyle
- text: "Dont press me"
- onClicked: if (pageStack) pageStack.pop()
- }
-
- }
-
- Component {
- id: touchStyle
- ButtonStyle {
- panel: Item {
- implicitHeight: 50
- implicitWidth: 320
- BorderImage {
- anchors.fill: parent
- antialiasing: true
- border.bottom: 8
- border.top: 8
- border.left: 8
- border.right: 8
- anchors.margins: control.pressed ? -4 : 0
- source: control.pressed ? "../images/button_pressed.png" : "../images/button_default.png"
- Text {
- text: control.text
- anchors.centerIn: parent
- color: "white"
- font.pixelSize: 23
- renderType: Text.NativeRendering
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/content/CustomAppWindow.qml b/basicsuite/Qt5Everywhere/demos/touchgallery/content/CustomAppWindow.qml
deleted file mode 100644
index e0e7bcd..0000000
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/content/CustomAppWindow.qml
+++ /dev/null
@@ -1,181 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick.Window 2.1
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Layouts 1.0
-import QtQuick.Controls.Private 1.0
-
-/*!
- \qmltype ApplicationWindow
- \since QtQuick.Controls 1.0
- \inqmlmodule QtQuick.Controls 1.0
- \ingroup applicationwindow
- \brief Provides a top-level application window.
-
- ApplicationWindow is a \l Window that adds convenience for positioning items,
- such as \l MenuBar, \l ToolBar, and \l StatusBar in a platform independent
- manner.
-
- \code
- ApplicationWindow {
- id: window
- menuBar: MenuBar {
- Menu { MenuItem {...} }
- Menu { MenuItem {...} }
- }
-
- toolBar: ToolBar {
- RowLayout {
- anchors.fill: parent
- ToolButton {...}
- }
- }
-
- TabView {
- id: myContent
- anchors.fill: parent
- ...
- }
- }
- \endcode
-*/
-
-Rectangle {
- id: root
-
- /*!
- \qmlproperty MenuBar ApplicationWindow::menuBar
-
- This property holds the \l MenuBar.
-
- By default, this value is not set.
- */
- property MenuBar menuBar: null
-
- /*!
- \qmlproperty Item ApplicationWindow::toolBar
-
- This property holds the toolbar \l Item.
-
- It can be set to any Item type, but is generally used with \l ToolBar.
-
- By default, this value is not set. When you set the toolbar item, it will
- be anchored automatically into the application window.
- */
- property Item toolBar
-
- /*!
- \qmlproperty Item ApplicationWindow::statusBar
-
- This property holds the status bar \l Item.
-
- It can be set to any Item type, but is generally used with \l StatusBar.
-
- By default, this value is not set. When you set the status bar item, it
- will be anchored automatically into the application window.
- */
- property Item statusBar
-
- onToolBarChanged: { if (toolBar) { toolBar.parent = toolBarArea } }
-
- onStatusBarChanged: { if (statusBar) { statusBar.parent = statusBarArea } }
-
- /*! \internal */
- default property alias data: contentArea.data
-
- color: syspal.window
-
- SystemPalette {id: syspal}
-
- Item {
- id: backgroundItem
- anchors.fill: parent
-
- Item {
- id: toolBarArea
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- height: childrenRect.height
- }
-
- Item {
- id: contentArea
- anchors.top: toolBarArea.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: statusBarArea.top
- }
-
- Item {
- id: statusBarArea
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- height: childrenRect.height
- }
-
- onVisibleChanged: if (visible && menuBar) menuBar.__parentWindow = root
-
- states: State {
- name: "hasMenuBar"
- when: menuBar && !menuBar.__isNative
-
- ParentChange {
- target: menuBar.__contentItem
- parent: backgroundItem
- }
-
- PropertyChanges {
- target: menuBar.__contentItem
- x: 0
- y: 0
- width: backgroundItem.width
- }
-
- AnchorChanges {
- target: toolBarArea
- anchors.top: menuBar.__contentItem.bottom
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/content/ProgressBarPage.qml b/basicsuite/Qt5Everywhere/demos/touchgallery/content/ProgressBarPage.qml
deleted file mode 100644
index dc0f552..0000000
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/content/ProgressBarPage.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- width: 400
- value: progress
- }
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- width: 400
- value: 1 - progress
- }
-
- ProgressBar {
- anchors.margins: 20
- style: touchStyle
- value: 1
- width: 400
- }
-
- }
-
- Component {
- id: touchStyle
- ProgressBarStyle {
- panel: Rectangle {
- implicitHeight: 15
- implicitWidth: 400
- color: "#444"
- opacity: 0.8
- Rectangle {
- antialiasing: true
- radius: 1
- color: "#468bb7"
- height: parent.height
- width: parent.width * control.value / control.maximumValue
- }
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/content/SliderPage.qml b/basicsuite/Qt5Everywhere/demos/touchgallery/content/SliderPage.qml
deleted file mode 100644
index a1c0045..0000000
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/content/SliderPage.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- id: root
- width: parent.width
- height: parent.height
-
- Column {
- spacing: 12
- anchors.centerIn: parent
-
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 0
- }
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 0.5
- }
- Slider {
- anchors.margins: 20
- style: touchStyle
- value: 1.0
- }
- }
-
- Component {
- id: touchStyle
- SliderStyle {
- handle: Rectangle {
- width: 30
- height: 30
- radius: height
- antialiasing: true
- color: Qt.lighter("#468bb7", 1.2)
- }
-
- groove: Item {
- implicitHeight: 50
- implicitWidth: root.width
- Rectangle {
- height: 8
- width: parent.width
- anchors.verticalCenter: parent.verticalCenter
- color: "#444"
- opacity: 0.8
- Rectangle {
- antialiasing: true
- radius: 1
- color: "#468bb7"
- height: parent.height
- width: parent.width * control.value / control.maximumValue
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/content/TabBarPage.qml b/basicsuite/Qt5Everywhere/demos/touchgallery/content/TabBarPage.qml
deleted file mode 100644
index c96314b..0000000
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/content/TabBarPage.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- TabView {
- anchors.fill: parent
- style: touchStyle
- Tab {
- title: "Buttons"
- ButtonPage{ visible: true }
- }
- Tab {
- title: "Sliders"
- SliderPage{ visible: true }
- }
- Tab {
- title: "Progress"
- ProgressBarPage{ visible: true }
- }
- }
-
- Component {
- id: touchStyle
- TabViewStyle {
- tabsAlignment: Qt.AlignVCenter
- tabOverlap: 0
- frame: Item { }
- tab: Item {
- implicitWidth: control.width/control.count
- implicitHeight: 50
- BorderImage {
- anchors.fill: parent
- border.bottom: 8
- border.top: 8
- source: tab.selected ? "../images/tab_selected.png":"../images/tabs_standard.png"
- Text {
- anchors.centerIn: parent
- color: "white"
- text: tab.title.toUpperCase()
- font.pixelSize: 16
- }
- Rectangle {
- visible: index > 0
- anchors.top: parent.top
- anchors.bottom: parent.bottom
- anchors.margins: 10
- width:1
- color: "#3a3a3a"
- }
- }
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/content/TextInputPage.qml b/basicsuite/Qt5Everywhere/demos/touchgallery/content/TextInputPage.qml
deleted file mode 100644
index 605afef..0000000
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/content/TextInputPage.qml
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Controls.Styles 1.0
-
-Item {
- width: parent.width
- height: parent.height
-
- property real progress: 0
- SequentialAnimation on progress {
- loops: Animation.Infinite
- running: true
- NumberAnimation {
- from: 0
- to: 1
- duration: 3000
- }
- NumberAnimation {
- from: 1
- to: 0
- duration: 3000
- }
- }
-
- Column {
- spacing: 40
- anchors.centerIn: parent
-
- TextField {
- anchors.margins: 20
- text: "Text input"
- style: touchStyle
- }
-
- TextField {
- anchors.margins: 20
- text: "Readonly Text input"
- style: touchStyle
- readOnly: true
- }
- }
- Component {
- id: touchStyle
-
- TextFieldStyle {
- textColor: "white"
- font.pixelSize: 28
- background: Item {
- implicitHeight: 50
- implicitWidth: 320
- BorderImage {
- source: "../images/textinput.png"
- border.left: 8
- border.right: 8
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- }
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/main.qml b/basicsuite/Qt5Everywhere/demos/touchgallery/main.qml
deleted file mode 100644
index 95d737b..0000000
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/main.qml
+++ /dev/null
@@ -1,135 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import "content"
-
-CustomAppWindow {
- id: app
- anchors.fill: parent
- color: "black"
-
- toolBar: BorderImage {
- border.bottom: 8
- source: "images/toolbar.png"
- width: parent.width
- height: app.height*.1
-
- Rectangle {
- id: backButton
- width: opacity ? height : 0
- anchors.left: parent.left
- anchors.leftMargin: 20
- opacity: pageStack.depth > 1 ? 1 : 0
- anchors.verticalCenter: parent.verticalCenter
- antialiasing: true
- height: parent.height* .8
- radius: 4
- color: backmouse.pressed ? "#222" : "transparent"
- Behavior on opacity { NumberAnimation{} }
- Image {
- anchors.verticalCenter: parent.verticalCenter
- source: "images/navigation_previous_item.png"
- height: parent.height*.8
- width: height
- }
- MouseArea {
- id: backmouse
- anchors.fill: parent
- anchors.margins: -10
- onClicked: pageStack.pop()
- }
- }
-
- Text {
- font.pixelSize: app.height*.07
- Behavior on x { NumberAnimation{ easing.type: Easing.OutCubic} }
- x: backButton.x + backButton.width + 20
- anchors.verticalCenter: parent.verticalCenter
- color: "white"
- text: "Widget Gallery"
- }
-}
-
- ListModel {
- id: pageModel
- ListElement {
- title: "Buttons"
- page: "content/ButtonPage.qml"
- }
- ListElement {
- title: "Sliders"
- page: "content/SliderPage.qml"
- }
- ListElement {
- title: "ProgressBar"
- page: "content/ProgressBarPage.qml"
- }
- ListElement {
- title: "Tabs"
- page: "content/TabBarPage.qml"
- }
- ListElement {
- title: "TextInput"
- page: "content/TextInputPage.qml"
- }
- }
-
- StackView {
- id: pageStack
- anchors.fill: parent
-
- initialItem: Item {
- width: parent.width
- height: parent.height
- ListView {
- model: pageModel
- anchors.fill: parent
- clip: true
- delegate: AndroidDelegate {
- text: title
- onClicked: pageStack.push(Qt.resolvedUrl(page))
- }
- }
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/video/ControlBar.qml b/basicsuite/Qt5Everywhere/demos/video/ControlBar.qml
deleted file mode 100644
index c8e3b97..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/ControlBar.qml
+++ /dev/null
@@ -1,290 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtMultimedia 5.0
-
-Item {
- id: controlBar
- anchors.fill: parent
-
- property MediaPlayer mediaPlayer: null
- property bool isMouseAbove: false
- property int margin: applicationWindow.width * 0.01
-
- signal openURL()
-
- state: "VISIBLE"
-
- onMediaPlayerChanged: {
- if (mediaPlayer === null)
- return;
- volumeControl.volume = mediaPlayer.volume;
- }
-
- function updateStatusText()
- {
- var strText = ""
- switch (mediaPlayer.status) {
- case MediaPlayer.NoMedia: strText = "No Media"; break;
- case MediaPlayer.Loading: strText = "Loading..."; break;
- case MediaPlayer.Buffering: strText = "Buffering..."; break;
- case MediaPlayer.Stalled: strText = "Stalled"; break;
- case MediaPlayer.EndOfMedia: strText = "EndOfMedia"; break;
- case MediaPlayer.InvalidMedia: strText = "InvalidMedia"; break;
- case MediaPlayer.UnknownStatus: strText = "UnknownStatus"; break;
- default: strText = ""; break;
- }
-
- statusText.text = strText;
- }
-
- Rectangle {
- anchors.right: parent.right
- anchors.top: parent.top
- width: applicationWindow.height * 0.12
- height: width
- color: "#88333333"
-
- Image {
- id: closeImage
- source: "images/CloseButton.png"
- anchors.centerIn: parent
- width: 0.5*parent.height
- height: width
- opacity: closeMouseArea.pressed ? 0.6 : 1
- smooth: true
- }
-
- MouseArea {
- id: closeMouseArea
- anchors.fill: parent
- onClicked: {
- if (mediaPlayer !== null) {
- mediaPlayer.stop();
- mediaPlayer.source = "";
- }
-
- videoSelector.show();
- }
- }
- }
-
- Rectangle {
- id: bottomBar
- height: parent.height * 0.2
- color: "#88333333"
- anchors.left: parent.left
- anchors.bottom: parent.bottom
- anchors.right: parent.right
-
- property double playBackHeight: height*0.48
- property double seekHeight: height*0.48
-
- VolumeControl {
- id: volumeControl
- anchors.verticalCenter: playbackControl.verticalCenter
- anchors.left: bottomBar.left
- anchors.leftMargin: bottomBar.margin
- height: bottomBar.playBackHeight
- width: parent.width * 0.3
- onVolumeChanged: {
- if (mediaPlayer !== null)
- mediaPlayer.volume = volume
- }
-
- Connections {
- target: mediaPlayer
- onVolumeChanged: volumeControl.volume = mediaPlayer.volume
- }
- }
-
- //Playback Controls
- PlaybackControl {
- id: playbackControl
- anchors.horizontalCenter: bottomBar.horizontalCenter
- anchors.top: bottomBar.top
- anchors.topMargin: bottomBar.margin
- height: bottomBar.playBackHeight
-
- onPlayButtonPressed: {
- if (mediaPlayer === null)
- return;
-
- if (isPlaying) {
- mediaPlayer.pause();
- } else {
- mediaPlayer.play();
- }
- }
- }
-
- Text {
- id: statusText
- anchors.right: parent.right
- anchors.verticalCenter: playbackControl.verticalCenter
- anchors.rightMargin: bottomBar.margin
- verticalAlignment: Text.AlignVCenter
- height: bottomBar.playBackHeight
- font.pixelSize: playbackControl.height * 0.5
- color: "white"
- }
-
- //Seek controls
- SeekControl {
- id: seekControl
- anchors.bottom: bottomBar.bottom
- anchors.right: bottomBar.right
- anchors.left: bottomBar.left
- height: bottomBar.seekHeight
- anchors.leftMargin: bottomBar.margin
- anchors.rightMargin: bottomBar.margin
-
- enabled: playbackControl.isPlaybackEnabled
- duration: mediaPlayer !== null ? mediaPlayer.duration : 0
-
- onSeekValueChanged: {
- if (mediaPlayer !== null) {
- mediaPlayer.seek(newPosition);
- position = mediaPlayer.position;
- }
- }
-
- Component.onCompleted: {
- if (mediaPlayer !== null)
- seekable = mediaPlayer.seekable;
- }
- }
-
- Connections {
- target: mediaPlayer
- onPositionChanged: {
- if (!seekControl.pressed) seekControl.position = mediaPlayer.position;
- }
- onStatusChanged: {
- if ((mediaPlayer.status == MediaPlayer.Loaded) || (mediaPlayer.status == MediaPlayer.Buffered) || mediaPlayer.status === MediaPlayer.Buffering || mediaPlayer.status === MediaPlayer.EndOfMedia)
- playbackControl.isPlaybackEnabled = true;
- else
- playbackControl.isPlaybackEnabled = false;
- updateStatusText();
- }
- onErrorChanged: {
- updateStatusText();
- }
-
- onPlaybackStateChanged: {
- if (mediaPlayer.playbackState === MediaPlayer.PlayingState) {
- playbackControl.isPlaying = true;
- applicationWindow.resetTimer();
- } else {
- show();
- playbackControl.isPlaying = false;
- }
- }
-
- onSeekableChanged: {
- seekControl.seekable = mediaPlayer.seekable;
- }
- }
- }
-
- //Usage: give the value you wish to modify position,
- //returns a value between 0 and duration
- function normalizeSeek(value) {
- var newPosition = mediaPlayer.position + value;
- if (newPosition < 0)
- newPosition = 0;
- else if (newPosition > mediaPlayer.duration)
- newPosition = mediaPlayer.duration;
- return newPosition;
- }
-
- function hide() {
- controlBar.state = "HIDDEN";
- }
-
- function show() {
- controlBar.state = "VISIBLE";
- }
-
- states: [
- State {
- name: "HIDDEN"
- PropertyChanges {
- target: controlBar
- opacity: 0.0
- }
- },
- State {
- name: "VISIBLE"
- PropertyChanges {
- target: controlBar
- opacity: 0.95
- }
- }
- ]
-
- transitions: [
- Transition {
- from: "HIDDEN"
- to: "VISIBLE"
- NumberAnimation {
- id: showAnimation
- target: controlBar
- properties: "opacity"
- from: 0.0
- to: 1.0
- duration: 200
- }
- },
- Transition {
- from: "VISIBLE"
- to: "HIDDEN"
- NumberAnimation {
- id: hideAnimation
- target: controlBar
- properties: "opacity"
- from: 0.95
- to: 0.0
- duration: 200
- }
- }
- ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/video/ImageButton.qml b/basicsuite/Qt5Everywhere/demos/video/ImageButton.qml
deleted file mode 100644
index 937a075..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/ImageButton.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: root
-
- height: parent.height * 0.8
- width: image.width * image.scale
-
- property alias enabled: mouseArea.enabled
- property alias imageSource: image.source
-
- property bool checkable: false
- property bool checked: false
- property alias hover: mouseArea.containsMouse
- property alias pressed: mouseArea.pressed
- property double imageSize: 0.9*root.height
-
- opacity: enabled ? 1.0 : 0.3
- signal clicked
-
- Image {
- id: image
- anchors.centerIn: parent
- scale: root.height / height
- visible: true
- opacity: pressed ? 0.6 : 1
- smooth: true
- }
-
- MouseArea {
- id: mouseArea
- hoverEnabled: true
- anchors.fill: root
- onPositionChanged: applicationWindow.resetTimer()
- onClicked: root.clicked();
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/video/PlaybackControl.qml b/basicsuite/Qt5Everywhere/demos/video/PlaybackControl.qml
deleted file mode 100644
index 9716825..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/PlaybackControl.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Row {
- id: root
- spacing: controlBar.margin
-
- property bool isPlaybackEnabled: false
- property bool isPlaying: false
-
- signal playButtonPressed()
-
- ImageButton {
- id: playButton
- enabled: isPlaybackEnabled
- imageSource: !isPlaying ? "images/PlayButton.png" : "images/PauseButton.png"
- anchors.verticalCenter: root.verticalCenter
- onClicked: {
- playButtonPressed();
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/video/ScrollBar.qml b/basicsuite/Qt5Everywhere/demos/video/ScrollBar.qml
deleted file mode 100644
index 37c2eab..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/ScrollBar.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: scrollBar
-
- // The properties that define the scrollbar's state.
- // position and pageSize are in the range 0.0 - 1.0. They are relative to the
- // height of the page, i.e. a pageSize of 0.5 means that you can see 50%
- // of the height of the view.
- property real position
- property real pageSize
-
- // A light, semi-transparent background
- Rectangle {
- id: background
- anchors.fill: parent
- radius: width/2 - 1
- color: "transparent"
- }
-
- Rectangle {
- x: scrollBar.position * (scrollBar.width-2) + 1
- y: 1
- width: scrollBar.pageSize * (scrollBar.width-2)
- height: parent.height
- radius: height/2 - 1
- color: "#22aa22"
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/video/SeekControl.qml b/basicsuite/Qt5Everywhere/demos/video/SeekControl.qml
deleted file mode 100644
index 8003951..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/SeekControl.qml
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: root
-
- property int position: 0
- property int duration: 0
- property bool seekable: false
- property alias pressed : seekSlider.pressed
- property bool enabled
-
- signal seekValueChanged(int newPosition)
-
- onPositionChanged: {
- elapsedText.text = formatTime(position);
- seekSlider.value = position;
- }
-
- onDurationChanged: {
- remainingText.text = formatTime(duration);
- }
-
- Text {
- id: elapsedText
- anchors.verticalCenter: seekSlider.verticalCenter
- anchors.left: root.left
- verticalAlignment: Text.AlignVCenter
- height: parent.height
- text: "00:00"
- font.pixelSize: height * 0.4
- color: "#cccccc"
- }
-
- Slider {
- id: seekSlider
- anchors.left: elapsedText.right
- anchors.right: remainingText.left
- anchors.verticalCenter: root.verticalCenter
- mutable: root.seekable
- enabled: root.enabled
- height: parent.height
-
- minimum: 0.0
- maximum: root.duration !== 0 ? root.duration : 1
-
- onValueChangedByHandle: {
- seekValueChanged(newValue);
- applicationWindow.resetTimer()
- }
- }
-
- Text {
- id: remainingText
- anchors.verticalCenter: seekSlider.verticalCenter
- anchors.right: root.right
- verticalAlignment: Text.AlignVCenter
- height: parent.height
- text: "00:00"
- font.pixelSize: height * 0.4
- color: "#cccccc"
- }
-
- function formatTime(time) {
- time = time / 1000
- var hours = Math.floor(time / 3600);
- time = time - hours * 3600;
- var minutes = Math.floor(time / 60);
- var seconds = Math.floor(time - minutes * 60);
-
- if (hours > 0)
- return formatTimeBlock(hours) + ":" + formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
- else
- return formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
-
- }
-
- function formatTimeBlock(time) {
- if (time === 0)
- return "00"
- if (time < 10)
- return "0" + time;
- else
- return time.toString();
- }
-}
diff --git a/basicsuite/Qt5Everywhere/demos/video/Slider.qml b/basicsuite/Qt5Everywhere/demos/video/Slider.qml
deleted file mode 100644
index 8a99cfe..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/Slider.qml
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: slider
-
- anchors.leftMargin: handleBack.radius
- anchors.rightMargin: handleBack.radius
-
- // value is read/write.
- property real value: 0
- property real maximum: 1
- property real minimum: 0
- property int xMax: width - handle.width
- onXMaxChanged: updatePos()
- onMinimumChanged: updatePos()
- onValueChanged: if (!pressed) updatePos()
- property bool mutable: true
- property alias pressed : backgroundMouse.pressed
-
- signal valueChangedByHandle(int newValue)
-
- function updatePos() {
- if (maximum > minimum) {
- var pos = 0 + (value - minimum) * slider.xMax / (maximum - minimum);
- pos = Math.min(pos, width - handle.width - 0);
- pos = Math.max(pos, 0);
- handle.x = pos;
- } else {
- handle.x = 0;
- }
- }
-
- Rectangle {
- id: background
- width: slider.width
- anchors.verticalCenter: slider.verticalCenter
- height: 2
- color: "#666666"
-
- MouseArea {
- id: backgroundMouse
- anchors.fill: parent
- anchors.topMargin: -24
- anchors.bottomMargin: -24
- enabled: slider.mutable
- drag.target: handle
- drag.axis: Drag.XAxis
- drag.minimumX: 0
- drag.maximumX: slider.xMax
- onPressedChanged: {
- value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
- valueChangedByHandle(value);
- updatePos();
- }
- onPositionChanged: {
- value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
- valueChangedByHandle(value);
- }
- onWheel: {
- value = Math.max(minimum, Math.min(maximum, value + (wheel.angleDelta.y > 0 ? 1 : -1) * (10 / slider.xMax) * (slider.maximum - slider.minimum)));
- valueChangedByHandle(value);
- updatePos();
- }
- }
- }
-
- Rectangle {
- id: progress
- height: 5
- anchors.verticalCenter: background.verticalCenter
- anchors.left: background.left
- anchors.right: handle.right
- anchors.rightMargin: handle.width / 2
- visible: slider.enabled
- color: "#98c66c"
- }
-
- Rectangle {
- id: handleBack
- width: Math.max(10, Math.min(50, slider.height))
- height: width
- radius: width / 2
- color: "#8898c66c"
- antialiasing: true
- anchors.centerIn: handle
- visible: handle.visible
- }
-
- Rectangle {
- id: handle
- width: Math.max(3,handleBack.height / 3)
- height: width
- radius: width / 2
- antialiasing: true
- color: "#98c66c"
- anchors.verticalCenter: background.verticalCenter
- visible: slider.enabled
- }
-}
-
diff --git a/basicsuite/Qt5Everywhere/demos/video/VideoDelegate.qml b/basicsuite/Qt5Everywhere/demos/video/VideoDelegate.qml
deleted file mode 100644
index 6109f81..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/VideoDelegate.qml
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: delegate
- height: grid.cellHeight
- width: grid.cellWidth
- property int tileMargin: videoSelector.tileMargin
-
- signal videoSelected(string link)
-
- Rectangle {
- anchors.left: parent.left
- anchors.top: parent.top
- anchors.topMargin: parent.tileMargin/2
- width: parent.width - tileMargin
- height: parent.height - tileMargin
- color: videoSelector.tileBackground
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- grid.currentIndex = index
- delegate.videoSelected(link)
- }
- }
-
- states: [
- State {
- name: "selected"
- when: delegate.GridView.isCurrentItem
- }
- ]
-
-
- Image {
- id: iconImage
- source: thumbnail
- width: parent.width
- height: parent.height
- }
-
- Rectangle{
- width: parent.width
- height: titleText.height + tileMargin
- anchors.top: titleText.top
- anchors.bottom: parent.bottom
- color: "Black"
- opacity: 0.5
- visible: iconImage.source
-
- }
-
- Text {
- id: titleText
- anchors.left: parent.left
- anchors.leftMargin: tileMargin/3
- anchors.bottom: parent.bottom
- anchors.bottomMargin: tileMargin/3
- anchors.right: parent.right
- anchors.rightMargin: tileMargin/3
-
- color: videoSelector.textColor
- text: title
- width: parent.width;
- wrapMode: Text.WordWrap;
- smooth: true
- font { family: videoSelector.uiFont; pixelSize: videoSelector.tileFontSize }
- }
- }
-}
-
diff --git a/basicsuite/Qt5Everywhere/demos/video/VideoSelector.qml b/basicsuite/Qt5Everywhere/demos/video/VideoSelector.qml
deleted file mode 100644
index aa54e33..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/VideoSelector.qml
+++ /dev/null
@@ -1,158 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.XmlListModel 2.0
-
-Item {
- id: videoSelector
-
- property int tileHeight: parseInt(grid.height / 2)
- property int tileMargin: tileHeight * 0.1
- property int tileFontSize: tileHeight * 0.08
- property string tileBackground: "#262626"
- property string textColor: "white"
- property string uiFont: "Segoe UI"
-
- signal selectVideo(string link)
-
- state: "VISIBLE"
-
- onOpacityChanged: {
- if (state === "HIDDEN" && opacity <= 0.05)
- visible = false;
- }
-
- XmlListModel {
- id: videoModel
- source: "http://qt-project.org/uploads/videos/qt5_videos.xml"
- query: "/videolist/item"
- XmlRole { name: "thumbnail"; query: "thumbnail/string()" }
- XmlRole { name: "title"; query: "title/string()" }
- XmlRole { name: "link"; query: "link/string()" }
- }
-
- // Grid view
- GridView {
- id: grid
- anchors.fill: parent
- flow: GridView.TopToBottom
- cellHeight: tileHeight
- cellWidth: parseInt(tileHeight * 1.5)
- cacheBuffer: cellWidth
- clip: false
- focus: true
- model: videoModel
- delegate: VideoDelegate { onVideoSelected: videoSelector.selectVideo(link); }
-
- // Only show the scrollbars when the view is moving.
- states: State {
- when: grid.movingHorizontally
- PropertyChanges { target: horizontalScrollBar; opacity: 1 }
- }
-
- transitions: Transition {
- NumberAnimation { properties: "opacity"; duration: 400 }
- }
- }
-
- ScrollBar {
- id: horizontalScrollBar
- width: parent.width; height: 6
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- opacity: 0
- position: grid.visibleArea.xPosition
- pageSize: grid.visibleArea.widthRatio
- }
-
- function hide() {
- videoSelector.state = "HIDDEN";
- }
-
- function show() {
- videoSelector.visible = true;
- videoSelector.state = "VISIBLE";
- }
-
- states: [
- State {
- name: "HIDDEN"
- PropertyChanges {
- target: videoSelector
- opacity: 0.0
- }
- },
- State {
- name: "VISIBLE"
- PropertyChanges {
- target: videoSelector
- opacity: 0.95
- }
- }
- ]
-
- transitions: [
- Transition {
- from: "HIDDEN"
- to: "VISIBLE"
- NumberAnimation {
- id: showAnimation
- target: videoSelector
- properties: "opacity"
- from: 0.0
- to: 1.0
- duration: 200
- }
- },
- Transition {
- from: "VISIBLE"
- to: "HIDDEN"
- NumberAnimation {
- id: hideAnimation
- target: videoSelector
- properties: "opacity"
- from: 0.95
- to: 0.0
- duration: 200
- }
- }
- ]
-}
diff --git a/basicsuite/Qt5Everywhere/demos/video/VolumeControl.qml b/basicsuite/Qt5Everywhere/demos/video/VolumeControl.qml
deleted file mode 100644
index 6e75fd2..0000000
--- a/basicsuite/Qt5Everywhere/demos/video/VolumeControl.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- id: root
- property alias volume: volumeSlider.value
-
- //Volume Controls
- ImageButton {
- id: volumeDown
- height: parent.height * 0.5
- imageSource: "images/VolumeDown.png"
- anchors.verticalCenter: root.verticalCenter
- anchors.left: root.left
- onClicked: {
- root.volume = 0.0;
- }
- }
- Slider {
- id: volumeSlider
- anchors.left: volumeDown.right
- anchors.right: volumeUp.left
- height: root.height
- maximum: 1.0
- minimum: 0.0
- anchors.verticalCenter: root.verticalCenter
- anchors.verticalCenterOffset: 1
- }
-
- ImageButton {
- id: volumeUp
- height: parent.height * 0.5
- imageSource: "images/VolumeUp.png"
- anchors.verticalCenter: root.verticalCenter
- anchors.verticalCenterOffset: 1
- anchors.right: root.right
- onClicked: {
- root.volume = 1.0
- }
- }
-}
diff --git a/basicsuite/Qt5Everywhere/description.txt b/basicsuite/Qt5Everywhere/description.txt
deleted file mode 100644
index efa4b99..0000000
--- a/basicsuite/Qt5Everywhere/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-This demo contains several Qt Quick 2 applications which you can launch by tapping the devices.
diff --git a/basicsuite/Qt5Everywhere/engine.js b/basicsuite/Qt5Everywhere/engine.js
deleted file mode 100644
index 2618807..0000000
--- a/basicsuite/Qt5Everywhere/engine.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-var positions = [
- {x:-1100, y:-1650, gid: 0, url: "demos/rssnews/rssnews.qml", device: 3, name: "Rss Reader"},
- {x:-2100, y:-1550, gid: 0, url: "demos/gridrssnews/main.qml", device: 7, name: "Rss Reader"},
-
- {x:1300, y:-1600, gid: 1, url: "demos/canvasclock/canvasClock.qml", device: 4, name: "Canvas\n Clock"},
- {x:2020, y:-1520, gid: 1, url: "demos/heartmonitor/main.qml", device: 5, name: " Heart\nMonitor"},
-
- {x:1000, y:-300, gid: 2, url: "demos/calqlatr/Calqlatr.qml", device: 0, name: "Calqlatr"},
- {x:-500, y:-250, gid: 2, url: "demos/touchgallery/main.qml", device: 2, name: "Widget\nGallery"},
- {x:200, y:-200, gid: 2, url: "demos/photosurface/photosurface.qml", device: 6, name: " Photo\nSurface"},
-
- {x:-1800, y:0, gid: 3, url: "demos/maroon/Maroon.qml", device: 1, name: "Maroon in\n Trouble"},
- {x:-2500, y:100, gid: 3, url: "demos/samegame/samegame.qml", device: 1, name: "SameGame"},
-
- {x:1200, y:1200, gid: 5, url: "demos/shaders/main.qml", device: 6, name: "Shaders"},
- {x:2200, y:1400, gid: 5, url: "demos/particledemo/particledemo.qml", device: 7, name: "Particle\n Paint"},
-
- {x:-800, y:1180, gid: 4, url: "demos/video/main.qml", device: 8, name: "Video"},
- {x:-1600, y:1500, gid: 4, url: "demos/radio/radio.qml", device: 4, name: "Internet\n Radio"}
- ]
-
-var groupPositions = [
- {x:-2880, y:-2100, width: 2400, height: 1200, textX: 50, textY: 50, name: "Feeds"},
- {x:700, y:-2100, width: 1700, height: 1200, textX: 50, textY: 50, name: "Canvas"},
- {x:-900, y:-800, width: 2650, height: 1300, textX: 50, textY: 50, name: "Applications"},
- {x:-3000, y:-500, width: 1750, height: 1150, textX: 50, textY: 50, name: "Games"},
- {x:-2200, y:850, width: 2050, height: 1150, textX: 50, textY: 150, name: "Multimedia"},
- {x:510, y:600, width: 2450, height: 1500, textX: 50, textY: 50, name: "Particles & Shaders"}
- ]
-
-var imageSources = ["phone1.png","phone2.png", "phone3.png","tablet1.png", "car_device.png", "medical_device.png", "laptop1.png", "laptop2.png", "tv.png"]
-var widths = [300, 360, 366, 758, 625, 600, 918, 923, 800]
-var heights = [605, 706, 720, 564, 386, 488, 600, 600, 638]
-var scales = [0.8, 0.8, 0.6, 0.9, 1.0, 1.0, 0.9, 1.0, 1.0]
-var demoWidths = [269, 322, 322, 642, 480, 482, 688, 691, 726]
-var demoHeights = [404, 482, 482, 402, 320, 322, 431, 432, 456]
-var maskHorizontalOffsets = [1, 1, 1, 1, -52, 1, 1, 1, 1]
-var maskVerticalOffsets = [20, 32, 15, 24, 15, 45, 59, 57, 56]
-var navigationList = [1,0,2,3,4,6,5,7,8,12,11,9,10]
-var groupNavigationList = [0,1,2,3,4,5]
-var currentDemoIndex = -1
-var currentGroupIndex = -1
-var objects = []
-var groups = []
-
-function initSlides(){
- positions.forEach(function(pos){
- createSlide(pos.x,pos.y, pos.gid, pos.url, pos.device, pos.name)
- })
-}
-
-function createSlide(x,y,gid,url,device,name){
- var component = Qt.createComponent("Slide.qml")
- if (component.status === Component.Ready){
- var object=component.createObject(canvas)
- object.device = device
- object.imageSource = "images/" + imageSources[device]
- object.width = widths[device]
- object.height = heights[device]
- object.scale = scales[device]
- object.demoWidth = demoWidths[device]
- object.demoHeight = demoHeights[device]
- object.maskVerticalOffset = maskVerticalOffsets[device]
- object.maskHorizontalOffset = maskHorizontalOffsets[device]
- object.uid = objects.length
- object.gid = gid
- object.name = name
- object.x = x-object.width/2
- object.y = y-object.height/2
- object.createElements();
-
- if (url){
- object.url = url;
- }
- objects.push(object)
- }
-}
-
-function initGroups(){
- groupPositions.forEach(function(pos){
- createGroup(pos.x, pos.y, pos.width, pos.height, pos.textX, pos.textY, pos.textSource, pos.name)
- })
-}
-
-function createGroup(x,y,width,height,textX,textY,textSource,name){
- var component = Qt.createComponent("Group.qml")
- if (component.status === Component.Ready){
- var object=component.createObject(canvas)
- object.uid = groups.length
- object.x = x
- object.y = y
- object.width = width
- object.height = height
- object.textX = textX
- object.textY = textY
- object.name = name
-
- groups.push(object)
- }
-}
-
-function loadCurrentDemo(){
-
- // Load current demo and release all others possible running demos
- if (currentDemoIndex != -1) {
- for (var i=0; i < objects.length; i++){
- if (currentDemoIndex == i){
- objects[navigationList[currentDemoIndex]].loadDemo();
- }
- }
- }
-}
-
-function releaseDemos()
-{
- for (var i=0; i < objects.length; i++)
- objects[i].releaseDemo();
-}
-
-function getCurrent()
-{
- if (currentDemoIndex < 0 || currentDemoIndex >= objects.length)
- return null;
-
- return selectTarget(navigationList[currentDemoIndex]);
-}
-
-function getNext()
-{
- currentDemoIndex++;
- if (currentDemoIndex >= objects.length)
- currentDemoIndex = 0;
-
- return selectTarget(navigationList[currentDemoIndex]);
-}
-
-function getPrevious()
-{
- currentDemoIndex--;
- if (currentDemoIndex < 0)
- currentDemoIndex = objects.length-1;
-
- return selectTarget(navigationList[currentDemoIndex]);
-}
-
-function selectTarget(uid){
-
- var idx = -1;
-
- for (var i=0; i < objects.length; i++){
- if (uid >= 0 && objects[i].uid === uid){
- idx = i;
- } else {
- objects[i].releaseDemo();
- }
- }
- if (idx !== -1){
- currentDemoIndex = navigationList.indexOf(idx)
- currentGroupIndex = objects[idx].gid
- return {"x": positions[idx].x,
- "y": positions[idx].y,
- "targetScale": objects[idx].targetScale,
- "navState": 2}
- }
-
- return null;
-}
-
-function getPosition(idx){
- return {"x": positions[idx].x, "y": positions[idx].y}
-}
-
-function getCurrentGroup()
-{
- if (currentGroupIndex < 0 || currentGroupIndex >= groups.length)
- return null;
-
- return selectGroup(groupNavigationList[currentGroupIndex]);
-}
-
-function getNextGroup()
-{
- currentGroupIndex++;
- if (currentGroupIndex >= groups.length)
- currentGroupIndex = 0;
-
- return selectGroup(groupNavigationList[currentGroupIndex]);
-}
-
-function getPreviousGroup()
-{
- currentGroupIndex--;
- if (currentGroupIndex < 0)
- currentGroupIndex = groups.length-1;
-
- return selectGroup(groupNavigationList[currentGroupIndex]);
-}
-
-function selectGroup(id){
-
- var idx = -1;
-
- for (var i=0; i < groups.length; i++){
- if (id >= 0 && groups[i].uid === id){
- idx = i;
- break;
- }
- }
-
- if (idx !== -1){
- currentGroupIndex = groupNavigationList.indexOf(idx)
- return {"x": groupPositions[idx].x + groupPositions[idx].width/2,
- "y": groupPositions[idx].y + groupPositions[idx].height/2,
- "targetScale": groups[idx].targetScale,
- "navState": 1}
- }
-
- return null;
-}
-
-function boundingBox(){
- var minX = 0, maxX = 0, minY = 0, maxY = 0;
-
- for (var i=0; i<objects.length; i++){
- var scale = objects[i].scale;
- var w2 = objects[i].width/2;
- var h2 = objects[i].height/2;
- var left = (objects[i].x - w2)*scale;
- var right = (objects[i].x + w2)*scale;
- var top = (objects[i].y - h2)*scale;
- var bottom = (objects[i].y + h2)*scale;
-
- if (left < minX)
- minX = left;
- else if (right > maxX)
- maxX = right;
-
- if (top < minY)
- minY = top;
- else if (bottom > maxY)
- maxY = bottom;
- }
-
- return {"x": minX, "y": minY, "width": maxX-minX, "height": maxY-minY, "centerX": (minX+maxX)/2, "centerY": (minY+maxY)/2};
-}
-
-function scaleToBox(destWidth, destHeight, sourceWidth, sourceHeight)
-{
- return Math.min(destWidth / sourceWidth, destHeight / sourceHeight);
-}
-
-function updateObjectScales(destWidth, destHeight)
-{
- for (var i=0; i<objects.length; i++)
- objects[i].targetScale = scaleToBox(destWidth, destHeight, objects[i].targetWidth(), objects[i].targetHeight());
-}
-
-function updateGroupScales(destWidth, destHeight)
-{
- for (var i=0; i<groups.length; i++)
- groups[i].targetScale = scaleToBox(destWidth, destHeight, groups[i].width, groups[i].height);
-}
diff --git a/basicsuite/Qt5Everywhere/main.qml b/basicsuite/Qt5Everywhere/main.qml
deleted file mode 100644
index 052e5eb..0000000
--- a/basicsuite/Qt5Everywhere/main.qml
+++ /dev/null
@@ -1,242 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "engine.js" as Engine
-import "style.js" as Style
-
-Rectangle{
- id: app
- clip: true
- focus: true
- width: 800
- height: 1280
-
- property real homeScaleFactor: .2
- property int homeCenterX: 0
- property int homeCenterY: 0
- property real minScaleFactor: .04
- property real maxScaleFactor: 1
- property real tapLimitX : 2
- property real tapLimitY : 1
- property int navigationState: 0 //home, group, slide, dirty
- property bool useGroups: true
-
- function calculateScales(){
- if (app.width > 0 && app.height > 0){
- var bbox = Engine.boundingBox();
- app.homeScaleFactor = Engine.scaleToBox(app.width*0.85, app.height*0.85, bbox.width, bbox.height);
- app.homeCenterX = bbox.centerX;
- app.homeCenterY = bbox.centerY;
- app.minScaleFactor = app.homeScaleFactor / 10;
- app.maxScaleFactor = app.homeScaleFactor * 20;
- Engine.updateObjectScales(app.width*0.9, app.height*0.9);
- Engine.updateGroupScales(app.width, app.height);
- tapLimitX = Math.max(1,app.width * 0.02);
- tapLimitY = Math.max(1,app.height * 0.02);
-
-
- var target = Engine.getCurrentGroup()
- if (app.useGroups && navigationState == 1) {
- if (target !== null)
- canvas.goTo(target, true)
- else
- canvas.goHome()
- }
- else if (navigationState == 2) {
- target = Engine.getCurrent()
- if (target !== null)
- canvas.goTo(target, true)
- else
- canvas.goHome()
- }
- else
- canvas.goHome()
-
- navigationPanel.checkOrientation()
- }
- }
-
- function selectTarget(uid) {
- return Engine.selectTarget(uid)
- }
-
- function selectGroup(uid) {
- return Engine.selectGroup(uid)
- }
-
- function getCurrentGroup() {
- return Engine.getCurrentGroup()
- }
-
- function getNext() {
- if (app.useGroups && app.navigationState == 1)
- return Engine.getNextGroup()
- else
- return Engine.getNext()
- }
-
- function getPrevious() {
- if (app.useGroups && app.navigationState == 1)
- return Engine.getPreviousGroup()
- else
- return Engine.getPrevious()
- }
-
- onWidthChanged: calculateScales();
- onHeightChanged: calculateScales();
-
- FontLoader {
- id: fontLoader
- source: "fonts/PatrickHandSC-Regular.ttf"
- }
-
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#89d4ff" }
- GradientStop { position: 1.0; color: "#f3fbff" }
- }
-
- Cloud { id: cloud1; sourceImage: "images/cloud1.png"}
- Cloud { id: cloud2; sourceImage: "images/cloud1.png"}
- Cloud { id: cloud3; sourceImage: "images/cloud1.png"}
- Cloud { id: cloud4; sourceImage: "images/cloud2.png"}
- Cloud { id: cloud5; sourceImage: "images/cloud2.png"}
- Cloud { id: cloud6; sourceImage: "images/cloud2.png"}
-
- WorldMouseArea { id: worldMouseArea }
- WorldCanvas { id:canvas }
- NavigationPanel{ id: navigationPanel }
-
- HelpScreen {
- id: helpscreen
- visible: false
- }
- function getPosition(index){
- return Engine.getPosition(index)
- }
-
- QuitDialog {
- id: quitDialog
- visible: false
-
- onYes: Qt.quit()
- onNo: visible = false
- }
-
- SmoothedAnimation {
- id: zoomAnimation
- target: canvas;
- property: "scalingFactor";
- duration: Style.APP_ANIMATION_DELAY
- velocity: -1
- to:canvas.zoomInTarget
-
- onRunningChanged: {
- if (!running) {
- if (app.navigationState === 2)
- Engine.loadCurrentDemo();
- else
- Engine.releaseDemos();
- }
- }
- }
-
- SequentialAnimation {
- id: navigationAnimation
-
- property int animCounter: 0
-
- function restartAnimation() {
- navigationAnimation.animCounter++;
- restart();
- }
-
- NumberAnimation {
- id: zoomOutAnimation
- target: canvas;
- property: "scalingFactor";
- duration: Style.APP_ANIMATION_DELAY/2;
- to: app.homeScaleFactor*1.3
- easing.type: Easing.OutCubic
- }
-
- NumberAnimation {
- id: zoomInAnimation
- target: canvas;
- property: "scalingFactor";
- duration: Style.APP_ANIMATION_DELAY/2;
- to: canvas.zoomInTarget
- easing.type: Easing.InCubic
- }
-
- onRunningChanged: {
- if (!running)
- animCounter--
-
- if (animCounter === 0 && navigationState === 2)
- Engine.loadCurrentDemo();
- }
- }
-
- Keys.onReleased: {
- // Handle back-key
- if (event.key === Qt.Key_Back) {
- event.accepted = true;
-
- if (app.navigationState !== 0)
- canvas.goBack();
- else
- quitDialog.visible = true
- }
- }
-
- Component.onCompleted: {
- if (app.useGroups)
- Engine.initGroups()
-
- Engine.initSlides()
- cloud1.start();
- cloud2.start();
- cloud3.start();
- cloud4.start();
- cloud5.start();
- cloud6.start();
- }
-}
diff --git a/basicsuite/Qt5Everywhere/preview_l.jpg b/basicsuite/Qt5Everywhere/preview_l.jpg
deleted file mode 100644
index 6bc9c97..0000000
--- a/basicsuite/Qt5Everywhere/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/style.js b/basicsuite/Qt5Everywhere/style.js
deleted file mode 100644
index a6a2966..0000000
--- a/basicsuite/Qt5Everywhere/style.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-var APP_WIDTH = 800
-var APP_HEIGHT = 1280
-
-var APP_ANIMATION_DELAY = 1000
-
-var LOGO_WIDTH = 800 //1006
-var LOGO_HEIGHT = 960 //1200
-
-var FONT_FAMILY = "Patrick Hand SC"
diff --git a/basicsuite/Sensors/Accelbubble.qml b/basicsuite/Sensors/Accelbubble.qml
deleted file mode 100644
index c5b75ad..0000000
--- a/basicsuite/Sensors/Accelbubble.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-import QtQuick 2.0
-import QtSensors 5.0
-
-Item {
- Rectangle {
- id: field
- color: "lightblue"
- border.width: 1
- border.color: "darkblue"
- width: parent.width
- height: parent.height
- Accelerometer {
- id: accel
- active:true
- onReadingChanged: {
- var newX = (bubble.x + calcRoll(accel.reading.x, accel.reading.y, accel.reading.z) * .1)
- var newY = (bubble.y - calcPitch(accel.reading.x, accel.reading.y, accel.reading.z) * .1)
-
- if (newX < 0)
- newX = 0
- if (newY < 0)
- newY = 0
-
- var right = field.width - bubble.width
- var bottom = field.height - bubble.height
-
- if (newX > right)
- newX = right
- if (newY > bottom)
- newY = bottom
-
- bubble.x = newX
- bubble.y = newY
- }
- }
-
- Image {
- id: bubble
- source: "bluebubble.png"
- property real centerX: parent.width / 2
- property real centerY: parent.height / 2;
- property real bubbleCenter: bubble.width / 2
- x: centerX - bubbleCenter
- y: centerY - bubbleCenter
- smooth: true
-
- Behavior on y {
- SmoothedAnimation {
- easing.type: Easing.Linear
- duration: 100
- }
- }
- Behavior on x {
- SmoothedAnimation {
- easing.type: Easing.Linear
- duration: 100
- }
- }
- }
- }
-
- function calcPitch(x,y,z) {
- return Math.atan(y / Math.sqrt(x*x + z*z)) * 57.2957795;
- }
- function calcRoll(x,y,z) {
- return Math.atan(x / Math.sqrt(y*y + z*z)) * 57.2957795;
- }
-}
diff --git a/basicsuite/Sensors/Light.qml b/basicsuite/Sensors/Light.qml
deleted file mode 100644
index fceecb7..0000000
--- a/basicsuite/Sensors/Light.qml
+++ /dev/null
@@ -1,50 +0,0 @@
-import QtQuick 2.0
-import QtSensors 5.0
-
-Item {
- rotation: 180
- Rectangle {
- id: bg
- width: parent.width
- height: parent.height
- Text {
- id: illuminanceLevel
- anchors.horizontalCenter: parent.horizontalCenter
- font.pointSize: 26
- anchors.top: parent.top
- }
- Image {
- id: avatar
- anchors.top: illuminanceLevel.bottom
- anchors.topMargin: 30
- anchors.centerIn: parent
- }
-
- AmbientLightSensor {
- active: true
- onReadingChanged: {
- if (reading.lightLevel === AmbientLightReading.Dark) {
- avatar.source = "3.png"
- bg.color = "midnightblue"
- } else if (reading.lightLevel === AmbientLightReading.Twilight
- || reading.lightLevel === AmbientLightReading.Light) {
- avatar.source = "2.png"
- bg.color = "steelblue"
- } else if (reading.lightLevel === AmbientLightReading.Bright
- || reading.lightLevel === AmbientLightReading.Sunny) {
- avatar.source = "1.png"
- bg.color = "yellow"
- } else {
- avatar.text = "Unknown light level"
- }
- }
- }
-
- LightSensor {
- active: true
- onReadingChanged: {
- illuminanceLevel.text = "Illuminance: " + reading.illuminance
- }
- }
- }
-}
diff --git a/basicsuite/Sensors/description.txt b/basicsuite/Sensors/description.txt
deleted file mode 100644
index f6048cc..0000000
--- a/basicsuite/Sensors/description.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This demo utilizes the accelerometer and light sensor readings in an application.
-
-For the accelometer, tilting the device moves the bubble around. For the light sensor,
-exposing the device to different lighting conditions changes the display.
diff --git a/basicsuite/Sensors/main.qml b/basicsuite/Sensors/main.qml
deleted file mode 100644
index 90d1dcd..0000000
--- a/basicsuite/Sensors/main.qml
+++ /dev/null
@@ -1,65 +0,0 @@
-import QtQuick 2.0
-import QtSensors 5.0
-import QtSensors 5.0 as Sensors
-
-Item {
- id: root
- width: 800
- height: 1280
-
- Component {
- id: sensorExample
- Rectangle {
- id: main
- width: root.height
- height: root.width
- rotation: 90
- border.width: 1
- Light {
- id: lys
- width: main.width
- height: main.height / 2
- }
-
- Accelbubble {
- width: main.width
- height: main.height / 2
- anchors.top: lys.bottom
- }
- }
- }
-
- Component {
- id: message
- Rectangle {
- width: root.width
- height: root.height
- Text {
- font.pixelSize: 22
- anchors.centerIn: parent
- text: "It appears that this device doesn't provide the required sensors!"
- }
- }
- }
-
- Loader {
- id: pageLoader
- anchors.centerIn: parent
- }
-
- Component.onCompleted: {
- var typesList = Sensors.QmlSensors.sensorTypes();
- var count = 0
- for (var i = 0; i < typesList.length; ++i) {
- if (typesList[i] == "QAccelerometer")
- count++
- if (typesList[i] == "QLightSensor")
- count++
- }
-
- if (count > 1)
- pageLoader.sourceComponent = sensorExample
- else
- pageLoader.sourceComponent = message
- }
-}
diff --git a/basicsuite/Sensors/preview_l.jpg b/basicsuite/Sensors/preview_l.jpg
deleted file mode 100644
index 3682cdf..0000000
--- a/basicsuite/Sensors/preview_l.jpg
+++ /dev/null
Binary files differ
diff --git a/basicsuite/Text Input/ScrollBar.qml b/basicsuite/Text Input/ScrollBar.qml
deleted file mode 100644
index e6a8143..0000000
--- a/basicsuite/Text Input/ScrollBar.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Item {
- property var scrollArea: parent
-
- width: 6
- opacity: scrollArea && scrollArea.movingVertically ? 1.0 : 0.0
- visible: scrollArea && scrollArea.contentHeight >= scrollArea.height
- anchors { right: parent.right; top: parent.top; bottom: parent.bottom; margins: 2 }
-
- Behavior on opacity { NumberAnimation { properties: "opacity"; duration: 600 } }
-
- function size() {
- var nh = scrollArea.visibleArea.heightRatio * height
- var ny = scrollArea.visibleArea.yPosition * height
- return ny > 3 ? Math.min(nh, Math.ceil(height - 3 - ny)) : nh + ny
- }
- Rectangle {
- x: 1
- y: scrollArea ? Math.max(2, scrollArea.visibleArea.yPosition * parent.height) : 0
- height: scrollArea ? size() : 0
- width: parent.width - 2
- color: Qt.rgba(1.0, 1.0, 1.0, 0.5)
- radius: 1
- }
-}
diff --git a/basicsuite/Text Input/TextArea.qml b/basicsuite/Text Input/TextArea.qml
deleted file mode 100644
index cf337f6..0000000
--- a/basicsuite/Text Input/TextArea.qml
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TextBase {
- id: textArea
-
- property alias color: textEdit.color
- property alias text: textEdit.text
- property alias textWidth: textEdit.width
- property alias readOnly: textEdit.readOnly
- property alias inputMethodHints: textEdit.inputMethodHints
-
- editor: textEdit
-
- Repeater {
- model: Math.floor((parent.height - 30) / editor.cursorRectangle.height)
- Rectangle {
- x: 8
- y: (index+1)*editor.cursorRectangle.height+6
- height: 1; width: textArea.width-24
- color: Qt.rgba(1.0, 1.0, 1.0, 0.5)
- }
- }
- TextEdit {
- id: textEdit
-
- property alias enterKeyText: textArea.enterKeyText
- property alias enterKeyEnabled: textArea.enterKeyEnabled
-
- y: 6
- focus: true
- color: "#EEEEEE"
- wrapMode: TextEdit.Wrap
- cursorVisible: activeFocus
- height: Math.max(implicitHeight, 60)
- font.pixelSize: textArea.fontPixelSize
- selectionColor: Qt.rgba(1.0, 1.0, 1.0, 0.5)
- selectedTextColor: Qt.rgba(0.0, 0.0, 0.0, 0.8)
- anchors { left: parent.left; right: parent.right; margins: 12 }
- cursorDelegate: Rectangle {
- width: 2
- opacity: 0.7
- color: "#EEEEEE"
- visible: textEdit.activeFocus
- }
-
- onActiveFocusChanged: if (!activeFocus) deselect()
- }
-}
diff --git a/basicsuite/Text Input/TextBase.qml b/basicsuite/Text Input/TextBase.qml
deleted file mode 100644
index a26c6c6..0000000
--- a/basicsuite/Text Input/TextBase.qml
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-FocusScope {
- id: textBase
-
- property var editor
- property bool previewTextActive: !editor.activeFocus && text.length === 0
- property int fontPixelSize: 32
- property string previewText
- property string enterKeyText
- property bool enterKeyEnabled: true
- property alias mouseParent: mouseArea.parent
-
- implicitHeight: editor.height + 12
-
- signal enterKeyClicked
-
- Keys.onReleased: {
- if (event.key === Qt.Key_Return)
- enterKeyClicked()
- }
-
- Rectangle {
- // background
- radius: 5.0
- anchors.fill: parent
- color: Qt.rgba(1.0, 1.0, 1.0, 0.2)
- border { width: editor.activeFocus ? 2 : 0; color: "#CCCCCC" }
- }
- Text {
- id: previewText
-
- y: 8
- color: "#CCCCCC"
- visible: previewTextActive
- text: textBase.previewText
- font.pixelSize: 28
- anchors { left: parent.left; right: parent.right; margins: 12 }
-
- }
- MouseArea {
- id: mouseArea
-
- z: 1
- parent: textBase
- anchors.fill: parent
- onClicked: {
- var positionInEditor = mapToItem(editor, mouseX, mouseY)
- var cursorPosition = editor.positionAt(positionInEditor.x, positionInEditor.y)
- editor.cursorPosition = cursorPosition
- editor.forceActiveFocus()
- Qt.inputMethod.show()
- }
- }
-}
diff --git a/basicsuite/Text Input/TextField.qml b/basicsuite/Text Input/TextField.qml
deleted file mode 100644
index aa6768e..0000000
--- a/basicsuite/Text Input/TextField.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-TextBase {
- id: textField
-
- property alias color: textInput.color
- property alias text: textInput.text
- property alias textWidth: textInput.width
- property alias readOnly: textInput.readOnly
- property alias inputMethodHints: textInput.inputMethodHints
- property alias validator: textInput.validator
- property alias echoMode: textInput.echoMode
-
- editor: textInput
- mouseParent: flickable
-
- Flickable {
- id: flickable
-
- x: 12
- clip: true
- width: parent.width-24
- height: parent.height
- flickableDirection: Flickable.HorizontalFlick
- interactive: contentWidth - 4 > width
-
- contentWidth: textInput.width+2
- contentHeight: textInput.height
- TextInput {
- id: textInput
-
- property alias enterKeyText: textField.enterKeyText
- property alias enterKeyEnabled: textField.enterKeyEnabled
-
- y: 6
- focus: true
- color: "#EEEEEE"
- cursorVisible: activeFocus
- passwordCharacter: "\u2022"
- font.pixelSize: textField.fontPixelSize
- selectionColor: Qt.rgba(1.0, 1.0, 1.0, 0.5)
- selectedTextColor: Qt.rgba(0.0, 0.0, 0.0, 0.8)
- width: Math.max(flickable.width, implicitWidth)-2
- cursorDelegate: Rectangle {
- width: 2
- opacity: 0.7
- color: "#EEEEEE"
- visible: textInput.activeFocus
- }
- onActiveFocusChanged: if (!activeFocus) deselect()
- }
- }
-}
diff --git a/basicsuite/Text Input/background.png b/basicsuite/Text Input/background.png
deleted file mode 100644
index d85f6ee..0000000
--- a/basicsuite/Text Input/background.png
+++ /dev/null
Binary files differ
diff --git a/basicsuite/Text Input/description.txt b/basicsuite/Text Input/description.txt
deleted file mode 100644
index 7c3b780..0000000
--- a/basicsuite/Text Input/description.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This examples illustrates how Qt can handle input on touch devices.
-
-The launcher loads a custom platform input context plugin and contains a virtual keyboard. When a text control in Qt Quick gets focus, the input context will trigger the virtual keyboard to show on screen and clicks in the virtual keyboard are delegated to the text control.
-
-Our demo virtual keyboard has support for english, finnish and arabic. The input context plugin API is plugin based and can be replaced with whatever the user desiers. Qt has a ready made plugin for Maliit, an open-source, cross-platform input method framework for mobile and embedded.
-
diff --git a/basicsuite/Text Input/main.qml b/basicsuite/Text Input/main.qml
deleted file mode 100644
index 53593bf..0000000
--- a/basicsuite/Text Input/main.qml
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Image {
- source: "background.png"
-
- Flickable {
- id: flickable
-
- property real scrollMarginVertical: 20
-
- width: parent.width
- contentWidth: content.width
- contentHeight: content.height
- interactive: contentHeight > height
- height: Qt.inputMethod.keyboardRectangle.y
- flickableDirection: Flickable.VerticalFlick
- children: ScrollBar {}
-
- MouseArea {
- id: content
-
- width: flickable.width
- height: textEditors.height + 24
-
- onClicked: {
- if (Qt.inputMethod.inputItem)
- Qt.inputMethod.inputItem.focus = false
- }
-
- Column {
- id: textEditors
- spacing: 15
- x: 12; y: 12
- width: parent.width - 26
-
- Text {
- color: "#EEEEEE"
- text: "Tap fields to enter text"
- anchors.horizontalCenter: parent.horizontalCenter
- font.pixelSize: 22
- }
- TextField {
- width: parent.width
- previewText: "One line field"
- enterKeyText: "Next"
- enterKeyEnabled: text.length > 0
- onEnterKeyClicked: passwordField.focus = true
- }
- TextField {
- id: passwordField
-
- width: parent.width
- echoMode: TextInput.PasswordEchoOnEdit
- previewText: "Password field"
- inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhPreferLowercase | Qt.ImhSensitiveData | Qt.ImhNoPredictiveText
- enterKeyText: "Next"
- enterKeyEnabled: text.length > 0
- onEnterKeyClicked: numberField.focus = true
- }
- TextField {
- id: numberField
-
- validator: RegExpValidator { regExp: /^[0-9\+\-\#\*\ ]{6,}$/ }
- width: parent.width
- previewText: "Phone number field"
- inputMethodHints: Qt.ImhDialableCharactersOnly
- enterKeyText: "Next"
- enterKeyEnabled: text.length > 0
- onEnterKeyClicked: textArea.focus = true
- }
- TextArea {
- id: textArea
-
- width: parent.width
- previewText: "Multiple lines field"
- height: Math.max(206, implicitHeight)
- }
- }
- }
- }
-}
diff --git a/basicsuite/about-b2qt/AboutBoot2Qt.qml b/basicsuite/about-b2qt/AboutBoot2Qt.qml
new file mode 100644
index 0000000..d050a71
--- /dev/null
+++ b/basicsuite/about-b2qt/AboutBoot2Qt.qml
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Column {
+
+ id: root
+
+ width: parent.width
+
+ spacing: engine.smallFontSize()
+
+ Title {
+ id: title
+ text: "Qt Enterprise Embedded"
+ }
+
+ ContentText {
+ id: brief
+ width: parent.width
+ text: '<p align="justify">Qt Enterprise Embedded provides a fully-integrated solution
+ to get you started immediately with software development on your embedded device
+ with a tailored user experience for embedded Linux and embedded Android. It
+ supports your key requirements for high performance, minimal footprint together
+ with Qt’s flexible full-framework modular architecture to deliver unparalleled
+ scalability.'
+ }
+
+ Column {
+ id: diagram
+ spacing: 1
+ width: parent.width * 0.5
+ anchors.horizontalCenter: parent.horizontalCenter
+ Box { text: "Application"; accentColor: "coral" }
+ Box { text: "Qt Framework"; accentColor: Qt.rgba(0.64, 0.82, 0.15) }
+ Box { text: "Android/Linux Baselayer"; accentColor: "steelblue" }
+ Box { text: "Embedded Hardware"; accentColor: "steelblue"}
+ }
+
+ ContentText {
+ id: description
+
+ width: parent.width
+
+ text: '<p align="justify">Qt Enterprise Embedded gives you shorter time-to-market
+ providing you with the productivity-enhancing tools and value-adding components.
+ You are up-to-speed with development and prototyping since day one. You can just
+ focus on writing your application with Qt.<br>
+ <p align="justify">Qt Enterprise Embedded provides you with the following:
+ <ul>
+ <li><b>A full-blown, productivity enhancing development environment</b>,
+ installed on a Linux development desktop. This self-contained environment
+ is installed and updated through one online installer and features the Qt
+ Creator Enterprise IDE, with features that facilitate the whole product
+ creation lifecycle: UI designer, code editor, direct device deployment
+ via USB or IP, emulator, on-device debugging and profiling.</li><br>
+ <li><b>Shorter time-to-market with the Boot to Qt Software Stack</b>. A
+ light-weight, Qt-optimized, full software stack that is installed into
+ the actual target device. The stack comes in two flavors, Embedded Android
+ and Embedded Linux. The pre-built stack gets you up-to-speed with prototyping
+ in no time and with our professional tooling you can customize the stack into
+ your exact production needs.</li><br>
+ <li><b>Full power and scalability of Qt on Embedded</b>. Leverage the
+ cross-platform C++ native APIs for maximum performance on both beautiful
+ user interfaces as well as non-GUI operations. With C++, you have full control
+ over your application code. You can also configure Qt Enterprise Embedded
+ directly from the source codes into a large variety of supported hardware and
+ operating systems. As with any Qt project, the same application can be deployed
+ natively to desktop and mobile OS targets as well.</li><br>
+ <li><b>Value-Adding Components</b>. No need to re-implement the wheel! Full Qt
+ Enterprise libraries give you a shortcut on development time providing ready-made
+ solutions, such as a comprehensive virtual keyboard, charts and industrial UI
+ controls.
+ </ul>
+
+ <p align="justify">Qt Enterprise Embedded includes <b>Boot to Qt</b>, a light-weight,
+ Qt-optimized, full software stack for embedded systems that is installed into the actual
+ target device. The Boot to Qt stack can be made to run on a variety of hardware - Qt
+ Enterprise Embedded comes with pre-built images for several reference devices.
+ '
+ }
+}
diff --git a/basicsuite/about-b2qt/Box.qml b/basicsuite/about-b2qt/Box.qml
new file mode 100644
index 0000000..ab6e971
--- /dev/null
+++ b/basicsuite/about-b2qt/Box.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+
+ width: parent.width
+ height: label.font.pixelSize * 3
+
+ radius: 4
+
+ antialiasing: true
+
+ property alias text: label.text;
+
+ property color accentColor: "palegreen"
+
+ gradient: Gradient {
+ GradientStop { position: 0; color: root.accentColor; }
+ GradientStop { position: 1; color: "black"; }
+ }
+
+ Text {
+ id: label
+ font.pixelSize: engine.smallFontSize()
+ font.bold: true;
+ color: "white"
+ anchors.centerIn: parent
+ }
+
+}
diff --git a/basicsuite/about-b2qt/ContentText.qml b/basicsuite/about-b2qt/ContentText.qml
new file mode 100644
index 0000000..ec4b791
--- /dev/null
+++ b/basicsuite/about-b2qt/ContentText.qml
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Text {
+ color: "white"
+ font.pixelSize: engine.smallFontSize()
+ textFormat: Text.RichText
+ wrapMode: Text.WordWrap
+}
diff --git a/basicsuite/about-b2qt/QtForAndroid.qml b/basicsuite/about-b2qt/QtForAndroid.qml
new file mode 100644
index 0000000..16d834a
--- /dev/null
+++ b/basicsuite/about-b2qt/QtForAndroid.qml
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Column {
+ id: root
+
+ width: parent.width
+
+ spacing: engine.smallFontSize()
+
+ Title {
+ text: "Boot to Qt vs Qt for Android"
+ }
+
+ ContentText {
+ width: parent.width
+ text: '<p align="justify">Qt for Android is a port of the Qt Framework to be used
+ for application development on the Android platform. Its
+ purpose is to enable development of applications that
+ can run on Android devices. For developers writing applications
+ for the Android ecosystem, Qt for Android is the right choice.
+
+ <p align="justify"><b>Boot to Qt for embedded Android</b> tries to strip down
+ the Android stack to the bare minimum, relying only on basic Linux features.
+ The majority of the Android stack, such as <i>Dalvik virtual machine</i> is
+ not running in Boot to Qt, resulting in faster startup times, lower memory consumption
+ and overall better performance.'
+ }
+
+ Column {
+ id: diagram
+ spacing: 1
+ width: parent.width * 0.66
+ anchors.horizontalCenter: parent.horizontalCenter
+ Box { text: "Application"; accentColor: "coral" }
+ Box { text: "Qt for Android"; accentColor: Qt.rgba(0.64, 0.82, 0.15) }
+ Row {
+ width: parent.width
+ height: b.height
+ Box { id: b; width: parent.width / 2; text: "Qt Framework"; accentColor: Qt.rgba(0.64, 0.82, 0.15) }
+ Box { width: parent.width / 2; text: "Android (Dalvik)"; accentColor: "steelblue" }
+ }
+
+ Box { text: "Android Baselayer"; accentColor: "steelblue" }
+ Box { text: "Embedded Hardware"; accentColor: "steelblue"}
+ }
+
+ ContentText {
+ width: parent.width
+ text: '<p align="justify"><b>Boot to Qt for embedded Linux</b> is build from scratch using
+ Yocto 1.5 tools to contain only components required in the embedded device,
+ resulting in smaller image sizes while keeping valuable development tools available.'
+ }
+}
diff --git a/basicsuite/about-b2qt/QtFramework.qml b/basicsuite/about-b2qt/QtFramework.qml
new file mode 100644
index 0000000..76c2865
--- /dev/null
+++ b/basicsuite/about-b2qt/QtFramework.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Column {
+ id: root
+
+ width: parent.width
+
+ spacing: engine.smallFontSize()
+
+ Title {
+ text: "Qt Framework"
+ }
+
+ ContentText {
+ id: brief
+ width: parent.width
+ text: '<p align="justify">Qt is a full development framework with tools designed to streamline
+ the creation of applications and user interfaces for desktop, embedded
+ and mobile platforms.
+ <ul>
+ <li><b>Qt Framework</b> - intuitive APIs for C++ and CSS/JavaScript-like
+ programming with Qt Quick for rapid UI creation</li><br>
+ <li><b>Qt Creator IDE</b> - powerful cross-platform integrated
+ development environment, including UI designer tools and on-device debugging</li><br>
+ <li><b>Tools and toolchains</b> - internationalization support, embedded toolchains
+ and more.</li>
+ </ul>
+ <p align="justify">With Qt, you can reuse code efficiently to target multiple platforms
+ with one code base. The modular C++ class library and developer tools
+ easily enables developers to create applications for one platform and
+ easily build and run to deploy on another platform.'
+ }
+
+
+}
diff --git a/basicsuite/about-b2qt/Title.qml b/basicsuite/about-b2qt/Title.qml
new file mode 100644
index 0000000..0f7f792
--- /dev/null
+++ b/basicsuite/about-b2qt/Title.qml
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Text {
+ font.pixelSize: engine.titleFontSize()
+ font.italic: true
+ color: "white"
+ anchors.horizontalCenter: parent.horizontalCenter
+}
diff --git a/basicsuite/about-b2qt/about-b2qt.pro b/basicsuite/about-b2qt/about-b2qt.pro
new file mode 100644
index 0000000..a99c8e6
--- /dev/null
+++ b/basicsuite/about-b2qt/about-b2qt.pro
@@ -0,0 +1,13 @@
+TARGET = about-b2qt
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ *.png
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content
diff --git a/basicsuite/About Boot to Qt/codeless.png b/basicsuite/about-b2qt/codeless.png
index 53e4806..53e4806 100644
--- a/basicsuite/About Boot to Qt/codeless.png
+++ b/basicsuite/about-b2qt/codeless.png
Binary files differ
diff --git a/basicsuite/about-b2qt/description.txt b/basicsuite/about-b2qt/description.txt
new file mode 100644
index 0000000..676a166
--- /dev/null
+++ b/basicsuite/about-b2qt/description.txt
@@ -0,0 +1,3 @@
+The "About Boot to Qt" provides an introduction to what Boot to Qt is all about.
+
+It talks briefly about how the software stack is built up, rough hardware requirements and how Boot to Qt differs from the more traditional Qt editions.
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/import/plugin.json b/basicsuite/about-b2qt/dummy.cpp
index e69de29..e69de29 100644
--- a/basicsuite/Qt5Everywhere/demos/shaders/import/plugin.json
+++ b/basicsuite/about-b2qt/dummy.cpp
diff --git a/basicsuite/about-b2qt/main.qml b/basicsuite/about-b2qt/main.qml
new file mode 100644
index 0000000..5c5c6df
--- /dev/null
+++ b/basicsuite/about-b2qt/main.qml
@@ -0,0 +1,175 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ id: root
+
+ width: 1280
+ height: 800
+
+// Rectangle {
+// anchors.fill: parent
+// color: "black"
+// }
+
+ Flickable {
+ id: flick
+ property real inertia: 0.4
+
+ property real cellWidth;
+ property real cellHeight;
+
+ width: parent.width
+ height: parent.height
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ contentHeight: content.height
+
+ flickableDirection: Flickable.VerticalFlick
+
+ property real topOvershoot: Math.max(0, contentItem.y);
+ property real bottomOvershoot: Math.max(0, root.height - (contentItem.height + contentItem.y));
+// onTopOvershootChanged: print("Top Overshoot:", topOvershoot);
+// onBottomOvershootChanged: print("Bottom Overshoot:", bottomOvershoot);
+
+ Item {
+ id: shiftTrickery
+
+ width: flick.width
+ height: content.height
+
+ Column {
+ id: content;
+
+ y: -flick.contentItem.y + offsetY;
+ width: flick.width * 2 / 3
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ property real offsetY: 0;
+ property real inertia: flick.inertia;
+ property real t;
+ NumberAnimation on t {
+ id: animation;
+ from: 0;
+ to: 1;
+ duration: 1000;
+ loops: Animation.Infinite
+ running: Math.abs(content.y) > 0.001 || Math.abs(content.x) > 0.001
+ }
+
+ onTChanged: {
+ offsetY += (flick.contentItem.y - offsetY) * inertia
+ }
+
+
+ spacing: engine.smallFontSize() * 2
+
+ Item { width: 1; height: engine.smallFontSize() }
+ AboutBoot2Qt { }
+ QtForAndroid { }
+ QtFramework { }
+ Image {
+ id: codeLessImage
+ source: "codeless.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ Item { width: 1; height: engine.smallFontSize() }
+ }
+
+ }
+ }
+
+ ParticleSystem {
+
+ anchors.fill: parent
+
+ ImageParticle {
+ id: imageParticle
+ source: "particle.png"
+ color: "#80c342"
+ alpha: 0
+ colorVariation: 0.3
+ entryEffect: ImageParticle.None
+ }
+
+ Emitter {
+ id: topEmitter
+ width: root.width
+ height: 1
+ x: 0
+ y: -1
+ shape: EllipseShape { fill: true }
+
+ emitRate: 300
+ lifeSpan: 1000
+ size: 20
+ sizeVariation: 4
+ endSize: 0
+
+ enabled: flick.topOvershoot > 0
+
+ velocity: PointDirection { xVariation: 10; yVariation: 50; y: Math.sqrt(flick.topOvershoot) * 10; }
+ acceleration: PointDirection { y: 50 }
+ }
+
+ Emitter {
+ id: bottomEmitter
+ width: root.width
+ height: 1
+ x: 0
+ y: root.height + 1
+ shape: EllipseShape { fill: true }
+
+ emitRate: 300
+ lifeSpan: 1000
+ size: 20
+ sizeVariation: 4
+ endSize: 0
+
+ enabled: flick.bottomOvershoot > 0
+
+ velocity: PointDirection { xVariation: 10; yVariation: -50; y: Math.sqrt(flick.bottomOvershoot) * -10; }
+ acceleration: PointDirection { y: -50 }
+ }
+ }
+}
diff --git a/basicsuite/About Boot to Qt/particle.png b/basicsuite/about-b2qt/particle.png
index 5c83896..5c83896 100644
--- a/basicsuite/About Boot to Qt/particle.png
+++ b/basicsuite/about-b2qt/particle.png
Binary files differ
diff --git a/basicsuite/About Boot to Qt/preview_l.jpg b/basicsuite/about-b2qt/preview_l.jpg
index f2eb2e0..f2eb2e0 100644
--- a/basicsuite/About Boot to Qt/preview_l.jpg
+++ b/basicsuite/about-b2qt/preview_l.jpg
Binary files differ
diff --git a/basicsuite/About Boot to Qt/qt-logo.png b/basicsuite/about-b2qt/qt-logo.png
index 748392d..748392d 100644
--- a/basicsuite/About Boot to Qt/qt-logo.png
+++ b/basicsuite/about-b2qt/qt-logo.png
Binary files differ
diff --git a/basicsuite/about-b2qt/title.txt b/basicsuite/about-b2qt/title.txt
new file mode 100644
index 0000000..634a26a
--- /dev/null
+++ b/basicsuite/about-b2qt/title.txt
@@ -0,0 +1 @@
+About Qt Enterprise Embedded
diff --git a/basicsuite/basicsuite.pro b/basicsuite/basicsuite.pro
index 2729de4..54a59f2 100644
--- a/basicsuite/basicsuite.pro
+++ b/basicsuite/basicsuite.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
SUBDIRS += \
- Qt5Everywhere \
- Camera
+ qt5-everywhere \
+ camera \
+ sensorexplorer
diff --git a/basicsuite/camera/CameraControlButton.qml b/basicsuite/camera/CameraControlButton.qml
new file mode 100644
index 0000000..f0dc438
--- /dev/null
+++ b/basicsuite/camera/CameraControlButton.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+MouseArea {
+ id: buttonRoot
+ property alias title: titleTxt.text
+ property alias subtitle: valueTxt.text
+ property bool toggled: false
+
+ width: 78 * root.contentScale
+ height: 78 * root.contentScale
+ opacity: pressed ? 0.3 : 1.0
+ rotation: root.contentRotation
+ Behavior on rotation { NumberAnimation { } }
+
+ Rectangle {
+ anchors.fill: parent
+ color: toggled ? "#8898c66c" : "#77333333"
+ radius: 5 * root.contentScale
+ }
+
+ Column {
+ id: expModeControls
+ spacing: 2 * root.contentScale
+ anchors.centerIn: parent
+
+ Text {
+ id: titleTxt
+ anchors.horizontalCenter: expModeControls.horizontalCenter
+ font.pixelSize: 22 * root.contentScale
+ font.letterSpacing: -1
+ color: "white"
+ font.bold: true
+ }
+
+ Text {
+ id: valueTxt
+ anchors.horizontalCenter: expModeControls.horizontalCenter
+ height: 22 * root.contentScale
+ verticalAlignment: Text.AlignVCenter
+ color: "white"
+
+ Connections {
+ target: root
+ onContentScaleChanged: valueTxt.font.pixelSize = Math.round(18 * root.contentScale)
+ }
+
+ onTextChanged: font.pixelSize = Math.round(18 * root.contentScale)
+ onPaintedWidthChanged: {
+ if (paintedWidth > buttonRoot.width - (8 * root.contentScale))
+ font.pixelSize -= Math.round(2 * root.contentScale);
+ }
+ }
+ }
+}
diff --git a/basicsuite/camera/CameraSetting.qml b/basicsuite/camera/CameraSetting.qml
new file mode 100644
index 0000000..bf8fb6b
--- /dev/null
+++ b/basicsuite/camera/CameraSetting.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Item {
+ width: button.width
+ height: button.height
+ visible: enabled && picker.count > 1
+
+ property alias title: button.title
+ property alias selectedValue: picker.value
+ property alias currentIndex: picker.currentIndex
+ property alias model: picker.model
+ property alias count: picker.count
+
+ CameraControlButton {
+ id: button
+ anchors.centerIn: parent
+
+ subtitle: picker.name
+ toggled: picker.visible
+
+ onClicked: picker.visible = true
+ }
+
+ Picker {
+ id: picker
+ }
+
+}
diff --git a/basicsuite/camera/CaptureControl.qml b/basicsuite/camera/CaptureControl.qml
new file mode 100644
index 0000000..5a14e4e
--- /dev/null
+++ b/basicsuite/camera/CaptureControl.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtMultimedia 5.0
+
+Rectangle {
+ id: controlRoot
+
+ signal clicked
+
+ property bool videoMode: camera.captureMode === Camera.CaptureVideo
+
+ width: 180 * root.contentScale
+ height: width
+ radius: width / 2
+ color: mouser.pressed ? (controlRoot.videoMode ? "#77fa334f" : "#7798c66c") : "#77333333"
+ visible: enabled
+
+ Rectangle {
+ id: center
+ anchors.centerIn: parent
+ width: parent.width * 0.45
+ height: width
+ radius: width / 2
+ opacity: mouser.pressed ? 0.7 : 1
+ color: controlRoot.videoMode ? "#fa334f" : "#98c66c"
+ }
+
+ Rectangle {
+ anchors.centerIn: parent
+ color: "white"
+ visible: camera.videoRecorder.recorderStatus === CameraRecorder.RecordingStatus
+ width: center.width * 0.3
+ height: width
+ }
+
+ MouseArea {
+ id: mouser
+ anchors.fill: parent
+ onClicked: controlRoot.clicked()
+ }
+}
diff --git a/basicsuite/camera/CapturePreview.qml b/basicsuite/camera/CapturePreview.qml
new file mode 100644
index 0000000..db01ca4
--- /dev/null
+++ b/basicsuite/camera/CapturePreview.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+ anchors.fill: parent
+ color: "black"
+ opacity: 0
+ enabled: opacity !== 0
+
+ property string previewSrc: ""
+
+ onOpacityChanged: {
+ if (opacity === 1 && previewSrc !== "") {
+ previewImage.source = previewSrc;
+ previewSrc = "";
+ }
+ }
+
+ Behavior on opacity { NumberAnimation { duration: 100 } }
+
+ function show() {
+ previewImage.source = "";
+ opacity = 1;
+ }
+
+ function setPreview(preview) {
+ if (root.opacity === 1)
+ previewImage.source = preview;
+ else
+ root.previewSrc = preview;
+ }
+
+ Image {
+ id: previewImage
+ anchors.fill: parent
+ fillMode: Image.PreserveAspectFit
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ root.opacity = 0;
+ }
+ }
+}
diff --git a/basicsuite/camera/Controls.qml b/basicsuite/camera/Controls.qml
new file mode 100644
index 0000000..cc1e1ad
--- /dev/null
+++ b/basicsuite/camera/Controls.qml
@@ -0,0 +1,199 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtMultimedia 5.0
+
+Item {
+ id: controlsRoot
+ anchors.fill: parent
+
+// property alias cameraMode: cameraModeControl.selectedValue
+
+ property alias requestedZoom: zoomControl.requestedZoom
+ property alias actualZoom: zoomControl.actualZoom
+ property alias maximumZoom: zoomControl.maximumZoom
+
+ property alias flashMode: flashControl.selectedValue
+ property alias focusMode: focusModeControl.selectedValue
+ property alias exposureMode: expModeControl.selectedValue
+ property alias exposureCompensation: expCompControl.selectedValue
+ property alias whiteBalanceMode: wbControl.selectedValue
+ property alias resolution: resControl.selectedValue
+
+ property bool captureReady: false
+
+ signal capture
+ signal searchAndLock
+
+ FocusControl {
+ id: focusControl
+ anchors.fill: parent
+ onSearchAndLock: controlsRoot.searchAndLock()
+ enabled: camera.captureMode === Camera.CaptureStillImage
+ }
+
+ ZoomControl {
+ id: zoomControl
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 50
+ }
+
+// CameraSetting {
+// id: cameraModeControl
+// anchors.right: parent.right
+// anchors.rightMargin: 20
+// anchors.bottom: parent.bottom
+// anchors.bottomMargin: 20
+// title: "MODE"
+// model: ListModel {
+// ListElement {
+// name: "Picture"
+// value: Camera.CaptureStillImage
+// }
+// ListElement {
+// name: "Video"
+// value: Camera.CaptureVideo
+// }
+// }
+// onCountChanged: currentIndex = 0
+// enabled: controlsRoot.captureReady
+// }
+
+ RecordingTime {
+ anchors.right: parent.right
+ anchors.rightMargin: 40
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 60 * root.contentScale
+ visible: camera.videoRecorder.recorderStatus === CameraRecorder.RecordingStatus
+ }
+
+ Row {
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ anchors.top: parent.top
+ anchors.topMargin: 20
+ height: 84
+ spacing: 20
+
+ CameraSetting {
+ id: flashControl
+ title: "FLASH"
+ model: cameraUtils.supportedFlashModes
+ }
+
+ CameraSetting {
+ id: focusModeControl
+ title: "FOCUS"
+ model: cameraUtils.supportedFocusModes
+ enabled: camera.captureMode === Camera.CaptureStillImage
+ }
+
+ CameraSetting {
+ id: expModeControl
+ title: "SCENE"
+ model: cameraUtils.supportedSceneModes
+ }
+
+ CameraSetting {
+ id: expCompControl
+ title: "EV"
+ model: ListModel {
+ ListElement {
+ name: "+2"
+ value: 2
+ }
+ ListElement {
+ name: "+1"
+ value: 1
+ }
+ ListElement {
+ name: "0"
+ value: 0
+ }
+ ListElement {
+ name: "-1"
+ value: -1
+ }
+ ListElement {
+ name: "-2"
+ value: -2
+ }
+ }
+ }
+
+ CameraSetting {
+ id: wbControl
+ title: "WB"
+ model: cameraUtils.supportedWhiteBalanceModes
+ }
+
+ CameraSetting {
+ id: resControl
+ title: "SIZE"
+ model: cameraUtils.supportedCaptureResolutions
+// onCountChanged: currentIndex = 1
+
+ Component.onCompleted: currentIndex = 1
+
+ Connections {
+ target: camera
+ onCaptureModeChanged: {
+ if (camera.captureMode === Camera.CaptureStillImage) {
+ resControl.model = cameraUtils.supportedCaptureResolutions;
+ } else {
+ resControl.model = cameraUtils.supportedVideoResolutions;
+ }
+ }
+ }
+ }
+ }
+
+ CaptureControl {
+ id: captureControl
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: -30
+ enabled: controlsRoot.captureReady || camera.videoRecorder.recorderStatus === CameraRecorder.RecordingStatus
+
+ onClicked: controlsRoot.capture()
+ }
+}
diff --git a/basicsuite/camera/FocusControl.qml b/basicsuite/camera/FocusControl.qml
new file mode 100644
index 0000000..83fd2fe
--- /dev/null
+++ b/basicsuite/camera/FocusControl.qml
@@ -0,0 +1,151 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtMultimedia 5.0
+
+MouseArea {
+ id: focusRoot
+
+ signal searchAndLock
+
+ onClicked: {
+ camera.focus.focusPointMode = Camera.FocusPointCustom
+ camera.focus.customFocusPoint = viewfinder.mapPointToSourceNormalized(Qt.point(mouse.x, mouse.y))
+ focusRoot.searchAndLock()
+ }
+
+ Item {
+ id: zones
+ anchors.fill: parent
+
+ property color focusAreaColor
+ property real focusAreaScale: 1
+
+ Repeater {
+ model: camera.focus.focusZones
+
+ Rectangle {
+ border {
+ width: Math.round(2 * root.contentScale)
+ color: zones.focusAreaColor
+ }
+ radius: 8 * root.contentScale
+ color: "transparent"
+ scale: zones.focusAreaScale
+
+ // Map from the relative, normalized frame coordinates
+ property rect mappedRect: viewfinder.mapNormalizedRectToItem(area);
+
+ Connections {
+ target: viewfinder
+ onContentRectChanged: {
+ mappedRect = viewfinder.mapNormalizedRectToItem(area);
+ }
+ }
+
+ x: mappedRect.x - (width - mappedRect.width) / 2
+ y: mappedRect.y - (height - mappedRect.height) / 2
+ width: Math.round(120 * root.contentScale)
+ height: width
+
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: -1.5
+ color: "transparent"
+ border.width: 1
+ border.color: "black"
+ radius: parent.radius + 2
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 1 + parent.border.width / 2 + 0.5
+ color: "transparent"
+ border.width: 1
+ border.color: "black"
+ radius: parent.radius - 3
+ }
+ }
+ }
+
+ states: [
+ State {
+ name: "unlocked"; when: camera.lockStatus === Camera.Unlocked
+ PropertyChanges { target: zones; opacity: 0; focusAreaColor: "red" }
+ },
+ State {
+ name: "searching"; when: camera.lockStatus === Camera.Searching
+ PropertyChanges { target: zones; opacity: 1; focusAreaColor: "white" }
+ },
+ State {
+ name: "locked"; when: camera.lockStatus === Camera.Locked
+ PropertyChanges { target: zones; opacity: 0; focusAreaColor: "green" }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ to: "searching"
+ NumberAnimation { properties: "opacity"; duration: 60 }
+ SequentialAnimation {
+ NumberAnimation {
+ target: zones; property: "focusAreaScale"; from: 1; to: 1.3; duration: 150
+ }
+ PauseAnimation { duration: 20 }
+ NumberAnimation {
+ target: zones; property: "focusAreaScale"; easing.period: 1; easing.amplitude: 1.4
+ easing.type: Easing.OutElastic; from: 1.3; to: 1
+ duration: 450
+ }
+ }
+ },
+ Transition {
+ from: "searching"
+ SequentialAnimation {
+ PauseAnimation { duration: 1500 }
+ NumberAnimation { properties: "opacity"; duration: 60 }
+ }
+ }
+
+ ]
+ }
+
+}
diff --git a/basicsuite/camera/Picker.qml b/basicsuite/camera/Picker.qml
new file mode 100644
index 0000000..e29d70f
--- /dev/null
+++ b/basicsuite/camera/Picker.qml
@@ -0,0 +1,129 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+MouseArea {
+ id: pickerRoot
+
+ parent: root
+ anchors.fill: parent
+
+ onClicked: visible = false
+ visible: false
+
+ property alias contentWidth: back.width
+ property real contentHeight: 350 * root.contentScale
+ property alias model: list.model
+ property variant value: null
+ property string name: ""
+ property alias currentIndex: list.currentIndex
+ property alias count: list.count
+
+ onValueChanged: {
+ for (var i = 0; i < list.count; ++i) {
+ var data = list.model[i];
+ if (data === undefined)
+ data = list.model.get(i);
+ if (data.value === pickerRoot.value) {
+ list.currentIndex = i;
+ return;
+ }
+ }
+ list.currentIndex = -1;
+ }
+
+ Rectangle {
+ id: back
+ color: "#77333333"
+ width: 200 * root.contentScale
+ height: Math.min(pickerRoot.contentHeight, list.contentHeight + list.anchors.margins * 2)
+ anchors.centerIn: parent
+ property int itemHeight: 25 * root.contentScale
+ rotation: root.contentRotation
+ Behavior on rotation { NumberAnimation { } }
+
+ ListView {
+ id: list
+ anchors.fill: parent
+ clip: true
+ anchors.margins: 14 * root.contentScale
+
+ currentIndex: -1
+
+ onCurrentIndexChanged: {
+ if (list.currentIndex >= 0) {
+ var data = list.model[list.currentIndex];
+ if (data === undefined)
+ data = list.model.get(list.currentIndex);
+ pickerRoot.value = data.value;
+ pickerRoot.name = data.name;
+ } else {
+ pickerRoot.value = null
+ pickerRoot.name = ""
+ }
+ }
+
+ delegate: Item {
+ height: 40 * root.contentScale
+ width: parent.width
+ Rectangle {
+ anchors.fill: parent
+ border.color: index == list.currentIndex ? "#44ffffff" : "transparent"
+ color: index == list.currentIndex ? "#22ffffff" : "transparent"
+ radius: 3 * root.contentScale
+ Text {
+ color: "white"
+ text: (typeof modelData === 'undefined' ? name : modelData.name)
+ anchors.centerIn: parent
+ font.pixelSize: Math.round(20 * root.contentScale)
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ list.currentIndex = index;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
diff --git a/basicsuite/Camera/README b/basicsuite/camera/README
index e249fae..e249fae 100644
--- a/basicsuite/Camera/README
+++ b/basicsuite/camera/README
diff --git a/basicsuite/camera/RecordingTime.qml b/basicsuite/camera/RecordingTime.qml
new file mode 100644
index 0000000..941f76a
--- /dev/null
+++ b/basicsuite/camera/RecordingTime.qml
@@ -0,0 +1,110 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Rectangle {
+ id: recRoot
+ width: row.width + 14 * root.contentScale
+ height: circle.height + 14 * root.contentScale
+ color: "#77333333"
+ radius: 5 * root.contentScale
+ rotation: root.contentRotation
+ Behavior on rotation { NumberAnimation { } }
+
+ Row {
+ id: row
+ anchors.centerIn: parent
+ spacing: 10 * root.contentScale
+
+ Item {
+ anchors.verticalCenter: timeText.verticalCenter
+ width: 18 * root.contentScale
+ height: width
+
+ Rectangle {
+ id: circle
+ width: parent.width
+ height: parent.height
+ radius: width / 2
+ color: "#fa334f"
+
+ SequentialAnimation {
+ loops: Animation.Infinite
+ running: recRoot.visible
+ PropertyAction { target: circle; property: "visible"; value: true }
+ PauseAnimation { duration: 1000 }
+ PropertyAction { target: circle; property: "visible"; value: false }
+ PauseAnimation { duration: 1000 }
+ }
+ }
+ }
+
+ Text {
+ id: timeText
+ color: "white"
+ font.pixelSize: 24 * root.contentScale
+ text: formatTime(camera.videoRecorder.duration)
+ }
+ }
+
+ function formatTime(time) {
+ time = time / 1000
+ var hours = Math.floor(time / 3600);
+ time = time - hours * 3600;
+ var minutes = Math.floor(time / 60);
+ var seconds = Math.floor(time - minutes * 60);
+
+ if (hours > 0)
+ return formatTimeBlock(hours) + ":" + formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
+ else
+ return formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
+
+ }
+
+ function formatTimeBlock(time) {
+ if (time === 0)
+ return "00"
+ if (time < 10)
+ return "0" + time;
+ else
+ return time.toString();
+ }
+}
diff --git a/basicsuite/camera/Slider.qml b/basicsuite/camera/Slider.qml
new file mode 100644
index 0000000..18853ad
--- /dev/null
+++ b/basicsuite/camera/Slider.qml
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Item {
+ id: slider
+
+ height: handleBack.height
+ // value is read/write.
+ property real value: 0
+ property real maximum: 1
+ property real minimum: 0
+ property int xMax: width - handle.width
+ onXMaxChanged: updatePos()
+ onMinimumChanged: updatePos()
+ onValueChanged: if (!pressed) updatePos()
+ property bool mutable: true
+ property alias pressed : backgroundMouse.pressed
+
+ signal valueChangedByHandle(int newValue)
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = 0 + (value - minimum) * slider.xMax / (maximum - minimum);
+ pos = Math.min(pos, width - handle.width - 0);
+ pos = Math.max(pos, 0);
+ handle.x = pos;
+ } else {
+ handle.x = 0;
+ }
+ }
+
+ Rectangle {
+ id: background
+ width: slider.width
+ anchors.verticalCenter: slider.verticalCenter
+ height: 4 * root.contentScale
+ color: "#666666"
+
+ MouseArea {
+ id: backgroundMouse
+ anchors.fill: parent
+ anchors.topMargin: -24 * root.contentScale
+ anchors.bottomMargin: -24 * root.contentScale
+ enabled: slider.mutable
+ drag.target: handle
+ drag.axis: Drag.XAxis
+ drag.minimumX: 0
+ drag.maximumX: slider.xMax
+ onPressedChanged: {
+ value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
+ valueChangedByHandle(value);
+ updatePos();
+ }
+ onPositionChanged: {
+ value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
+ valueChangedByHandle(value);
+ }
+ }
+ }
+
+ Rectangle {
+ id: progress
+ height: 8 * root.contentScale
+ anchors.verticalCenter: background.verticalCenter
+ anchors.left: background.left
+ anchors.right: handle.right
+ anchors.rightMargin: handle.width / 2
+ visible: slider.enabled
+ color: "#98c66c"
+ }
+
+ Rectangle {
+ id: handleBack
+ width: 40 * root.contentScale
+ height: width
+ radius: width / 2
+ color: "#8898c66c"
+ antialiasing: true
+ anchors.centerIn: handle
+ visible: handle.visible
+ }
+
+ Rectangle {
+ id: handle
+ width: 14 * root.contentScale
+ height: width
+ radius: width / 2
+ antialiasing: true
+ color: "#98c66c"
+ anchors.verticalCenter: background.verticalCenter
+ visible: slider.enabled
+ }
+}
+
diff --git a/basicsuite/camera/ZoomControl.qml b/basicsuite/camera/ZoomControl.qml
new file mode 100644
index 0000000..0c1cbdd
--- /dev/null
+++ b/basicsuite/camera/ZoomControl.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Column {
+ width: 400 * root.contentScale
+ spacing: 20 * root.contentScale
+ visible: maximumZoom > 1
+
+ property alias maximumZoom: zoomSlider.maximum
+ property alias requestedZoom: zoomSlider.value
+ property real actualZoom: 1
+
+ Rectangle {
+ anchors.horizontalCenter: zoomSlider.horizontalCenter
+ width: zoomText.width + 10 * root.contentScale
+ height: zoomText.height + 10 * root.contentScale
+ color: "#77333333"
+ radius: 5 * root.contentScale
+ rotation: root.contentRotation
+ Behavior on rotation { NumberAnimation { } }
+
+ Text {
+ id: zoomText
+ anchors.centerIn: parent
+ font.pixelSize: Math.round(24 * root.contentScale)
+ color: "white"
+ font.bold: true
+ text: (Math.round(actualZoom * 100) / 100) + "x"
+ }
+ }
+
+ Slider {
+ id: zoomSlider
+ width: parent.width
+ rotation: root.contentRotation === -90 ? 180 : (root.contentRotation === 90 ? 0 : root.contentRotation)
+
+ minimum: 1
+ maximum: 1
+ value: 1
+ }
+}
diff --git a/basicsuite/camera/app.pro b/basicsuite/camera/app.pro
new file mode 100644
index 0000000..b588a0d
--- /dev/null
+++ b/basicsuite/camera/app.pro
@@ -0,0 +1,13 @@
+TARGET = camera
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ *.png
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content
diff --git a/basicsuite/camera/camera.pro b/basicsuite/camera/camera.pro
new file mode 100644
index 0000000..7d9c9f1
--- /dev/null
+++ b/basicsuite/camera/camera.pro
@@ -0,0 +1,7 @@
+TEMPLATE = subdirs
+CONFIG += ordered
+
+SUBDIRS += \
+ camerautils \
+ app.pro
+
diff --git a/basicsuite/camera/camerautils/camerautils.cpp b/basicsuite/camera/camerautils/camerautils.cpp
new file mode 100644
index 0000000..9e890d5
--- /dev/null
+++ b/basicsuite/camera/camerautils/camerautils.cpp
@@ -0,0 +1,229 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "camerautils.h"
+
+#include <QCamera>
+#include <QCameraImageCapture>
+#include <QCameraImageProcessing>
+#include <QCameraExposure>
+#include <QCameraFocus>
+#include <QMediaRecorder>
+
+static QList<CameraSettingsValue*> g_commonResolutions;
+static QList<CameraSettingsValue*> g_commonVideoResolutions;
+static QList<CameraSettingsValue*> g_whiteBalanceModes;
+static QList<CameraSettingsValue*> g_sceneModes;
+static QList<CameraSettingsValue*> g_flashModes;
+static QList<CameraSettingsValue*> g_focusModes;
+
+QDebug operator<<(QDebug dbg, const CameraSettingsValue &r) {
+ dbg.nospace() << "CameraSettingsValue(" << r.name() << ", " << r.value() << ')';
+ return dbg.space();
+}
+
+CameraUtils::CameraUtils(QObject *parent)
+ : QObject(parent)
+ , m_camera(0)
+{
+ if (g_commonResolutions.isEmpty()) {
+ g_commonResolutions << new CameraSettingsValue(QStringLiteral("QVGA"), QSize(320, 240))
+ << new CameraSettingsValue(QStringLiteral("0.3M"), QSize(640, 480))
+ << new CameraSettingsValue(QStringLiteral("0.8M"), QSize(1024, 768))
+ << new CameraSettingsValue(QStringLiteral("1.2M"), QSize(1280, 960))
+ << new CameraSettingsValue(QStringLiteral("2M"), QSize(1600, 1200))
+ << new CameraSettingsValue(QStringLiteral("5M"), QSize(2560, 1920))
+ << new CameraSettingsValue(QStringLiteral("8M"), QSize(3264, 2448));
+
+ g_commonVideoResolutions << new CameraSettingsValue(QStringLiteral("1080p (16:9)"), QSize(1920, 1080))
+ << new CameraSettingsValue(QStringLiteral("1080p (16:9)"), QSize(1920, 1088))
+ << new CameraSettingsValue(QStringLiteral("1080p (4:3)"), QSize(1440, 1080))
+ << new CameraSettingsValue(QStringLiteral("1080p (4:3)"), QSize(1440, 1088))
+ << new CameraSettingsValue(QStringLiteral("720p (16:9)"), QSize(1280, 720))
+ << new CameraSettingsValue(QStringLiteral("720p (4:3)"), QSize(960, 720))
+ << new CameraSettingsValue(QStringLiteral("480p (16:9)"), QSize(720, 480))
+ << new CameraSettingsValue(QStringLiteral("480p (4:3)"), QSize(640, 480))
+ << new CameraSettingsValue(QStringLiteral("QVGA"), QSize(320, 240));
+
+ g_whiteBalanceModes << new CameraSettingsValue(QStringLiteral("Auto"), QCameraImageProcessing::WhiteBalanceAuto)
+ << new CameraSettingsValue(QStringLiteral("Manual"), QCameraImageProcessing::WhiteBalanceManual)
+ << new CameraSettingsValue(QStringLiteral("Sunlight"), QCameraImageProcessing::WhiteBalanceSunlight)
+ << new CameraSettingsValue(QStringLiteral("Cloudy"), QCameraImageProcessing::WhiteBalanceCloudy)
+ << new CameraSettingsValue(QStringLiteral("Shade"), QCameraImageProcessing::WhiteBalanceShade)
+ << new CameraSettingsValue(QStringLiteral("Tungsten"), QCameraImageProcessing::WhiteBalanceTungsten)
+ << new CameraSettingsValue(QStringLiteral("Fluorescent"), QCameraImageProcessing::WhiteBalanceFluorescent)
+ << new CameraSettingsValue(QStringLiteral("Flash"), QCameraImageProcessing::WhiteBalanceFlash)
+ << new CameraSettingsValue(QStringLiteral("Sunset"), QCameraImageProcessing::WhiteBalanceSunset);
+
+ g_sceneModes << new CameraSettingsValue(QStringLiteral("Auto"), QCameraExposure::ExposureAuto)
+ << new CameraSettingsValue(QStringLiteral("Manual"), QCameraExposure::ExposureManual)
+ << new CameraSettingsValue(QStringLiteral("Portrait"), QCameraExposure::ExposurePortrait)
+ << new CameraSettingsValue(QStringLiteral("Night"), QCameraExposure::ExposureNight)
+ << new CameraSettingsValue(QStringLiteral("Backlight"), QCameraExposure::ExposureBacklight)
+ << new CameraSettingsValue(QStringLiteral("Spotlight"), QCameraExposure::ExposureSpotlight)
+ << new CameraSettingsValue(QStringLiteral("Sports"), QCameraExposure::ExposureSports)
+ << new CameraSettingsValue(QStringLiteral("Snow"), QCameraExposure::ExposureSnow)
+ << new CameraSettingsValue(QStringLiteral("Beach"), QCameraExposure::ExposureBeach)
+ << new CameraSettingsValue(QStringLiteral("Large Aperture"), QCameraExposure::ExposureLargeAperture)
+ << new CameraSettingsValue(QStringLiteral("Small Aperture"), QCameraExposure::ExposureSmallAperture);
+
+ g_flashModes << new CameraSettingsValue(QStringLiteral("Auto"), QCameraExposure::FlashAuto)
+ << new CameraSettingsValue(QStringLiteral("Off"), QCameraExposure::FlashOff)
+ << new CameraSettingsValue(QStringLiteral("On"), QCameraExposure::FlashOn)
+ << new CameraSettingsValue(QStringLiteral("Red-Eye"), QCameraExposure::FlashRedEyeReduction)
+ << new CameraSettingsValue(QStringLiteral("Torch"), QCameraExposure::FlashVideoLight);
+
+ g_focusModes << new CameraSettingsValue(QStringLiteral("Auto"), QCameraFocus::AutoFocus)
+ << new CameraSettingsValue(QStringLiteral("Continuous"), QCameraFocus::ContinuousFocus)
+ << new CameraSettingsValue(QStringLiteral("Hyperfocal"), QCameraFocus::HyperfocalFocus)
+ << new CameraSettingsValue(QStringLiteral("Infinity"), QCameraFocus::InfinityFocus)
+ << new CameraSettingsValue(QStringLiteral("Macro"), QCameraFocus::MacroFocus)
+ << new CameraSettingsValue(QStringLiteral("Off"), QCameraFocus::ManualFocus);
+ }
+
+}
+
+CameraUtils::~CameraUtils()
+{
+}
+
+void CameraUtils::init()
+{
+ m_camera = new QCamera;
+ connect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SLOT(onCameraStatusChanged()));
+ connect(m_camera, SIGNAL(error(QCamera::Error)), this, SLOT(onError()));
+ m_camera->load();
+}
+
+void CameraUtils::setCamera(QObject *obj)
+{
+ QObject *mediaObject = qvariant_cast<QObject*>(obj->property("mediaObject"));
+ if (!mediaObject)
+ return;
+
+ m_camera = qobject_cast<QCamera*>(mediaObject);
+ if (!m_camera)
+ return;
+
+ if (m_camera->status() >= QCamera::LoadedStatus)
+ onCameraStatusChanged();
+ else
+ connect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SLOT(onCameraStatusChanged()));
+}
+
+void CameraUtils::onError()
+{
+ if (m_camera && m_camera->status() == QCamera::UnavailableStatus) {
+ delete m_camera;
+ m_camera = 0;
+
+ emit done();
+ }
+}
+
+void CameraUtils::onCameraStatusChanged()
+{
+ if (!m_camera || m_camera->status() < QCamera::LoadedStatus)
+ return;
+
+ disconnect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SLOT(onCameraStatusChanged()));
+
+ QCameraImageCapture *imageCapture = new QCameraImageCapture(m_camera);
+ QCameraImageProcessing *imageProc = m_camera->imageProcessing();
+ QCameraExposure *exposure = m_camera->exposure();
+ QCameraFocus *focus = m_camera->focus();
+ QMediaRecorder rec(m_camera);
+
+ // Supported image resolutions
+ QList<QSize> resolutions = imageCapture->supportedResolutions();
+ for (int i = resolutions.size() - 1; i >= 0; --i) {
+ QSize reso = resolutions.at(i);
+ int mp = reso.width() * reso.height();
+ CameraSettingsValue *r = new CameraSettingsValue(QString::number(mp / double(1000000), 'f', 1) + QLatin1String("M"), reso);
+ m_supportedResolutions.append(r);
+ }
+
+ // Supported video resolutions
+ QList<QSize> suppRes = rec.supportedResolutions();
+ for (int i = 0; i < g_commonVideoResolutions.size(); ++i) {
+ CameraSettingsValue *r = g_commonVideoResolutions.at(i);
+ if (suppRes.contains(r->value().toSize()))
+ m_supportedVideoResolutions.append(r);
+ }
+
+
+ // Supported white balance modes
+ for (int i = 0; i < g_whiteBalanceModes.size(); ++i) {
+ CameraSettingsValue *m = g_whiteBalanceModes.at(i);
+ if (imageProc->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceMode(m->value().toInt())))
+ m_supportedWhiteBalanceModes.append(m);
+ }
+
+ // Supported scene modes
+ for (int i = 0; i < g_sceneModes.size(); ++i) {
+ CameraSettingsValue *sm = g_sceneModes.at(i);
+ if (exposure->isExposureModeSupported(QCameraExposure::ExposureMode(sm->value().toInt())))
+ m_supportedSceneModes.append(sm);
+ }
+
+ // Supported flash modes
+ for (int i = 0; i < g_flashModes.size(); ++i) {
+ CameraSettingsValue *sm = g_flashModes.at(i);
+ if (exposure->isFlashModeSupported(QCameraExposure::FlashModes(sm->value().toInt())))
+ m_supportedFlashModes.append(sm);
+ }
+
+ // Supported focus modes
+ for (int i = 0; i < g_focusModes.size(); ++i) {
+ CameraSettingsValue *sm = g_focusModes.at(i);
+ if (focus->isFocusModeSupported(QCameraFocus::FocusModes(sm->value().toInt())))
+ m_supportedFocusModes.append(sm);
+ }
+
+ delete imageCapture;
+
+ emit supportedCaptureResolutionsChanged();
+ emit supportedVideoResolutionsChanged();
+ emit supportedWhiteBalanceModesChanged();
+ emit supportedSceneModesChanged();
+ emit supportedFlashModesChanged();
+}
+
+
diff --git a/basicsuite/camera/camerautils/camerautils.h b/basicsuite/camera/camerautils/camerautils.h
new file mode 100644
index 0000000..67c5b0d
--- /dev/null
+++ b/basicsuite/camera/camerautils/camerautils.h
@@ -0,0 +1,127 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef CAMERAUTILS_H
+#define CAMERAUTILS_H
+
+#include <QObject>
+#include <QVariant>
+
+class QCamera;
+
+class CameraSettingsValue : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
+ Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged)
+
+public:
+ CameraSettingsValue(const QString &n, const QVariant &v)
+ : QObject()
+ , m_name(n)
+ , m_value(v)
+ { }
+
+ QString name() const { return m_name; }
+ void setName(const QString &n) { m_name = n; emit nameChanged(); }
+
+ QVariant value() const { return m_value; }
+ void setValue(const QVariant &v) { m_value = v; emit valueChanged(); }
+
+Q_SIGNALS:
+ void nameChanged();
+ void valueChanged();
+
+private:
+ QString m_name;
+ QVariant m_value;
+};
+
+QDebug operator<<(QDebug, const CameraSettingsValue &);
+
+class CameraUtils : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QList<QObject*> supportedCaptureResolutions READ supportedCaptureResolutions NOTIFY supportedCaptureResolutionsChanged)
+ Q_PROPERTY(QList<QObject*> supportedWhiteBalanceModes READ supportedWhiteBalanceModes NOTIFY supportedWhiteBalanceModesChanged)
+ Q_PROPERTY(QList<QObject*> supportedSceneModes READ supportedSceneModes NOTIFY supportedSceneModesChanged)
+ Q_PROPERTY(QList<QObject*> supportedFlashModes READ supportedFlashModes NOTIFY supportedFlashModesChanged)
+ Q_PROPERTY(QList<QObject*> supportedFocusModes READ supportedFocusModes NOTIFY supportedFocusModesChanged)
+ Q_PROPERTY(QList<QObject*> supportedVideoResolutions READ supportedVideoResolutions NOTIFY supportedVideoResolutionsChanged)
+public:
+ explicit CameraUtils(QObject *parent = 0);
+ ~CameraUtils();
+
+ Q_INVOKABLE void init();
+ Q_INVOKABLE void setCamera(QObject *cam);
+
+ QList<QObject*> supportedCaptureResolutions() const { return m_supportedResolutions; }
+ QList<QObject*> supportedVideoResolutions() const { return m_supportedVideoResolutions; }
+ QList<QObject*> supportedWhiteBalanceModes() const { return m_supportedWhiteBalanceModes; }
+ QList<QObject*> supportedSceneModes() const { return m_supportedSceneModes; }
+ QList<QObject*> supportedFlashModes() const { return m_supportedFlashModes; }
+ QList<QObject*> supportedFocusModes() const { return m_supportedFocusModes; }
+
+Q_SIGNALS:
+ void supportedCaptureResolutionsChanged();
+ void supportedWhiteBalanceModesChanged();
+ void supportedSceneModesChanged();
+ void supportedFlashModesChanged();
+ void supportedFocusModesChanged();
+ void supportedVideoResolutionsChanged();
+
+ void done();
+
+private Q_SLOTS:
+ void onCameraStatusChanged();
+ void onError();
+
+private:
+ QCamera *m_camera;
+
+ QList<QObject*> m_supportedResolutions;
+ QList<QObject*> m_supportedVideoResolutions;
+ QList<QObject*> m_supportedWhiteBalanceModes;
+ QList<QObject*> m_supportedSceneModes;
+ QList<QObject*> m_supportedFlashModes;
+ QList<QObject*> m_supportedFocusModes;
+};
+
+#endif // CAMERAUTILS_H
diff --git a/basicsuite/camera/camerautils/camerautils.pro b/basicsuite/camera/camerautils/camerautils.pro
new file mode 100644
index 0000000..7e5864e
--- /dev/null
+++ b/basicsuite/camera/camerautils/camerautils.pro
@@ -0,0 +1,20 @@
+TEMPLATE = lib
+CONFIG += plugin
+QT += qml multimedia
+
+TARGET = camerautilsplugin
+
+SOURCES += plugin.cpp \
+ camerautils.cpp
+
+HEADERS += camerautils.h
+
+pluginfiles.files += \
+ qmldir \
+
+B2QT_DEPLOYPATH = /data/user/qt/qmlplugins/CameraUtils
+target.path += $$B2QT_DEPLOYPATH
+pluginfiles.path += $$B2QT_DEPLOYPATH
+
+INSTALLS += target pluginfiles
+
diff --git a/basicsuite/camera/camerautils/plugin.cpp b/basicsuite/camera/camerautils/plugin.cpp
new file mode 100644
index 0000000..5e74e71
--- /dev/null
+++ b/basicsuite/camera/camerautils/plugin.cpp
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtQml/QQmlExtensionPlugin>
+#include <QtQml/qqml.h>
+#include <qdebug.h>
+
+#include "camerautils.h"
+
+class QExampleQmlPlugin : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+
+public:
+ void registerTypes(const char *uri)
+ {
+ qmlRegisterType<CameraUtils>(uri, 1, 0, "CameraUtils");
+ }
+};
+
+
+#include "plugin.moc"
diff --git a/basicsuite/Camera/camerautils/qmldir b/basicsuite/camera/camerautils/qmldir
index a5ab412..a5ab412 100644
--- a/basicsuite/Camera/camerautils/qmldir
+++ b/basicsuite/camera/camerautils/qmldir
diff --git a/basicsuite/camera/description.txt b/basicsuite/camera/description.txt
new file mode 100644
index 0000000..71c3c44
--- /dev/null
+++ b/basicsuite/camera/description.txt
@@ -0,0 +1,5 @@
+This example demonstrates the use of the camera features of Qt Multimedia with Qt Quick.
+
+Demo can be used to take pictures. Files are saved inside the /data/images/ folder and can be viewed with the "Photo Gallery" application.
+
+Camera parameters such as flash mode, scene mode or white balance can be changed. The availability of parameters depends on what the camera driver provides.
diff --git a/basicsuite/camera/exclude.txt b/basicsuite/camera/exclude.txt
new file mode 100644
index 0000000..b481e58
--- /dev/null
+++ b/basicsuite/camera/exclude.txt
@@ -0,0 +1,8 @@
+android-beaglebone
+android-iMX6
+android-emulator
+linux-beagleboard
+linux-beaglebone
+linux-iMX6
+linux-raspberrypi
+linux-emulator
diff --git a/basicsuite/camera/main.qml b/basicsuite/camera/main.qml
new file mode 100644
index 0000000..a0cf449
--- /dev/null
+++ b/basicsuite/camera/main.qml
@@ -0,0 +1,263 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtMultimedia 5.0
+//import QtSensors 5.0
+import CameraUtils 1.0
+
+Rectangle {
+ id: root
+ color: "black"
+
+ property real contentScale: root.width / 1280
+ property int contentRotation: 0
+
+ Text {
+ anchors.centerIn: parent
+ color: "white"
+ font.pixelSize: 30
+ text: "Camera service is not available..."
+ visible: camera.cameraStatus === Camera.UnavailableStatus
+ }
+
+ CameraUtils {
+ id: cameraUtils
+ }
+
+ Camera {
+ id: camera
+ property bool updateFocusPointMode: true
+ property bool captureWhenLocked: false
+
+ Component.onCompleted: cameraUtils.setCamera(camera)
+
+ digitalZoom: controls.requestedZoom
+ captureMode: Camera.CaptureStillImage
+
+ onCaptureModeChanged: {
+ if (camera.captureMode === Camera.CaptureVideo) {
+ controls.focusMode = Camera.FocusContinuous;
+ camera.unlock();
+ } else {
+ controls.focusMode = Camera.FocusAuto;
+ }
+ }
+
+ onLockStatusChanged: {
+ if (camera.lockStatus === Camera.Locked && captureWhenLocked) {
+ camera.imageCapture.captureToLocation("/data/images/");
+ captureWhenLocked = false;
+ }
+ }
+
+ focus {
+ onFocusModeChanged: {
+ camera.unlock();
+ if (camera.updateFocusPointMode)
+ camera.focus.focusPointMode = Camera.FocusPointAuto
+ }
+ onCustomFocusPointChanged: {
+ if (camera.focus.focusPointMode === Camera.FocusPointCustom
+ && camera.focus.focusMode !== Camera.FocusAuto
+ && camera.focus.focusMode !== Camera.FocusMacro) {
+ camera.updateFocusPointMode = false;
+ camera.focus.focusMode = Camera.FocusAuto
+ controls.focusMode = Camera.FocusAuto
+ camera.updateFocusPointMode = true;
+ }
+ }
+ }
+
+ onCameraStatusChanged: {
+ if (cameraStatus === Camera.ActiveStatus) {
+ controls.exposureMode = camera.exposure.exposureMode
+ controls.exposureCompensation = camera.exposure.exposureCompensation
+ controls.whiteBalanceMode = camera.imageProcessing.whiteBalanceMode
+ controls.flashMode = Camera.FlashAuto
+ if (camera.captureMode === Camera.CaptureStillImage)
+ controls.focusMode = camera.focus.focusMode
+ else
+ camera.focus.focusMode = Camera.FocusContinuous
+ }
+ }
+
+ imageCapture {
+ onImageExposed: capturePreview.show()
+ onImageCaptured: {
+ camera.unlock();
+ capturePreview.setPreview(preview);
+ }
+ onCaptureFailed: print(requestId + " " + message)
+ }
+
+ videoRecorder {
+ // mediaContainer: "mp4"
+ // audioCodec: "aac"
+ // audioSampleRate: 48000
+ // audioBitRate: 192000
+ // audioChannels: 2
+ // videoCodec: "h264"
+ // resolution: Qt.size(960, 720)
+ onResolutionChanged: {
+ if (camera.videoRecorder.resolution == Qt.size(1920, 1080))
+ camera.videoRecorder.videoBitRate = 20000000;
+ else if (camera.videoRecorderresolution == Qt.size(1280, 720))
+ camera.videoRecorder.videoBitRate = 10000000;
+ else
+ camera.videoRecorder.videoBitRate = 5000000;
+ }
+ }
+
+ }
+
+ VideoOutput {
+ id: viewfinder
+ source: camera
+ anchors.fill: parent
+ fillMode: VideoOutput.PreserveAspectFit
+ }
+
+ // OrientationSensor {
+ // active: true
+ // onReadingChanged: {
+ // if (reading.orientation === OrientationReading.TopUp)
+ // root.contentRotation = -90;
+ // else if (reading.orientation === OrientationReading.RightUp)
+ // root.contentRotation = 0;
+ // else if (reading.orientation === OrientationReading.LeftUp)
+ // root.contentRotation = 180;
+ // else if (reading.orientation === OrientationReading.TopDown)
+ // root.contentRotation = 90;
+ // }
+ // }
+
+ // RotationSensor {
+ // active: (camera.cameraStatus === Camera.ActiveStatus)
+ // dataRate: 20
+ // property real lastxvalue: 0
+ // property real lastyvalue: 0
+ // property real lastzvalue: 0
+
+ // onActiveChanged: {
+ // lastxvalue = 0
+ // lastyvalue = 0
+ // lastzvalue = 0
+ // }
+
+ // onReadingChanged: {
+ // if (lastxvalue != 0 && camera.focus.focusMode === Camera.FocusContinuous && camera.lockStatus === Camera.Locked && camera.imageCapture.ready) {
+ // if (Math.abs(reading.x - lastxvalue) > 3 || Math.abs(reading.y - lastyvalue) > 3 || Math.abs(reading.z - lastzvalue) > 3)
+ // camera.unlock();
+ // }
+ // lastxvalue = reading.x;
+ // lastyvalue = reading.y;
+ // lastzvalue = reading.z;
+ // }
+ // }
+
+ Controls {
+ id: controls
+ visible: camera.cameraStatus === Camera.ActiveStatus
+
+ actualZoom: camera.digitalZoom
+ maximumZoom: camera.maximumDigitalZoom
+
+ //onCameraModeChanged: camera.captureMode = controls.cameraMode
+
+ onFlashModeChanged: if (visible) camera.flash.mode = controls.flashMode
+ onFocusModeChanged: if (visible) camera.focus.focusMode = controls.focusMode
+ onExposureModeChanged: if (visible) camera.exposure.exposureMode = controls.exposureMode
+ onExposureCompensationChanged: if (visible) camera.exposure.exposureCompensation = controls.exposureCompensation
+ onWhiteBalanceModeChanged: if (visible) camera.imageProcessing.whiteBalanceMode = controls.whiteBalanceMode
+ onResolutionChanged: {
+ if (controls.resolution != null) {
+ if (camera.captureMode === Camera.CaptureStillImage)
+ camera.imageCapture.resolution = controls.resolution;
+ else
+ camera.videoRecorder.resolution = controls.resolution;
+ }
+ }
+
+ onSearchAndLock: {
+ camera.searchAndLock();
+ }
+
+ captureReady: camera.imageCapture.ready
+ onCapture: {
+ if (camera.captureMode === Camera.CaptureVideo) {
+ if (camera.videoRecorder.recorderState === CameraRecorder.RecordingState) {
+ camera.videoRecorder.stop();
+ } else {
+ camera.videoRecorder.record();
+ }
+ } else {
+ if ((camera.focus.focusMode === Camera.FocusAuto || camera.focus.focusMode === Camera.FocusMacro)
+ && camera.focus.focusPointMode === Camera.FocusPointAuto
+ && camera.lockStatus === Camera.Unlocked) {
+ camera.captureWhenLocked = true;
+ camera.searchAndLock();
+ } else {
+ camera.imageCapture.captureToLocation("/data/images/");
+ }
+ }
+ }
+ }
+
+ // CameraControlButton {
+ // anchors.left: parent.left
+ // anchors.leftMargin: 30
+ // anchors.bottom: parent.bottom
+ // anchors.bottomMargin: 20
+ // title: camera.cameraStatus === Camera.ActiveStatus ? "Stop" : "Start"
+
+ // onClicked: {
+ // if (camera.cameraStatus === Camera.ActiveStatus)
+ // camera.cameraState = Camera.UnloadedState
+ // else
+ // camera.start();
+ // }
+ // }
+
+ CapturePreview {
+ id: capturePreview
+ }
+
+}
diff --git a/basicsuite/camera/preview_l.jpg b/basicsuite/camera/preview_l.jpg
new file mode 100644
index 0000000..3f15310
--- /dev/null
+++ b/basicsuite/camera/preview_l.jpg
Binary files differ
diff --git a/basicsuite/camera/title.txt b/basicsuite/camera/title.txt
new file mode 100644
index 0000000..10a226d
--- /dev/null
+++ b/basicsuite/camera/title.txt
@@ -0,0 +1 @@
+Camera
diff --git a/basicsuite/controls-touch/content/AndroidDelegate.qml b/basicsuite/controls-touch/content/AndroidDelegate.qml
new file mode 100644
index 0000000..e4870cc
--- /dev/null
+++ b/basicsuite/controls-touch/content/AndroidDelegate.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+
+Item {
+ id: root
+ width: parent.width
+ height: 88
+
+ property alias text: textitem.text
+ signal clicked
+
+ Rectangle {
+ anchors.fill: parent
+ color: "#11ffffff"
+ visible: mouse.pressed
+ }
+
+ Text {
+ id: textitem
+ color: "white"
+ font.pixelSize: 32
+ text: modelData
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 30
+ }
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 15
+ height: 1
+ color: "#424246"
+ }
+
+ Image {
+ anchors.right: parent.right
+ anchors.rightMargin: 20
+ anchors.verticalCenter: parent.verticalCenter
+ source: "../images/navigation_next_item.png"
+ }
+
+ MouseArea {
+ id: mouse
+ anchors.fill: parent
+ onClicked: root.clicked()
+
+ }
+}
diff --git a/basicsuite/controls-touch/content/ButtonPage.qml b/basicsuite/controls-touch/content/ButtonPage.qml
new file mode 100644
index 0000000..e315d72
--- /dev/null
+++ b/basicsuite/controls-touch/content/ButtonPage.qml
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+
+ property real progress: 0
+ SequentialAnimation on progress {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ from: 0
+ to: 1
+ duration: 3000
+ }
+ NumberAnimation {
+ from: 1
+ to: 0
+ duration: 3000
+ }
+ }
+
+ Column {
+ spacing: 40
+ anchors.centerIn: parent
+
+ Button {
+ anchors.margins: 20
+ text: "Press me"
+ style: touchStyle
+ }
+
+ Button {
+ anchors.margins: 20
+ style: touchStyle
+ text: "Press me too"
+ }
+
+ Button {
+ anchors.margins: 20
+ style: touchStyle
+ text: "Dont press me"
+ onClicked: if (stackView) stackView.pop()
+ }
+
+ }
+
+ Component {
+ id: touchStyle
+ ButtonStyle {
+ panel: Item {
+ implicitHeight: 50
+ implicitWidth: 320
+ BorderImage {
+ anchors.fill: parent
+ antialiasing: true
+ border.bottom: 8
+ border.top: 8
+ border.left: 8
+ border.right: 8
+ anchors.margins: control.pressed ? -4 : 0
+ source: control.pressed ? "../images/button_pressed.png" : "../images/button_default.png"
+ Text {
+ text: control.text
+ anchors.centerIn: parent
+ color: "white"
+ font.pixelSize: 23
+ renderType: Text.NativeRendering
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/controls-touch/content/ProgressBarPage.qml b/basicsuite/controls-touch/content/ProgressBarPage.qml
new file mode 100644
index 0000000..d370d39
--- /dev/null
+++ b/basicsuite/controls-touch/content/ProgressBarPage.qml
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+
+ property real progress: 0
+ SequentialAnimation on progress {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ from: 0
+ to: 1
+ duration: 3000
+ }
+ NumberAnimation {
+ from: 1
+ to: 0
+ duration: 3000
+ }
+ }
+
+ Column {
+ spacing: 40
+ anchors.centerIn: parent
+
+ ProgressBar {
+ anchors.margins: 20
+ style: touchStyle
+ width: 400
+ value: progress
+ }
+
+ ProgressBar {
+ anchors.margins: 20
+ style: touchStyle
+ width: 400
+ value: 1 - progress
+ }
+
+ ProgressBar {
+ anchors.margins: 20
+ style: touchStyle
+ value: 1
+ width: 400
+ }
+
+ }
+
+ Component {
+ id: touchStyle
+ ProgressBarStyle {
+ panel: Rectangle {
+ implicitHeight: 15
+ implicitWidth: 400
+ color: "#444"
+ opacity: 0.8
+ Rectangle {
+ antialiasing: true
+ radius: 1
+ color: "#468bb7"
+ height: parent.height
+ width: parent.width * control.value / control.maximumValue
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/controls-touch/content/SliderPage.qml b/basicsuite/controls-touch/content/SliderPage.qml
new file mode 100644
index 0000000..eb5d70c
--- /dev/null
+++ b/basicsuite/controls-touch/content/SliderPage.qml
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+
+ Column {
+ spacing: 12
+ anchors.centerIn: parent
+
+ Slider {
+ anchors.margins: 20
+ style: touchStyle
+ value: 0
+ }
+ Slider {
+ anchors.margins: 20
+ style: touchStyle
+ value: 0.5
+ }
+ Slider {
+ anchors.margins: 20
+ style: touchStyle
+ value: 1.0
+ }
+
+ }
+
+ Component {
+ id: touchStyle
+ SliderStyle {
+ handle: Rectangle {
+ width: 30
+ height: 30
+ radius: height
+ antialiasing: true
+ color: Qt.lighter("#468bb7", 1.2)
+ }
+
+ groove: Item {
+ implicitHeight: 50
+ implicitWidth: 400
+ Rectangle {
+ height: 8
+ width: parent.width
+ anchors.verticalCenter: parent.verticalCenter
+ color: "#444"
+ opacity: 0.8
+ Rectangle {
+ antialiasing: true
+ radius: 1
+ color: "#468bb7"
+ height: parent.height
+ width: parent.width * control.value / control.maximumValue
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/controls-touch/content/TabBarPage.qml b/basicsuite/controls-touch/content/TabBarPage.qml
new file mode 100644
index 0000000..f13ab78
--- /dev/null
+++ b/basicsuite/controls-touch/content/TabBarPage.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+
+ TabView {
+ anchors.fill: parent
+ style: touchStyle
+ Tab {
+ title: "Buttons"
+ ButtonPage{ visible: true }
+ }
+ Tab {
+ title: "Sliders"
+ SliderPage{ visible: true }
+ }
+ Tab {
+ title: "Progress"
+ ProgressBarPage{ visible: true }
+ }
+ }
+
+ Component {
+ id: touchStyle
+ TabViewStyle {
+ tabsAlignment: Qt.AlignVCenter
+ tabOverlap: 0
+ frame: Item { }
+ tab: Item {
+ implicitWidth: control.width/control.count
+ implicitHeight: 50
+ BorderImage {
+ anchors.fill: parent
+ border.bottom: 8
+ border.top: 8
+ source: styleData.selected ? "../images/tab_selected.png":"../images/tabs_standard.png"
+ Text {
+ anchors.centerIn: parent
+ color: "white"
+ text: styleData.title.toUpperCase()
+ font.pixelSize: 16
+ }
+ Rectangle {
+ visible: index > 0
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.margins: 10
+ width:1
+ color: "#3a3a3a"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/controls-touch/content/TextInputPage.qml b/basicsuite/controls-touch/content/TextInputPage.qml
new file mode 100644
index 0000000..058ff53
--- /dev/null
+++ b/basicsuite/controls-touch/content/TextInputPage.qml
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+
+ property real progress: 0
+ SequentialAnimation on progress {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ from: 0
+ to: 1
+ duration: 3000
+ }
+ NumberAnimation {
+ from: 1
+ to: 0
+ duration: 3000
+ }
+ }
+
+ Column {
+ spacing: 40
+ anchors.centerIn: parent
+
+ TextField {
+ anchors.margins: 20
+ text: "Text input"
+ style: touchStyle
+ }
+
+ TextField {
+ anchors.margins: 20
+ text: "Readonly Text input"
+ style: touchStyle
+ readOnly: true
+ }
+ }
+ Component {
+ id: touchStyle
+
+ TextFieldStyle {
+ textColor: "white"
+ font.pixelSize: 28
+ background: Item {
+ implicitHeight: 50
+ implicitWidth: 320
+ BorderImage {
+ source: "../images/textinput.png"
+ border.left: 8
+ border.right: 8
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/controls-touch/controls-touch.pro b/basicsuite/controls-touch/controls-touch.pro
new file mode 100644
index 0000000..9771bef
--- /dev/null
+++ b/basicsuite/controls-touch/controls-touch.pro
@@ -0,0 +1,16 @@
+TARGET = controls-touch
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ *.png \
+ content \
+ images
+
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content
diff --git a/basicsuite/Controls Touch/description.txt b/basicsuite/controls-touch/description.txt
index 5106dff..5106dff 100644
--- a/basicsuite/Controls Touch/description.txt
+++ b/basicsuite/controls-touch/description.txt
diff --git a/basicsuite/Controls Touch/images/NOTICE.txt b/basicsuite/controls-touch/images/NOTICE.txt
index 93a9afc..93a9afc 100644
--- a/basicsuite/Controls Touch/images/NOTICE.txt
+++ b/basicsuite/controls-touch/images/NOTICE.txt
diff --git a/basicsuite/Controls Touch/images/button_default.png b/basicsuite/controls-touch/images/button_default.png
index 6d6cfd9..6d6cfd9 100644
--- a/basicsuite/Controls Touch/images/button_default.png
+++ b/basicsuite/controls-touch/images/button_default.png
Binary files differ
diff --git a/basicsuite/Controls Touch/images/button_pressed.png b/basicsuite/controls-touch/images/button_pressed.png
index ab78b6e..ab78b6e 100644
--- a/basicsuite/Controls Touch/images/button_pressed.png
+++ b/basicsuite/controls-touch/images/button_pressed.png
Binary files differ
diff --git a/basicsuite/Controls Touch/images/navigation_next_item.png b/basicsuite/controls-touch/images/navigation_next_item.png
index 6665c9d..6665c9d 100644
--- a/basicsuite/Controls Touch/images/navigation_next_item.png
+++ b/basicsuite/controls-touch/images/navigation_next_item.png
Binary files differ
diff --git a/basicsuite/Controls Touch/images/navigation_previous_item.png b/basicsuite/controls-touch/images/navigation_previous_item.png
index f8be011..f8be011 100644
--- a/basicsuite/Controls Touch/images/navigation_previous_item.png
+++ b/basicsuite/controls-touch/images/navigation_previous_item.png
Binary files differ
diff --git a/basicsuite/Controls Touch/images/tab_selected.png b/basicsuite/controls-touch/images/tab_selected.png
index 2345f7a..2345f7a 100644
--- a/basicsuite/Controls Touch/images/tab_selected.png
+++ b/basicsuite/controls-touch/images/tab_selected.png
Binary files differ
diff --git a/basicsuite/Controls Touch/images/tabs_standard.png b/basicsuite/controls-touch/images/tabs_standard.png
index 7140ab7..7140ab7 100644
--- a/basicsuite/Controls Touch/images/tabs_standard.png
+++ b/basicsuite/controls-touch/images/tabs_standard.png
Binary files differ
diff --git a/basicsuite/Controls Touch/images/textinput.png b/basicsuite/controls-touch/images/textinput.png
index b0256db..b0256db 100644
--- a/basicsuite/Controls Touch/images/textinput.png
+++ b/basicsuite/controls-touch/images/textinput.png
Binary files differ
diff --git a/basicsuite/Controls Touch/images/toolbar.png b/basicsuite/controls-touch/images/toolbar.png
index e9eba4c..e9eba4c 100644
--- a/basicsuite/Controls Touch/images/toolbar.png
+++ b/basicsuite/controls-touch/images/toolbar.png
Binary files differ
diff --git a/basicsuite/controls-touch/main.qml b/basicsuite/controls-touch/main.qml
new file mode 100644
index 0000000..929f31e
--- /dev/null
+++ b/basicsuite/controls-touch/main.qml
@@ -0,0 +1,148 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import "content"
+
+Item {
+ width: 800
+ height: 1280
+
+ Rectangle {
+ color: "#212126"
+ anchors.fill: parent
+ }
+
+ // Implements back key navigation
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Back) {
+ if (stackView.depth > 1) {
+ stackView.pop();
+ event.accepted = true;
+ } else { Qt.quit(); }
+ }
+ }
+
+ BorderImage {
+ id: toolbar
+ border.bottom: 8
+ source: "images/toolbar.png"
+ width: parent.width
+ height: 100
+
+ Rectangle {
+ id: backButton
+ width: opacity ? 60 : 0
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ opacity: stackView.depth > 1 ? 1 : 0
+ anchors.verticalCenter: parent.verticalCenter
+ antialiasing: true
+ height: 60
+ radius: 4
+ color: backmouse.pressed ? "#222" : "transparent"
+ Behavior on opacity { NumberAnimation{} }
+ Image {
+ anchors.verticalCenter: parent.verticalCenter
+ source: "images/navigation_previous_item.png"
+ }
+ MouseArea {
+ id: backmouse
+ anchors.fill: parent
+ anchors.margins: -10
+ onClicked: stackView.pop()
+ }
+ }
+
+ Text {
+ font.pixelSize: 42
+ Behavior on x { NumberAnimation{ easing.type: Easing.OutCubic} }
+ x: backButton.x + backButton.width + 20
+ anchors.verticalCenter: parent.verticalCenter
+ color: "white"
+ text: "Widget Gallery"
+ }
+ }
+
+ ListModel {
+ id: pageModel
+ ListElement {
+ title: "Buttons"
+ page: "content/ButtonPage.qml"
+ }
+ ListElement {
+ title: "Sliders"
+ page: "content/SliderPage.qml"
+ }
+ ListElement {
+ title: "ProgressBar"
+ page: "content/ProgressBarPage.qml"
+ }
+ ListElement {
+ title: "Tabs"
+ page: "content/TabBarPage.qml"
+ }
+ ListElement {
+ title: "TextInput"
+ page: "content/TextInputPage.qml"
+ }
+ }
+
+ StackView {
+ id: stackView
+ anchors.fill: parent
+ anchors.topMargin: toolbar.height
+
+ initialItem: Item {
+ width: parent.width
+ height: parent.height
+ ListView {
+ model: pageModel
+ anchors.fill: parent
+ delegate: AndroidDelegate {
+ text: title
+ onClicked: stackView.push(Qt.resolvedUrl(page))
+ }
+ }
+ }
+ }
+
+}
diff --git a/basicsuite/Controls Touch/preview_l.jpg b/basicsuite/controls-touch/preview_l.jpg
index c57eac3..c57eac3 100644
--- a/basicsuite/Controls Touch/preview_l.jpg
+++ b/basicsuite/controls-touch/preview_l.jpg
Binary files differ
diff --git a/basicsuite/controls-touch/title.txt b/basicsuite/controls-touch/title.txt
new file mode 100644
index 0000000..cc2e76a
--- /dev/null
+++ b/basicsuite/controls-touch/title.txt
@@ -0,0 +1 @@
+Controls: Touch
diff --git a/basicsuite/enterprise-charts/View1.qml b/basicsuite/enterprise-charts/View1.qml
new file mode 100644
index 0000000..e3850ae
--- /dev/null
+++ b/basicsuite/enterprise-charts/View1.qml
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//![2]
+import QtQuick 2.0
+//![2]
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+ property variant othersSlice: 0
+
+ //![1]
+ ChartView {
+ id: chart
+ title: "Top-5 car brand shares in Finland"
+ anchors.fill: parent
+ legend.alignment: Qt.AlignBottom
+ antialiasing: true
+
+ PieSeries {
+ id: pieSeries
+ PieSlice { label: "Volkswagen"; value: 13.5 }
+ PieSlice { label: "Toyota"; value: 10.9 }
+ PieSlice { label: "Ford"; value: 8.6 }
+ PieSlice { label: "Skoda"; value: 8.2 }
+ PieSlice { label: "Volvo"; value: 6.8 }
+ }
+ }
+
+ Component.onCompleted: {
+ // You can also manipulate slices dynamically
+ othersSlice = pieSeries.append("Others", 52.0);
+ pieSeries.find("Volkswagen").exploded = true;
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View10.qml b/basicsuite/enterprise-charts/View10.qml
new file mode 100644
index 0000000..2a5a297
--- /dev/null
+++ b/basicsuite/enterprise-charts/View10.qml
@@ -0,0 +1,42 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Horizontal Stacked Bar series"
+ anchors.fill: parent
+ legend.alignment: Qt.AlignBottom
+ antialiasing: true
+
+ HorizontalStackedBarSeries {
+ axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] }
+ BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] }
+ BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] }
+ BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] }
+ }
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View11.qml b/basicsuite/enterprise-charts/View11.qml
new file mode 100644
index 0000000..2b2d444
--- /dev/null
+++ b/basicsuite/enterprise-charts/View11.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Horizontal Percent Bar series"
+ anchors.fill: parent
+ legend.alignment: Qt.AlignBottom
+ antialiasing: true
+
+ HorizontalPercentBarSeries {
+ axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] }
+ BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] }
+ BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] }
+ BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] }
+ }
+ }
+ //![1]
+}
+
diff --git a/basicsuite/enterprise-charts/View12.qml b/basicsuite/enterprise-charts/View12.qml
new file mode 100644
index 0000000..2a0dc55
--- /dev/null
+++ b/basicsuite/enterprise-charts/View12.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.3
+
+Rectangle {
+ anchors.fill: parent
+ //![1]
+ PolarChartView {
+ title: "Two Series, Common Axes"
+ anchors.fill: parent
+ legend.visible: false
+
+ ValueAxis {
+ id: axisAngular
+ min: 0
+ max: 20
+ tickCount: 9
+ }
+
+ ValueAxis {
+ id: axisRadial
+ min: -0.5
+ max: 1.5
+ }
+
+ SplineSeries {
+ id: series1
+ axisAngular: axisAngular
+ axisRadial: axisRadial
+ pointsVisible: true
+ }
+
+ ScatterSeries {
+ id: series2
+ axisAngular: axisAngular
+ axisRadial: axisRadial
+ markerSize: 10
+ }
+ }
+
+ // Add data dynamically to the series
+ Component.onCompleted: {
+ for (var i = 0; i <= 20; i++) {
+ series1.append(i, Math.random());
+ series2.append(i, Math.random());
+ }
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View13.qml b/basicsuite/enterprise-charts/View13.qml
new file mode 100644
index 0000000..1322e97
--- /dev/null
+++ b/basicsuite/enterprise-charts/View13.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.3
+
+Rectangle {
+ anchors.fill: parent
+
+ PolarChartView {
+ title: "Historical Area Series"
+ anchors.fill: parent
+ legend.visible: false
+
+ DateTimeAxis {
+ id: axis1
+ format: "yyyy MMM"
+ tickCount: 13
+ }
+ ValueAxis {
+ id: axis2
+ }
+ LineSeries {
+ id: lowerLine
+ axisAngular: axis1
+ axisRadial: axis2
+
+ // Please note that month in JavaScript months are zero based, so 2 means March
+ XYPoint { x: toMsecsSinceEpoch(new Date(1950, 0, 1)); y: 15 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1962, 4, 1)); y: 35 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1970, 0, 1)); y: 50 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1978, 2, 1)); y: 75 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1987, 11, 1)); y: 102 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1992, 1, 1)); y: 132 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1998, 7, 1)); y: 100 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(2002, 4, 1)); y: 120 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(2012, 8, 1)); y: 140 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(2013, 5, 1)); y: 150 }
+ }
+ LineSeries {
+ id: upperLine
+ axisAngular: axis1
+ axisRadial: axis2
+
+ // Please note that month in JavaScript months are zero based, so 2 means March
+ XYPoint { x: toMsecsSinceEpoch(new Date(1950, 0, 1)); y: 30 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1962, 4, 1)); y: 55 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1970, 0, 1)); y: 80 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1978, 2, 1)); y: 105 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1987, 11, 1)); y: 125 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1992, 1, 1)); y: 160 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(1998, 7, 1)); y: 140 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(2002, 4, 1)); y: 140 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(2012, 8, 1)); y: 170 }
+ XYPoint { x: toMsecsSinceEpoch(new Date(2013, 5, 1)); y: 200 }
+ }
+ AreaSeries {
+ axisAngular: axis1
+ axisRadial: axis2
+ lowerSeries: lowerLine
+ upperSeries: upperLine
+ }
+ }
+ // DateTimeAxis is based on QDateTimes so we must convert our JavaScript dates to
+ // milliseconds since epoch to make them match the DateTimeAxis values
+ function toMsecsSinceEpoch(date) {
+ var msecs = date.getTime();
+ return msecs;
+ }
+}
diff --git a/basicsuite/enterprise-charts/View14.qml b/basicsuite/enterprise-charts/View14.qml
new file mode 100644
index 0000000..e6662a1
--- /dev/null
+++ b/basicsuite/enterprise-charts/View14.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.3
+
+Rectangle {
+ anchors.fill: parent
+
+ PolarChartView {
+ title: "Numerical Data for Dummies"
+ anchors.fill: parent
+ legend.visible: false
+
+ LineSeries {
+ axisRadial: CategoryAxis {
+ min: 0
+ max: 30
+ CategoryRange {
+ label: "critical"
+ endValue: 2
+ }
+ CategoryRange {
+ label: "low"
+ endValue: 7
+ }
+ CategoryRange {
+ label: "normal"
+ endValue: 12
+ }
+ CategoryRange {
+ label: "high"
+ endValue: 18
+ }
+ CategoryRange {
+ label: "extremely high"
+ endValue: 30
+ }
+ }
+
+ axisAngular: ValueAxis {
+ tickCount: 13
+ }
+
+ XYPoint { x: 0; y: 4.3 }
+ XYPoint { x: 1; y: 4.1 }
+ XYPoint { x: 2; y: 4.7 }
+ XYPoint { x: 3; y: 3.9 }
+ XYPoint { x: 4; y: 5.2 }
+ XYPoint { x: 5; y: 5.3 }
+ XYPoint { x: 6; y: 6.1 }
+ XYPoint { x: 7; y: 7.7 }
+ XYPoint { x: 8; y: 12.9 }
+ XYPoint { x: 9; y: 19.2 }
+ }
+ }
+}
diff --git a/basicsuite/enterprise-charts/View15.qml b/basicsuite/enterprise-charts/View15.qml
new file mode 100644
index 0000000..74d9789
--- /dev/null
+++ b/basicsuite/enterprise-charts/View15.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ id: chart
+ title: "Production costs"
+ anchors.fill: parent
+ legend.visible: false
+ antialiasing: true
+
+ PieSeries {
+ id: pieOuter
+ size: 0.96
+ holeSize: 0.7
+ PieSlice { id: slice; label: "Alpha"; value: 19511; color: "#8AB846"; borderColor: "#163430" }
+ PieSlice { label: "Epsilon"; value: 11105; color: "#C0EEFF"; borderColor: "#3B391C" }
+ PieSlice { label: "Psi"; value: 9352; color: "#DF8939"; borderColor: "#13060C" }
+ }
+
+ PieSeries {
+ size: 0.7
+ id: pieInner
+ holeSize: 0.25
+
+ PieSlice { label: "Materials"; value: 10334; color: "#8AB846"; borderColor: "#163430" }
+ PieSlice { label: "Employee"; value: 3066; color: "#AAE356"; borderColor: "#163430" }
+ PieSlice { label: "Logistics"; value: 6111; color: "#99CC4E"; borderColor: "#163430" }
+
+ PieSlice { label: "Materials"; value: 7371; color: "#C0EEFF"; borderColor: "#3B391C" }
+ PieSlice { label: "Employee"; value: 2443; color: "#C9FAFF"; borderColor: "#3B391C" }
+ PieSlice { label: "Logistics"; value: 1291; color: "#B0FAFF"; borderColor: "#3B391C" }
+
+ PieSlice { label: "Materials"; value: 4022; color: "#DF8939"; borderColor: "#13060C" }
+ PieSlice { label: "Employee"; value: 3998; color: "#FC9D42"; borderColor: "#13060C" }
+ PieSlice { label: "Logistics"; value: 1332; color: "#F2963F"; borderColor: "#13060C" }
+ }
+ }
+
+ Component.onCompleted: {
+ // Set the common slice properties dynamically for convenience
+ for (var i = 0; i < pieOuter.count; i++) {
+ pieOuter.at(i).labelPosition = PieSlice.LabelOutside;
+ pieOuter.at(i).labelVisible = true;
+ pieOuter.at(i).borderWidth = 3;
+ }
+ for (var i = 0; i < pieInner.count; i++) {
+ pieInner.at(i).labelPosition = PieSlice.LabelInsideNormal;
+ pieInner.at(i).labelVisible = true;
+ pieInner.at(i).borderWidth = 2;
+ }
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View2.qml b/basicsuite/enterprise-charts/View2.qml
new file mode 100644
index 0000000..a7e0ace
--- /dev/null
+++ b/basicsuite/enterprise-charts/View2.qml
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Line"
+ anchors.fill: parent
+ antialiasing: true
+
+ LineSeries {
+ name: "LineSeries"
+ XYPoint { x: 0; y: 0 }
+ XYPoint { x: 1.1; y: 2.1 }
+ XYPoint { x: 1.9; y: 3.3 }
+ XYPoint { x: 2.1; y: 2.1 }
+ XYPoint { x: 2.9; y: 4.9 }
+ XYPoint { x: 3.4; y: 3.0 }
+ XYPoint { x: 4.1; y: 3.3 }
+ }
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View3.qml b/basicsuite/enterprise-charts/View3.qml
new file mode 100644
index 0000000..d56ceeb
--- /dev/null
+++ b/basicsuite/enterprise-charts/View3.qml
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Spline"
+ anchors.fill: parent
+ antialiasing: true
+
+ SplineSeries {
+ name: "SplineSeries"
+ XYPoint { x: 0; y: 0.0 }
+ XYPoint { x: 1.1; y: 3.2 }
+ XYPoint { x: 1.9; y: 2.4 }
+ XYPoint { x: 2.1; y: 2.1 }
+ XYPoint { x: 2.9; y: 2.6 }
+ XYPoint { x: 3.4; y: 2.3 }
+ XYPoint { x: 4.1; y: 3.1 }
+ }
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View4.qml b/basicsuite/enterprise-charts/View4.qml
new file mode 100644
index 0000000..5ca5906
--- /dev/null
+++ b/basicsuite/enterprise-charts/View4.qml
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "NHL All-Star Team Players"
+ anchors.fill: parent
+ antialiasing: true
+
+ ValueAxis {
+ id: valueAxis
+ min: 2000
+ max: 2011
+ tickCount: 12
+ labelFormat: "%.0f"
+ }
+
+ AreaSeries {
+ name: "Russian"
+ color: "#FFD52B1E"
+ borderColor: "#FF0039A5"
+ borderWidth: 3
+ axisX: valueAxis
+ upperSeries: LineSeries {
+ XYPoint { x: 2000; y: 1 }
+ XYPoint { x: 2001; y: 1 }
+ XYPoint { x: 2002; y: 1 }
+ XYPoint { x: 2003; y: 1 }
+ XYPoint { x: 2004; y: 1 }
+ XYPoint { x: 2005; y: 0 }
+ XYPoint { x: 2006; y: 1 }
+ XYPoint { x: 2007; y: 1 }
+ XYPoint { x: 2008; y: 4 }
+ XYPoint { x: 2009; y: 3 }
+ XYPoint { x: 2010; y: 2 }
+ XYPoint { x: 2011; y: 1 }
+ }
+ }
+ // ...
+ //![1]
+
+ AreaSeries {
+ name: "Swedish"
+ color: "#AF005292"
+ borderColor: "#AFFDCA00"
+ borderWidth: 3
+ axisX: valueAxis
+ upperSeries: LineSeries {
+ XYPoint { x: 2000; y: 1 }
+ XYPoint { x: 2001; y: 1 }
+ XYPoint { x: 2002; y: 3 }
+ XYPoint { x: 2003; y: 3 }
+ XYPoint { x: 2004; y: 2 }
+ XYPoint { x: 2005; y: 0 }
+ XYPoint { x: 2006; y: 2 }
+ XYPoint { x: 2007; y: 1 }
+ XYPoint { x: 2008; y: 2 }
+ XYPoint { x: 2009; y: 1 }
+ XYPoint { x: 2010; y: 3 }
+ XYPoint { x: 2011; y: 3 }
+ }
+ }
+
+ AreaSeries {
+ name: "Finnish"
+ color: "#00357F"
+ borderColor: "#FEFEFE"
+ borderWidth: 3
+ axisX: valueAxis
+ upperSeries: LineSeries {
+ XYPoint { x: 2000; y: 0 }
+ XYPoint { x: 2001; y: 0 }
+ XYPoint { x: 2002; y: 0 }
+ XYPoint { x: 2003; y: 0 }
+ XYPoint { x: 2004; y: 0 }
+ XYPoint { x: 2005; y: 0 }
+ XYPoint { x: 2006; y: 1 }
+ XYPoint { x: 2007; y: 0 }
+ XYPoint { x: 2008; y: 0 }
+ XYPoint { x: 2009; y: 0 }
+ XYPoint { x: 2010; y: 0 }
+ XYPoint { x: 2011; y: 1 }
+ }
+ }
+ }
+}
diff --git a/basicsuite/enterprise-charts/View5.qml b/basicsuite/enterprise-charts/View5.qml
new file mode 100644
index 0000000..4b0882c
--- /dev/null
+++ b/basicsuite/enterprise-charts/View5.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Scatters"
+ anchors.fill: parent
+ antialiasing: true
+
+ ScatterSeries {
+ id: scatter1
+ name: "Scatter1"
+ XYPoint { x: 1.5; y: 1.5 }
+ XYPoint { x: 1.5; y: 1.6 }
+ XYPoint { x: 1.57; y: 1.55 }
+ XYPoint { x: 1.8; y: 1.8 }
+ XYPoint { x: 1.9; y: 1.6 }
+ XYPoint { x: 2.1; y: 1.3 }
+ XYPoint { x: 2.5; y: 2.1 }
+ }
+
+ ScatterSeries {
+ name: "Scatter2"
+ // ...
+ //![1]
+ XYPoint { x: 2.0; y: 2.0 }
+ XYPoint { x: 2.0; y: 2.1 }
+ XYPoint { x: 2.07; y: 2.05 }
+ XYPoint { x: 2.2; y: 2.9 }
+ XYPoint { x: 2.4; y: 2.7 }
+ XYPoint { x: 2.67; y: 2.65 }
+ }
+ }
+}
diff --git a/basicsuite/enterprise-charts/View6.qml b/basicsuite/enterprise-charts/View6.qml
new file mode 100644
index 0000000..b9db3ac
--- /dev/null
+++ b/basicsuite/enterprise-charts/View6.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Bar series"
+ anchors.fill: parent
+ legend.alignment: Qt.AlignBottom
+ antialiasing: true
+
+ BarSeries {
+ id: mySeries
+ axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] }
+ BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] }
+ BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] }
+ BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] }
+ }
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View7.qml b/basicsuite/enterprise-charts/View7.qml
new file mode 100644
index 0000000..998097a
--- /dev/null
+++ b/basicsuite/enterprise-charts/View7.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Stacked Bar series"
+ anchors.fill: parent
+ legend.alignment: Qt.AlignBottom
+ antialiasing: true
+
+ StackedBarSeries {
+ id: mySeries
+ axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] }
+ BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] }
+ BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] }
+ BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] }
+ }
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View8.qml b/basicsuite/enterprise-charts/View8.qml
new file mode 100644
index 0000000..fcb8a72
--- /dev/null
+++ b/basicsuite/enterprise-charts/View8.qml
@@ -0,0 +1,42 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Percent Bar series"
+ anchors.fill: parent
+ legend.alignment: Qt.AlignBottom
+ antialiasing: true
+
+ PercentBarSeries {
+ axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] }
+ BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] }
+ BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] }
+ BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] }
+ }
+ }
+ //![1]
+}
diff --git a/basicsuite/enterprise-charts/View9.qml b/basicsuite/enterprise-charts/View9.qml
new file mode 100644
index 0000000..5ba3d36
--- /dev/null
+++ b/basicsuite/enterprise-charts/View9.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtCommercial.Chart 1.1
+
+Rectangle {
+ anchors.fill: parent
+
+ //![1]
+ ChartView {
+ title: "Horizontal Bar series"
+ anchors.fill: parent
+ legend.alignment: Qt.AlignBottom
+ antialiasing: true
+
+ HorizontalBarSeries {
+ axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] }
+ BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] }
+ BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] }
+ BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] }
+ }
+ }
+ //![1]
+}
+
diff --git a/basicsuite/enterprise-charts/description.txt b/basicsuite/enterprise-charts/description.txt
new file mode 100644
index 0000000..6c8d488
--- /dev/null
+++ b/basicsuite/enterprise-charts/description.txt
@@ -0,0 +1,3 @@
+This demo presents different types of charts that are available from Qt Charts library.
+
+Qt Charts is part of the Qt Enterprise addons package which provides a set of easy to use chart components. It uses the Qt Graphics View Framework, therefore charts can be easily integrated to modern user interfaces. Qt Charts can be used as QWidgets, QGraphicsWidget, or QML types.
diff --git a/basicsuite/enterprise-charts/enterprise-charts.pro b/basicsuite/enterprise-charts/enterprise-charts.pro
new file mode 100644
index 0000000..13c41cf
--- /dev/null
+++ b/basicsuite/enterprise-charts/enterprise-charts.pro
@@ -0,0 +1,12 @@
+TARGET = enterprise-charts
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/enterprise-charts/loader.qml b/basicsuite/enterprise-charts/loader.qml
new file mode 100644
index 0000000..f9b7569
--- /dev/null
+++ b/basicsuite/enterprise-charts/loader.qml
@@ -0,0 +1,37 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: container
+ width: 600
+ height: 400
+ Component.onCompleted: {
+ var co = Qt.createComponent("main.qml")
+ if (co.status == Component.Ready) {
+ var o = co.createObject(container)
+ } else {
+ console.log(co.errorString())
+ console.log("QtCommercial.Chart 1.1 not available")
+ console.log("Please use correct QML_IMPORT_PATH export")
+ }
+ }
+}
diff --git a/basicsuite/enterprise-charts/main.qml b/basicsuite/enterprise-charts/main.qml
new file mode 100644
index 0000000..10376c8
--- /dev/null
+++ b/basicsuite/enterprise-charts/main.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//![1]
+import QtQuick 2.0
+//![1]
+
+Rectangle {
+ width: 600
+ height: 400
+ property int viewNumber: 1
+
+ Loader {
+ id: loader
+ anchors.fill: parent
+ source: "View" + viewNumber + ".qml";
+ }
+
+ Rectangle {
+ id: infoText
+ anchors.centerIn: parent
+ width: parent.width
+ height: 40
+ color: "black"
+ Text {
+ color: "white"
+ anchors.centerIn: parent
+ text: "Use left and right arrow keys or tap on the screen to navigate between chart types"
+ }
+
+ Behavior on opacity {
+ NumberAnimation { duration: 400 }
+ }
+ }
+
+ MouseArea {
+ focus: true
+ anchors.fill: parent
+ onClicked: {
+ if (infoText.opacity > 0) {
+ infoText.opacity = 0.0;
+ } else {
+ nextView();
+ }
+ }
+ Keys.onPressed: {
+ if (infoText.opacity > 0) {
+ infoText.opacity = 0.0;
+ } else {
+ if (event.key == Qt.Key_Left) {
+ previousView();
+ } else {
+ // tapping on the screen advances to the next view
+ nextView();
+ }
+ }
+ }
+ }
+
+ function nextView() {
+ var i = viewNumber + 1;
+ if (i > 15)
+ viewNumber = 1;
+ else
+ viewNumber = i;
+ }
+
+ function previousView() {
+ var i = viewNumber - 1;
+ if (i <= 0)
+ viewNumber = 15;
+ else
+ viewNumber = i;
+ }
+}
diff --git a/basicsuite/enterprise-charts/preview_l.jpg b/basicsuite/enterprise-charts/preview_l.jpg
new file mode 100644
index 0000000..2776b0b
--- /dev/null
+++ b/basicsuite/enterprise-charts/preview_l.jpg
Binary files differ
diff --git a/basicsuite/enterprise-charts/title.txt b/basicsuite/enterprise-charts/title.txt
new file mode 100644
index 0000000..d3ce063
--- /dev/null
+++ b/basicsuite/enterprise-charts/title.txt
@@ -0,0 +1 @@
+Qt Charts - Gallery
diff --git a/basicsuite/enterprise-dashboard/DashboardGaugeStyle.qml b/basicsuite/enterprise-dashboard/DashboardGaugeStyle.qml
new file mode 100644
index 0000000..7958fca
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/DashboardGaugeStyle.qml
@@ -0,0 +1,144 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+CircularGaugeStyle {
+ tickmarkInset: toPixels(0.04)
+ minorTickmarkInset: tickmarkInset
+ labelStepSize: 20
+ labelInset: toPixels(0.23)
+
+ property real xCenter: outerRadius
+ property real yCenter: outerRadius
+ property real needleLength: outerRadius - tickmarkInset * 1.25
+ property real needleTipWidth: toPixels(0.02)
+ property real needleBaseWidth: toPixels(0.06)
+ property bool halfGauge: false
+
+ function toPixels(percentage) {
+ return percentage * outerRadius;
+ }
+
+ function degToRad(degrees) {
+ return degrees * (Math.PI / 180);
+ }
+
+ function radToDeg(radians) {
+ return radians * (180 / Math.PI);
+ }
+
+ function paintBackground(ctx) {
+ if (halfGauge) {
+ ctx.beginPath();
+ ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height / 2);
+ ctx.clip();
+ }
+
+ ctx.beginPath();
+ ctx.fillStyle = "black";
+ ctx.ellipse(0, 0, ctx.canvas.width, ctx.canvas.height);
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.lineWidth = tickmarkInset;
+ ctx.strokeStyle = "black";
+ ctx.arc(xCenter, yCenter, outerRadius - ctx.lineWidth / 2, outerRadius - ctx.lineWidth / 2, 0, Math.PI * 2);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.lineWidth = tickmarkInset / 2;
+ ctx.strokeStyle = "#222";
+ ctx.arc(xCenter, yCenter, outerRadius - ctx.lineWidth / 2, outerRadius - ctx.lineWidth / 2, 0, Math.PI * 2);
+ ctx.stroke();
+
+ ctx.beginPath();
+ var gradient = ctx.createRadialGradient(xCenter, yCenter, outerRadius * 0.8, xCenter, yCenter, outerRadius);
+ gradient.addColorStop(0, Qt.rgba(1, 1, 1, 0));
+ gradient.addColorStop(0.7, Qt.rgba(1, 1, 1, 0.13));
+ gradient.addColorStop(1, Qt.rgba(1, 1, 1, 1));
+ ctx.fillStyle = gradient;
+ ctx.arc(xCenter, yCenter, outerRadius - tickmarkInset, outerRadius - tickmarkInset, 0, Math.PI * 2);
+ ctx.fill();
+ }
+
+ background: Canvas {
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+ paintBackground(ctx);
+ }
+
+ Text {
+ id: speedText
+ font.pixelSize: toPixels(0.3)
+ text: kphInt
+ color: "white"
+ horizontalAlignment: Text.AlignRight
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.verticalCenter
+ anchors.topMargin: toPixels(0.1)
+
+ readonly property int kphInt: control.value
+ }
+ Text {
+ text: "km/h"
+ color: "white"
+ font.pixelSize: toPixels(0.09)
+ anchors.top: speedText.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ needle: Canvas {
+ width: needleBaseWidth
+ height: needleLength
+
+ property real xCenter: width / 2
+ property real yCenter: height / 2
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ ctx.beginPath();
+ ctx.moveTo(xCenter, height);
+ ctx.lineTo(xCenter - needleBaseWidth / 2, height - needleBaseWidth / 2);
+ ctx.lineTo(xCenter - needleTipWidth / 2, 0);
+ ctx.lineTo(xCenter, yCenter - needleLength);
+ ctx.lineTo(xCenter, 0);
+ ctx.closePath();
+ ctx.fillStyle = Qt.rgba(0.66, 0, 0, 0.66);
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.moveTo(xCenter, height)
+ ctx.lineTo(width, height - needleBaseWidth / 2);
+ ctx.lineTo(xCenter + needleTipWidth / 2, 0);
+ ctx.lineTo(xCenter, 0);
+ ctx.closePath();
+ ctx.fillStyle = Qt.lighter(Qt.rgba(0.66, 0, 0, 0.66));
+ ctx.fill();
+ }
+ }
+
+ foreground: null
+}
diff --git a/basicsuite/enterprise-dashboard/IconGaugeStyle.qml b/basicsuite/enterprise-dashboard/IconGaugeStyle.qml
new file mode 100644
index 0000000..0b24351
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/IconGaugeStyle.qml
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+DashboardGaugeStyle {
+ id: fuelGaugeStyle
+ minimumValueAngle: 300
+ maximumValueAngle: 60
+ tickmarkStepSize: 1
+ labelStepSize: 1
+ labelInset: toPixels(-0.25)
+ minorTickmarkCount: 3
+
+ needleLength: toPixels(0.85)
+ needleBaseWidth: toPixels(0.08)
+ needleTipWidth: toPixels(0.03)
+
+ halfGauge: true
+
+ property string icon: ""
+ property color minWarningColor: "transparent"
+ property color maxWarningColor: "transparent"
+ readonly property real minWarningStartAngle: minimumValueAngle - 90
+ readonly property real maxWarningStartAngle: maximumValueAngle - 90
+
+ tickmark: Rectangle {
+ width: toPixels(0.06)
+ antialiasing: true
+ height: toPixels(0.2)
+ color: "#c8c8c8"
+ }
+
+ minorTickmark: Rectangle {
+ width: toPixels(0.03)
+ antialiasing: true
+ height: toPixels(0.15)
+ color: "#c8c8c8"
+ }
+
+ background: Item {
+ Canvas {
+ anchors.fill: parent
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ paintBackground(ctx);
+
+ if (minWarningColor != "transparent") {
+ ctx.beginPath();
+ ctx.lineWidth = fuelGaugeStyle.toPixels(0.08);
+ ctx.strokeStyle = minWarningColor;
+ ctx.arc(outerRadius, outerRadius,
+ // Start the line in from the decorations, and account for the width of the line itself.
+ outerRadius - tickmarkInset - ctx.lineWidth / 2,
+ degToRad(minWarningStartAngle),
+ degToRad(minWarningStartAngle + angleRange / (minorTickmarkCount + 1)), false);
+ ctx.stroke();
+ }
+ if (maxWarningColor != "transparent") {
+ ctx.beginPath();
+ ctx.lineWidth = fuelGaugeStyle.toPixels(0.08);
+ ctx.strokeStyle = maxWarningColor;
+ ctx.arc(outerRadius, outerRadius,
+ // Start the line in from the decorations, and account for the width of the line itself.
+ outerRadius - tickmarkInset - ctx.lineWidth / 2,
+ degToRad(maxWarningStartAngle - angleRange / (minorTickmarkCount + 1)),
+ degToRad(maxWarningStartAngle), false);
+ ctx.stroke();
+ }
+ }
+ }
+
+ Image {
+ source: icon
+ anchors.bottom: parent.verticalCenter
+ anchors.bottomMargin: toPixels(0.3)
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: toPixels(0.3)
+ height: width
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+}
diff --git a/basicsuite/enterprise-dashboard/TachometerStyle.qml b/basicsuite/enterprise-dashboard/TachometerStyle.qml
new file mode 100644
index 0000000..c4649da
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/TachometerStyle.qml
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+DashboardGaugeStyle {
+ id: tachometerStyle
+ tickmarkStepSize: 1
+ labelStepSize: 1
+ needleLength: toPixels(0.85)
+ needleBaseWidth: toPixels(0.08)
+ needleTipWidth: toPixels(0.03)
+
+ tickmark: Rectangle {
+ width: toPixels(0.03)
+ antialiasing: true
+ height: toPixels(0.08)
+ color: styleData.index === 7 || styleData.index === 8 ? Qt.rgba(0.5, 0, 0, 1) : "#c8c8c8"
+ }
+
+ minorTickmark: null
+
+ tickmarkLabel: Text {
+ font.pixelSize: Math.max(6, toPixels(0.12))
+ text: styleData.value
+ color: styleData.index === 7 || styleData.index === 8 ? Qt.rgba(0.5, 0, 0, 1) : "#c8c8c8"
+ antialiasing: true
+ }
+
+ background: Canvas {
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+ paintBackground(ctx);
+
+ ctx.beginPath();
+ ctx.lineWidth = tachometerStyle.toPixels(0.08);
+ ctx.strokeStyle = Qt.rgba(0.5, 0, 0, 1);
+ var warningCircumference = maximumValueAngle - minimumValueAngle * 0.1;
+ var startAngle = maximumValueAngle - 90;
+ ctx.arc(outerRadius, outerRadius,
+ // Start the line in from the decorations, and account for the width of the line itself.
+ outerRadius - tickmarkInset - ctx.lineWidth / 2,
+ degToRad(startAngle - angleRange / 8 + angleRange * 0.015),
+ degToRad(startAngle - angleRange * 0.015), false);
+ ctx.stroke();
+ }
+
+ Text {
+ id: rpmText
+ font.pixelSize: tachometerStyle.toPixels(0.3)
+ text: rpmInt
+ color: "white"
+ horizontalAlignment: Text.AlignRight
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.verticalCenter
+ anchors.topMargin: 20
+
+ readonly property int rpmInt: valueSource.rpm
+ }
+ Text {
+ text: "x1000"
+ color: "white"
+ font.pixelSize: tachometerStyle.toPixels(0.1)
+ anchors.top: parent.top
+ anchors.topMargin: parent.height / 4
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ Text {
+ text: "RPM"
+ color: "white"
+ font.pixelSize: tachometerStyle.toPixels(0.1)
+ anchors.top: rpmText.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/basicsuite/enterprise-dashboard/TurnIndicator.qml b/basicsuite/enterprise-dashboard/TurnIndicator.qml
new file mode 100644
index 0000000..9dd7d5f
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/TurnIndicator.qml
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+Item {
+ // This enum is actually keyboard-related, but it serves its purpose
+ // as an indication of direction for us.
+ property int direction: Qt.LeftArrow
+ property bool on: false
+
+ property bool flashing: false
+
+ scale: direction === Qt.LeftArrow ? 1 : -1
+
+ Timer {
+ id: flashTimer
+ interval: 500
+ running: on
+ repeat: true
+ onTriggered: flashing = !flashing
+ }
+
+ function paintOutlinePath(ctx) {
+ ctx.beginPath();
+ ctx.moveTo(0, height * 0.5);
+ ctx.lineTo(0.6 * width, 0);
+ ctx.lineTo(0.6 * width, height * 0.28);
+ ctx.lineTo(width, height * 0.28);
+ ctx.lineTo(width, height * 0.72);
+ ctx.lineTo(0.6 * width, height * 0.72);
+ ctx.lineTo(0.6 * width, height);
+ ctx.lineTo(0, height * 0.5);
+ }
+
+ Canvas {
+ id: backgroundCanvas
+ anchors.fill: parent
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ paintOutlinePath(ctx);
+
+ ctx.lineWidth = 1;
+ ctx.strokeStyle = "black";
+ ctx.stroke();
+
+// ctx.fillStyle = "#552222";
+// ctx.fill();
+ }
+ }
+
+ Canvas {
+ id: foregroundCanvas
+ anchors.fill: parent
+ visible: on && flashing
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ paintOutlinePath(ctx);
+
+ ctx.fillStyle = "green";
+ ctx.fill();
+ }
+ }
+}
diff --git a/basicsuite/enterprise-dashboard/ValueSource.qml b/basicsuite/enterprise-dashboard/ValueSource.qml
new file mode 100644
index 0000000..6bd1952
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/ValueSource.qml
@@ -0,0 +1,300 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: valueSource
+ property real kph: 0
+ property real rpm: 1
+ property real fuel: 0.85
+ property string gear: {
+ var g;
+ if (kph == 0) {
+ return "P";
+ }
+ if (kph < 30) {
+ return "1";
+ }
+ if (kph < 50) {
+ return "2";
+ }
+ if (kph < 80) {
+ return "3";
+ }
+ if (kph < 120) {
+ return "4";
+ }
+ if (kph < 160) {
+ return "5";
+ }
+ }
+ property int turnSignal: gear == "P" && !start ? randomDirection() : -1
+ property real temperature: 0.6
+ property bool start: true
+
+ function randomDirection() {
+ return Math.random() > 0.5 ? Qt.LeftArrow : Qt.RightArrow;
+ }
+
+ SequentialAnimation {
+ running: true
+ loops: 1
+
+ // We want a small pause at the beginning, but we only want it to happen once.
+ PauseAnimation {
+ duration: 1000
+ }
+
+ PropertyAction {
+ target: valueSource
+ property: "start"
+ value: false
+ }
+
+ SequentialAnimation {
+ loops: Animation.Infinite
+
+ ParallelAnimation {
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ from: 0
+ to: 30
+ duration: 3000
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ from: 1
+ to: 6.1
+ duration: 3000
+ }
+ }
+ ParallelAnimation {
+ // We changed gears so we lost a bit of speed.
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ from: 30
+ to: 26
+ duration: 600
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ from: 6
+ to: 2.4
+ duration: 600
+ }
+ }
+ ParallelAnimation {
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ to: 60
+ duration: 3000
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 5.6
+ duration: 3000
+ }
+ }
+ ParallelAnimation {
+ // We changed gears so we lost a bit of speed.
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ to: 56
+ duration: 600
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 2.3
+ duration: 600
+ }
+ }
+ ParallelAnimation {
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ to: 100
+ duration: 3000
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 5.1
+ duration: 3000
+ }
+ }
+ ParallelAnimation {
+ // We changed gears so we lost a bit of speed.
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ to: 96
+ duration: 600
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 2.2
+ duration: 600
+ }
+ }
+
+ ParallelAnimation {
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ to: 140
+ duration: 3000
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 6.2
+ duration: 3000
+ }
+ }
+
+ // Start downshifting.
+
+ // Fifth to fourth gear.
+ ParallelAnimation {
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.Linear
+ to: 100
+ duration: 5000
+ }
+
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 3.1
+ duration: 5000
+ }
+ }
+
+ // Fourth to third gear.
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 5.5
+ duration: 600
+ }
+
+ ParallelAnimation {
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ to: 60
+ duration: 5000
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 2.6
+ duration: 5000
+ }
+ }
+
+ // Third to second gear.
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 6.3
+ duration: 600
+ }
+
+ ParallelAnimation {
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ to: 30
+ duration: 5000
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 2.6
+ duration: 5000
+ }
+ }
+
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 6.5
+ duration: 600
+ }
+
+ // Second to first gear.
+ ParallelAnimation {
+ NumberAnimation {
+ target: valueSource
+ property: "kph"
+ easing.type: Easing.InOutSine
+ to: 0
+ duration: 5000
+ }
+ NumberAnimation {
+ target: valueSource
+ property: "rpm"
+ easing.type: Easing.InOutSine
+ to: 1
+ duration: 4500
+ }
+ }
+
+ PauseAnimation {
+ duration: 5000
+ }
+ }
+ }
+}
diff --git a/basicsuite/enterprise-dashboard/description.txt b/basicsuite/enterprise-dashboard/description.txt
new file mode 100644
index 0000000..dcf2b94
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/description.txt
@@ -0,0 +1 @@
+The dashboard demo uses Qt Quick Enterprise Controls to create a digital dashboard for a car.
diff --git a/basicsuite/enterprise-dashboard/enterprise-dashboard.pro b/basicsuite/enterprise-dashboard/enterprise-dashboard.pro
new file mode 100644
index 0000000..9fb29f2
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/enterprise-dashboard.pro
@@ -0,0 +1,13 @@
+TARGET = enterprise-dashboard
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ images
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/enterprise-dashboard/images/fuel-icon.png b/basicsuite/enterprise-dashboard/images/fuel-icon.png
new file mode 100644
index 0000000..f521e90
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/images/fuel-icon.png
Binary files differ
diff --git a/basicsuite/enterprise-dashboard/images/temperature-icon.png b/basicsuite/enterprise-dashboard/images/temperature-icon.png
new file mode 100644
index 0000000..5a4334e
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/images/temperature-icon.png
Binary files differ
diff --git a/basicsuite/enterprise-dashboard/main.qml b/basicsuite/enterprise-dashboard/main.qml
new file mode 100644
index 0000000..da5f296
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/main.qml
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+import QtQuick.Enterprise.Controls 1.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+Rectangle {
+ id: root
+ visible: true
+ width: 1024
+ height: 600
+
+ color: "#161616"
+ //title: "QtQuick Enterprise Controls Demo"
+
+ ValueSource {
+ id: valueSource
+ }
+
+ // Dashboards are typically in a landscape orientation, so we need to ensure
+ // our height is never greater than our width.
+ Item {
+ id: container
+ width: root.width
+ height: Math.min(root.width, root.height)
+ anchors.centerIn: parent
+
+ Row {
+ id: gaugeRow
+ spacing: container.width * 0.02
+ anchors.centerIn: parent
+
+ TurnIndicator {
+ id: leftIndicator
+ anchors.verticalCenter: parent.verticalCenter
+ width: height
+ height: container.height * 0.1 - gaugeRow.spacing
+
+ direction: Qt.LeftArrow
+ on: valueSource.turnSignal == Qt.LeftArrow
+ }
+
+ Item {
+ width: height
+ height: container.height * 0.25 - gaugeRow.spacing
+ anchors.verticalCenter: parent.verticalCenter
+
+ CircularGauge {
+ id: fuelGauge
+ value: valueSource.fuel
+ maximumValue: 1
+ y: parent.height / 2 - height / 2 - container.height * 0.01
+ width: parent.width
+ height: parent.height * 0.7
+
+ style: IconGaugeStyle {
+ id: fuelGaugeStyle
+
+ icon: "images/fuel-icon.png"
+ minWarningColor: Qt.rgba(0.5, 0, 0, 1)
+
+ tickmarkLabel: Text {
+ color: "white"
+ visible: styleData.value === 0 || styleData.value === 1
+ font.pixelSize: fuelGaugeStyle.toPixels(0.225)
+ text: styleData.value === 0 ? "E" : (styleData.value === 1 ? "F" : "")
+ }
+ }
+ }
+
+ CircularGauge {
+ value: valueSource.temperature
+ maximumValue: 1
+ width: parent.width
+ height: parent.height * 0.7
+ y: parent.height / 2 + container.height * 0.01
+
+ style: IconGaugeStyle {
+ id: tempGaugeStyle
+
+ icon: "images/temperature-icon.png"
+ maxWarningColor: Qt.rgba(0.5, 0, 0, 1)
+
+ tickmarkLabel: Text {
+ color: "white"
+ visible: styleData.value === 0 || styleData.value === 1
+ font.pixelSize: tempGaugeStyle.toPixels(0.225)
+ text: styleData.value === 0 ? "C" : (styleData.value === 1 ? "H" : "")
+ }
+ }
+ }
+ }
+
+ CircularGauge {
+ id: speedometer
+ value: valueSource.kph
+ anchors.verticalCenter: parent.verticalCenter
+ maximumValue: 280
+ // We set the width to the height, because the height will always be
+ // the more limited factor. Also, all circular controls letterbox
+ // their contents to ensure that they remain circular. However, we
+ // don't want to extra space on the left and right of our gauges,
+ // because they're laid out horizontally, and that would create
+ // large horizontal gaps between gauges on wide screens.
+ width: height
+ height: container.height * 0.5
+
+ style: DashboardGaugeStyle {}
+ }
+
+ CircularGauge {
+ id: tachometer
+ width: height
+ height: container.height * 0.25 - gaugeRow.spacing
+ value: valueSource.rpm
+ maximumValue: 8
+ anchors.verticalCenter: parent.verticalCenter
+
+ style: TachometerStyle {}
+ }
+
+ TurnIndicator {
+ id: rightIndicator
+ anchors.verticalCenter: parent.verticalCenter
+ width: height
+ height: container.height * 0.1 - gaugeRow.spacing
+
+ direction: Qt.RightArrow
+ on: valueSource.turnSignal == Qt.RightArrow
+ }
+
+ }
+ }
+}
diff --git a/basicsuite/enterprise-dashboard/preview_l.jpg b/basicsuite/enterprise-dashboard/preview_l.jpg
new file mode 100644
index 0000000..eb2e3b5
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/preview_l.jpg
Binary files differ
diff --git a/basicsuite/enterprise-dashboard/title.txt b/basicsuite/enterprise-dashboard/title.txt
new file mode 100644
index 0000000..1a3fb29
--- /dev/null
+++ b/basicsuite/enterprise-dashboard/title.txt
@@ -0,0 +1 @@
+Qt Quick Enterprise Controls - Dashboard
diff --git a/basicsuite/enterprise-gallery/BlackButtonBackground.qml b/basicsuite/enterprise-gallery/BlackButtonBackground.qml
new file mode 100644
index 0000000..008668f
--- /dev/null
+++ b/basicsuite/enterprise-gallery/BlackButtonBackground.qml
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Rectangle {
+ property bool pressed: false
+
+ gradient: Gradient {
+ GradientStop {
+ color: pressed ? "#222" : "#333"
+ position: 0
+ }
+ GradientStop {
+ color: "#222"
+ position: 1
+ }
+ }
+ Rectangle {
+ height: 1
+ width: parent.width
+ anchors.top: parent.top
+ color: "#444"
+ visible: !pressed
+ }
+ Rectangle {
+ height: 1
+ width: parent.width
+ anchors.bottom: parent.bottom
+ color: "#000"
+ }
+}
diff --git a/basicsuite/enterprise-gallery/BlackButtonStyle.qml b/basicsuite/enterprise-gallery/BlackButtonStyle.qml
new file mode 100644
index 0000000..73f6373
--- /dev/null
+++ b/basicsuite/enterprise-gallery/BlackButtonStyle.qml
@@ -0,0 +1,44 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+ButtonStyle {
+ property color fontColor;
+
+ background: BlackButtonBackground {
+ pressed: control.pressed
+ }
+ label: Item {
+ Text {
+ text: control.text
+ color: fontColor
+ font.pixelSize: control.height * 0.25
+ font.family: openSans.name
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ }
+ }
+}
diff --git a/basicsuite/enterprise-gallery/CircularGaugeDarkStyle.qml b/basicsuite/enterprise-gallery/CircularGaugeDarkStyle.qml
new file mode 100644
index 0000000..fb85f86
--- /dev/null
+++ b/basicsuite/enterprise-gallery/CircularGaugeDarkStyle.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+CircularGaugeStyle {
+ id: root
+ tickmarkStepSize: 10
+ minorTickmarkCount: 1
+ labelStepSize: 20
+ tickmarkInset: outerRadius * 0.06
+ minorTickmarkInset: tickmarkInset
+ labelInset: outerRadius * 0.23
+
+ background: Image {
+ source: "images/background.png"
+ }
+
+ needle: Image {
+ id: needleImage
+ transformOrigin: Item.Bottom
+ source: "images/needle.png"
+ scale: {
+ var distanceFromLabelToRadius = labelInset / 2;
+ var idealHeight = outerRadius - distanceFromLabelToRadius;
+ var originalImageHeight = needleImage.sourceSize.height;
+ idealHeight / originalImageHeight;
+ }
+ }
+
+ foreground: Item {
+ Image {
+ anchors.centerIn: parent
+ source: "images/center.png"
+ scale: (outerRadius * 0.25) / sourceSize.height
+ }
+ }
+
+ tickmark: Rectangle {
+ width: outerRadius * 0.02
+ antialiasing: true
+ height: outerRadius * 0.05
+ color: "#888"
+ }
+
+ minorTickmark: Rectangle {
+ width: outerRadius * 0.01
+ antialiasing: true
+ height: outerRadius * 0.02
+ color: "#444"
+ }
+
+ tickmarkLabel: Text {
+ font.pixelSize: Math.max(6, outerRadius * 0.1)
+ text: styleData.value
+ color: "white"
+ }
+}
diff --git a/basicsuite/enterprise-gallery/CircularGaugeDefaultStyle.qml b/basicsuite/enterprise-gallery/CircularGaugeDefaultStyle.qml
new file mode 100644
index 0000000..7aec7b6
--- /dev/null
+++ b/basicsuite/enterprise-gallery/CircularGaugeDefaultStyle.qml
@@ -0,0 +1,26 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+CircularGaugeStyle {
+ labelStepSize: 20
+}
diff --git a/basicsuite/enterprise-gallery/CircularGaugeLightStyle.qml b/basicsuite/enterprise-gallery/CircularGaugeLightStyle.qml
new file mode 100644
index 0000000..7d00c1f
--- /dev/null
+++ b/basicsuite/enterprise-gallery/CircularGaugeLightStyle.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+CircularGaugeStyle {
+ id: root
+ tickmarkStepSize: 10
+ minorTickmarkCount: 2
+ labelStepSize: 40
+ tickmarkInset: outerRadius * 0.06
+ minorTickmarkInset: tickmarkInset
+ labelInset: outerRadius * 0.23
+
+ background: Image {
+ source: "images/background-light.png"
+ }
+
+ needle: Image {
+ id: needleImage
+ source: "images/needle-light.png"
+ transformOrigin: Item.Bottom
+ scale: {
+ var distanceFromLabelToRadius = labelInset / 2;
+ var idealHeight = outerRadius - distanceFromLabelToRadius;
+ var originalImageHeight = needleImage.sourceSize.height;
+ idealHeight / originalImageHeight;
+ }
+ }
+
+ foreground: Item {
+ Image {
+ anchors.centerIn: parent
+ source: "images/center-light.png"
+ scale: (outerRadius * 0.25) / sourceSize.height
+ }
+ }
+
+ tickmark: Rectangle {
+ width: outerRadius * 0.01
+ antialiasing: true
+ height: outerRadius * 0.04
+ color: "#999"
+ }
+
+ minorTickmark: Rectangle {
+ width: outerRadius * 0.01
+ antialiasing: true
+ height: outerRadius * 0.02
+ color: "#bbb"
+ }
+
+ tickmarkLabel: Text {
+ font.family: "Helvetica neue"
+ font.pixelSize: Math.max(6, outerRadius * 0.1)
+ text: styleData.value
+ color: "#333"
+ }
+}
diff --git a/basicsuite/enterprise-gallery/CircularGaugeView.qml b/basicsuite/enterprise-gallery/CircularGaugeView.qml
new file mode 100644
index 0000000..92ee6c5
--- /dev/null
+++ b/basicsuite/enterprise-gallery/CircularGaugeView.qml
@@ -0,0 +1,204 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import QtQuick.Enterprise.Controls 1.0
+
+ControlView {
+ id: controlView
+ darkBackground: customizerItem.currentStyleDark
+
+ property color fontColor: darkBackground ? "white" : "black"
+
+ property bool accelerating: false
+
+ Keys.onSpacePressed: accelerating = true
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Space) {
+ accelerating = false;
+ event.accepted = true;
+ }
+ }
+
+ Button {
+ id: accelerate
+ text: "Accelerate"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ height: root.height * 0.125
+
+ onPressedChanged: accelerating = pressed
+
+ style: BlackButtonStyle {
+ background: BlackButtonBackground {
+ pressed: control.pressed
+ }
+ label: Text {
+ text: control.text
+ color: "white"
+ font.pixelSize: root.toPixels(0.04)
+ font.family: openSans.name
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+
+ control: CircularGauge {
+ id: gauge
+ minimumValue: customizerItem.minimumValue
+ maximumValue: customizerItem.maximumValue
+ width: root.toPixels(0.65)
+ height: width
+
+ value: accelerating ? maximumValue : 0
+ style: styleMap[customizerItem.currentStylePath]
+
+ // This stops the styles being recreated when a new one is chosen.
+ property var styleMap: {
+ var styles = {};
+ for (var i = 0; i < customizerItem.allStylePaths.length; ++i) {
+ var path = customizerItem.allStylePaths[i];
+ styles[path] = Qt.createComponent(path, gauge);
+ }
+ styles;
+ }
+
+ // Called to update the style after the user has edited a property.
+ Connections {
+ target: customizerItem
+ onMinimumValueAngleChanged: __style.minimumValueAngle = customizerItem.minimumValueAngle
+ onMaximumValueAngleChanged: __style.maximumValueAngle = customizerItem.maximumValueAngle
+ onLabelStepSizeChanged: __style.tickmarkStepSize = __style.labelStepSize = customizerItem.labelStepSize
+ }
+
+ Behavior on value {
+ NumberAnimation {
+ easing.type: Easing.OutCubic
+ duration: 6000
+ }
+ }
+ }
+
+ customizer: Column {
+ readonly property var allStylePaths: {
+ var paths = [];
+ for (var i = 0; i < stylePicker.model.count; ++i) {
+ paths.push(stylePicker.model.get(i).path);
+ }
+ paths;
+ }
+ property alias currentStylePath: stylePicker.currentStylePath
+ property alias currentStyleDark: stylePicker.currentStyleDark
+ property alias minimumValue: minimumValueSlider.value
+ property alias maximumValue: maximumValueSlider.value
+ property alias minimumValueAngle: minimumAngleSlider.value
+ property alias maximumValueAngle: maximumAngleSlider.value
+ property alias labelStepSize: labelStepSizeSlider.value
+
+ id: circularGaugeColumn
+ spacing: customizerPropertySpacing
+
+ readonly property bool isDefaultStyle: stylePicker.model.get(stylePicker.currentIndex).name === "Default"
+
+ StylePicker {
+ id: stylePicker
+ currentIndex: 1
+
+ model: ListModel {
+ ListElement {
+ name: "Default"
+ path: "CircularGaugeDefaultStyle.qml"
+ dark: true
+ }
+ ListElement {
+ name: "Dark"
+ path: "CircularGaugeDarkStyle.qml"
+ dark: true
+ }
+ ListElement {
+ name: "Light"
+ path: "CircularGaugeLightStyle.qml"
+ dark: false
+ }
+ }
+ }
+
+ CustomizerLabel {
+ text: "Minimum angle"
+ }
+
+ CustomizerSlider {
+ id: minimumAngleSlider
+ minimumValue: 0
+ value: 215
+ maximumValue: 360
+ width: parent.width
+ }
+
+ CustomizerLabel {
+ text: "Maximum angle"
+ }
+
+ CustomizerSlider {
+ id: maximumAngleSlider
+ minimumValue: 0
+ value: 145
+ maximumValue: 360
+ }
+
+ CustomizerLabel {
+ text: "Minimum value"
+ }
+
+ CustomizerSlider {
+ id: minimumValueSlider
+ minimumValue: 0
+ value: 0
+ maximumValue: 360
+ stepSize: labelStepSizeSlider.stepSize
+ }
+
+ CustomizerLabel {
+ text: "Maximum value"
+ }
+
+ CustomizerSlider {
+ id: maximumValueSlider
+ minimumValue: 0
+ value: 220
+ maximumValue: 300
+ stepSize: labelStepSizeSlider.stepSize
+ }
+
+ CustomizerLabel {
+ text: "Label step size"
+ }
+
+ CustomizerSlider {
+ id: labelStepSizeSlider
+ minimumValue: 10
+ value: 20
+ maximumValue: 100
+ stepSize: 20
+ }
+ }
+}
diff --git a/basicsuite/enterprise-gallery/ControlView.qml b/basicsuite/enterprise-gallery/ControlView.qml
new file mode 100644
index 0000000..2c6a7cf
--- /dev/null
+++ b/basicsuite/enterprise-gallery/ControlView.qml
@@ -0,0 +1,168 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+
+Rectangle {
+ id: view
+ color: darkBackground ? "transparent" : lightBackgroundColor
+
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Back) {
+ stackView.pop();
+ event.accepted = true;
+ }
+ }
+
+ property bool darkBackground: true
+
+ property Component control
+ property Component customizer
+
+ property alias controlItem: controlLoader.item
+ property alias customizerItem: customizerLoader.item
+
+ property bool isCustomizerVisible: false
+
+ property real margin: root.toPixels(0.05)
+
+ property rect controlBounds: Qt.rect(largestControlItem.x + controlBoundsItem.x,
+ largestControlItem.y + controlBoundsItem.y, controlBoundsItem.width, controlBoundsItem.height)
+
+ Item {
+ id: largestControlItem
+ x: margin
+ y: margin
+ width: isCustomizerVisible ? widthWhenCustomizing : widthWhenNotCustomizing
+ height: isCustomizerVisible ? heightWhenCustomizing : heightWhenNotCustomizing
+
+ readonly property real widthWhenCustomizing: (!isScreenPortrait ? parent.width / 2 : parent.width) - margin * 2
+ readonly property real heightWhenCustomizing: (isScreenPortrait ? parent.height / 2 : parent.height - toolbar.height) - margin * 2
+ readonly property real widthWhenNotCustomizing: parent.width - margin * 2
+ readonly property real heightWhenNotCustomizing: parent.height - toolbar.height - margin * 2
+
+ Item {
+ id: controlBoundsItem
+ x: parent.width / 2 - controlBoundsItem.width / 2
+ y: customizer && customizerItem.visible ? 0 : (isScreenPortrait ? (parent.height / 2) - (controlBoundsItem.height / 2) : 0)
+ width: Math.min(parent.widthWhenCustomizing, parent.widthWhenNotCustomizing)
+ height: Math.min(parent.heightWhenCustomizing, parent.heightWhenNotCustomizing)
+
+ Behavior on x {
+ id: controlXBehavior
+ enabled: false
+ NumberAnimation {}
+ }
+
+ Behavior on y {
+ id: controlYBehavior
+ enabled: false
+ NumberAnimation {}
+ }
+
+ Loader {
+ id: controlLoader
+ sourceComponent: control
+ anchors.centerIn: parent
+
+ property alias view: view
+ }
+ }
+ }
+
+ Flickable {
+ id: flickable
+ // Hide the customizer on the right of the screen if it's not visible.
+ x: (isScreenPortrait ? 0 : (isCustomizerVisible ? largestControlItem.x + largestControlItem.width + margin : view.width)) + margin
+ y: (isScreenPortrait ? largestControlItem.y + largestControlItem.height : 0) + margin
+ width: largestControlItem.width
+ height: parent.height - y - toolbar.height - margin
+ anchors.leftMargin: margin
+ anchors.rightMargin: margin
+ visible: customizerLoader.opacity > 0
+
+ flickableDirection: Flickable.VerticalFlick
+
+ clip: true
+ contentWidth: width
+ contentHeight: customizerLoader.height
+
+ Behavior on x {
+ id: flickableXBehavior
+ enabled: false
+ NumberAnimation {}
+ }
+
+ Behavior on y {
+ id: flickableYBehavior
+ enabled: false
+ NumberAnimation {}
+ }
+
+ Loader {
+ id: customizerLoader
+ sourceComponent: customizer
+ opacity: 0
+ width: flickable.width
+
+ property alias view: view
+
+ Behavior on opacity {
+ NumberAnimation {
+ duration: 300
+ }
+ }
+ }
+ }
+
+ ControlViewToolbar {
+ id: toolbar
+
+ onCustomizeClicked: {
+ controlXBehavior.enabled = !isScreenPortrait;
+ controlYBehavior.enabled = isScreenPortrait;
+
+ isCustomizerVisible = !isCustomizerVisible;
+
+ if (isScreenPortrait) {
+ flickableXBehavior.enabled = false;
+ flickableYBehavior.enabled = true;
+ } else {
+ flickableXBehavior.enabled = true;
+ flickableYBehavior.enabled = false;
+ }
+
+ customizerLoader.opacity = isCustomizerVisible ? 1 : 0;
+ }
+ }
+
+ FlickableMoreIndicator {
+ flickable: flickable
+ atTop: true
+ gradientColor: view.darkBackground ? darkBackgroundColor : lightBackgroundColor
+ }
+
+ FlickableMoreIndicator {
+ flickable: flickable
+ atTop: false
+ gradientColor: view.darkBackground ? darkBackgroundColor : lightBackgroundColor
+ }
+}
diff --git a/basicsuite/enterprise-gallery/ControlViewToolbar.qml b/basicsuite/enterprise-gallery/ControlViewToolbar.qml
new file mode 100644
index 0000000..5aac041
--- /dev/null
+++ b/basicsuite/enterprise-gallery/ControlViewToolbar.qml
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+
+BlackButtonBackground {
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: root.height * 0.125
+
+ signal customizeClicked
+
+ gradient: Gradient {
+ GradientStop {
+ color: "#333"
+ position: 0
+ }
+ GradientStop {
+ color: "#222"
+ position: 1
+ }
+ }
+
+ Button {
+ id: back
+ width: parent.height
+ height: parent.height
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+
+ onClicked: stackView.pop()
+
+ style: BlackButtonStyle {
+ }
+
+ Image {
+ source: "images/icon-go.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ scale: -1
+ }
+ }
+
+ Button {
+ id: customize
+ width: parent.height
+ height: parent.height
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ visible: customizer
+
+ style: BlackButtonStyle {
+ }
+
+ onClicked: customizeClicked()
+
+ Image {
+ source: "images/icon-settings.png"
+ anchors.centerIn: parent
+ scale: -1
+ }
+ }
+}
diff --git a/basicsuite/enterprise-gallery/CustomizerCheckBox.qml b/basicsuite/enterprise-gallery/CustomizerCheckBox.qml
new file mode 100644
index 0000000..542e09a
--- /dev/null
+++ b/basicsuite/enterprise-gallery/CustomizerCheckBox.qml
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+CheckBox {
+ id: checkBox
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: root.width * 0.04
+ height: width
+
+ style: CheckBoxStyle {
+ indicator: Rectangle {
+ color: "#666"
+ height: control.height
+ width: height
+
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: Math.round(checkBox.width * 0.1)
+ color: "#111"
+ visible: control.checked
+ }
+ }
+ }
+}
diff --git a/basicsuite/enterprise-gallery/CustomizerLabel.qml b/basicsuite/enterprise-gallery/CustomizerLabel.qml
new file mode 100644
index 0000000..c4cb69c
--- /dev/null
+++ b/basicsuite/enterprise-gallery/CustomizerLabel.qml
@@ -0,0 +1,28 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Text {
+ color: fontColor
+ font.pixelSize: root.toPixels(0.04)
+ font.family: openSans.name
+ anchors.horizontalCenter: parent.horizontalCenter
+}
diff --git a/basicsuite/enterprise-gallery/CustomizerSlider.qml b/basicsuite/enterprise-gallery/CustomizerSlider.qml
new file mode 100644
index 0000000..fb09a17
--- /dev/null
+++ b/basicsuite/enterprise-gallery/CustomizerSlider.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Slider {
+ id: slider
+ width: parent.width
+ height: root.toPixels(0.1)
+
+ style: SliderStyle {
+ handle: Rectangle {
+ height: root.toPixels(0.06)
+ width: height
+ radius: width/2
+ color: "#fff"
+ }
+
+ groove: Rectangle {
+ implicitHeight: root.toPixels(0.015)
+ implicitWidth: 100
+ radius: height/2
+ border.color: "#333"
+ color: "#222"
+ Rectangle {
+ height: parent.height
+ width: styleData.handlePosition
+ implicitHeight: 6
+ implicitWidth: 100
+ radius: height/2
+ color: "#555"
+ }
+ }
+
+ }
+}
diff --git a/basicsuite/enterprise-gallery/FlickableMoreIndicator.qml b/basicsuite/enterprise-gallery/FlickableMoreIndicator.qml
new file mode 100644
index 0000000..c8b9fe5
--- /dev/null
+++ b/basicsuite/enterprise-gallery/FlickableMoreIndicator.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+ anchors.top: atTop ? flickable.top : undefined
+ anchors.bottom: atTop ? undefined : flickable.bottom
+ anchors.left: isScreenPortrait ? parent.left : parent.horizontalCenter
+ anchors.right: parent.right
+ height: 30
+ visible: flickable.visible
+ opacity: atTop
+ ? (flickable.contentY > showDistance ? 1 : 0)
+ : (flickable.contentY < flickable.contentHeight - showDistance ? 1 : 0)
+ scale: atTop ? 1 : -1
+
+ readonly property real showDistance: 0
+ property Flickable flickable
+ property color gradientColor
+ /*! \c true if this indicator is at the top of the item */
+ property bool atTop
+
+ Behavior on opacity {
+ NumberAnimation {
+ }
+ }
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0.0
+ color: gradientColor
+ }
+ GradientStop {
+ position: 1.0
+ color: "transparent"
+ }
+ }
+}
diff --git a/basicsuite/enterprise-gallery/PieMenuControlView.qml b/basicsuite/enterprise-gallery/PieMenuControlView.qml
new file mode 100644
index 0000000..cba341b
--- /dev/null
+++ b/basicsuite/enterprise-gallery/PieMenuControlView.qml
@@ -0,0 +1,195 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+import QtQuick.Controls 1.0
+import QtQuick.Enterprise.Controls 1.0
+
+Rectangle {
+ id: view
+ color: customizerItem.currentStyleDark ? "#111" : "#555"
+
+ Behavior on color {
+ ColorAnimation {}
+ }
+
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Back) {
+ stackView.pop();
+ event.accepted = true;
+ }
+ }
+
+ property bool darkBackground: true
+
+ property Component mouseArea
+
+ property Component customizer: Column {
+ property alias currentStylePath: stylePicker.currentStylePath
+ property alias currentStyleDark: stylePicker.currentStyleDark
+
+ StylePicker {
+ id: stylePicker
+ currentIndex: 0
+
+ model: ListModel {
+ ListElement {
+ name: "Default"
+ path: "PieMenuDefaultStyle.qml"
+ dark: false
+ }
+ ListElement {
+ name: "Dark"
+ path: "PieMenuDarkStyle.qml"
+ dark: true
+ }
+ }
+ }
+ }
+
+ property alias controlItem: pieMenu
+ property alias customizerItem: customizerLoader.item
+
+ Item {
+ id: controlBoundsItem
+ width: parent.width
+ height: parent.height - toolbar.height
+ visible: customizerLoader.opacity === 0
+
+ Image {
+ id: bgImage
+ anchors.centerIn: parent
+ height: 48
+ Text {
+ id: bgLabel
+ anchors.top: parent.bottom
+ anchors.topMargin: 20
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: "Tap to open"
+ color: "#999"
+ font.pointSize: 20
+ }
+ }
+
+ MouseArea {
+ id: touchArea
+ anchors.fill: parent
+
+ onClicked: {
+ pieMenu.popup(touchArea.mouseX, touchArea.mouseY)
+ }
+ }
+
+ Item {
+ width: labelText.width
+ height: labelText.height
+ anchors.bottom: pieMenu.top
+ anchors.bottomMargin: 10
+ anchors.horizontalCenter: pieMenu.horizontalCenter
+ visible: pieMenu.visible
+
+ Item {
+ id: labelBlurGuard
+ anchors.centerIn: parent
+ width: labelText.implicitWidth * 2
+ height: labelText.implicitHeight * 2
+
+ Text {
+ id: labelText
+ font.pointSize: 20
+ text: pieMenu.currentIndex !== -1 ? pieMenu.menuItems[pieMenu.currentIndex].text : ""
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.centerIn: parent
+ color: "#ccc"
+ antialiasing: true
+ }
+ }
+ }
+
+ PieMenu {
+ id: pieMenu
+ activationMode: ActivationMode.ActivateOnClick
+ width: Math.min(controlBoundsItem.width, controlBoundsItem.height) * 0.5
+ height: width
+
+ style: Qt.createComponent(customizerItem.currentStylePath)
+
+ MenuItem {
+ text: "Zoom In"
+ onTriggered: {
+ bgImage.source = iconSource
+ bgLabel.text = text + " selected"
+ }
+ iconSource: "images/zoom_in.png"
+ }
+ MenuItem {
+ text: "Zoom Out"
+ onTriggered: {
+ bgImage.source = iconSource
+ bgLabel.text = text + " selected"
+ }
+ iconSource: "images/zoom_out.png"
+ }
+ MenuItem {
+ text: "Info"
+ onTriggered: {
+ bgImage.source = iconSource
+ bgLabel.text = text + " selected"
+ }
+ iconSource: "images/info.png"
+ }
+ }
+ }
+ Loader {
+ id: customizerLoader
+ sourceComponent: customizer
+ opacity: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: 30
+ anchors.rightMargin: 30
+ y: parent.height / 2 - height / 2 - toolbar.height
+ visible: customizerLoader.opacity > 0
+
+ property alias view: view
+
+ Behavior on y {
+ NumberAnimation {
+ duration: 300
+ }
+ }
+
+ Behavior on opacity {
+ NumberAnimation {
+ duration: 300
+ }
+ }
+ }
+
+ ControlViewToolbar {
+ id: toolbar
+
+ onCustomizeClicked: {
+ customizerLoader.opacity = customizerLoader.opacity == 0 ? 1 : 0;
+ }
+ }
+}
diff --git a/basicsuite/enterprise-gallery/PieMenuDarkStyle.qml b/basicsuite/enterprise-gallery/PieMenuDarkStyle.qml
new file mode 100644
index 0000000..354775d
--- /dev/null
+++ b/basicsuite/enterprise-gallery/PieMenuDarkStyle.qml
@@ -0,0 +1,26 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+PieMenuStyle {
+ backgroundColor: "#222"
+ shadowColor: Qt.rgba(1, 1, 1, 0.26)
+}
diff --git a/basicsuite/enterprise-gallery/PieMenuDefaultStyle.qml b/basicsuite/enterprise-gallery/PieMenuDefaultStyle.qml
new file mode 100644
index 0000000..1ad8480
--- /dev/null
+++ b/basicsuite/enterprise-gallery/PieMenuDefaultStyle.qml
@@ -0,0 +1,24 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+PieMenuStyle {
+}
diff --git a/basicsuite/enterprise-gallery/StylePicker.qml b/basicsuite/enterprise-gallery/StylePicker.qml
new file mode 100644
index 0000000..48c1298
--- /dev/null
+++ b/basicsuite/enterprise-gallery/StylePicker.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+import QtQuick.Enterprise.Controls 1.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+
+ListView {
+ id: stylePicker
+ width: parent.width
+ height: root.height * 0.06
+ interactive: false
+ spacing: -1
+
+ orientation: ListView.Horizontal
+
+ readonly property string currentStylePath: stylePicker.model.get(stylePicker.currentIndex).path
+ readonly property bool currentStyleDark: stylePicker.model.get(stylePicker.currentIndex).dark !== undefined
+ ? stylePicker.model.get(stylePicker.currentIndex).dark
+ : true
+
+ ExclusiveGroup {
+ id: styleExclusiveGroup
+ }
+
+ delegate: Button {
+ width: stylePicker.width / stylePicker.model.count
+ height: stylePicker.height
+ checkable: true
+ checked: index == ListView.view.currentIndex
+ exclusiveGroup: styleExclusiveGroup
+
+ onCheckedChanged: {
+ if (checked) {
+ ListView.view.currentIndex = index;
+ }
+ }
+
+ style: ButtonStyle {
+ background: Rectangle {
+ readonly property color checkedColor: currentStyleDark ? "#444" : "#777"
+ readonly property color uncheckedColor: currentStyleDark ? "#222" : "#bbb"
+ color: checked ? checkedColor : uncheckedColor
+ border.color: checkedColor
+ border.width: 1
+ radius: 1
+ }
+
+ label: Text {
+ text: name
+ color: currentStyleDark ? "white" : (checked ? "white" : "black")
+ font.pixelSize: root.toPixels(0.04)
+ font.family: openSans.name
+ anchors.centerIn: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+}
diff --git a/basicsuite/enterprise-gallery/description.txt b/basicsuite/enterprise-gallery/description.txt
new file mode 100644
index 0000000..ba0806c
--- /dev/null
+++ b/basicsuite/enterprise-gallery/description.txt
@@ -0,0 +1,3 @@
+The Gallery example showcases Qt Quick Enterprise Controls. If you have any suggestions for improvements to existing controls or ideas for new controls please email them to Qt.Enterprise-Controls@digia.com.
+
+Each control can be customized and styled through the API. We have included a small subset of these customization options in the gallery example, which you can explore and interact with under the "cog" or "gear" icon on the lower right corner of each control's page.
diff --git a/basicsuite/enterprise-gallery/enterprise-gallery.pro b/basicsuite/enterprise-gallery/enterprise-gallery.pro
new file mode 100644
index 0000000..3601432
--- /dev/null
+++ b/basicsuite/enterprise-gallery/enterprise-gallery.pro
@@ -0,0 +1,14 @@
+TARGET = enterprise-gallery
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ fonts \
+ images
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/enterprise-gallery/fonts/LICENSE.txt b/basicsuite/enterprise-gallery/fonts/LICENSE.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/basicsuite/enterprise-gallery/fonts/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/basicsuite/enterprise-gallery/fonts/OpenSans-Regular.ttf b/basicsuite/enterprise-gallery/fonts/OpenSans-Regular.ttf
new file mode 100644
index 0000000..db43334
--- /dev/null
+++ b/basicsuite/enterprise-gallery/fonts/OpenSans-Regular.ttf
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/background-light.png b/basicsuite/enterprise-gallery/images/background-light.png
new file mode 100644
index 0000000..2f76984
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/background-light.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/background.png b/basicsuite/enterprise-gallery/images/background.png
new file mode 100644
index 0000000..a3f4302
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/background.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/center-light.png b/basicsuite/enterprise-gallery/images/center-light.png
new file mode 100644
index 0000000..75add20
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/center-light.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/center.png b/basicsuite/enterprise-gallery/images/center.png
new file mode 100644
index 0000000..b18a5fa
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/center.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/icon-go.png b/basicsuite/enterprise-gallery/images/icon-go.png
new file mode 100644
index 0000000..ed86c2d
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/icon-go.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/icon-settings.png b/basicsuite/enterprise-gallery/images/icon-settings.png
new file mode 100644
index 0000000..6f37083
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/icon-settings.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/info.png b/basicsuite/enterprise-gallery/images/info.png
new file mode 100644
index 0000000..5c7a9df
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/info.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/needle-light.png b/basicsuite/enterprise-gallery/images/needle-light.png
new file mode 100644
index 0000000..d486d9e
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/needle-light.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/needle.png b/basicsuite/enterprise-gallery/images/needle.png
new file mode 100644
index 0000000..6b10c60
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/needle.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/qt-logo.png b/basicsuite/enterprise-gallery/images/qt-logo.png
new file mode 100644
index 0000000..14ddf2a
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/qt-logo.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/zoom_in.png b/basicsuite/enterprise-gallery/images/zoom_in.png
new file mode 100644
index 0000000..4128210
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/zoom_in.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/images/zoom_out.png b/basicsuite/enterprise-gallery/images/zoom_out.png
new file mode 100644
index 0000000..772d6ac
--- /dev/null
+++ b/basicsuite/enterprise-gallery/images/zoom_out.png
Binary files differ
diff --git a/basicsuite/enterprise-gallery/main.qml b/basicsuite/enterprise-gallery/main.qml
new file mode 100644
index 0000000..f1f2e17
--- /dev/null
+++ b/basicsuite/enterprise-gallery/main.qml
@@ -0,0 +1,254 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtQuick Enterprise Controls Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+import QtQuick.Controls.Private 1.0
+import QtQuick.Dialogs 1.0
+import QtQuick.Enterprise.Controls 1.0
+import QtQuick.Enterprise.Controls.Styles 1.0
+import QtQuick.Window 2.1
+
+Rectangle {
+ id: root
+ visible: true
+ width: 480
+ height: 800
+
+ color: "#161616"
+ //title: "QtQuick Enterprise Controls Demo"
+
+ function toPixels(percentage) {
+ return percentage * Math.min(root.width, root.height);
+ }
+
+ property bool isScreenPortrait: height > width
+ property color fontColor: "white"
+ readonly property color lightBackgroundColor: "#ccc"
+ readonly property color darkBackgroundColor: "#161616"
+ property real customizerPropertySpacing: 10
+ property real colorPickerRowSpacing: 8
+
+ property Component circularGauge: CircularGaugeView {}
+
+ property Component dial: ControlView {
+ darkBackground: false
+
+ control: Dial {
+ id: dial
+ width: root.toPixels(0.3)
+ height: width
+
+ /*!
+ Determines whether the dial animates its rotation to the new value when
+ a single click or touch is received on the dial.
+ */
+ property bool animate: customizerItem.animate
+
+ Behavior on value {
+ enabled: dial.animate && !dial.pressed
+ NumberAnimation {
+ duration: 300
+ easing.type: Easing.OutSine
+ }
+ }
+
+ Text {
+ text: "Volume"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: dial.bottom
+ anchors.topMargin: 10
+ font.pixelSize: root.toPixels(0.045)
+ color: "#4e4e4e"
+ styleColor: "#ffffff"
+ style: Text.Raised
+ }
+ }
+
+ customizer: Column {
+ spacing: customizerPropertySpacing
+
+ property alias animate: animateCheckBox.checked
+
+ CustomizerLabel {
+ text: "Animate"
+ color: "black"
+ }
+
+ CustomizerCheckBox {
+ id: animateCheckBox
+ }
+ }
+ }
+
+ property Component delayButton: ControlView {
+ darkBackground: false
+
+ control: DelayButton {
+ text: "Alarm"
+ anchors.centerIn: parent
+ width: toPixels(0.3)
+ height: width
+ }
+ }
+
+ property Component gauge: ControlView {
+ id: gaugeView
+ control: Gauge {
+ id: gauge
+ width: orientation === Qt.Vertical ? root.toPixels(0.15) : gaugeView.controlBounds.width * 0.65
+ height: orientation === Qt.Vertical ? root.toPixels(0.65) : gaugeView.controlBounds.height * 0.15
+ anchors.centerIn: parent
+
+ minimumValue: 0
+ value: customizerItem.value
+ maximumValue: 100
+ orientation: customizerItem.orientationFlag ? Qt.Vertical : Qt.Horizontal
+ tickmarkAlignment: orientation === Qt.Vertical
+ ? (customizerItem.alignFlag ? Qt.AlignLeft : Qt.AlignRight)
+ : (customizerItem.alignFlag ? Qt.AlignTop : Qt.AlignBottom)
+ }
+
+ customizer: Column {
+ spacing: customizerPropertySpacing
+
+ property alias value: valueSlider.value
+ property alias orientationFlag: orientationCheckBox.checked
+ property alias alignFlag: alignCheckBox.checked
+
+ CustomizerLabel {
+ text: "Value"
+ }
+
+ CustomizerSlider {
+ id: valueSlider
+ minimumValue: 0
+ value: 50
+ maximumValue: 100
+ }
+
+ CustomizerLabel {
+ text: "Vertical orientation"
+ }
+
+ CustomizerCheckBox {
+ id: orientationCheckBox
+ checked: true
+ }
+
+ CustomizerLabel {
+ text: controlItem.orientation === Qt.Vertical ? "Left align" : "Top align"
+ }
+
+ CustomizerCheckBox {
+ id: alignCheckBox
+ checked: true
+ }
+ }
+ }
+
+ property Component toggleButton: ControlView {
+ darkBackground: false
+
+ control: ToggleButton {
+ text: checked ? "On" : "Off"
+ width: toPixels(0.3)
+ height: width
+ anchors.centerIn: parent
+ }
+ }
+
+ property Component pieMenu: PieMenuControlView {}
+
+ FontLoader {
+ id: openSans
+ Component.onCompleted: {
+ // QTBUG-35909
+ if (Qt.platform.os === "ios")
+ name = "Open Sans"
+ else
+ source = "fonts/OpenSans-Regular.ttf"
+ }
+ }
+
+ property var componentMap: {
+ "CircularGauge": circularGauge,
+ "DelayButton": delayButton,
+ "Dial": dial,
+ "Gauge": gauge,
+ "PieMenu": pieMenu,
+ "ToggleButton": toggleButton
+ }
+
+ StackView {
+ id: stackView
+ anchors.fill: parent
+
+ initialItem: ListView {
+ model: ListModel {
+ ListElement {
+ title: "CircularGauge"
+ }
+ ListElement {
+ title: "DelayButton"
+ }
+ ListElement {
+ title: "Dial"
+ }
+ ListElement {
+ title: "Gauge"
+ }
+ //ListElement {
+ // title: "PieMenu"
+ //}
+ ListElement {
+ title: "ToggleButton"
+ }
+ }
+
+ delegate: Button {
+ width: stackView.width
+ height: root.height * 0.125
+ text: title
+
+ Image {
+ source: "images/icon-go.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: 30
+ }
+
+ style: BlackButtonStyle {
+ fontColor: root.fontColor
+ }
+
+ onClicked: {
+ if (stackView.depth == 1) {
+ // Only push the control view if we haven't already pushed it...
+ stackView.push({item: componentMap[title]});
+ stackView.currentItem.forceActiveFocus();
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/enterprise-gallery/preview_l.jpg b/basicsuite/enterprise-gallery/preview_l.jpg
new file mode 100644
index 0000000..8ddcad8
--- /dev/null
+++ b/basicsuite/enterprise-gallery/preview_l.jpg
Binary files differ
diff --git a/basicsuite/enterprise-gallery/title.txt b/basicsuite/enterprise-gallery/title.txt
new file mode 100644
index 0000000..4ffcc0f
--- /dev/null
+++ b/basicsuite/enterprise-gallery/title.txt
@@ -0,0 +1 @@
+Qt Quick Enterprise Controls - Gallery
diff --git a/basicsuite/graphicaleffects/Checkers.qml b/basicsuite/graphicaleffects/Checkers.qml
new file mode 100644
index 0000000..4dc37b1
--- /dev/null
+++ b/basicsuite/graphicaleffects/Checkers.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+
+// The checkers background
+ShaderEffect {
+
+ property real tileSize: 16
+ property color color1: Qt.rgba(0.7, 0.7, 0.7, 1);
+ property color color2: Qt.rgba(0.6, 0.6, 0.6, 1);
+
+ property size _pixelSize: Qt.size(Math.PI * width / tileSize, Math.PI * height / tileSize);
+
+ fragmentShader:
+ "
+ uniform lowp vec4 color1;
+ uniform lowp vec4 color2;
+ uniform lowp float qt_Opacity;
+ uniform highp vec2 _pixelSize;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ highp vec2 tc = sign(sin(qt_TexCoord0 * _pixelSize));
+ if (tc.x != tc.y)
+ gl_FragColor = color1 * qt_Opacity;
+ else
+ gl_FragColor = color2 * qt_Opacity;
+ }
+ "
+}
diff --git a/basicsuite/graphicaleffects/description.txt b/basicsuite/graphicaleffects/description.txt
new file mode 100644
index 0000000..c19b2c4
--- /dev/null
+++ b/basicsuite/graphicaleffects/description.txt
@@ -0,0 +1,4 @@
+This example shows the Qt Quick 2.0 ShaderEffect type and the Qt Graphical Effects module. Qt Quick 2.0 provides the ability to use inline GLSL in your Qt Quick applications to create stunning visual effects.
+
+However, as UIs typically reuse many of the same effects, the Qt Graphical Effects module provides a set of predefined, commonly used effects. This includes blur, drop-shadows, glow, blending, opacity masks and more.
+
diff --git a/basicsuite/graphicaleffects/effect_BrightnessContrast.qml b/basicsuite/graphicaleffects/effect_BrightnessContrast.qml
new file mode 100644
index 0000000..c4d425b
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_BrightnessContrast.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+
+ id: root
+
+ property real inputX: 0.7;
+ property real feedbackX: effect.brightness
+ property string nameX: "Brightness"
+
+ property real inputY: 0.8;
+ property real feedbackY: effect.contrast
+ property string nameY: "Contrast"
+
+ Image {
+ id: image
+ source: "images/bug.jpg"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ BrightnessContrast {
+ id: effect;
+
+ source: image
+ anchors.fill: source
+
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+
+ brightness: inputX * 2 - 1;
+ contrast: inputY * 2 - 1;
+ }
+
+}
diff --git a/basicsuite/graphicaleffects/effect_Colorize.qml b/basicsuite/graphicaleffects/effect_Colorize.qml
new file mode 100644
index 0000000..a6007b2
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_Colorize.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+ id: root
+
+ property real inputX: 0.6;
+ property real feedbackX: effect.hue
+ property string nameX: "Hue"
+
+ property real inputY: 0.7
+ property real feedbackY: effect.saturation
+ property string nameY: "Saturation"
+
+ Image {
+ id: image
+ source: "images/bug.jpg"
+ width: Math.min(root.width, root.height) * 0.8;
+ height: width
+ sourceSize: Qt.size(width, height);
+ anchors.centerIn: parent
+ }
+
+ Colorize {
+ id: effect;
+
+ source: image
+ anchors.fill: source
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+
+ hue: root.inputX * 2 - 1;
+ saturation: root.inputY
+ }
+}
diff --git a/basicsuite/graphicaleffects/effect_CustomDissolve.qml b/basicsuite/graphicaleffects/effect_CustomDissolve.qml
new file mode 100644
index 0000000..a7c4522
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_CustomDissolve.qml
@@ -0,0 +1,165 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Item {
+
+
+ width: 700
+ height: 600
+ id: root
+
+ property real inputX: 0.5;
+ property real feedbackX: inputX
+ property string nameX: "Dissolution"
+
+ property real inputY: 0.5;
+ property real feedbackY: effect.amplitude
+ property string nameY: "Amplitude"
+
+ Rectangle {
+ id: sourceItem
+ anchors.centerIn: parent
+ width: text.width + 50
+ height: text.height + 20
+ gradient: Gradient {
+ GradientStop { position: 0; color: "steelblue" }
+ GradientStop { position: 1; color: "black" }
+ }
+ border.color: "lightsteelblue"
+ border.width: 2
+
+//? color: "transparent"
+
+ radius: 10
+
+ layer.enabled: true
+ layer.smooth: true
+ layer.sourceRect: Qt.rect(-1, -1, width + 2, height + 2);
+
+ visible: false
+
+ Text {
+ id: text
+ font.pixelSize: root.height * 0.08
+ anchors.centerIn: parent;
+ text: "Code Less, Create More!"
+ color: "lightsteelblue"
+ style: Text.Raised
+
+ }
+ }
+
+ ShaderEffect {
+
+ id: effect
+
+ anchors.fill: sourceItem;
+
+ property variant source: sourceItem;
+
+ property real t: (1 + tlength) * (1 - root.inputX) - tlength;
+ property real tlength: 1.0
+ property real amplitude: 2.0 * height * root.inputY;
+
+ mesh: "40x4"
+
+ vertexShader:
+ "
+ uniform highp mat4 qt_Matrix;
+ uniform lowp float t;
+ uniform lowp float tlength;
+ uniform highp float amplitude;
+
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+
+ varying highp vec2 vTexCoord;
+ varying lowp float vOpacity;
+
+ void main() {
+ vTexCoord = qt_MultiTexCoord0;
+
+ vec4 pos = qt_Vertex;
+
+ lowp float tt = smoothstep(t, t+tlength, qt_MultiTexCoord0.x);
+
+ vOpacity = 1.0 - tt;
+
+ pos.y += (amplitude * (qt_MultiTexCoord0.y * 2.0 - 1.0) * (-2.0 * tt)
+ + 3.0 * amplitude * (qt_MultiTexCoord0.y * 2.0 - 1.0)
+ + amplitude * sin(0.0 + tt * 2.14152 * qt_MultiTexCoord0.x)
+ + amplitude * sin(0.0 + tt * 7.4567)
+ ) * tt;
+
+ pos.x += amplitude * sin(6.0 + tt * 4.4567) * tt;
+
+ gl_Position = qt_Matrix * pos;
+ }
+ "
+ fragmentShader:
+ "
+ uniform sampler2D source;
+
+ uniform lowp float t;
+ uniform lowp float tlength;
+ uniform lowp float qt_Opacity;
+
+ varying highp vec2 vTexCoord;
+ varying lowp float vOpacity;
+
+ // Noise function from: http://stackoverflow.com/questions/4200224/random-noise-functions-for-glsl
+ highp float rand(highp vec2 n) {
+ return fract(sin(dot(n.xy, vec2(12.9898, 78.233))) * 43758.5453);
+ }
+
+ void main() {
+ lowp vec4 tex = texture2D(source, vTexCoord);
+ lowp float opacity = 1.0 - smoothstep(0.9, 1.0, vOpacity);
+ lowp float particlify = smoothstep(1.0 - vOpacity, 1.0, rand(vTexCoord)) * vOpacity;
+ gl_FragColor = tex * mix(vOpacity, particlify, opacity) * qt_Opacity;
+ }
+
+ "
+
+ }
+
+}
diff --git a/basicsuite/graphicaleffects/effect_CustomWave.qml b/basicsuite/graphicaleffects/effect_CustomWave.qml
new file mode 100644
index 0000000..eff9a45
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_CustomWave.qml
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Item {
+ id: root
+
+ property real inputX: 0.9;
+ property real feedbackX: shader.zrot
+ property string nameX: "Rotation"
+
+ property real inputY: 0.7
+ property real feedbackY: shader.amp
+ property string nameY: "Amplitude"
+
+
+ ShaderEffect {
+ id: shader
+ width: height
+ height: parent.height
+ anchors.centerIn: parent;
+ scale: height > root.height * 0.8 ? root.height * 0.8 / height : 1;
+
+ blending: true
+
+ mesh: "50x50"
+
+ property variant size: Qt.size(width, height);
+
+ property variant source: Image { source: "images/bug.jpg" }
+
+ property real amp: root.inputY * 0.1;
+
+ property real xrot: 2 / 8 * Math.PI;
+
+ property real zrot: -root.inputX * Math.PI * 2
+
+ property real time: 0
+ NumberAnimation on time {
+ id: timeAnimation
+ from: 0;
+ to: Math.PI * 2;
+ duration: 3457;
+ loops: Animation.Infinite
+ running: true;
+ }
+
+ vertexShader: "
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ uniform highp mat4 qt_Matrix;
+ uniform highp float xrot;
+ uniform highp float zrot;
+ uniform highp vec2 size;
+ uniform highp float time;
+ uniform highp float amp;
+ varying lowp vec2 v_TexCoord;
+ varying lowp float v_light;
+ void main() {
+ highp float xcosa = cos(xrot);
+ highp float xsina = sin(xrot);
+
+ highp mat4 xrot = mat4(1, 0, 0, 0,
+ 0, xcosa, xsina, 0,
+ 0, -xsina, xcosa, 0,
+ 0, 0, 0, 1);
+
+ highp float zcosa = cos(zrot);
+ highp float zsina = sin(zrot);
+
+ highp mat4 zrot = mat4(zcosa, zsina, 0, 0,
+ -zsina, zcosa, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1);
+
+ highp float near = 2.;
+ highp float far = 6.;
+ highp float fmn = far - near;
+
+ highp mat4 proj = mat4(near, 0, 0, 0,
+ 0, near, 0, 0,
+ 0, 0, -(far + near) / fmn, -1.,
+ 0, 0, -2. * far * near / fmn, 1);
+
+ highp mat4 model = mat4(2, 0, 0, 0,
+ 0, 2, 0, 0,
+ 0, 0, 2, 0,
+ 0, -.5, -4, 1);
+
+ vec4 nLocPos = vec4(qt_Vertex.xy * 2.0 / size - 1.0, 0, 1);
+ nLocPos.z = cos(nLocPos.x * 5. + time) * amp;
+
+ vec4 pos = proj * model * xrot * zrot * nLocPos;
+ pos = vec4(pos.xyx/pos.w, 1);
+
+ gl_Position = qt_Matrix * vec4((pos.xy + 1.0) / 2.0 * size , 0, 1);
+
+ v_TexCoord = qt_MultiTexCoord0;
+
+
+ v_light = dot(normalize(vec3(-sin(nLocPos.x * 5.0 + time) * 5.0 * amp, 0, -1)), vec3(0, 0, -1));
+ }
+ "
+
+ fragmentShader: "
+ uniform lowp sampler2D source;
+ uniform lowp float qt_Opacity;
+ varying highp vec2 v_TexCoord;
+ varying lowp float v_light;
+ void main() {
+ highp vec4 c = texture2D(source, v_TexCoord);
+ gl_FragColor = (vec4(pow(v_light, 16.0)) * 0.3 + c) * qt_Opacity;
+ }
+ "
+
+ }
+
+}
+
+
diff --git a/basicsuite/graphicaleffects/effect_Displacement.qml b/basicsuite/graphicaleffects/effect_Displacement.qml
new file mode 100644
index 0000000..2ca3b6a
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_Displacement.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+
+ id: root
+
+ property real inputX: 0.1;
+
+ property real feedbackX: effect.displacement
+
+ property string nameX: "Displacement"
+
+ Image {
+ id: image
+ source: "images/bug.jpg"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ Image {
+ id: displacementMap
+ source: "images/glass_normal.png"
+ smooth: true
+ visible: false
+ }
+
+ Displace {
+ id: effect;
+
+ source: image
+ displacementSource: displacementMap
+ anchors.fill: source
+
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+
+ displacement: inputX
+ }
+
+}
diff --git a/basicsuite/graphicaleffects/effect_DropShadow.qml b/basicsuite/graphicaleffects/effect_DropShadow.qml
new file mode 100644
index 0000000..342e531
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_DropShadow.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+
+ id: root
+
+ property real inputX: 0.5;
+ property real inputY: 0.2;
+
+ property real feedbackX: effect.radius
+ property real feedbackY: effect.spread
+
+ property string nameX: "Radius"
+ property string nameY: "Spread"
+
+ Image {
+ id: image
+ source: "images/butterfly.png"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ DropShadow {
+ id: effect;
+
+ source: image
+ anchors.fill: source
+
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+
+ samples: 4
+
+ radius: root.inputX * 7
+ spread: root.inputY;
+
+ color: Qt.rgba(0, 0, 0, 0.4);
+
+ verticalOffset: 30.5
+ horizontalOffset: 30.5
+ }
+
+}
diff --git a/basicsuite/graphicaleffects/effect_GaussianBlur.qml b/basicsuite/graphicaleffects/effect_GaussianBlur.qml
new file mode 100644
index 0000000..33e5317
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_GaussianBlur.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+
+ id: root
+
+ property real inputX: 0.5;
+ property real inputY: 1
+
+ property real feedbackX: effect.radius
+ property real feedbackY: effect.deviation
+
+ property string nameX: "Radius"
+ property string nameY: "Deviation"
+
+ Image {
+ id: image
+ source: "images/bug.jpg"
+ width: Math.min(root.width, root.height) * 0.8;
+ height: width
+ sourceSize: Qt.size(width, height);
+ anchors.centerIn: parent
+ }
+
+ GaussianBlur {
+ id: effect;
+
+ source: image
+ anchors.fill: source
+
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+ samples: 4
+
+ deviation: root.inputY * 20;
+ radius: root.inputX * 7
+ }
+
+}
diff --git a/basicsuite/graphicaleffects/effect_Glow.qml b/basicsuite/graphicaleffects/effect_Glow.qml
new file mode 100644
index 0000000..96d1a4b
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_Glow.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+
+ id: root
+
+ property real inputX: 0.5;
+ property real inputY: 0.2;
+
+ property real feedbackX: effect.radius
+ property real feedbackY: effect.spread
+
+ property string nameX: "Radius"
+ property string nameY: "Spread"
+
+ Image {
+ id: image
+ source: "images/butterfly.png"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ Glow {
+ id: effect;
+
+ source: image
+ anchors.fill: source
+
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+
+ samples: 4
+
+ radius: root.inputX * 7
+ spread: root.inputY;
+
+ color: Qt.rgba(1, 0, 1, 1);
+ }
+}
diff --git a/basicsuite/graphicaleffects/effect_HueSaturation.qml b/basicsuite/graphicaleffects/effect_HueSaturation.qml
new file mode 100644
index 0000000..e799ae8
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_HueSaturation.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+ id: root
+
+ property real inputX: 0.6;
+ property real feedbackX: effect.hue
+ property string nameX: "Hue"
+
+ property real inputY: 0.2
+ property real feedbackY: effect.saturation
+ property string nameY: "Saturation"
+
+ Image {
+ id: image
+ source: "images/bug.jpg"
+ width: Math.min(root.width, root.height) * 0.8;
+ height: width
+ sourceSize: Qt.size(width, height);
+ anchors.centerIn: parent
+ }
+
+ HueSaturation {
+ id: effect;
+
+ source: image
+ anchors.fill: source
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+
+ hue: root.inputX * 2 - 1;
+ saturation: root.inputY * 2 - 1
+ }
+}
diff --git a/basicsuite/graphicaleffects/effect_OpacityMask.qml b/basicsuite/graphicaleffects/effect_OpacityMask.qml
new file mode 100644
index 0000000..fcf4df8
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_OpacityMask.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+
+ id: root
+
+ Image {
+ id: image
+ source: "images/bug.jpg"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ Image {
+ id: mask
+ source: "images/butterfly.png"
+ visible: false
+ }
+
+ OpacityMask {
+ id: effect;
+
+ source: image
+ maskSource: mask
+ anchors.fill: source
+
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+ }
+}
diff --git a/basicsuite/graphicaleffects/effect_ThresholdMask.qml b/basicsuite/graphicaleffects/effect_ThresholdMask.qml
new file mode 100644
index 0000000..b2b87b3
--- /dev/null
+++ b/basicsuite/graphicaleffects/effect_ThresholdMask.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+
+ id: root
+
+ property real inputX: 0.5;
+ property real inputY: 0.2;
+
+ property real feedbackX: effect.threshold
+ property real feedbackY: effect.spread
+
+ property string nameX: "Threshold"
+ property string nameY: "Spread"
+
+ Image {
+ id: image
+ source: "images/bug.jpg"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ Image {
+ id: mask
+ source: "images/fog.png"
+ visible: false
+ }
+
+ ThresholdMask {
+ id: effect;
+
+ source: image
+ maskSource: mask;
+ anchors.fill: source
+
+ scale: source.height > root.height * 0.8 ? root.height / source.height * 0.8 : 1;
+
+ threshold: root.inputX
+ spread: root.inputY
+ }
+
+}
diff --git a/basicsuite/graphicaleffects/graphicaleffects.pro b/basicsuite/graphicaleffects/graphicaleffects.pro
new file mode 100644
index 0000000..42e14ec
--- /dev/null
+++ b/basicsuite/graphicaleffects/graphicaleffects.pro
@@ -0,0 +1,13 @@
+TARGET = graphicaleffects
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ images
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/Graphical Effects/images/bug.jpg b/basicsuite/graphicaleffects/images/bug.jpg
index 43e3676..43e3676 100755
--- a/basicsuite/Graphical Effects/images/bug.jpg
+++ b/basicsuite/graphicaleffects/images/bug.jpg
Binary files differ
diff --git a/basicsuite/Graphical Effects/images/butterfly.png b/basicsuite/graphicaleffects/images/butterfly.png
index ce544f2..ce544f2 100644
--- a/basicsuite/Graphical Effects/images/butterfly.png
+++ b/basicsuite/graphicaleffects/images/butterfly.png
Binary files differ
diff --git a/basicsuite/Graphical Effects/images/fog.png b/basicsuite/graphicaleffects/images/fog.png
index f462222..f462222 100644
--- a/basicsuite/Graphical Effects/images/fog.png
+++ b/basicsuite/graphicaleffects/images/fog.png
Binary files differ
diff --git a/basicsuite/Graphical Effects/images/glass_normal.png b/basicsuite/graphicaleffects/images/glass_normal.png
index ba360ef..ba360ef 100755
--- a/basicsuite/Graphical Effects/images/glass_normal.png
+++ b/basicsuite/graphicaleffects/images/glass_normal.png
Binary files differ
diff --git a/basicsuite/graphicaleffects/main.qml b/basicsuite/graphicaleffects/main.qml
new file mode 100644
index 0000000..0108180
--- /dev/null
+++ b/basicsuite/graphicaleffects/main.qml
@@ -0,0 +1,231 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Item {
+ id: root
+
+ width: 1280
+ height: 720
+
+ Checkers {
+ id: checkers;
+ anchors.fill: parent
+ anchors.leftMargin: list.width
+ tileSize: 32
+ }
+
+ Loader {
+ id: loader
+ anchors.fill: checkers;
+ }
+
+ Rectangle {
+ id: listBackground
+ anchors.left: parent.left
+ anchors.right: checkers.left
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ color: "black"
+ }
+
+ ListModel {
+ id: listModel
+ ListElement { name: "Brignthness / Contrast"; file: "effect_BrightnessContrast.qml" }
+ ListElement { name: "Colorize"; file: "effect_Colorize.qml" }
+ ListElement { name: "Displacement"; file: "effect_Displacement.qml" }
+ ListElement { name: "Drop Shadow"; file: "effect_DropShadow.qml" }
+ ListElement { name: "Gaussian Blur"; file: "effect_GaussianBlur.qml" }
+ ListElement { name: "Glow"; file: "effect_Glow.qml" }
+ ListElement { name: "Hue / Saturation"; file: "effect_HueSaturation.qml" }
+ ListElement { name: "Opacity Mask"; file: "effect_OpacityMask.qml" }
+ ListElement { name: "Threshold Mask"; file: "effect_ThresholdMask.qml" }
+ ListElement { name: "Wave (custom)"; file: "effect_CustomWave.qml" }
+ ListElement { name: "Dissolve (custom)"; file: "effect_CustomDissolve.qml" }
+ }
+
+ ListView
+ {
+ id: list
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width / 4
+ height: parent.height - width
+
+ clip: true
+ focus: true
+
+ highlightMoveDuration: 0
+
+ onCurrentItemChanged: {
+ var entry = listModel.get(currentIndex);
+ loader.source = entry.file;
+ }
+
+ model: listModel
+
+ highlight: Rectangle {
+ color: "steelblue"
+ }
+
+ delegate: Item {
+ id: delegateRoot
+
+ width: list.width
+ height: root.height * 0.05
+
+ Rectangle {
+ width: parent.width
+ height: 3
+ anchors.bottom: parent.bottom
+ gradient: Gradient {
+ GradientStop { position: 0; color: "transparent" }
+ GradientStop { position: 0.5; color: "lightgray" }
+ GradientStop { position: 1; color: "transparent" }
+ }
+ }
+
+ Text {
+ color: "white"
+ font.pixelSize: parent.height * 0.5
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.verticalCenterOffset: -2
+ x: parent.width * 0.1
+ text: name
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: list.currentIndex = index;
+ }
+ }
+ }
+
+ Canvas {
+ id: canvas
+ anchors.fill: controller
+ anchors.margins: 10
+
+ property real padding: 20
+
+ onPaint: {
+ var ctx = canvas.getContext("2d");
+
+ var w = canvas.width
+ var h = canvas.height;
+
+
+ ctx.fillStyle = "rgb(50, 50, 50)"
+ ctx.beginPath();
+ ctx.roundedRect(0, 0, w, h, w * 0.1, w * 0.1);
+ ctx.fill();
+
+ var margin = canvas.padding;
+ var segmentSize = 4
+ ctx.strokeStyle = "gray"
+ ctx.beginPath();
+ ctx.moveTo(margin, margin);
+ ctx.lineTo(margin, h-margin);
+ ctx.moveTo(margin, h - margin);
+ ctx.lineTo(w-margin, h - margin);
+
+ var segmentCount = 11
+ for (var i = 0; i<segmentCount; ++i) {
+ var offset = margin + i * (w - margin * 2) / (segmentCount - 1);
+ ctx.moveTo(margin - segmentSize, offset);
+ ctx.lineTo(margin + segmentSize, offset);
+ ctx.moveTo(offset, h - margin - segmentSize);
+ ctx.lineTo(offset, h - margin + segmentSize);
+ }
+
+ ctx.stroke();
+ }
+ }
+
+ Text {
+ id: labelX
+ anchors.bottom: canvas.bottom
+ x: canvas.width * 0.4
+ anchors.bottomMargin: 2
+ text: (loader.item != undefined && typeof loader.item.nameX != 'undefined' ? loader.item.nameX : "")
+ + (loader.item != undefined && typeof loader.item.feedbackX != 'undefined' ? ": " + loader.item.feedbackX.toFixed(2) : "");
+
+ color: "white"
+ font.pixelSize: canvas.padding * 0.5
+ }
+
+ Text {
+ id: labelY
+
+ anchors.verticalCenter: canvas.verticalCenter
+ anchors.verticalCenterOffset: canvas.height * 0.15
+ anchors.left: canvas.left
+ transformOrigin: Item.TopLeft
+ rotation: -90
+ text: (loader.item != undefined && typeof loader.item.nameY != 'undefined' ? loader.item.nameY : "")
+ + (loader.item != undefined && typeof loader.item.feedbackY != 'undefined' ? ": " + loader.item.feedbackY.toFixed(2) : "");
+ color: "white"
+ font.pixelSize: canvas.padding * 0.5
+ }
+
+ MouseArea {
+ id: controller
+
+ anchors.top: list.bottom;
+ anchors.left: parent.left
+ anchors.right: checkers.left
+ anchors.bottom: parent.bottom;
+
+ onPositionChanged: {
+ var effect = loader.item;
+ function bound(val) { return Math.max(0, Math.min(1, val)); }
+ if (effect != undefined) {
+ if (typeof effect.inputX != 'undefined')
+ effect.inputX = bound(mouseX / controller.width);
+ if (typeof effect.inputY != 'undefined')
+ effect.inputY = bound(1 - mouseY / controller.height);
+ }
+ }
+
+ }
+
+
+}
diff --git a/basicsuite/Graphical Effects/preview_l.jpg b/basicsuite/graphicaleffects/preview_l.jpg
index 80fbbd5..80fbbd5 100644
--- a/basicsuite/Graphical Effects/preview_l.jpg
+++ b/basicsuite/graphicaleffects/preview_l.jpg
Binary files differ
diff --git a/basicsuite/graphicaleffects/title.txt b/basicsuite/graphicaleffects/title.txt
new file mode 100644
index 0000000..e048172
--- /dev/null
+++ b/basicsuite/graphicaleffects/title.txt
@@ -0,0 +1 @@
+Graphical Effects
diff --git a/basicsuite/launchersettings/BrightnessController.qml b/basicsuite/launchersettings/BrightnessController.qml
new file mode 100644
index 0000000..777fa30
--- /dev/null
+++ b/basicsuite/launchersettings/BrightnessController.qml
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtDroid.Utils 1.0
+import QtQuick 2.0
+
+QtObject {
+ function setBrightness(value)
+ {
+ DroidUtils.setDisplayBrightness(value)
+ }
+}
diff --git a/basicsuite/launchersettings/NetworkController.qml b/basicsuite/launchersettings/NetworkController.qml
new file mode 100644
index 0000000..85a8de6
--- /dev/null
+++ b/basicsuite/launchersettings/NetworkController.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtDroid.Utils 1.0
+import QtQuick 2.0
+
+QtObject {
+
+ function getIPAddress()
+ {
+ return DroidUtils.getIPAddress()
+ }
+
+ function getHostname()
+ {
+ return DroidUtils.getHostname()
+ }
+
+ function setHostname(value)
+ {
+ return DroidUtils.setHostname(value)
+ }
+
+}
diff --git a/basicsuite/launchersettings/NetworkList.qml b/basicsuite/launchersettings/NetworkList.qml
new file mode 100644
index 0000000..b733eb6
--- /dev/null
+++ b/basicsuite/launchersettings/NetworkList.qml
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import Qt.labs.wifi 0.1
+
+// ### TODO
+// - only 1 delagate open at the time
+
+Item {
+ Component {
+ id: listDelegate
+ Rectangle {
+ id: delegateBackground
+ property bool expanded: false
+ property bool connected: wifiManager.connectedSSID == network.ssid
+ property variant networkModel: model
+ property alias ssidText: ssidLabel.text
+ height: (expanded ? (connected ? 180: 260) : 70)
+ clip: true // ### fixme
+ color: "#5C5C5C"
+ border.color: "black"
+ border.width: 1
+
+ Behavior on height { NumberAnimation { duration: 500; easing.type: Easing.InOutCubic } }
+
+ width: parent.width
+
+ Text {
+ id: ssidLabel
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.margins: 10
+ font.pixelSize: 20
+ font.bold: true
+ color: "#E6E6E6"
+ text: network.ssid + (connected ? " (connected)" : "");
+ }
+
+ Text {
+ id: bssidLabel
+ anchors.top: ssidLabel.bottom
+ anchors.left: parent.left
+ anchors.margins: 5
+ anchors.leftMargin: 40
+ text: network.bssid
+ color: "#E6E6E6"
+ font.pixelSize: ssidLabel.font.pixelSize * 0.5
+ }
+
+ Text {
+ id: flagsLabel
+ x: 200
+ anchors.top: bssidLabel.top
+ text: (network.supportsWPA2 ? "WPA2 " : "")
+ + (network.supportsWPA ? "WPA " : "")
+ + (network.supportsWEP ? "WEP " : "")
+ + (network.supportsWPS ? "WPS " : "");
+ color: "#E6E6E6"
+ font.pixelSize: ssidLabel.font.pixelSize * 0.5
+ font.italic: true
+ }
+
+ Rectangle {
+ width: Math.max(100 + network.signalStrength, 0) / 100 * parent.width;
+ height: 20
+ radius: 10
+ antialiasing: true
+ anchors.margins: 20
+ anchors.right: parent.right
+ anchors.top: parent.top
+ color: "#BF8888"
+ border.color: "#212126"
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ parent.expanded = !expanded
+ }
+ }
+
+ TextField {
+ id: passwordInput
+ y: 100
+ height: 50
+ width: 300
+ placeholderText: "Enter Password"
+ visible: !connected
+ anchors.horizontalCenter: parent.horizontalCenter
+ font.pixelSize: 18
+ }
+
+ Button {
+ style: root.buttonStyle
+ y: passwordInput.visible ? passwordInput.y + passwordInput.height + 20 : passwordInput.y
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: connected ? "Disconnect" : "Connect"
+ onClicked: {
+ networkView.currentIndex = index
+ if (connected) {
+ wifiManager.disconnect()
+ } else {
+ networkView.activeNetwork = networkView.currentItem
+ wifiManager.connect(network, passwordInput.text);
+ }
+ }
+ }
+ }
+ }
+
+ ListView {
+ id: networkView
+ anchors.fill: parent
+ model: wifiManager.networks
+ delegate: listDelegate
+
+ property variant activeNetwork: ""
+ property variant networkState: wifiManager.networkState
+
+ onNetworkStateChanged: {
+ if (activeNetwork) {
+ var ssid = activeNetwork.networkModel.ssid
+ var state = ""
+ if (networkState == WifiManager.ObtainingIPAddress)
+ state = " (obtaining ip..)"
+ else if (networkState == WifiManager.DhcpRequestFailed)
+ state = " (dhcp request failed)"
+ else if (networkState == WifiManager.Connected)
+ state = " (connected)"
+ activeNetwork.ssidText = ssid + state
+ }
+ }
+ }
+}
diff --git a/basicsuite/launchersettings/PoweroffAction.qml b/basicsuite/launchersettings/PoweroffAction.qml
new file mode 100644
index 0000000..8c14b79
--- /dev/null
+++ b/basicsuite/launchersettings/PoweroffAction.qml
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick.Controls 1.0
+import QtDroid.Utils 1.0
+
+Action
+{
+ text: "Power Off!"
+ onTriggered: DroidUtils.powerOffSystem()();
+}
diff --git a/basicsuite/launchersettings/RebootAction.qml b/basicsuite/launchersettings/RebootAction.qml
new file mode 100644
index 0000000..e6f57ca
--- /dev/null
+++ b/basicsuite/launchersettings/RebootAction.qml
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick.Controls 1.0
+import QtDroid.Utils 1.0
+
+Action
+{
+ text: "Reboot"
+ onTriggered: DroidUtils.rebootSystem();
+}
diff --git a/basicsuite/launchersettings/WifiController.qml b/basicsuite/launchersettings/WifiController.qml
new file mode 100644
index 0000000..3725478
--- /dev/null
+++ b/basicsuite/launchersettings/WifiController.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import Qt.labs.wifi 0.1 as Wifi
+
+QtObject {
+ function createWifiGroupBox()
+ {
+ if (Wifi.Interface.wifiSupported()) {
+ var component = Qt.createComponent("WifiGroupBox.qml");
+ var wifi = component.createObject(wifiOptions.contentItem);
+ if (wifi == null) {
+ wifiOptions.visible = false
+ print("Error creating WifiGroupBox");
+ }
+ } else {
+ wifiOptions.visible = false
+ }
+ }
+}
diff --git a/basicsuite/launchersettings/WifiGroupBox.qml b/basicsuite/launchersettings/WifiGroupBox.qml
new file mode 100644
index 0000000..e88f5cb
--- /dev/null
+++ b/basicsuite/launchersettings/WifiGroupBox.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import QtQuick.Layouts 1.0
+
+import Qt.labs.wifi 0.1
+
+ColumnLayout {
+
+ anchors.fill:parent
+
+ WifiManager {
+ id: wifiManager
+ scanning: backendReady
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+
+ RowLayout {
+
+ Button {
+ id: wifiOnOffButton
+ Layout.fillWidth: true
+ style: root.buttonStyle
+ text: (wifiManager.backendReady) ? "Switch Off" : "Switch On"
+ onClicked: {
+ if (wifiManager.backendReady) {
+ if (networkList.visible)
+ networkList.visible = false
+ wifiManager.stop()
+ } else {
+ wifiManager.start()
+ }
+ }
+ }
+
+ Button {
+ id: listNetworksButton
+ Layout.fillWidth: true
+ style: root.buttonStyle
+ visible: wifiManager.backendReady
+ text: (networkList.visible) ? "Hide wifi networks"
+ : "List available wifi networks"
+ onClicked: networkList.visible = !networkList.visible
+ }
+ }
+
+ NetworkList {
+ id: networkList
+ implicitHeight: 400
+ Layout.fillWidth: true
+ visible: false
+ clip: true
+ }
+ }
+}
diff --git a/basicsuite/Launcher Settings/description.txt b/basicsuite/launchersettings/description.txt
index 98ce6f6..98ce6f6 100644
--- a/basicsuite/Launcher Settings/description.txt
+++ b/basicsuite/launchersettings/description.txt
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/button_default.png b/basicsuite/launchersettings/images/button_default.png
index 6d6cfd9..6d6cfd9 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/button_default.png
+++ b/basicsuite/launchersettings/images/button_default.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/button_pressed.png b/basicsuite/launchersettings/images/button_pressed.png
index ab78b6e..ab78b6e 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/button_pressed.png
+++ b/basicsuite/launchersettings/images/button_pressed.png
Binary files differ
diff --git a/basicsuite/launchersettings/images/groupbox.png b/basicsuite/launchersettings/images/groupbox.png
new file mode 100644
index 0000000..98585ee
--- /dev/null
+++ b/basicsuite/launchersettings/images/groupbox.png
Binary files differ
diff --git a/basicsuite/launchersettings/launchersettings.pro b/basicsuite/launchersettings/launchersettings.pro
new file mode 100644
index 0000000..e89b4d0
--- /dev/null
+++ b/basicsuite/launchersettings/launchersettings.pro
@@ -0,0 +1,12 @@
+TARGET = launchersettings
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = *.qml
+content.path = $$DESTPATH
+content.files += images
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content
diff --git a/basicsuite/launchersettings/main.qml b/basicsuite/launchersettings/main.qml
new file mode 100644
index 0000000..718bf69
--- /dev/null
+++ b/basicsuite/launchersettings/main.qml
@@ -0,0 +1,272 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+import QtQuick.Controls 1.0
+import QtQuick.Layouts 1.0
+import QtQuick.Controls.Styles 1.0
+import QtQuick.Controls.Private 1.0
+
+Rectangle {
+ id: root
+ width: 1280
+ height: 800
+ color: "#212126"
+ property int margin: 10
+ property alias buttonStyle: buttonStyle
+
+ // ******************************* STYLES **********************************
+ Component {
+ id: buttonStyle
+ ButtonStyle {
+ panel: Item {
+ implicitHeight: 50
+ implicitWidth: 320
+ BorderImage {
+ anchors.fill: parent
+ antialiasing: true
+ border.bottom: 8
+ border.top: 8
+ border.left: 8
+ border.right: 8
+ anchors.margins: control.pressed ? -4 : 0
+ source: control.pressed ? "images/button_pressed.png" : "images/button_default.png"
+ Text {
+ text: control.text
+ anchors.centerIn: parent
+ color: "white"
+ font.pixelSize: 23
+ renderType: Text.NativeRendering
+ }
+ }
+ }
+ }
+ }
+
+ // GroupBoxStyle currently is not available as a public API, so we write our own...
+ Component {
+ id: groupBoxStyle
+ Style {
+ // The margin from the content item to the groupbox
+ padding {
+ top: (control.title.length > 0 ? TextSingleton.implicitHeight : 0) + 30
+ left: 8
+ right: 8
+ bottom: 8
+ }
+ // The groupbox frame
+ property Component panel: Item {
+ anchors.fill: parent
+
+ Text {
+ id: label
+ anchors.bottom: borderImage.top
+ anchors.margins: 2
+ text: control.title
+ font.pixelSize: 22
+ color: "white"
+ renderType: Text.NativeRendering
+ }
+
+ BorderImage {
+ id: borderImage
+ anchors.fill: parent
+ anchors.topMargin: padding.top - 7
+ source: "images/groupbox.png"
+ border.left: 4
+ border.right: 4
+ border.top: 4
+ border.bottom: 4
+ }
+ }
+ }
+ }
+
+ // ******************************** UI ****************************************
+ Loader { id: rebootActionLoader; source: "RebootAction.qml" }
+ Loader { id: poweroffActionLoader; source: "PoweroffAction.qml" }
+ Loader { id: brightnessControllerLoader; source: "BrightnessController.qml" }
+ Loader { id: networkControllerLoader; source: "NetworkController.qml" }
+ Loader { id: wifiControllerLoader; source: "WifiController.qml" }
+
+ Flickable {
+ anchors.top: parent.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.margins: margin
+ anchors.topMargin: 50
+ height: parent.height
+ width: mainLayout.width
+ contentHeight: mainLayout.height + 100
+ contentWidth: mainLayout.width
+ flickableDirection: Flickable.VerticalFlick
+
+ ColumnLayout {
+ id: mainLayout
+ width: 800
+ height: implicitHeight
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ GroupBox {
+ id: powerOptions
+ title: "Power"
+ Layout.fillWidth: true
+ style: groupBoxStyle
+ implicitWidth: 0
+
+ RowLayout {
+ id: powerButtonRow
+
+ anchors.fill: parent
+
+ Button {
+ style: buttonStyle
+ text: "Shut Down"
+ Layout.fillWidth: true
+ action: poweroffActionLoader.item;
+ enabled: action != undefined
+
+ }
+
+ Button {
+ style: buttonStyle
+ text: "Reboot"
+ Layout.fillWidth: true
+ action: rebootActionLoader.item;
+ enabled: action != undefined
+ }
+ }
+
+ }
+
+ GroupBox {
+ id: displayOptions
+ title: "Display"
+ style: groupBoxStyle
+ Layout.fillWidth: true
+ implicitWidth: 0
+
+ GridLayout {
+ id: displayGrid
+
+ rows: 2
+ flow: GridLayout.TopToBottom
+ anchors.fill: parent
+
+ Label { text: "Brightness: "; font.pixelSize: 18; color: "white" }
+ Label { text: "Display FPS: "; font.pixelSize: 18; color: "white" }
+
+ Slider {
+ maximumValue: 255
+ minimumValue: 1
+ value: 255
+ Layout.fillWidth: true
+ onValueChanged: {
+ if (brightnessControllerLoader.item != undefined) {
+ brightnessControllerLoader.item.setBrightness(value);
+ }
+ }
+ }
+ CheckBox {
+ onCheckedChanged: engine.fpsEnabled = checked;
+ }
+ }
+ }
+
+ GroupBox {
+ id: networkOptions
+ title: "Network"
+ style: groupBoxStyle
+ Layout.fillWidth: true
+ implicitWidth: 0
+
+ GridLayout {
+ id: networkGrid
+
+ rows: 2
+ columns: 3
+ flow: GridLayout.TopToBottom
+ anchors.fill: parent
+
+ Label { text: "Hostname: "; font.pixelSize: 18; color: "white" }
+ Label { text: "IP address: "; font.pixelSize: 18; color: "white"}
+
+ TextField {
+ id: hostname
+ implicitHeight: hostnameButton.height - 8
+ text: if (networkControllerLoader.item != undefined) { networkControllerLoader.item.getHostname(); }
+ font.pixelSize: 18
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: if (networkControllerLoader.item != undefined) { networkControllerLoader.item.getIPAddress(); }
+ font.pixelSize: 18
+ color: "white"
+ }
+
+ Button {
+ id: hostnameButton
+ style: buttonStyle
+ text: "Change hostname"
+ onClicked: networkControllerLoader.item.setHostname(hostname.text);
+ enabled: networkControllerLoader.item != undefined
+ }
+
+ }
+ }
+
+ GroupBox {
+ id: wifiOptions
+ title: "Wifi"
+ style: groupBoxStyle
+ Layout.fillWidth: true
+ }
+
+ Component.onCompleted: {
+ if (wifiControllerLoader.item != undefined)
+ wifiControllerLoader.item.createWifiGroupBox()
+ else
+ wifiOptions.visible = false
+ }
+ }
+ }
+}
diff --git a/basicsuite/launchersettings/preview_l.jpg b/basicsuite/launchersettings/preview_l.jpg
new file mode 100644
index 0000000..b9b232b
--- /dev/null
+++ b/basicsuite/launchersettings/preview_l.jpg
Binary files differ
diff --git a/basicsuite/launchersettings/title.txt b/basicsuite/launchersettings/title.txt
new file mode 100644
index 0000000..b2fd1f4
--- /dev/null
+++ b/basicsuite/launchersettings/title.txt
@@ -0,0 +1 @@
+Launcher Settings
diff --git a/basicsuite/Media Player/Content.qml b/basicsuite/mediaplayer/Content.qml
index d519fcb..d519fcb 100755
--- a/basicsuite/Media Player/Content.qml
+++ b/basicsuite/mediaplayer/Content.qml
diff --git a/basicsuite/Media Player/ContentVideo.qml b/basicsuite/mediaplayer/ContentVideo.qml
index fb5c86d..fb5c86d 100755
--- a/basicsuite/Media Player/ContentVideo.qml
+++ b/basicsuite/mediaplayer/ContentVideo.qml
diff --git a/basicsuite/mediaplayer/ControlBar.qml b/basicsuite/mediaplayer/ControlBar.qml
new file mode 100755
index 0000000..b6c1b9e
--- /dev/null
+++ b/basicsuite/mediaplayer/ControlBar.qml
@@ -0,0 +1,325 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtMultimedia 5.0
+
+Rectangle {
+ id: controlBar
+ height: 150
+ color: "#88333333"
+
+ property MediaPlayer mediaPlayer: null
+ property bool isMouseAbove: false
+
+ signal openFile()
+ signal openCamera()
+ signal openURL()
+ signal openFX()
+ signal toggleFullScreen()
+
+ state: "VISIBLE"
+
+ onMediaPlayerChanged: {
+ if (mediaPlayer === null)
+ return;
+ volumeControl.volume = mediaPlayer.volume;
+ }
+
+// MouseArea {
+// anchors.fill: controlBar
+// hoverEnabled: true
+
+// onEntered: controlBar.isMouseAbove = true;
+// onExited: controlBar.isMouseAbove = false;
+// }
+
+ function statusString(stat)
+ {
+ if (stat === MediaPlayer.NoMedia)
+ return "No Media";
+ else if (stat === MediaPlayer.Loading)
+ return "Loading";
+ else if (stat === MediaPlayer.Loaded)
+ return "Loaded";
+ else if (stat === MediaPlayer.Buffering)
+ return "Buffering";
+ else if (stat === MediaPlayer.Stalled)
+ return "Stalled";
+ else if (stat === MediaPlayer.Buffered)
+ return "Buffered";
+ else if (stat === MediaPlayer.EndOfMedia)
+ return "EndOfMedia";
+ else if (stat === MediaPlayer.InvalidMedia)
+ return "InvalidMedia";
+ else if (stat === MediaPlayer.UnknownStatus)
+ return "UnknownStatus";
+ }
+
+// Text {
+// id: statusText
+// anchors.left: parent.left
+// anchors.bottom: parent.top
+// anchors.bottomMargin: 12
+// font.pixelSize: 18
+// color: "white"
+// text: "Status: " + statusString(mediaPlayer.status)
+// }
+
+// Text {
+// anchors.verticalCenter: statusText.verticalCenter
+// anchors.left: statusText.right
+// anchors.leftMargin: 16
+// font.pixelSize: 18
+// color: "white"
+// text: Math.round(mediaPlayer.bufferProgress * 100.0) + "%"
+// }
+
+ VolumeControl {
+ id: volumeControl
+ anchors.verticalCenter: playbackControl.verticalCenter
+ anchors.left: controlBar.left
+ anchors.leftMargin: 15
+ onVolumeChanged: mediaPlayer.volume = volume
+
+ Component.onCompleted: {
+ volumeControl.volume = 0.5;
+ }
+
+ Connections {
+ target: mediaPlayer
+ onVolumeChanged: volumeControl.volume = mediaPlayer.volume
+ }
+ }
+
+ //Playback Controls
+ PlaybackControl {
+ id: playbackControl
+ anchors.horizontalCenter: controlBar.horizontalCenter
+ anchors.bottom: seekControl.top
+ anchors.bottomMargin: 20
+
+ onPlayButtonPressed: {
+ if (isPlaying) {
+ mediaPlayer.pause();
+ } else {
+ mediaPlayer.play();
+ }
+ }
+
+ onReverseButtonPressed: {
+ if (mediaPlayer.seekable) {
+ //Subtract 10 seconds
+ mediaPlayer.seek(normalizeSeek(Math.round(-mediaPlayer.duration * 0.1)));
+ }
+ }
+
+ onForwardButtonPressed: {
+ if (mediaPlayer.seekable) {
+ //Add 10 seconds
+ mediaPlayer.seek(normalizeSeek(Math.round(mediaPlayer.duration * 0.1)));
+ }
+ }
+
+ onStopButtonPressed: mediaPlayer.stop();
+ }
+
+ //Toolbar Controls
+ Row {
+ id: toolbarMenuButtons
+ anchors.right: controlBar.right
+ anchors.rightMargin: 15
+ anchors.verticalCenter: playbackControl.verticalCenter
+ spacing: 22
+
+ ImageButton {
+ id: fxButton
+ imageSource: "images/FXButton.png"
+ checkable: true
+ checked: effectSelectionPanel.visible
+ onClicked: {
+ openFX();
+ }
+ }
+ ImageButton {
+ id: fileButton
+ imageSource: "images/FileButton.png"
+ onClicked: {
+ openFile();
+ }
+ }
+ ImageButton {
+ id: urlButton
+ imageSource: "images/UrlButton.png"
+ onClicked: {
+ openURL();
+ }
+ }
+ }
+
+// ImageButton {
+// id: fullscreenButton
+// imageSource: "images/FullscreenButton.png"
+// onClicked: {
+// //Toggle fullscreen
+// toggleFullScreen();
+// }
+// checkable: true
+// checked: applicationWindow.isFullScreen
+// anchors.right: controlBar.right
+// anchors.top: controlBar.top
+// anchors.rightMargin: 15
+// anchors.topMargin: 15
+// }
+
+ //Seek controls
+ SeekControl {
+ id: seekControl
+ anchors.bottom: controlBar.bottom
+ anchors.bottomMargin: 10
+ anchors.right: controlBar.right
+ anchors.left: controlBar.left
+ anchors.rightMargin: 15
+ anchors.leftMargin: 15
+ enabled: playbackControl.isPlaybackEnabled
+
+ duration: mediaPlayer.duration
+
+ onSeekValueChanged: {
+ mediaPlayer.seek(newPosition);
+ position = mediaPlayer.position;
+ }
+
+ Component.onCompleted: {
+ seekable = mediaPlayer.seekable;
+ }
+ }
+
+ Connections {
+ target: mediaPlayer
+ onPositionChanged: {
+ if (!seekControl.pressed) seekControl.position = mediaPlayer.position;
+ }
+ onStatusChanged: {
+ if ((mediaPlayer.status == MediaPlayer.Loaded) || (mediaPlayer.status == MediaPlayer.Buffered) || mediaPlayer.status === MediaPlayer.Buffering || mediaPlayer.status === MediaPlayer.EndOfMedia)
+ playbackControl.isPlaybackEnabled = true;
+ else
+ playbackControl.isPlaybackEnabled = false;
+ }
+ onPlaybackStateChanged: {
+ if (mediaPlayer.playbackState === MediaPlayer.PlayingState) {
+ playbackControl.isPlaying = true;
+ applicationWindow.resetTimer();
+ } else {
+ show();
+ playbackControl.isPlaying = false;
+ }
+ }
+
+ onSeekableChanged: {
+ // console.log("seekableChanged: " + mediaPlayer.seekable);
+ seekControl.seekable = mediaPlayer.seekable;
+ }
+ }
+
+ function hide() {
+ controlBar.state = "HIDDEN";
+ }
+
+ function show() {
+ controlBar.state = "VISIBLE";
+ }
+
+ //Usage: give the value you wish to modify position,
+ //returns a value between 0 and duration
+ function normalizeSeek(value) {
+ var newPosition = mediaPlayer.position + value;
+ if (newPosition < 0)
+ newPosition = 0;
+ else if (newPosition > mediaPlayer.duration)
+ newPosition = mediaPlayer.duration;
+ return newPosition;
+ }
+
+ states: [
+ State {
+ name: "HIDDEN"
+ PropertyChanges {
+ target: controlBar
+ opacity: 0.0
+ }
+ },
+ State {
+ name: "VISIBLE"
+ PropertyChanges {
+ target: controlBar
+ opacity: 0.95
+ }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ from: "HIDDEN"
+ to: "VISIBLE"
+ NumberAnimation {
+ id: showAnimation
+ target: controlBar
+ properties: "opacity"
+ from: 0.0
+ to: 1.0
+ duration: 200
+ }
+ },
+ Transition {
+ from: "VISIBLE"
+ to: "HIDDEN"
+ NumberAnimation {
+ id: hideAnimation
+ target: controlBar
+ properties: "opacity"
+ from: 0.95
+ to: 0.0
+ duration: 200
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Media Player/EffectSelectionPanel.qml b/basicsuite/mediaplayer/EffectSelectionPanel.qml
index 4f7e161..4f7e161 100755
--- a/basicsuite/Media Player/EffectSelectionPanel.qml
+++ b/basicsuite/mediaplayer/EffectSelectionPanel.qml
diff --git a/basicsuite/Media Player/Effects/Effect.qml b/basicsuite/mediaplayer/Effects/Effect.qml
index 99308fd..99308fd 100755
--- a/basicsuite/Media Player/Effects/Effect.qml
+++ b/basicsuite/mediaplayer/Effects/Effect.qml
diff --git a/basicsuite/Media Player/Effects/EffectBillboard.qml b/basicsuite/mediaplayer/Effects/EffectBillboard.qml
index 947209e..947209e 100755
--- a/basicsuite/Media Player/Effects/EffectBillboard.qml
+++ b/basicsuite/mediaplayer/Effects/EffectBillboard.qml
diff --git a/basicsuite/Media Player/Effects/EffectBlackAndWhite.qml b/basicsuite/mediaplayer/Effects/EffectBlackAndWhite.qml
index 8cbba60..8cbba60 100755
--- a/basicsuite/Media Player/Effects/EffectBlackAndWhite.qml
+++ b/basicsuite/mediaplayer/Effects/EffectBlackAndWhite.qml
diff --git a/basicsuite/Media Player/Effects/EffectEmboss.qml b/basicsuite/mediaplayer/Effects/EffectEmboss.qml
index 23ef1cb..23ef1cb 100755
--- a/basicsuite/Media Player/Effects/EffectEmboss.qml
+++ b/basicsuite/mediaplayer/Effects/EffectEmboss.qml
diff --git a/basicsuite/Media Player/Effects/EffectGaussianBlur.qml b/basicsuite/mediaplayer/Effects/EffectGaussianBlur.qml
index f866524..f866524 100755
--- a/basicsuite/Media Player/Effects/EffectGaussianBlur.qml
+++ b/basicsuite/mediaplayer/Effects/EffectGaussianBlur.qml
diff --git a/basicsuite/Media Player/Effects/EffectGlow.qml b/basicsuite/mediaplayer/Effects/EffectGlow.qml
index 2cfee3b..2cfee3b 100755
--- a/basicsuite/Media Player/Effects/EffectGlow.qml
+++ b/basicsuite/mediaplayer/Effects/EffectGlow.qml
diff --git a/basicsuite/Media Player/Effects/EffectIsolate.qml b/basicsuite/mediaplayer/Effects/EffectIsolate.qml
index 4c569a5..4c569a5 100755
--- a/basicsuite/Media Player/Effects/EffectIsolate.qml
+++ b/basicsuite/mediaplayer/Effects/EffectIsolate.qml
diff --git a/basicsuite/Media Player/Effects/EffectMagnify.qml b/basicsuite/mediaplayer/Effects/EffectMagnify.qml
index 01f33a5..01f33a5 100755
--- a/basicsuite/Media Player/Effects/EffectMagnify.qml
+++ b/basicsuite/mediaplayer/Effects/EffectMagnify.qml
diff --git a/basicsuite/Media Player/Effects/EffectPageCurl.qml b/basicsuite/mediaplayer/Effects/EffectPageCurl.qml
index 39947d9..39947d9 100755
--- a/basicsuite/Media Player/Effects/EffectPageCurl.qml
+++ b/basicsuite/mediaplayer/Effects/EffectPageCurl.qml
diff --git a/basicsuite/Media Player/Effects/EffectPassThrough.qml b/basicsuite/mediaplayer/Effects/EffectPassThrough.qml
index 1f259be..1f259be 100755
--- a/basicsuite/Media Player/Effects/EffectPassThrough.qml
+++ b/basicsuite/mediaplayer/Effects/EffectPassThrough.qml
diff --git a/basicsuite/Media Player/Effects/EffectPixelate.qml b/basicsuite/mediaplayer/Effects/EffectPixelate.qml
index 4bc73d3..4bc73d3 100755
--- a/basicsuite/Media Player/Effects/EffectPixelate.qml
+++ b/basicsuite/mediaplayer/Effects/EffectPixelate.qml
diff --git a/basicsuite/Media Player/Effects/EffectPosterize.qml b/basicsuite/mediaplayer/Effects/EffectPosterize.qml
index 4b661a5..4b661a5 100755
--- a/basicsuite/Media Player/Effects/EffectPosterize.qml
+++ b/basicsuite/mediaplayer/Effects/EffectPosterize.qml
diff --git a/basicsuite/Media Player/Effects/EffectRipple.qml b/basicsuite/mediaplayer/Effects/EffectRipple.qml
index 7a82f50..7a82f50 100755
--- a/basicsuite/Media Player/Effects/EffectRipple.qml
+++ b/basicsuite/mediaplayer/Effects/EffectRipple.qml
diff --git a/basicsuite/Media Player/Effects/EffectSepia.qml b/basicsuite/mediaplayer/Effects/EffectSepia.qml
index 2539680..2539680 100755
--- a/basicsuite/Media Player/Effects/EffectSepia.qml
+++ b/basicsuite/mediaplayer/Effects/EffectSepia.qml
diff --git a/basicsuite/Media Player/Effects/EffectSharpen.qml b/basicsuite/mediaplayer/Effects/EffectSharpen.qml
index c30f298..c30f298 100755
--- a/basicsuite/Media Player/Effects/EffectSharpen.qml
+++ b/basicsuite/mediaplayer/Effects/EffectSharpen.qml
diff --git a/basicsuite/Media Player/Effects/EffectShockwave.qml b/basicsuite/mediaplayer/Effects/EffectShockwave.qml
index 1078b73..1078b73 100755
--- a/basicsuite/Media Player/Effects/EffectShockwave.qml
+++ b/basicsuite/mediaplayer/Effects/EffectShockwave.qml
diff --git a/basicsuite/Media Player/Effects/EffectSobelEdgeDetection1.qml b/basicsuite/mediaplayer/Effects/EffectSobelEdgeDetection1.qml
index 56f4869..56f4869 100755
--- a/basicsuite/Media Player/Effects/EffectSobelEdgeDetection1.qml
+++ b/basicsuite/mediaplayer/Effects/EffectSobelEdgeDetection1.qml
diff --git a/basicsuite/Media Player/Effects/EffectSobelEdgeDetection2.qml b/basicsuite/mediaplayer/Effects/EffectSobelEdgeDetection2.qml
index 938912d..938912d 100755
--- a/basicsuite/Media Player/Effects/EffectSobelEdgeDetection2.qml
+++ b/basicsuite/mediaplayer/Effects/EffectSobelEdgeDetection2.qml
diff --git a/basicsuite/Media Player/Effects/EffectTiltShift.qml b/basicsuite/mediaplayer/Effects/EffectTiltShift.qml
index d0cf9c4..d0cf9c4 100755
--- a/basicsuite/Media Player/Effects/EffectTiltShift.qml
+++ b/basicsuite/mediaplayer/Effects/EffectTiltShift.qml
diff --git a/basicsuite/Media Player/Effects/EffectToon.qml b/basicsuite/mediaplayer/Effects/EffectToon.qml
index a17ad1c..a17ad1c 100755
--- a/basicsuite/Media Player/Effects/EffectToon.qml
+++ b/basicsuite/mediaplayer/Effects/EffectToon.qml
diff --git a/basicsuite/Media Player/Effects/EffectVignette.qml b/basicsuite/mediaplayer/Effects/EffectVignette.qml
index 5ec5090..5ec5090 100755
--- a/basicsuite/Media Player/Effects/EffectVignette.qml
+++ b/basicsuite/mediaplayer/Effects/EffectVignette.qml
diff --git a/basicsuite/Media Player/Effects/EffectWarhol.qml b/basicsuite/mediaplayer/Effects/EffectWarhol.qml
index 1e40b30..1e40b30 100755
--- a/basicsuite/Media Player/Effects/EffectWarhol.qml
+++ b/basicsuite/mediaplayer/Effects/EffectWarhol.qml
diff --git a/basicsuite/Media Player/Effects/EffectWobble.qml b/basicsuite/mediaplayer/Effects/EffectWobble.qml
index 4b07639..4b07639 100755
--- a/basicsuite/Media Player/Effects/EffectWobble.qml
+++ b/basicsuite/mediaplayer/Effects/EffectWobble.qml
diff --git a/basicsuite/Media Player/FileBrowser.qml b/basicsuite/mediaplayer/FileBrowser.qml
index f9f2f81..f9f2f81 100644
--- a/basicsuite/Media Player/FileBrowser.qml
+++ b/basicsuite/mediaplayer/FileBrowser.qml
diff --git a/basicsuite/mediaplayer/ImageButton.qml b/basicsuite/mediaplayer/ImageButton.qml
new file mode 100755
index 0000000..6dcb6dd
--- /dev/null
+++ b/basicsuite/mediaplayer/ImageButton.qml
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+
+ property alias enabled: mouseArea.enabled
+ property alias imageSource: image.source
+
+ property bool checkable: false
+ property bool checked: false
+ property alias hover: mouseArea.containsMouse
+ property alias pressed: mouseArea.pressed
+
+ opacity: enabled ? 1.0 : 0.3
+ signal clicked
+
+ width: image.width
+ height: image.height
+
+ Image {
+ id: image
+ anchors.centerIn: parent
+ visible: true
+ opacity: pressed ? 0.6 : 1
+ smooth: true
+ }
+
+// ColorOverlay {
+// id: glowEffect
+// anchors.fill: image
+// source: image
+// color: pressed ? "#22000000" : checked ? "orange" : "white"
+// visible: checked || hover || pressed
+// }
+
+ MouseArea {
+ id: mouseArea
+ hoverEnabled: true
+ anchors.fill: root
+ onPositionChanged: applicationWindow.resetTimer()
+ onClicked: root.clicked();
+ }
+}
diff --git a/basicsuite/mediaplayer/Intro.qml b/basicsuite/mediaplayer/Intro.qml
new file mode 100644
index 0000000..094fe3e
--- /dev/null
+++ b/basicsuite/mediaplayer/Intro.qml
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+ color: "#111111"
+
+// Image {
+// anchors.fill: parent
+// source: "images/gradient.png"
+// }
+
+ Image {
+ id: logo
+ anchors.centerIn: root
+ anchors.verticalCenterOffset: -60
+ source: "images/qt-logo.png"
+ opacity: 0.5
+
+ }
+// Rectangle {
+// id: button
+// opacity: mouse.containsMouse ? 1 : 0
+// Behavior on opacity {NumberAnimation{duration: 100}}
+// color: mouse.pressed ? "#11000000" : "#11ffffff"
+// anchors.top: logo.bottom
+// anchors.horizontalCenter: parent.horizontalCenter
+// border.color: "#33ffffff"
+// width: text.width + 40
+// height: text.height + 4
+// antialiasing: true
+// radius: 4
+// MouseArea {
+// id: mouse
+// anchors.fill: parent
+// hoverEnabled: true
+// onClicked: applicationWindow.openVideo()
+// }
+// }
+
+// Text {
+// id: text
+// color: "#44ffffff"
+// text: "Open File"
+// font.bold: true
+// font.pixelSize: 18
+// anchors.centerIn: button
+// }
+}
diff --git a/basicsuite/mediaplayer/MetadataView.qml b/basicsuite/mediaplayer/MetadataView.qml
new file mode 100644
index 0000000..c9a9ccf
--- /dev/null
+++ b/basicsuite/mediaplayer/MetadataView.qml
@@ -0,0 +1,213 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+
+ property variant mediaPlayer: null
+
+ anchors.fill: parent
+ color: "#AA000000"
+ Behavior on opacity { NumberAnimation { } }
+ opacity: 0
+
+ Rectangle {
+ height: column.height + 30
+ width: 500
+ color: "#BB222222"
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -50
+
+
+ Column {
+ id: column
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 15
+ spacing: 12
+
+ Text {
+ text: "Media Type: " + (mediaPlayer ? mediaPlayer.metaData.mediaType : "")
+ visible: mediaPlayer && mediaPlayer.metaData.mediaType !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Title: " + (mediaPlayer ? mediaPlayer.metaData.title : "")
+ visible: mediaPlayer && mediaPlayer.metaData.title !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Artist: " + (mediaPlayer ? mediaPlayer.metaData.leadPerformer : "")
+ visible: mediaPlayer && mediaPlayer.metaData.leadPerformer !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Artist: " + (mediaPlayer ? mediaPlayer.metaData.contributingArtist : "")
+ visible: mediaPlayer && mediaPlayer.metaData.contributingArtist !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Album: " + (mediaPlayer ? mediaPlayer.metaData.albumTitle : "")
+ visible: mediaPlayer && mediaPlayer.metaData.albumTitle !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Album Artist: " + (mediaPlayer ? mediaPlayer.metaData.albumArtist : "")
+ visible: mediaPlayer && mediaPlayer.metaData.albumArtist !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Author: " + (mediaPlayer ? mediaPlayer.metaData.author : "")
+ visible: mediaPlayer && mediaPlayer.metaData.author !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Composer: " + (mediaPlayer ? mediaPlayer.metaData.composer : "")
+ visible: mediaPlayer && mediaPlayer.metaData.composer !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Writer: " + (mediaPlayer ? mediaPlayer.metaData.writer : "")
+ visible: mediaPlayer && mediaPlayer.metaData.writer !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Genre: " + (mediaPlayer ? mediaPlayer.metaData.genre : "")
+ visible: mediaPlayer && mediaPlayer.metaData.genre !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Track Number: " + (mediaPlayer ? mediaPlayer.metaData.trackNumber : "")
+ visible: mediaPlayer && mediaPlayer.metaData.trackNumber !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Year: " + (mediaPlayer ? mediaPlayer.metaData.year : "")
+ visible: mediaPlayer && mediaPlayer.metaData.year !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Duration: " + (mediaPlayer ? Qt.formatTime(new Date(mediaPlayer.metaData.duration), mediaPlayer.metaData.duration >= 3600000 ? "H:mm:ss" : "m:ss") : "")
+ visible: mediaPlayer && mediaPlayer.metaData.duration !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Resolution: " + (mediaPlayer && mediaPlayer.metaData.resolution !== undefined ? (mediaPlayer.metaData.resolution.width + "x" + mediaPlayer.metaData.resolution.height) : "")
+ visible: mediaPlayer && mediaPlayer.metaData.resolution !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Audio Bitrate: " + (mediaPlayer ? Math.round(mediaPlayer.metaData.audioBitRate / 1000) + " kbps" : "")
+ visible: mediaPlayer && mediaPlayer.metaData.audioBitRate !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Video Bitrate: " + (mediaPlayer ? Math.round(mediaPlayer.metaData.videoBitRate / 1000) + " kbps" : "")
+ visible: mediaPlayer && mediaPlayer.metaData.videoBitRate !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ Text {
+ text: "Date: " + (mediaPlayer ? Qt.formatDate(mediaPlayer.metaData.date) : "")
+ visible: mediaPlayer && mediaPlayer.metaData.date !== undefined
+ color: "white"
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.opacity = 0
+ enabled: root.opacity !== 0
+ }
+}
diff --git a/basicsuite/Media Player/ParameterPanel.qml b/basicsuite/mediaplayer/ParameterPanel.qml
index 51b9938..51b9938 100644
--- a/basicsuite/Media Player/ParameterPanel.qml
+++ b/basicsuite/mediaplayer/ParameterPanel.qml
diff --git a/basicsuite/mediaplayer/PlaybackControl.qml b/basicsuite/mediaplayer/PlaybackControl.qml
new file mode 100755
index 0000000..65bb7ca
--- /dev/null
+++ b/basicsuite/mediaplayer/PlaybackControl.qml
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Row {
+ id: root
+ spacing: 26
+ height: playButton.height
+
+ property bool isPlaybackEnabled: false
+ property bool isPlaying: false
+
+ signal forwardButtonPressed()
+ signal reverseButtonPressed()
+ signal playButtonPressed()
+ signal stopButtonPressed()
+
+ //Playback Controls
+ ImageButton {
+ id: rateReverseButton
+ enabled: isPlaybackEnabled
+ imageSource: "images/RateButtonReverse.png"
+ anchors.verticalCenter: root.verticalCenter
+ onClicked: {
+ reverseButtonPressed();
+ }
+ }
+ ImageButton {
+ id: playButton
+ enabled: isPlaybackEnabled
+ imageSource: !isPlaying ? "images/PlayButton.png" : "images/PauseButton.png"
+ anchors.verticalCenter: root.verticalCenter
+// anchors.right: rateForwardButton.left
+// anchors.rightMargin: 10
+ onClicked: {
+ playButtonPressed();
+ }
+ }
+// Rectangle{
+// enabled: isPlaybackEnabled
+// color: "white"
+// opacity: enabled ? 1 : 0.3
+// width: playButton.width
+// height: width
+// anchors.verticalCenter: root.verticalCenter
+// MouseArea {
+// anchors.fill: parent
+// onClicked: stopButtonPressed();
+// }
+// }
+
+ ImageButton {
+ id: rateForwardButton
+ enabled: isPlaybackEnabled
+ imageSource: "images/RateButtonForward.png"
+ anchors.verticalCenter: root.verticalCenter
+ onClicked: {
+ forwardButtonPressed();
+ }
+ }
+}
diff --git a/basicsuite/mediaplayer/SeekControl.qml b/basicsuite/mediaplayer/SeekControl.qml
new file mode 100755
index 0000000..9a75517
--- /dev/null
+++ b/basicsuite/mediaplayer/SeekControl.qml
@@ -0,0 +1,123 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Item {
+ id: root
+ height: seekSlider.height
+
+ property int position: 0
+ property int duration: 0
+ property bool seekable: false
+ property alias pressed : seekSlider.pressed
+ property bool enabled
+
+ signal seekValueChanged(int newPosition)
+
+ onPositionChanged: {
+ elapsedText.text = formatTime(position);
+ seekSlider.value = position;
+ }
+
+ onDurationChanged: {
+ remainingText.text = formatTime(duration);
+ }
+
+ Text {
+ id: elapsedText
+ anchors.verticalCenter: seekSlider.verticalCenter
+ anchors.left: root.left
+ text: "00:00"
+ font.pixelSize: 20
+ color: "#cccccc"
+ }
+
+ Slider {
+ id: seekSlider
+ anchors.leftMargin: 30
+ anchors.rightMargin: 30
+ anchors.left: elapsedText.right
+ anchors.right: remainingText.left
+ anchors.verticalCenter: root.verticalCenter
+ mutable: root.seekable
+ enabled: root.enabled
+
+ minimum: 0.0
+ maximum: root.duration !== 0 ? root.duration : 1
+
+ onValueChangedByHandle: {
+ seekValueChanged(newValue);
+ applicationWindow.resetTimer()
+ }
+ }
+
+ Text {
+ id: remainingText
+ anchors.verticalCenter: seekSlider.verticalCenter
+ anchors.right: root.right
+ text: "00:00"
+ font.pixelSize: 20
+ color: "#cccccc"
+ }
+
+ function formatTime(time) {
+ time = time / 1000
+ var hours = Math.floor(time / 3600);
+ time = time - hours * 3600;
+ var minutes = Math.floor(time / 60);
+ var seconds = Math.floor(time - minutes * 60);
+
+ if (hours > 0)
+ return formatTimeBlock(hours) + ":" + formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
+ else
+ return formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
+
+ }
+
+ function formatTimeBlock(time) {
+ if (time === 0)
+ return "00"
+ if (time < 10)
+ return "0" + time;
+ else
+ return time.toString();
+ }
+}
diff --git a/basicsuite/mediaplayer/Slider.qml b/basicsuite/mediaplayer/Slider.qml
new file mode 100644
index 0000000..20a3aa7
--- /dev/null
+++ b/basicsuite/mediaplayer/Slider.qml
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Item {
+ id: slider
+
+ height: handleBack.height
+ // value is read/write.
+ property real value: 0
+ property real maximum: 1
+ property real minimum: 0
+ property int xMax: width - handle.width
+ onXMaxChanged: updatePos()
+ onMinimumChanged: updatePos()
+ onValueChanged: if (!pressed) updatePos()
+ property bool mutable: true
+ property alias pressed : backgroundMouse.pressed
+
+ signal valueChangedByHandle(int newValue)
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = 0 + (value - minimum) * slider.xMax / (maximum - minimum);
+ pos = Math.min(pos, width - handle.width - 0);
+ pos = Math.max(pos, 0);
+ handle.x = pos;
+ } else {
+ handle.x = 0;
+ }
+ }
+
+ Rectangle {
+ id: background
+ width: slider.width
+ anchors.verticalCenter: slider.verticalCenter
+ height: 2
+ color: "#666666"
+
+ MouseArea {
+ id: backgroundMouse
+ anchors.fill: parent
+ anchors.topMargin: -24
+ anchors.bottomMargin: -24
+ enabled: slider.mutable
+ drag.target: handle
+ drag.axis: Drag.XAxis
+ drag.minimumX: 0
+ drag.maximumX: slider.xMax
+ onPressedChanged: {
+ value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
+ valueChangedByHandle(value);
+ updatePos();
+ }
+ onPositionChanged: {
+ value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
+ valueChangedByHandle(value);
+ }
+ onWheel: {
+ value = Math.max(minimum, Math.min(maximum, value + (wheel.angleDelta.y > 0 ? 1 : -1) * (10 / slider.xMax) * (slider.maximum - slider.minimum)));
+ valueChangedByHandle(value);
+ updatePos();
+ }
+ }
+ }
+
+ Rectangle {
+ id: progress
+ height: 5
+ anchors.verticalCenter: background.verticalCenter
+ anchors.left: background.left
+ anchors.right: handle.right
+ anchors.rightMargin: handle.width / 2
+ visible: slider.enabled
+ color: "#98c66c"
+ }
+
+ Rectangle {
+ id: handleBack
+ width: 40
+ height: width
+ radius: width / 2
+ color: "#8898c66c"
+ antialiasing: true
+ anchors.centerIn: handle
+ visible: handle.visible
+ }
+
+ Rectangle {
+ id: handle
+ width: 14
+ height: width
+ radius: width / 2
+ antialiasing: true
+ color: "#98c66c"
+ anchors.verticalCenter: background.verticalCenter
+ visible: slider.enabled
+ }
+}
+
diff --git a/basicsuite/mediaplayer/UrlBar.qml b/basicsuite/mediaplayer/UrlBar.qml
new file mode 100644
index 0000000..5da4d64
--- /dev/null
+++ b/basicsuite/mediaplayer/UrlBar.qml
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+ height: 50
+ signal urlAccepted(string text)
+ color: "#cc222222"
+ Behavior on opacity { NumberAnimation{} }
+ onOpacityChanged: {
+ if (opacity == 1)
+ urlInput.focus = true
+ else if (opacity == 0)
+ urlInput.focus = false
+ }
+
+ Keys.onEscapePressed: root.opacity = 0
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.opacity = 0
+ }
+
+ Text {
+ anchors.bottom: urlBar.top
+ anchors.left: urlBar.left
+ anchors.bottomMargin: 8
+ text: "Enter URL"
+ color: "white"
+ font.pixelSize: 20
+ }
+
+ BorderImage {
+ id: urlBar
+ source: "images/ControlBar.png"
+ border.top: 12
+ border.bottom: 12
+ border.left: 12
+ border.right: 12
+ height: 70
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -170
+ width: 600
+
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 16
+ color: "#66ffffff"
+ border.color: "#bbffffff"
+ radius: 2
+ antialiasing: true
+
+ TextInput {
+ id: urlInput
+ selectionColor: "#aaffffff"
+ selectedTextColor: "black"
+ selectByMouse: true
+ anchors.fill: parent
+ anchors.margins: 5
+ font.pixelSize: 24
+ color: "black"
+ text: "http://"
+ onAccepted: root.urlAccepted(urlInput.text);
+
+ }
+ }
+ }
+
+// Rectangle {
+// anchors.right: urlBar.left
+// anchors.rightMargin: 32
+// anchors.verticalCenter: urlBar.verticalCenter
+// height: 70
+// width: 70
+// color: "gray"
+// MouseArea {
+// anchors.fill: parent
+// onClicked: { urlInput.text = ""; urlInput.paste(); }
+// }
+// }
+}
diff --git a/basicsuite/mediaplayer/VolumeControl.qml b/basicsuite/mediaplayer/VolumeControl.qml
new file mode 100755
index 0000000..9844350
--- /dev/null
+++ b/basicsuite/mediaplayer/VolumeControl.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+ width: 210
+ height: volumeUp.height
+
+ property alias volume: volumeSlider.value
+
+ //Volume Controls
+ ImageButton {
+ id: volumeDown
+ imageSource: "images/VolumeDown.png"
+ anchors.verticalCenter: root.verticalCenter
+ anchors.left: root.left
+ scale: 1.4
+ onClicked: {
+ root.volume = 0.0;
+ }
+ }
+ Slider {
+ id: volumeSlider
+ anchors.left: volumeDown.right
+ anchors.leftMargin: 22
+ anchors.rightMargin: 22
+ anchors.right: volumeUp.left
+ maximum: 1.0
+ minimum: 0.0
+ anchors.verticalCenter: root.verticalCenter
+ anchors.verticalCenterOffset: 1
+ }
+
+ ImageButton {
+ id: volumeUp
+ imageSource: "images/VolumeUp.png"
+ anchors.verticalCenter: root.verticalCenter
+ anchors.verticalCenterOffset: 1
+ anchors.right: root.right
+ scale: 1.4
+ onClicked: {
+ root.volume = 1.0
+ }
+ }
+}
diff --git a/basicsuite/mediaplayer/description.txt b/basicsuite/mediaplayer/description.txt
new file mode 100644
index 0000000..0868473
--- /dev/null
+++ b/basicsuite/mediaplayer/description.txt
@@ -0,0 +1,3 @@
+The Media Player example demonstrates the use of media playback features provided by Qt Multimedia with Qt Quick.
+
+It can play content either from a file or a network source, both videos and music.
diff --git a/basicsuite/mediaplayer/exclude.txt b/basicsuite/mediaplayer/exclude.txt
new file mode 100644
index 0000000..565a2f5
--- /dev/null
+++ b/basicsuite/mediaplayer/exclude.txt
@@ -0,0 +1,2 @@
+android-beaglebone
+android-emulator
diff --git a/basicsuite/Media Player/images/CameraButton.png b/basicsuite/mediaplayer/images/CameraButton.png
index d950f78..d950f78 100644
--- a/basicsuite/Media Player/images/CameraButton.png
+++ b/basicsuite/mediaplayer/images/CameraButton.png
Binary files differ
diff --git a/basicsuite/Media Player/images/ControlBar.png b/basicsuite/mediaplayer/images/ControlBar.png
index 8b5f545..8b5f545 100644
--- a/basicsuite/Media Player/images/ControlBar.png
+++ b/basicsuite/mediaplayer/images/ControlBar.png
Binary files differ
diff --git a/basicsuite/Media Player/images/FXButton.png b/basicsuite/mediaplayer/images/FXButton.png
index 04530f4..04530f4 100644
--- a/basicsuite/Media Player/images/FXButton.png
+++ b/basicsuite/mediaplayer/images/FXButton.png
Binary files differ
diff --git a/basicsuite/Media Player/images/FileButton.png b/basicsuite/mediaplayer/images/FileButton.png
index d65e681..d65e681 100644
--- a/basicsuite/Media Player/images/FileButton.png
+++ b/basicsuite/mediaplayer/images/FileButton.png
Binary files differ
diff --git a/basicsuite/Media Player/images/FullscreenButton.png b/basicsuite/mediaplayer/images/FullscreenButton.png
index 413872a..413872a 100755
--- a/basicsuite/Media Player/images/FullscreenButton.png
+++ b/basicsuite/mediaplayer/images/FullscreenButton.png
Binary files differ
diff --git a/basicsuite/Media Player/images/PauseButton.png b/basicsuite/mediaplayer/images/PauseButton.png
index 0d3e2d1..0d3e2d1 100644
--- a/basicsuite/Media Player/images/PauseButton.png
+++ b/basicsuite/mediaplayer/images/PauseButton.png
Binary files differ
diff --git a/basicsuite/Media Player/images/PlayButton.png b/basicsuite/mediaplayer/images/PlayButton.png
index 9a85633..9a85633 100644
--- a/basicsuite/Media Player/images/PlayButton.png
+++ b/basicsuite/mediaplayer/images/PlayButton.png
Binary files differ
diff --git a/basicsuite/Media Player/images/PlaybackSlider.png b/basicsuite/mediaplayer/images/PlaybackSlider.png
index 3716315..3716315 100755
--- a/basicsuite/Media Player/images/PlaybackSlider.png
+++ b/basicsuite/mediaplayer/images/PlaybackSlider.png
Binary files differ
diff --git a/basicsuite/Media Player/images/RateButtonForward.png b/basicsuite/mediaplayer/images/RateButtonForward.png
index 4b52603..4b52603 100644
--- a/basicsuite/Media Player/images/RateButtonForward.png
+++ b/basicsuite/mediaplayer/images/RateButtonForward.png
Binary files differ
diff --git a/basicsuite/Media Player/images/RateButtonReverse.png b/basicsuite/mediaplayer/images/RateButtonReverse.png
index 64e94ed..64e94ed 100644
--- a/basicsuite/Media Player/images/RateButtonReverse.png
+++ b/basicsuite/mediaplayer/images/RateButtonReverse.png
Binary files differ
diff --git a/basicsuite/Media Player/images/SliderBackground.png b/basicsuite/mediaplayer/images/SliderBackground.png
index b83f729..b83f729 100644
--- a/basicsuite/Media Player/images/SliderBackground.png
+++ b/basicsuite/mediaplayer/images/SliderBackground.png
Binary files differ
diff --git a/basicsuite/Media Player/images/SliderHandle.png b/basicsuite/mediaplayer/images/SliderHandle.png
index 5206100..5206100 100755
--- a/basicsuite/Media Player/images/SliderHandle.png
+++ b/basicsuite/mediaplayer/images/SliderHandle.png
Binary files differ
diff --git a/basicsuite/Media Player/images/SliderProgress.png b/basicsuite/mediaplayer/images/SliderProgress.png
index e0efc87..e0efc87 100755
--- a/basicsuite/Media Player/images/SliderProgress.png
+++ b/basicsuite/mediaplayer/images/SliderProgress.png
Binary files differ
diff --git a/basicsuite/Media Player/images/UrlButton.png b/basicsuite/mediaplayer/images/UrlButton.png
index 876951f..876951f 100644
--- a/basicsuite/Media Player/images/UrlButton.png
+++ b/basicsuite/mediaplayer/images/UrlButton.png
Binary files differ
diff --git a/basicsuite/Media Player/images/VolumeDown.png b/basicsuite/mediaplayer/images/VolumeDown.png
index 60c626d..60c626d 100755
--- a/basicsuite/Media Player/images/VolumeDown.png
+++ b/basicsuite/mediaplayer/images/VolumeDown.png
Binary files differ
diff --git a/basicsuite/Media Player/images/VolumeUp.png b/basicsuite/mediaplayer/images/VolumeUp.png
index 886fde7..886fde7 100755
--- a/basicsuite/Media Player/images/VolumeUp.png
+++ b/basicsuite/mediaplayer/images/VolumeUp.png
Binary files differ
diff --git a/basicsuite/Media Player/images/folder.png b/basicsuite/mediaplayer/images/folder.png
index e53e2ad..e53e2ad 100644
--- a/basicsuite/Media Player/images/folder.png
+++ b/basicsuite/mediaplayer/images/folder.png
Binary files differ
diff --git a/basicsuite/Media Player/images/gradient.png b/basicsuite/mediaplayer/images/gradient.png
index 1cd7281..1cd7281 100644
--- a/basicsuite/Media Player/images/gradient.png
+++ b/basicsuite/mediaplayer/images/gradient.png
Binary files differ
diff --git a/basicsuite/Media Player/images/pattern.png b/basicsuite/mediaplayer/images/pattern.png
index 028181e..028181e 100644
--- a/basicsuite/Media Player/images/pattern.png
+++ b/basicsuite/mediaplayer/images/pattern.png
Binary files differ
diff --git a/basicsuite/Media Player/images/qt-logo.png b/basicsuite/mediaplayer/images/qt-logo.png
index 242bb28..242bb28 100755
--- a/basicsuite/Media Player/images/qt-logo.png
+++ b/basicsuite/mediaplayer/images/qt-logo.png
Binary files differ
diff --git a/basicsuite/Media Player/images/titlebar.png b/basicsuite/mediaplayer/images/titlebar.png
index 51c9008..51c9008 100644
--- a/basicsuite/Media Player/images/titlebar.png
+++ b/basicsuite/mediaplayer/images/titlebar.png
Binary files differ
diff --git a/basicsuite/Media Player/images/titlebar.sci b/basicsuite/mediaplayer/images/titlebar.sci
index 0418d94..0418d94 100755
--- a/basicsuite/Media Player/images/titlebar.sci
+++ b/basicsuite/mediaplayer/images/titlebar.sci
diff --git a/basicsuite/Media Player/images/up.png b/basicsuite/mediaplayer/images/up.png
index b05f802..b05f802 100644
--- a/basicsuite/Media Player/images/up.png
+++ b/basicsuite/mediaplayer/images/up.png
Binary files differ
diff --git a/basicsuite/Media Player/main.qml b/basicsuite/mediaplayer/main.qml
index d8075c8..d8075c8 100755
--- a/basicsuite/Media Player/main.qml
+++ b/basicsuite/mediaplayer/main.qml
diff --git a/basicsuite/mediaplayer/mediaplayer.pro b/basicsuite/mediaplayer/mediaplayer.pro
new file mode 100644
index 0000000..893539f
--- /dev/null
+++ b/basicsuite/mediaplayer/mediaplayer.pro
@@ -0,0 +1,14 @@
+TARGET = mediaplayer
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ Effects \
+ images
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/mediaplayer/preview_l.jpg b/basicsuite/mediaplayer/preview_l.jpg
new file mode 100644
index 0000000..0fff215
--- /dev/null
+++ b/basicsuite/mediaplayer/preview_l.jpg
Binary files differ
diff --git a/basicsuite/mediaplayer/title.txt b/basicsuite/mediaplayer/title.txt
new file mode 100644
index 0000000..7919029
--- /dev/null
+++ b/basicsuite/mediaplayer/title.txt
@@ -0,0 +1 @@
+Media Player
diff --git a/basicsuite/photogallery/description.txt b/basicsuite/photogallery/description.txt
new file mode 100644
index 0000000..f47f907
--- /dev/null
+++ b/basicsuite/photogallery/description.txt
@@ -0,0 +1 @@
+This is a simple photo gallery, showing images found in /data/images. Images captured with the Camera demo will also appear in this folder.
diff --git a/basicsuite/photogallery/main.qml b/basicsuite/photogallery/main.qml
new file mode 100644
index 0000000..a7f114e
--- /dev/null
+++ b/basicsuite/photogallery/main.qml
@@ -0,0 +1,295 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import Qt.labs.folderlistmodel 1.0
+
+Item {
+ id: root
+
+ width: 320
+ height: 480
+
+ Rectangle {
+ anchors.fill: parent
+ color: "black"
+ }
+
+ FolderListModel {
+ id: imageList
+ folder: "/data/images"
+ nameFilters: ["*.png", "*.jpg"]
+
+ showDirs: false
+ }
+
+ Text {
+ id: noImages
+ color: "white"
+ visible: grid.count == 0
+ text: "No images in " + imageList.folder
+ anchors.centerIn: parent
+ }
+
+ GridView {
+ id: grid
+
+ anchors.fill: parent
+
+ cellHeight: root.width / 3
+ cellWidth: cellHeight
+
+ model: imageList
+
+// NumberAnimation on contentY { from: 0; to: 2000; duration: 3000; loops: 1; easing.type: Easing.InOutCubic }
+
+ delegate: Rectangle {
+
+ id: box
+ color: "white"
+ width: grid.cellWidth
+ height: grid.cellHeight
+ scale: 0.97
+ rotation: 2;
+ antialiasing: true
+
+ Rectangle {
+ id: sepia
+ color: "#b08050"
+ width: image.width
+ height: image.height
+ anchors.centerIn: parent
+
+ property real fakeOpacity: image.status == Image.Ready ? 1.5 : 0
+ Behavior on fakeOpacity { NumberAnimation { duration: 1000 } }
+
+ opacity: fakeOpacity
+ visible: image.opacity <= 0.99;
+ antialiasing: true
+ }
+
+ Image {
+ id: image
+ source: filePath
+ width: grid.cellWidth * 0.9
+ height: grid.cellHeight * 0.9
+ anchors.centerIn: sepia
+ asynchronous: true
+ opacity: sepia.fakeOpacity - .5
+ sourceSize.width: width;
+ antialiasing: true
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ root.showBigImage(filePath, box.x - grid.contentX, box.y - grid.contentY, image);
+ }
+ }
+ }
+ }
+
+ function showBigImage(filePath, itemX, itemY, image) {
+ fakeBigImage.x = itemX;
+ fakeBigImage.y = itemY;
+ fakeBigImage.sourceSize = image.sourceSize;
+ fakeBigImage.source = filePath;
+
+ beginEnterLargeAnimation.running = true;
+ }
+
+ property int time: 500;
+ property real xPos: width < height ? 0 : width / 2 - height / 2;
+ property real yPos: width < height ? height / 2 - width / 2: 0;
+ property real size: Math.min(width, height);
+
+ states: [
+ State { name: "grid" },
+ State { name: "enter-large" },
+ State { name: "large" },
+ State { name: "exit-large" }
+ ]
+
+ SequentialAnimation {
+ id: beginEnterLargeAnimation
+ PropertyAction { target: mouseArea; property: "enabled"; value: "true" }
+ PropertyAction { target: fakeBigImage; property: "rotation"; value: 2; }
+ PropertyAction { target: fakeBigImage; property: "scale"; value: 0.97 * 0.9; }
+ PropertyAction { target: fakeBigImage; property: "width"; value: grid.cellWidth; }
+ PropertyAction { target: fakeBigImage; property: "height"; value: grid.cellHeight; }
+ PropertyAction { target: fakeBigImage; property: "visible"; value: true; }
+
+ ParallelAnimation {
+ NumberAnimation { target: fakeBigImage; property: "rotation"; to: 0; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: fakeBigImage; property: "scale"; to: 1; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: fakeBigImage; property: "x"; to: root.xPos; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: fakeBigImage; property: "y"; to: root.yPos; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: fakeBigImage; property: "width"; to: root.size; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: fakeBigImage; property: "height"; to: root.size; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: grid; property: "opacity"; to: 0; duration: root.time; easing.type: Easing.InOutCubic }
+ }
+ ScriptAction {
+ script: {
+
+ bigImage = realBigImageComponent.createObject(root);
+ bigImage.source = fakeBigImage.source;
+ }
+ }
+ }
+
+ property Item bigImage;
+ property real targetRotation: 0;
+ property real targetWidth: 0
+ property real targetHeight: 0
+ property bool bigImageShowing: false;
+
+ SequentialAnimation {
+ id: finalizeEnterLargeAnimation
+ ScriptAction { script: {
+ fakeBigImage.anchors.centerIn = root;
+ }
+ }
+ ParallelAnimation {
+ NumberAnimation { target: bigImage; property: "opacity"; to: 1; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: fakeBigImage; property: "rotation"; to: root.targetRotation; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: bigImage; property: "rotation"; to: root.targetRotation; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: fakeBigImage; property: "width"; to: root.targetWidth; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: fakeBigImage; property: "height"; to: root.targetHeight; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: bigImage; property: "width"; to: root.targetWidth; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: bigImage; property: "height"; to: root.targetHeight; duration: root.time; easing.type: Easing.InOutCubic }
+ }
+ PropertyAction { target: fakeBigImage; property: "visible"; value: false }
+ PropertyAction { target: root; property: "bigImageShowing"; value: true }
+ }
+
+ SequentialAnimation {
+ id: backToGridAnimation
+ ParallelAnimation {
+ NumberAnimation { target: bigImage; property: "opacity"; to: 0; duration: root.time; easing.type: Easing.InOutCubic }
+ NumberAnimation { target: grid; property: "opacity"; to: 1; duration: root.time; easing.type: Easing.InOutCubic }
+ }
+ PropertyAction { target: fakeBigImage; property: "source"; value: "" }
+ PropertyAction { target: root; property: "bigImageShowing"; value: false }
+ PropertyAction { target: mouseArea; property: "enabled"; value: false }
+ ScriptAction { script: {
+ bigImage.destroy();
+ fakeBigImage.anchors.centerIn = undefined
+ }
+ }
+ }
+
+ Image {
+ id: fakeBigImage
+ width: grid.cellWidth
+ height: grid.cellHeight
+ visible: false
+ antialiasing: true
+ }
+
+ Component {
+ id: realBigImageComponent
+
+ Image {
+ id: realBigImage
+
+ anchors.centerIn: parent;
+
+ asynchronous: true;
+
+ // Bound size to the current display size, to try to avoid any GL_MAX_TEXTURE_SIZE issues.
+ sourceSize: Qt.size(Math.max(root.width, root.height), Math.max(root.width, root.height));
+
+ opacity: 0
+ onStatusChanged: {
+
+ if (status != Image.Ready)
+ return;
+
+ var imageIsLandscape = width > height;
+ var screenIsLandscape = root.width > root.height;
+
+ var targetScale;
+
+ // Rotation needed...
+ if (imageIsLandscape != screenIsLandscape && width != height) {
+ root.targetRotation = 90;
+ var aspect = width / height
+ var screenAspect = root.height / root.width
+
+ if (aspect > screenAspect) {
+ targetScale = root.height / width
+ } else {
+ targetScale = root.width / height;
+ }
+ } else {
+ root.targetRotation = 0;
+ var aspect = height / width;
+ var screenAspect = root.height / root.width
+
+ if (aspect > screenAspect) {
+ targetScale = root.height / height
+ } else {
+ targetScale = root.width / width;
+ }
+ }
+
+ root.targetWidth = width * targetScale
+ root.targetHeight = height * targetScale;
+
+ width = root.size
+ height = root.size;
+
+ finalizeEnterLargeAnimation.running = true;
+ }
+ }
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ enabled: false
+
+ onClicked: {
+ if (root.bigImageShowing)
+ backToGridAnimation.running = true;
+ }
+ }
+
+}
diff --git a/basicsuite/photogallery/photogallery.pro b/basicsuite/photogallery/photogallery.pro
new file mode 100644
index 0000000..3b1476a
--- /dev/null
+++ b/basicsuite/photogallery/photogallery.pro
@@ -0,0 +1,13 @@
+TARGET = photogallery
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ *.png
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/Photo Gallery/preview_l.jpg b/basicsuite/photogallery/preview_l.jpg
index 0b67f1d..0b67f1d 100644
--- a/basicsuite/Photo Gallery/preview_l.jpg
+++ b/basicsuite/photogallery/preview_l.jpg
Binary files differ
diff --git a/basicsuite/photogallery/title.txt b/basicsuite/photogallery/title.txt
new file mode 100644
index 0000000..4aee1d3
--- /dev/null
+++ b/basicsuite/photogallery/title.txt
@@ -0,0 +1 @@
+Photo Gallery
diff --git a/basicsuite/Qt5 Cinematic Demo/Qt5_CinematicExperience.pro b/basicsuite/qt5-cinematicdemo/Qt5_CinematicExperience.pro
index 3830ee9..3830ee9 100644
--- a/basicsuite/Qt5 Cinematic Demo/Qt5_CinematicExperience.pro
+++ b/basicsuite/qt5-cinematicdemo/Qt5_CinematicExperience.pro
diff --git a/basicsuite/qt5-cinematicdemo/README b/basicsuite/qt5-cinematicdemo/README
new file mode 100644
index 0000000..37ef43e
--- /dev/null
+++ b/basicsuite/qt5-cinematicdemo/README
@@ -0,0 +1,49 @@
+
+INTRO
+==========
+
+This UX demo application presents some graphical features of Qt5.
+The name 'Cinematic Experience' reflects how it's possible to build user
+interfaces with increased dynamics.
+
+
+RUNNING
+==========
+
+To run this application you need relatively recent build of Qt5:
+- http://qt-project.org
+- http://qt.gitorious.org/qt/qt5
+
+There are two different ways to run the application:
+
+1) If your target platform contains 'qmlscene' binary, just use it:
+---
+cd Qt5_CinematicExperience
+[path to Qt5]/qtbase/bin/qmlscene Qt5_CinematicExperience.qml
+---
+
+2) Alternatively, a simple launcher is provided to start the application:
+---
+cd Qt5_CinematicExperience
+[path to Qt5]/qtbase/bin/qmake
+make
+./Qt5_CinematicExperience
+---
+
+The run application in fullscreen mode, use '--fullscreen' parameter for
+qmlscene or launcher. If you want to tweak the window resolution,
+modify 'width' and 'height' properties in Qt5_CinematicExperience.qml
+
+
+LICENSE
+==========
+
+Source codes are licensed under a Creative Commons Attribution 3.0 Unported
+License. http://creativecommons.org/licenses/by/3.0/
+
+No attribution required, but feel free to mention us or
+contact info@quitcoding.com
+
+Qt, and the Qt logo are trademarks of Digia Plc.
+Movie reviews copyright © IMDb.com
+DVD cover icons from http://www.iconarchive.com
diff --git a/basicsuite/Qt5 Cinematic Demo/content/Background.qml b/basicsuite/qt5-cinematicdemo/content/Background.qml
index f0225ba..f0225ba 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/Background.qml
+++ b/basicsuite/qt5-cinematicdemo/content/Background.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/Button.qml b/basicsuite/qt5-cinematicdemo/content/Button.qml
index c6ab643..c6ab643 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/Button.qml
+++ b/basicsuite/qt5-cinematicdemo/content/Button.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/CurtainEffect.qml b/basicsuite/qt5-cinematicdemo/content/CurtainEffect.qml
index 961b348..961b348 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/CurtainEffect.qml
+++ b/basicsuite/qt5-cinematicdemo/content/CurtainEffect.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/DelegateItem.qml b/basicsuite/qt5-cinematicdemo/content/DelegateItem.qml
index ced4f95..ced4f95 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/DelegateItem.qml
+++ b/basicsuite/qt5-cinematicdemo/content/DelegateItem.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/DetailsView.qml b/basicsuite/qt5-cinematicdemo/content/DetailsView.qml
index b3ff952..b3ff952 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/DetailsView.qml
+++ b/basicsuite/qt5-cinematicdemo/content/DetailsView.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/FpsItem.qml b/basicsuite/qt5-cinematicdemo/content/FpsItem.qml
index fb66d56..fb66d56 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/FpsItem.qml
+++ b/basicsuite/qt5-cinematicdemo/content/FpsItem.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/InfoView.qml b/basicsuite/qt5-cinematicdemo/content/InfoView.qml
index dee035e..dee035e 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/InfoView.qml
+++ b/basicsuite/qt5-cinematicdemo/content/InfoView.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/InfoViewItem.qml b/basicsuite/qt5-cinematicdemo/content/InfoViewItem.qml
index a339f98..a339f98 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/InfoViewItem.qml
+++ b/basicsuite/qt5-cinematicdemo/content/InfoViewItem.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/MainView.qml b/basicsuite/qt5-cinematicdemo/content/MainView.qml
index 73efe70..73efe70 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/MainView.qml
+++ b/basicsuite/qt5-cinematicdemo/content/MainView.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/MoviesModel.qml b/basicsuite/qt5-cinematicdemo/content/MoviesModel.qml
index c2ee561..c2ee561 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/MoviesModel.qml
+++ b/basicsuite/qt5-cinematicdemo/content/MoviesModel.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/RatingsItem.qml b/basicsuite/qt5-cinematicdemo/content/RatingsItem.qml
index 6d22489..6d22489 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/RatingsItem.qml
+++ b/basicsuite/qt5-cinematicdemo/content/RatingsItem.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/SettingsView.qml b/basicsuite/qt5-cinematicdemo/content/SettingsView.qml
index 7944803..7944803 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/SettingsView.qml
+++ b/basicsuite/qt5-cinematicdemo/content/SettingsView.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/Switch.qml b/basicsuite/qt5-cinematicdemo/content/Switch.qml
index 967c03f..967c03f 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/Switch.qml
+++ b/basicsuite/qt5-cinematicdemo/content/Switch.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/1.png b/basicsuite/qt5-cinematicdemo/content/images/1.png
index 15c16d0..15c16d0 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/1.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/1.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/10.png b/basicsuite/qt5-cinematicdemo/content/images/10.png
index d1bbf39..d1bbf39 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/10.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/10.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/11.png b/basicsuite/qt5-cinematicdemo/content/images/11.png
index d2bf2f4..d2bf2f4 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/11.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/11.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/12.png b/basicsuite/qt5-cinematicdemo/content/images/12.png
index 92031de..92031de 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/12.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/12.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/13.png b/basicsuite/qt5-cinematicdemo/content/images/13.png
index d28b3ea..d28b3ea 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/13.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/13.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/14.png b/basicsuite/qt5-cinematicdemo/content/images/14.png
index 9755a27..9755a27 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/14.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/14.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/15.png b/basicsuite/qt5-cinematicdemo/content/images/15.png
index a1b6efb..a1b6efb 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/15.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/15.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/16.png b/basicsuite/qt5-cinematicdemo/content/images/16.png
index 7a4a520..7a4a520 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/16.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/16.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/17.png b/basicsuite/qt5-cinematicdemo/content/images/17.png
index 33853b1..33853b1 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/17.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/17.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/18.png b/basicsuite/qt5-cinematicdemo/content/images/18.png
index a04e29e..a04e29e 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/18.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/18.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/19.png b/basicsuite/qt5-cinematicdemo/content/images/19.png
index 8af7536..8af7536 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/19.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/19.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/2.png b/basicsuite/qt5-cinematicdemo/content/images/2.png
index 30deff4..30deff4 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/2.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/2.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/20.png b/basicsuite/qt5-cinematicdemo/content/images/20.png
index 78b8acb..78b8acb 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/20.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/20.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/3.png b/basicsuite/qt5-cinematicdemo/content/images/3.png
index 0a2675e..0a2675e 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/3.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/3.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/4.png b/basicsuite/qt5-cinematicdemo/content/images/4.png
index 7d4620b..7d4620b 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/4.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/4.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/5.png b/basicsuite/qt5-cinematicdemo/content/images/5.png
index bfd1d61..bfd1d61 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/5.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/5.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/6.png b/basicsuite/qt5-cinematicdemo/content/images/6.png
index 7ae2086..7ae2086 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/6.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/6.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/7.png b/basicsuite/qt5-cinematicdemo/content/images/7.png
index a1b1925..a1b1925 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/7.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/7.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/8.png b/basicsuite/qt5-cinematicdemo/content/images/8.png
index fcfa8d4..fcfa8d4 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/8.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/8.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/9.png b/basicsuite/qt5-cinematicdemo/content/images/9.png
index c066c29..c066c29 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/9.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/9.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/background.png b/basicsuite/qt5-cinematicdemo/content/images/background.png
index f88c905..f88c905 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/background.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/background.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/background3.png b/basicsuite/qt5-cinematicdemo/content/images/background3.png
index 67b16dd..67b16dd 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/background3.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/background3.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/button.png b/basicsuite/qt5-cinematicdemo/content/images/button.png
index 1f1c375..1f1c375 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/button.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/button.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/cc-by_logo.png b/basicsuite/qt5-cinematicdemo/content/images/cc-by_logo.png
index d264c4e..d264c4e 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/cc-by_logo.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/cc-by_logo.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/cover_nmap.png b/basicsuite/qt5-cinematicdemo/content/images/cover_nmap.png
index e613d9b..e613d9b 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/cover_nmap.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/cover_nmap.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/grip.png b/basicsuite/qt5-cinematicdemo/content/images/grip.png
index 66118f9..66118f9 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/grip.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/grip.png
Binary files differ
diff --git a/basicsuite/qt5-cinematicdemo/content/images/heading.png b/basicsuite/qt5-cinematicdemo/content/images/heading.png
new file mode 100644
index 0000000..c8a5586
--- /dev/null
+++ b/basicsuite/qt5-cinematicdemo/content/images/heading.png
Binary files differ
diff --git a/basicsuite/qt5-cinematicdemo/content/images/heading_big.png b/basicsuite/qt5-cinematicdemo/content/images/heading_big.png
new file mode 100644
index 0000000..3e3c7fc
--- /dev/null
+++ b/basicsuite/qt5-cinematicdemo/content/images/heading_big.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/heading_big.xcf b/basicsuite/qt5-cinematicdemo/content/images/heading_big.xcf
index b77b948..b77b948 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/heading_big.xcf
+++ b/basicsuite/qt5-cinematicdemo/content/images/heading_big.xcf
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/info.png b/basicsuite/qt5-cinematicdemo/content/images/info.png
index 0f9d3c3..0f9d3c3 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/info.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/info.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/panel_bg.png b/basicsuite/qt5-cinematicdemo/content/images/panel_bg.png
index fd25e7e..fd25e7e 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/panel_bg.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/panel_bg.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/particle.png b/basicsuite/qt5-cinematicdemo/content/images/particle.png
index 5c83896..5c83896 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/particle.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/particle.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/planet_sprite.png b/basicsuite/qt5-cinematicdemo/content/images/planet_sprite.png
index 8ea7b13..8ea7b13 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/planet_sprite.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/planet_sprite.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/qt_ambassador_logo.png b/basicsuite/qt5-cinematicdemo/content/images/qt_ambassador_logo.png
index dec13bb..dec13bb 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/qt_ambassador_logo.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/qt_ambassador_logo.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/qt_logo.png b/basicsuite/qt5-cinematicdemo/content/images/qt_logo.png
index 53e4806..53e4806 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/qt_logo.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/qt_logo.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/qt_logo2.png b/basicsuite/qt5-cinematicdemo/content/images/qt_logo2.png
index 748392d..748392d 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/qt_logo2.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/qt_logo2.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/quit_logo.png b/basicsuite/qt5-cinematicdemo/content/images/quit_logo.png
index f1ad50e..f1ad50e 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/quit_logo.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/quit_logo.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/sc1.png b/basicsuite/qt5-cinematicdemo/content/images/sc1.png
index 3e21076..3e21076 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/sc1.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/sc1.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/sc2.png b/basicsuite/qt5-cinematicdemo/content/images/sc2.png
index 54befbd..54befbd 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/sc2.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/sc2.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/sc3.png b/basicsuite/qt5-cinematicdemo/content/images/sc3.png
index f71cec8..f71cec8 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/sc3.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/sc3.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/sc4.png b/basicsuite/qt5-cinematicdemo/content/images/sc4.png
index d0797a1..d0797a1 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/sc4.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/sc4.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/sc5.png b/basicsuite/qt5-cinematicdemo/content/images/sc5.png
index d9461c4..d9461c4 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/sc5.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/sc5.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/settings.png b/basicsuite/qt5-cinematicdemo/content/images/settings.png
index 4215bee..4215bee 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/settings.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/settings.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/smoke.png b/basicsuite/qt5-cinematicdemo/content/images/smoke.png
index be0cedf..be0cedf 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/smoke.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/smoke.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/spinner.png b/basicsuite/qt5-cinematicdemo/content/images/spinner.png
index e59efb2..e59efb2 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/spinner.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/spinner.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/star.png b/basicsuite/qt5-cinematicdemo/content/images/star.png
index 0d592cf..0d592cf 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/star.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/star.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/stars.png b/basicsuite/qt5-cinematicdemo/content/images/stars.png
index a997e1b..a997e1b 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/stars.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/stars.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/stars2.png b/basicsuite/qt5-cinematicdemo/content/images/stars2.png
index 50e3200..50e3200 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/stars2.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/stars2.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/switch_background.png b/basicsuite/qt5-cinematicdemo/content/images/switch_background.png
index bd9a4ca..bd9a4ca 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/switch_background.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/switch_background.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/switch_frame.png b/basicsuite/qt5-cinematicdemo/content/images/switch_frame.png
index 8404a53..8404a53 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/switch_frame.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/switch_frame.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/switch_on.png b/basicsuite/qt5-cinematicdemo/content/images/switch_on.png
index bc9fccb..bc9fccb 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/switch_on.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/switch_on.png
Binary files differ
diff --git a/basicsuite/Qt5 Cinematic Demo/content/images/switch_thumb.png b/basicsuite/qt5-cinematicdemo/content/images/switch_thumb.png
index e8f7451..e8f7451 100644
--- a/basicsuite/Qt5 Cinematic Demo/content/images/switch_thumb.png
+++ b/basicsuite/qt5-cinematicdemo/content/images/switch_thumb.png
Binary files differ
diff --git a/basicsuite/qt5-cinematicdemo/description.txt b/basicsuite/qt5-cinematicdemo/description.txt
new file mode 100644
index 0000000..253d246
--- /dev/null
+++ b/basicsuite/qt5-cinematicdemo/description.txt
@@ -0,0 +1,5 @@
+The Qt5 Cinematic Experience is a demo by "QUIt Coding", a small group of talented individuals enjoying software development with cutting edge technologies. They are official members of the Qt Ambassador Program.
+
+The demo shows off a number features of Qt Quick 2.0. A nicely styled list control of movie covers with lighting effects, particles and transitions. The information roll-down curvy curtain is implemented using inline GLSL in the QML file.
+
+The source code for this demo and more awesome looking Qt Quick examples are available from quitcoding.com.
diff --git a/basicsuite/Qt5 Cinematic Demo/main.cpp b/basicsuite/qt5-cinematicdemo/main.cpp
index 81c1c85..81c1c85 100644
--- a/basicsuite/Qt5 Cinematic Demo/main.cpp
+++ b/basicsuite/qt5-cinematicdemo/main.cpp
diff --git a/basicsuite/Qt5 Cinematic Demo/main.qml b/basicsuite/qt5-cinematicdemo/main.qml
index b9ad90f..b9ad90f 100644
--- a/basicsuite/Qt5 Cinematic Demo/main.qml
+++ b/basicsuite/qt5-cinematicdemo/main.qml
diff --git a/basicsuite/Qt5 Cinematic Demo/preview_l.jpg b/basicsuite/qt5-cinematicdemo/preview_l.jpg
index 21bb2f9..21bb2f9 100644
--- a/basicsuite/Qt5 Cinematic Demo/preview_l.jpg
+++ b/basicsuite/qt5-cinematicdemo/preview_l.jpg
Binary files differ
diff --git a/basicsuite/qt5-cinematicdemo/qt5-cinematicdemo.pro b/basicsuite/qt5-cinematicdemo/qt5-cinematicdemo.pro
new file mode 100644
index 0000000..b4c5ae8
--- /dev/null
+++ b/basicsuite/qt5-cinematicdemo/qt5-cinematicdemo.pro
@@ -0,0 +1,14 @@
+TARGET = qt5-cinematicdemo
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ *.png \
+ content
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/qt5-cinematicdemo/title.txt b/basicsuite/qt5-cinematicdemo/title.txt
new file mode 100644
index 0000000..68451f8
--- /dev/null
+++ b/basicsuite/qt5-cinematicdemo/title.txt
@@ -0,0 +1 @@
+Qt5 Cinematic Demo
diff --git a/basicsuite/qt5-everywhere/Button.qml b/basicsuite/qt5-everywhere/Button.qml
new file mode 100644
index 0000000..d3b30a7
--- /dev/null
+++ b/basicsuite/qt5-everywhere/Button.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+ width: (app.height + app.width) * 0.04
+ height: width
+
+ property string imageSource : ""
+ property double rotation: 0
+ signal clicked()
+
+ Image {
+ id: buttonImage
+ anchors.fill: root
+ anchors.margins: 0
+ source: root.imageSource
+ opacity: 1.0
+ rotation: root.rotation
+ }
+
+ MouseArea {
+ id: buttonMouseArea
+ anchors.fill: root
+ anchors.margins: -20
+ hoverEnabled: true
+ onClicked: root.clicked()
+ onEntered: buttonImage.anchors.margins = -(root.width * 0.1)
+ onExited: buttonImage.anchors.margins = 0
+ onPressed: {buttonImage.opacity = 0.7; buttonImage.anchors.margins = -(root.width * 0.1)}
+ onReleased: { buttonImage.opacity = 1.0; buttonImage.anchors.margins = 0}
+ }
+}
diff --git a/basicsuite/qt5-everywhere/Cloud.qml b/basicsuite/qt5-everywhere/Cloud.qml
new file mode 100644
index 0000000..00fce39
--- /dev/null
+++ b/basicsuite/qt5-everywhere/Cloud.qml
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: cloudRoot
+ x: app.width
+ y: randomY+deltaY
+ width: app.width*0.2
+ height: width*0.4
+
+ property int duration: 20000
+ property string sourceImage: ""
+ property real deltaY: 0
+ property real randomY: app.height*0.3
+ property real amplitudeY: app.height*0.2
+
+ function start() {
+ recalculate()
+ cloudXAnimation.restart();
+ cloudYAnimation.restart();
+ }
+
+ function recalculate() {
+ cloudRoot.duration = Math.random()*15000 + 10000
+ cloudRoot.x = app.width
+ cloudRoot.randomY = Math.random()*app.height
+ cloudRoot.width = app.width*0.2
+ cloudRoot.height = cloudRoot.width*0.4
+ cloudRoot.scale = Math.random()*0.6 + 0.7
+ }
+
+ Image {
+ id: cloud
+ anchors.fill: cloudRoot
+ source: cloudRoot.sourceImage
+ }
+
+ SequentialAnimation{
+ id: cloudYAnimation
+ NumberAnimation { target: cloudRoot; property: "deltaY"; duration: cloudRoot.duration*0.3; from: 0; to:cloudRoot.amplitudeY; easing.type: Easing.InOutQuad }
+ NumberAnimation { target: cloudRoot; property: "deltaY"; duration: cloudRoot.duration*0.3; from: cloudRoot.amplitudeY; to:0; easing.type: Easing.InOutQuad }
+ running: true
+ onRunningChanged: {
+ if (!running) {
+ cloudRoot.amplitudeY = Math.random() * (app.height*0.2)
+ restart()
+ }
+ }
+ }
+
+ NumberAnimation {
+ id: cloudXAnimation
+ target: cloudRoot
+ property: "x"
+ duration: cloudRoot.duration
+ to:-cloudRoot.width
+ running: true
+
+ onRunningChanged: {
+ if (!running) {
+ recalculate()
+ restart()
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/DialogButton.qml b/basicsuite/qt5-everywhere/DialogButton.qml
new file mode 100644
index 0000000..ff0e235
--- /dev/null
+++ b/basicsuite/qt5-everywhere/DialogButton.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+ id: button
+ radius: 10
+ height: 0.3 * dialog.height
+ width: dialog.width * 0.5 - dialog.dialogMargin
+ color: "transparent"
+
+ property string buttonText
+ signal clicked()
+
+ Text {
+ anchors.centerIn: parent
+ text: button.buttonText
+ font.pixelSize: 0.4 * button.height
+ color: "#ffffff"
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: parent.color = Qt.rgba(0.2, 0.2, 0.2, 0.4)
+ onReleased: parent.color = "transparent"
+ onClicked: button.clicked()
+ }
+}
diff --git a/basicsuite/qt5-everywhere/Element.qml b/basicsuite/qt5-everywhere/Element.qml
new file mode 100644
index 0000000..8692f76
--- /dev/null
+++ b/basicsuite/qt5-everywhere/Element.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+ width: 1
+ height: 1
+
+ property int itemId : 1
+
+ Image {
+ id: elementImage
+ anchors.centerIn: root
+ z: 5
+ }
+
+ Component.onCompleted: {
+ elementImage.source = root.itemId === 1 ? "images/tree1.png" :
+ root.itemId === 2 ? "images/tree2.png" :
+ root.itemId === 3 ? "images/mountain.png" :
+ root.itemId === 4 ? "images/stones.png" :
+ root.itemId === 5 ? "images/box_open.png" :
+ root.itemId === 6 ? "images/box.png" :
+ root.itemId === 10 ? "images/character0.png" :
+ root.itemId === 11 ? "images/character1.png" :
+ root.itemId === 12 ? "images/character3.png" :
+ root.itemId === 13 ? "images/character7.png" :
+ root.itemId === 14 ? "images/character8.png" :
+ root.itemId === 15 ? "images/character9.png" :
+ root.itemId === 20 ? "images/character2.png" :
+ root.itemId === 21 ? "images/character4.png" :
+ root.itemId === 22 ? "images/character5.png" :
+ root.itemId === 23 ? "images/character6.png" :
+ root.itemId === 24 ? "images/character10.png" :
+ ""
+ }
+}
diff --git a/basicsuite/qt5-everywhere/Group.qml b/basicsuite/qt5-everywhere/Group.qml
new file mode 100644
index 0000000..b3c6aa3
--- /dev/null
+++ b/basicsuite/qt5-everywhere/Group.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "style.js" as Style
+
+Item {
+ id: group
+ objectName: "group"
+
+ property int uid: 0
+ property real targetScale: 1
+ property int textX: 0
+ property int textY: 0
+ property string name: "Text"
+ property real imageScale: 6.0
+
+ property int fontSize: 160
+ property string uiFont: Style.FONT_FAMILY
+ property bool bold: true
+ property int fontTransition: 6
+
+ Text {
+ text: group.name
+ x: textX
+ y: textY
+ font.pixelSize: group.fontSize
+ font.family: Style.FONT_FAMILY
+ font.bold: group.bold
+ color: "#42200a"
+ smooth: true
+
+ Text {
+ text: group.name
+ color: "#1d6cb0"
+ x:group.fontTransition
+ y:-group.fontTransition
+ font.pixelSize: group.fontSize
+ font.family: Style.FONT_FAMILY
+ font.bold: group.bold
+ smooth: true
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/HelpScreen.qml b/basicsuite/qt5-everywhere/HelpScreen.qml
new file mode 100644
index 0000000..3f5980f
--- /dev/null
+++ b/basicsuite/qt5-everywhere/HelpScreen.qml
@@ -0,0 +1,329 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "style.js" as Style
+
+Item {
+ id: root
+ anchors.fill:parent
+ property int delay: 500
+ property int rotationAngle:0
+
+ SequentialAnimation {
+ id: closeAnimation
+
+ ScriptAction{
+ script: {
+ pointer.visible = false
+ instructionText.text = ""
+ instructionText2.text = ""
+ highlightImage.smooth = false
+ highlight.size = Math.max(root.height, root.width)*2.5
+ }
+ }
+
+ PauseAnimation { duration: root.delay }
+
+ onRunningChanged: if (!running){
+ stopAnimations()
+ root.visible=false
+ highlight.size=0
+ highlightImage.smooth = true
+ }
+ }
+
+
+ Item{
+ id: highlight
+ property int size: 0
+ property bool hidden: false
+ width:1
+ height:1
+ Behavior on x {NumberAnimation{duration: root.delay}}
+ Behavior on y {NumberAnimation{duration: root.delay}}
+ Behavior on size {id: sizeBehavior; NumberAnimation{duration: root.delay}}
+ }
+
+ Image{
+ id: highlightImage
+ anchors.centerIn: highlight
+ width: highlight.hidden? 0: highlight.size
+ height: highlight.hidden? 0: highlight.size
+ source: "images/highlight_mask.png"
+ opacity: .8
+ smooth: true
+ }
+
+ Rectangle{
+ id: top
+ anchors {left:parent.left; top: parent.top; right: parent.right; bottom: highlightImage.top}
+ color: "black"
+ opacity: .8
+ }
+
+ Rectangle{
+ id: bottom
+ anchors {left:parent.left; top: highlightImage.bottom; right: parent.right; bottom: parent.bottom}
+ color: "black"
+ opacity: .8
+ }
+
+ Rectangle{
+ id: left
+ anchors {left:parent.left; top: highlightImage.top; right: highlightImage.left; bottom: highlightImage.bottom}
+ color: "black"
+ opacity: .8
+ }
+
+ Rectangle{
+ id: right
+ anchors {left:highlightImage.right; top: highlightImage.top; right: parent.right; bottom: highlightImage.bottom}
+ color: "black"
+ opacity: .8
+ }
+
+ Text{
+ id: instructionText
+ anchors {horizontalCenter: parent.horizontalCenter; top: parent.top; topMargin: parent.height*.05}
+ text: ""
+ font.pixelSize: parent.width*.075
+ font.family: Style.FONT_FAMILY
+ smooth: true
+ color: "white"
+
+ Text{
+ id: instructionText2
+ anchors {horizontalCenter: parent.horizontalCenter; top: parent.bottom; topMargin: -parent.height/2}
+ text: ""
+ font.pixelSize: parent.font.pixelSize
+ font.family: Style.FONT_FAMILY
+ smooth: true
+ color: "white"
+ }
+ }
+
+ Item{
+ id: pointer
+ width: parent.width*.3
+ height: parent.width*.3
+
+ Image{
+ id: handImage
+ width: parent.width*.8
+ height: width
+ source: "images/hand.png"
+ y: parent.height/2-height/2
+ x: parent.width/2-width/2+deltaX
+ property int deltaX:0
+ anchors.verticalCenter: parent.verticalCenter
+ rotation: 90
+
+ SequentialAnimation{
+ id: pointingAnimation
+ PauseAnimation { duration: root.delay}
+ NumberAnimation{
+ target: handImage
+ property: "deltaX"
+ from: -handImage.width*.2
+ to: handImage.width*.2
+ duration: 500
+ easing.type: Easing.InOutCubic
+ }
+ PauseAnimation { duration: 200 }
+ NumberAnimation{
+ target: handImage
+ property: "deltaX"
+ from: handImage.width*.2
+ to: -handImage.width*.2
+ duration: 500
+ easing.type: Easing.InOutCubic
+
+ }
+ }
+
+ }
+ }
+
+ SequentialAnimation {
+ id: helpAnimation
+ loops: Animation.Infinite
+
+ PauseAnimation { duration: 1000 }
+ PropertyAction { target: handImage; property: "mirror"; value: true}
+ PropertyAction { target: instructionText; property: "text"; value: "Tap on the devices to"}
+ PropertyAction { target: instructionText2; property: "text"; value: "open applications"}
+ PropertyAction { target: pointer; property: "visible"; value: true}
+ PropertyAction { target: highlight; property: "hidden"; value: false}
+
+ SequentialAnimation {
+ id: clickAnimation
+ property int index: 0
+ property variant uids: [8,12]
+ loops: 2
+
+ ScriptAction{
+ script: {
+ clickAnimation.index+=1
+ if (clickAnimation.index>=clickAnimation.uids.length) clickAnimation.index=0
+ }
+ }
+
+ ScriptAction{
+ script: {
+ highlight.size= (700+clickAnimation.index*100)*canvas.scalingFactor
+
+ highlight.x=root.width/2 +getPosition(clickAnimation.uids[clickAnimation.index]).x*canvas.scalingFactor
+ highlight.y=root.height/2 +getPosition(clickAnimation.uids[clickAnimation.index]).y*canvas.scalingFactor
+
+ pointer.x= root.width/2 -pointer.width/2 +getPosition(clickAnimation.uids[clickAnimation.index]).x*canvas.scalingFactor*.5
+ pointer.y= root.height/2 -pointer.height/2 +getPosition(clickAnimation.uids[clickAnimation.index]).y*canvas.scalingFactor*.5
+ pointer.rotation=Math.atan2(getPosition(clickAnimation.uids[clickAnimation.index]).y*canvas.scalingFactor, getPosition(clickAnimation.uids[clickAnimation.index]).x*canvas.scalingFactor)*180.0/Math.PI
+ pointingAnimation.restart()
+ }
+ }
+
+ PauseAnimation { duration: 3000 }
+ }
+ PauseAnimation { duration: 1000 }
+
+ SequentialAnimation{
+ id: navigationAnimation
+ PropertyAction { target: handImage; property: "mirror"; value: false}
+ PropertyAction { target: instructionText; property: "text"; value: "Use the Arrow to navigate"}
+ PropertyAction { target: instructionText2; property: "text"; value: "between applications"}
+ ScriptAction{
+ script: {
+ highlight.size= Math.min(root.width, root.height)*.4
+
+ var _x=0;
+ var _y=0;
+
+ if (root.width > root.height){
+ _x = navigationPanel.x+navigationPanel.width /2
+ _y = navigationPanel.y+navigationPanel.height*.33
+ pointer.x= root.width/2 -pointer.width/2 +root.width*.2
+ pointer.y= root.height/2 -pointer.height/2
+ highlight.x=_x
+ highlight.y=_y
+
+ }else{
+ _x=navigationPanel.x+navigationPanel.width*.33
+ _y=navigationPanel.y + navigationPanel.height /2
+ pointer.x= root.width/2 -pointer.width/2
+ pointer.y= root.height/2 -pointer.height/2 +root.height*.2
+ highlight.x=_x
+ highlight.y=_y
+ }
+
+ pointer.rotation=Math.atan2(_y-(pointer.y+pointer.height/2), _x-(pointer.x+pointer.width/2))*180.0/Math.PI
+
+ pointingAnimation.restart()
+ }
+ }
+ PauseAnimation { duration: 5000 }
+
+ PropertyAction { target: instructionText; property: "text"; value: "Use the Home button to"}
+ PropertyAction { target: instructionText2; property: "text"; value: "return to the beginning"}
+ ScriptAction{
+ script: {
+ highlight.size= Math.min(root.width, root.height)*.3
+
+ var _x=0;
+ var _y=0;
+
+ if (root.width > root.height){
+ _x = navigationPanel.x+navigationPanel.width /2
+ _y = navigationPanel.y+navigationPanel.height-navigationPanel.width /2
+ pointer.x= root.width/2 -pointer.width/2 +root.width*.2
+ pointer.y= root.height/2 -pointer.height/2
+ highlight.x=_x
+ highlight.y=_y
+
+ }else{
+ _x=navigationPanel.x+navigationPanel.width-navigationPanel.height /2
+ _y=navigationPanel.y + navigationPanel.height /2
+ pointer.x= root.width/2 -pointer.width/2
+ pointer.y= root.height/2 -pointer.height/2 +root.height*.2
+ highlight.x=_x
+ highlight.y=_y
+ }
+ pointer.rotation=Math.atan2(_y-(pointer.y+pointer.height/2), _x-(pointer.x+pointer.width/2))*180.0/Math.PI
+
+ pointingAnimation.restart()
+ }
+ }
+ PauseAnimation { duration: 5000 }
+ }
+
+ }
+
+ onWidthChanged: if (visible) show()
+ onHeightChanged: if (visible) show()
+
+ function show(){
+ highlight.hidden = true
+
+ pointer.visible = false
+ rotationAngle = 0
+
+ startAnimations()
+ visible = true
+ }
+
+ function startAnimations(){
+ pointingAnimation.restart()
+ helpAnimation.restart()
+ }
+
+ function stopAnimations(){
+ pointingAnimation.stop()
+ helpAnimation.stop()
+ }
+
+ MouseArea{
+ anchors.fill: root
+ onClicked: {
+ stopAnimations()
+ closeAnimation.restart()
+ }
+ }
+}
+
diff --git a/basicsuite/qt5-everywhere/IslandElementContainer.qml b/basicsuite/qt5-everywhere/IslandElementContainer.qml
new file mode 100644
index 0000000..66d1e64
--- /dev/null
+++ b/basicsuite/qt5-everywhere/IslandElementContainer.qml
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: elementContainer
+
+ width: place == 2 ? parent.width : (islandWidth-parent.width)/2
+ height: place == 2 ? 0.1*islandHeight : 0.4*islandHeight
+ x: place == 0 ? -width : place == 1 ? parent.width : 0
+ y: place == 2 ? parent.height : (parent.height - height*0.6)
+
+ property int place : 0
+ property int itemWidth : islandWidth * 0.1
+ property int islandWidth: 100
+ property int islandHeight: 100
+
+ function createElement(xx, yy, itemId) {
+ var component = Qt.createComponent("Element.qml")
+ if (component.status === Component.Ready)
+ component.createObject(elementContainer, {"x": xx, "y": yy, "itemId": itemId});
+ }
+
+ function createElements()
+ {
+ // Left side
+ if (place === 0) {
+ var temp0 = Math.floor(Math.random()*6.9);
+ switch(temp0) {
+ case 0:
+ createElement(elementContainer.width*0.4, elementContainer.height*0.2, 1);
+ createElement(elementContainer.width*0.25, elementContainer.height*0.3, 1);
+ createElement(elementContainer.width*0.15, elementContainer.height*0.5, 1);
+ createElement(elementContainer.width*0.55, elementContainer.height*0.4, 1);
+ break;
+ case 1:
+ createElement(elementContainer.width*0.6, elementContainer.height*0.1, 1);
+ createElement(elementContainer.width*0.4, elementContainer.height*0.2, 1);
+ createElement(elementContainer.width*0.7, elementContainer.height*0.3, 1);
+ createElement(elementContainer.width*0.3, elementContainer.height*0.5, 1);
+ break;
+ case 2:
+ createElement(elementContainer.width*0.6, elementContainer.height*0.1, 3);
+ createElement(elementContainer.width*0.4, elementContainer.height*0.6, 4);
+ createElement(elementContainer.width*0.8, elementContainer.height*0.8, 4);
+ break;
+ case 3:
+ createElement(elementContainer.width*0.6, elementContainer.height*0.1, 3);
+ createElement(elementContainer.width*0.4, elementContainer.height*0.4, 1);
+ createElement(elementContainer.width*0.5, elementContainer.height*0.5, 2);
+ createElement(elementContainer.width*0.7, elementContainer.height*0.6, 2);
+ break;
+ case 4:
+ case 5:
+ var characterId = 10 + Math.floor(Math.random()*5.9);
+ createElement(elementContainer.width*0.7, elementContainer.height*0.3, characterId);
+ break;
+ default: break;
+ }
+ }
+ else if (place === 1) {
+ var temp1 = Math.floor(Math.random()*6.9);
+ switch(temp1) {
+ case 0:
+ createElement(elementContainer.width*0.6, elementContainer.height*0.2, 1);
+ createElement(elementContainer.width*0.75, elementContainer.height*0.3, 1);
+ createElement(elementContainer.width*0.85, elementContainer.height*0.5, 1);
+ createElement(elementContainer.width*0.45, elementContainer.height*0.4, 1);
+ break;
+ case 1:
+ createElement(elementContainer.width*0.4, elementContainer.height*0.1, 1);
+ createElement(elementContainer.width*0.6, elementContainer.height*0.2, 1);
+ createElement(elementContainer.width*0.3, elementContainer.height*0.3, 1);
+ createElement(elementContainer.width*0.7, elementContainer.height*0.5, 1);
+ break;
+ case 2:
+ createElement(elementContainer.width*0.4, elementContainer.height*0.1, 3);
+ createElement(elementContainer.width*0.6, elementContainer.height*0.6, 4);
+ createElement(elementContainer.width*0.2, elementContainer.height*0.8, 4);
+ break;
+ case 3:
+ createElement(elementContainer.width*0.4, elementContainer.height*0.1, 3);
+ createElement(elementContainer.width*0.6, elementContainer.height*0.4, 2);
+ createElement(elementContainer.width*0.5, elementContainer.height*0.5, 1);
+ createElement(elementContainer.width*0.3, elementContainer.height*0.6, 2);
+ break;
+ case 4:
+ case 5:
+ var characterId1 = 20 + Math.floor(Math.random()*4.9);
+ createElement(elementContainer.width*0.3, elementContainer.height*0.3, characterId1);
+ break;
+ default: break;
+ }
+ }
+ else {
+ var temp2 = Math.floor(Math.random()*4.9);
+ switch(temp2) {
+ case 0:
+ createElement(elementContainer.width*0.8, elementContainer.height*0.8, 5);
+ createElement(elementContainer.width*0.4, elementContainer.height*0.5, 5);
+ break;
+ case 1:
+ createElement(elementContainer.width*0.1, elementContainer.height*0.5, 1);
+ createElement(elementContainer.width*0.2, elementContainer.height*0.9, 2);
+ createElement(elementContainer.width*0.6, elementContainer.height*0.8, 4);
+ break;
+ case 2:
+ createElement(elementContainer.width*0.2, elementContainer.height*0.5, 6);
+ createElement(elementContainer.width*0.7, elementContainer.height*0.6, 2);
+ createElement(elementContainer.width*0.6, elementContainer.height*0.7, 1);
+ break;
+ case 3:
+ createElement(elementContainer.width*0.2, elementContainer.height*0.8, 6);
+ createElement(elementContainer.width*0.7, elementContainer.height*0.6, 6);
+ break;
+ default: break;
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/NavigationPanel.qml b/basicsuite/qt5-everywhere/NavigationPanel.qml
new file mode 100644
index 0000000..62d542b
--- /dev/null
+++ b/basicsuite/qt5-everywhere/NavigationPanel.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Grid {
+ id: root
+
+ function checkOrientation() {
+ root.spacing = (app.height + app.width) * 0.02
+
+ if (app.width >= app.height) {
+ root.columns = 1
+ root.anchors.bottom = undefined
+ root.anchors.horizontalCenter = undefined
+ root.anchors.right = app.right
+ root.anchors.verticalCenter = app.verticalCenter
+ root.anchors.rightMargin = app.width * 0.02
+ root.anchors.bottomMargin = 0
+ }
+ else {
+ root.columns = 3
+ root.anchors.right = undefined
+ root.anchors.verticalCenter = undefined
+ root.anchors.bottom = app.bottom
+ root.anchors.horizontalCenter = app.horizontalCenter
+ root.anchors.rightMargin = 0
+ root.anchors.bottomMargin = app.width * 0.02
+ }
+ }
+
+ Button {
+ id: nextButton
+ imageSource: "images/btn_next.png"
+ onClicked: canvas.goNext()
+ }
+
+ Button {
+ id: prevButton
+ imageSource: "images/btn_previous.png"
+ onClicked: canvas.goPrevious()
+ }
+
+ Button {
+ id: homeButton
+ imageSource: app.navigationState === 0 && !helpscreen.visible ? "images/btn_help.png" : "images/btn_home.png"
+ onClicked: {
+ if (app.navigationState===0){
+ helpscreen.show()
+ return;
+ }
+ canvas.goBack()
+ }
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/QtLogo.png b/basicsuite/qt5-everywhere/QtLogo.png
index 7b5c533..7b5c533 100644
--- a/basicsuite/Qt5Everywhere/QtLogo.png
+++ b/basicsuite/qt5-everywhere/QtLogo.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/QuitDialog.qml b/basicsuite/qt5-everywhere/QuitDialog.qml
new file mode 100644
index 0000000..c246fc7
--- /dev/null
+++ b/basicsuite/qt5-everywhere/QuitDialog.qml
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+ anchors.fill: parent
+ color: Qt.rgba(0.0, 0.0, 0.0, 0.7)
+
+ signal yes()
+ signal no()
+
+ MouseArea {
+ anchors.fill: parent
+ }
+
+ Rectangle {
+ id: dialog
+ anchors.centerIn: parent
+ width: dialogText.paintedWidth * 1.1
+ height: parent.height * 0.3
+ property double dialogMargin: height * 0.05
+
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "#222222" }
+ GradientStop { position: 0.3; color: "#000000" }
+ GradientStop { position: 1.0; color: "#111111" }
+ }
+ radius: 10
+ border { color: "#999999"; width: 1 }
+
+ Item {
+ id: content
+ anchors { left: parent.left; right: parent.right; top: parent.top }
+ height: dialog.height * 0.6
+
+ Text {
+ id: dialogText
+ anchors.centerIn: parent
+ verticalAlignment: Text.AlignVCenter
+ text: qsTr("Are you sure you want to quit?")
+ color: "#ffffff"
+ font.pixelSize: 0.2 *content.height
+ }
+ }
+
+ Rectangle {
+ id: line
+ anchors { left: parent.left; right: parent.right; top: content.bottom }
+ anchors.leftMargin: dialog.dialogMargin
+ anchors.rightMargin: dialog.dialogMargin
+ height: 1
+ color: "#777777"
+ }
+
+ DialogButton {
+ anchors { bottom: dialog.bottom; left:dialog.left; bottomMargin: dialog.dialogMargin; leftMargin: dialog.dialogMargin }
+ buttonText: "Yes"
+ onClicked: root.yes()
+ }
+ DialogButton {
+ anchors { bottom: dialog.bottom; right:dialog.right; bottomMargin: dialog.dialogMargin; rightMargin: dialog.dialogMargin }
+ buttonText: "No"
+ onClicked: root.no()
+ }
+
+ }
+
+}
diff --git a/basicsuite/qt5-everywhere/Slide.qml b/basicsuite/qt5-everywhere/Slide.qml
new file mode 100644
index 0000000..be94aca
--- /dev/null
+++ b/basicsuite/qt5-everywhere/Slide.qml
@@ -0,0 +1,252 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "style.js" as Style
+
+Item {
+ id: slide
+ objectName: "slide"
+
+ property int uid: 0
+ property int gid: 0
+ property string url: ""
+ property int device: 0
+ property string imageSource: ""
+ property bool loaded: false
+ property bool loading: false
+ property real targetScale: 1
+ property bool animationRunning: navigationAnimation.running || zoomAnimation.running
+ property int demoWidth: 603
+ property int demoHeight: 378
+ property int maskVerticalOffset: 51
+ property int maskHorizontalOffset: 1
+ property string demoColor: "#4353c3"
+ property string name: ""
+
+ function targetWidth()
+ {
+ return demoWidth*scale;
+ }
+
+ function targetHeight()
+ {
+ return demoHeight*scale;
+ }
+
+ Rectangle {
+ id: demoBackground
+ anchors.centerIn: parent
+ width: demoContainer.width * 1.03
+ height: demoContainer.height * 1.03
+ color: "black"
+ z: slide.loading || slide.loaded ? 1:-1
+
+ Rectangle{
+ id: demoContainer
+ anchors.centerIn: parent
+ width: demoWidth
+ height: demoHeight
+ color: demoColor
+ clip: true
+
+ Text {
+ id: splashScreenText
+ color: 'white'
+ font.pixelSize: parent.width *.2
+ font.family: Style.FONT_FAMILY
+ text: slide.name
+ anchors.centerIn: parent
+ smooth: true
+ visible: true
+ }
+ }
+ }
+
+ ShaderEffectSource{
+ id: demo
+ anchors.centerIn: parent
+ width: demoWidth
+ height: demoHeight
+ sourceItem: demoContainer
+ live: false
+ visible: (hasSnapshot && !slide.loaded) || updating
+ hideSource: visible && !updating && !loading
+ clip: true
+
+ property bool updating: false
+ property bool hasSnapshot: false
+
+ onScheduledUpdateCompleted: {
+ updating = false
+ hasSnapshot = true
+ releaseDemo(true)
+ }
+ }
+
+ Image {
+ id: deviceMaskImage
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: maskVerticalOffset
+ anchors.horizontalCenterOffset: maskHorizontalOffset
+ smooth: !animationRunning
+ antialiasing: !animationRunning
+ source: slide.imageSource
+ width: slide.width
+ height: slide.height
+ z: 2
+
+ IslandElementContainer { id: leftElementcontainer; place: 0; islandHeight: islandImage.height; islandWidth: islandImage.width }
+ IslandElementContainer { id: rightElementcontainer;place: 1; islandHeight: islandImage.height; islandWidth: islandImage.width }
+ IslandElementContainer { id: bottomElementcontainer;place: 2; islandHeight: islandImage.height; islandWidth: islandImage.width }
+ }
+
+ Image {
+ id: islandImage
+ anchors.top: deviceMaskImage.bottom
+ anchors.topMargin: -height * 0.3
+ anchors.horizontalCenter: deviceMaskImage.horizontalCenter
+ source: "images/island.png"
+ smooth: !animationRunning
+ antialiasing: !animationRunning
+ width: Math.max(deviceMaskImage.width, deviceMaskImage.height) * 1.6
+ height: width/2
+ z: -3
+ }
+
+ // Load timer
+ Timer {
+ id: loadTimer
+ interval: 5
+ running: false
+ repeat: false
+ onTriggered: {
+ loadSplashScreen();
+ load()
+ }
+ }
+
+ function loadDemo(){
+ if (!slide.loaded)
+ {
+ splashScreenText.visible = true
+ loadTimer.start();
+ } else if (slide.url==="demos/radio/radio.qml"){
+ for (var i =0; i<demoContainer.children.length; i++){
+ if (demoContainer.children[i].objectName === "demoApp"){
+ demoContainer.children[i].focus = true;
+ }
+ }
+ }
+ }
+
+ function load() {
+ if (!slide.url || slide.loaded) return;
+
+ print("CREATING DEMO: "+ slide.url)
+ var component = Qt.createComponent(slide.url);
+ print ("CREATED: "+slide.url)
+ var incubator = component.incubateObject(demoContainer, { x: 0, y: 0, objectName: "demoApp" });
+ if (incubator.status !== Component.Ready) {
+ incubator.onStatusChanged = function(status) {
+ if (status === Component.Ready) {
+ print ("Object", incubator.object, "is now ready!");
+ slide.loaded = true
+ releaseSplashScreen()
+ }
+ }
+ } else {
+ print ("Object", incubator.object, "is ready immediately!");
+ slide.loaded = true
+ releaseSplashScreen()
+ }
+ }
+
+ function loadSplashScreen()
+ {
+ slide.loading = true
+ var splash = Qt.createComponent("SplashScreen.qml");
+ if (splash.status === Component.Ready)
+ splash.createObject(demoContainer, {objectName: "splashScreen", text: slide.name});
+ }
+
+ function releaseSplashScreen()
+ {
+ splashScreenText.visible = false
+ slide.loading = false
+ for (var i =0; i<demoContainer.children.length; i++){
+ if (demoContainer.children[i].objectName === "splashScreen"){
+ demoContainer.children[i].explode();
+ }
+ }
+ }
+
+ function releaseDemo(snapShotCreated){
+ if (!slide.loaded) return;
+ if (!snapShotCreated){
+ demo.updating = true
+ demo.scheduleUpdate()
+ return;
+ }
+
+ if (slide.url === "demos/radio/radio.qml")
+ return; //Always alive
+
+ app.forceActiveFocus();
+
+ if (!slide.loaded)
+ return;
+
+ slide.loaded = false;
+
+ for (var i =0; i<demoContainer.children.length; i++){
+ if (demoContainer.children[i].objectName === "demoApp"){
+ demoContainer.children[i].destroy(500);
+ }
+ }
+ }
+
+ function createElements()
+ {
+ leftElementcontainer.createElements()
+ rightElementcontainer.createElements()
+ bottomElementcontainer.createElements()
+ }
+}
diff --git a/basicsuite/qt5-everywhere/SplashScreen.qml b/basicsuite/qt5-everywhere/SplashScreen.qml
new file mode 100644
index 0000000..10b99a5
--- /dev/null
+++ b/basicsuite/qt5-everywhere/SplashScreen.qml
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+import "style.js" as Style
+//based on the SmokeText component from SameGame
+
+Item {
+ id: root
+ anchors.fill: parent
+ z:1
+
+ property alias text: txt.text
+
+ Rectangle{
+ id: background
+ anchors.fill:parent
+ color: "black"
+ }
+
+ ParticleSystem{
+ id: particleSystem;
+ anchors.fill: parent
+
+ Text {
+ id: txt
+ color: 'white'
+ font.pixelSize: parent.width *.2
+ font.family: Style.FONT_FAMILY
+ anchors.centerIn: parent
+ smooth: true
+ }
+
+ Emitter {
+ id: emitter
+ anchors.fill: txt
+ enabled: false
+ emitRate: 1000
+ lifeSpan: 1500
+ size: parent.height * .2
+ endSize: parent.height * .1
+ velocity: AngleDirection { angleVariation: 360; magnitudeVariation: 160 }
+ }
+
+ ImageParticle {
+ id: smokeParticle
+ source: "images/particle-smoke.png"
+ alpha: 0.1
+ alphaVariation: 0.1
+ color: 'white'
+ }
+ }
+
+ SequentialAnimation {
+ id: anim
+ running: false
+ ScriptAction { script: emitter.pulse(100); }
+ NumberAnimation { target: txt; property: "opacity"; from: 1.0; to: 0.0; duration: 400}
+ NumberAnimation { target: background; property: "opacity"; from: 1.0; to: 0.0; duration: 1000}
+ PauseAnimation { duration: 200 }
+ onRunningChanged: if (!running) root.destroy();
+ }
+
+ function explode(){
+ anim.restart()
+ }
+}
diff --git a/basicsuite/qt5-everywhere/WorldCanvas.qml b/basicsuite/qt5-everywhere/WorldCanvas.qml
new file mode 100644
index 0000000..0972cf2
--- /dev/null
+++ b/basicsuite/qt5-everywhere/WorldCanvas.qml
@@ -0,0 +1,145 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "style.js" as Style
+
+Item{
+ id:canvas
+ width:1
+ height:1
+
+ x: app.width/2+xOffset
+ y: app.height/2+yOffset
+
+ property real xOffset: 0
+ property real yOffset: 0
+ property real angle: 0
+
+ property real zoomInTarget: 5
+ property real scalingFactor: 5
+
+ property real rotationOriginX
+ property real rotationOriginY
+
+ function goHome()
+ {
+ worldMouseArea.panning = false
+ xOffset = 0; //(app.homeCenterX * app.homeScaleFactor);
+ yOffset = 0; //(-app.homeCenterY * app.homeScaleFactor);
+ rotationOriginX = 0;
+ rotationOriginY = 0;
+ angle = 0;
+ zoomInTarget = app.homeScaleFactor;
+ app.navigationState = 0 //home
+ app.forceActiveFocus()
+ zoomAnimation.restart();
+ }
+ function goTo(target, updateScalingFactor)
+ {
+ if (target)
+ {
+ worldMouseArea.panning = false
+ xOffset = -target.x;
+ yOffset = -target.y;
+ rotationOriginX = target.x;
+ rotationOriginY = target.y;
+ angle = 0
+ zoomInTarget = target.targetScale;
+ if (updateScalingFactor)
+ scalingFactor = zoomInTarget
+ app.navigationState = target.navState
+ }
+ }
+
+ function goNext() {
+ goTo(app.getNext(), false);
+ navigationAnimation.restartAnimation()
+ }
+ function goPrevious() {
+ goTo(app.getPrevious(), false);
+ navigationAnimation.restartAnimation()
+ }
+
+ function goBack()
+ {
+ if (app.useGroups && app.navigationState == 2) {
+ goTo(app.getCurrentGroup(), false)
+ zoomAnimation.restart()
+ }
+ else
+ canvas.goHome()
+ }
+
+ Behavior on xOffset {
+ id: xOffsetBehaviour
+ enabled: !worldMouseArea.panning
+ NumberAnimation{duration: Style.APP_ANIMATION_DELAY}
+ }
+
+ Behavior on yOffset {
+ id: yOffsetBehaviour
+ enabled: !worldMouseArea.panning
+ NumberAnimation{duration: Style.APP_ANIMATION_DELAY}
+ }
+
+ Behavior on rotationOriginX {
+ NumberAnimation{
+ duration: Style.APP_ANIMATION_DELAY
+ }
+ }
+ Behavior on rotationOriginY {
+ NumberAnimation{
+ duration: Style.APP_ANIMATION_DELAY
+ }
+ }
+
+ transform: [
+
+ Scale{
+ id: canvasScale
+ origin.x: canvas.rotationOriginX
+ origin.y: canvas.rotationOriginY
+ xScale: canvas.scalingFactor
+ yScale :canvas.scalingFactor
+
+ }
+ ]
+}
diff --git a/basicsuite/qt5-everywhere/WorldMouseArea.qml b/basicsuite/qt5-everywhere/WorldMouseArea.qml
new file mode 100644
index 0000000..f3a6620
--- /dev/null
+++ b/basicsuite/qt5-everywhere/WorldMouseArea.qml
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+MouseArea{
+ id: worldMouseArea
+ anchors.fill: parent
+
+ property int oldX: 0
+ property int oldY: 0
+ property int startMouseX: 0
+ property int startMouseY: 0
+ property bool panning: false
+
+ onReleased: {
+ var dx = mouse.x - startMouseX;
+ var dy = mouse.y - startMouseY;
+
+ // Check the point only if we didn't move the mouse too much
+ if (!mouse.wasHeld && Math.abs(dx) <= app.tapLimitX && Math.abs(dy) <= app.tapLimitY)
+ {
+ panning = false
+ var target = null;
+ var object = mapToItem(canvas, mouse.x, mouse.y)
+ var item = canvas.childAt(object.x,object.y)
+ if (item) {
+ if (item.objectName === 'slide')
+ target = app.selectTarget(item.uid)
+ else if (item.objectName === 'group')
+ target = app.selectGroup(item.uid)
+ }
+
+ // If we found target, go to the target
+ if (target) {
+ canvas.goTo(target, false, item.objectName === 'slide' ? 2 : 1)
+ zoomAnimation.restart()
+ }
+ else // If not target under mouse -> go home
+ canvas.goHome()
+ }
+ }
+
+ onPressed: {
+ // Save mouse state
+ oldX = mouse.x
+ oldY = mouse.y
+ startMouseX = mouse.x
+ startMouseY = mouse.y
+ }
+
+ onPositionChanged: {
+ var dx = mouse.x - oldX;
+ var dy = mouse.y - oldY;
+
+ oldX = mouse.x;
+ oldY = mouse.y;
+
+ if (!zoomAnimation.running && !navigationAnimation.running)
+ {
+ panning = true;
+ canvas.xOffset += dx;
+ canvas.yOffset += dy;
+ app.navigationState = 3 //dirty
+ }
+ }
+ onWheel: {
+ var newScalingFactor = canvas.scalingFactor
+ if (wheel.angleDelta.y > 0){
+ newScalingFactor+=canvas.scalingFactor*.05
+ }else{
+ newScalingFactor-=canvas.scalingFactor*.05
+ }
+ if (newScalingFactor < app.minScaleFactor) newScalingFactor = app.minScaleFactor
+ if (newScalingFactor > app.maxScaleFactor) newScalingFactor = app.maxScaleFactor
+ canvas.scalingFactor = newScalingFactor
+ }
+}
diff --git a/basicsuite/qt5-everywhere/app.pro b/basicsuite/qt5-everywhere/app.pro
new file mode 100644
index 0000000..be46a9c
--- /dev/null
+++ b/basicsuite/qt5-everywhere/app.pro
@@ -0,0 +1,16 @@
+TARGET = qt5-everywhere
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ *.js \
+ fonts \
+ images \
+ demos
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/Calqlatr.qml b/basicsuite/qt5-everywhere/demos/calqlatr/Calqlatr.qml
index 39a0834..39a0834 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/Calqlatr.qml
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/Calqlatr.qml
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/Button.qml b/basicsuite/qt5-everywhere/demos/calqlatr/content/Button.qml
index 6165ed3..6165ed3 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/Button.qml
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/Button.qml
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/Display.qml b/basicsuite/qt5-everywhere/demos/calqlatr/content/Display.qml
index df3bfa2..df3bfa2 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/Display.qml
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/Display.qml
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/NumberPad.qml b/basicsuite/qt5-everywhere/demos/calqlatr/content/NumberPad.qml
index 454c50d..454c50d 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/NumberPad.qml
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/NumberPad.qml
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/StyleLabel.qml b/basicsuite/qt5-everywhere/demos/calqlatr/content/StyleLabel.qml
index 3bdea86..3bdea86 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/StyleLabel.qml
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/StyleLabel.qml
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/audio/touch.wav b/basicsuite/qt5-everywhere/demos/calqlatr/content/audio/touch.wav
index 94cccb7..94cccb7 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/audio/touch.wav
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/audio/touch.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/calculator.js b/basicsuite/qt5-everywhere/demos/calqlatr/content/calculator.js
index ffc78bf..ffc78bf 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/calculator.js
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/calculator.js
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-back.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-back.png
index 2989ee2..2989ee2 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-back.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-back.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-close.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-close.png
index 3e21248..3e21248 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-close.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-close.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-settings.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-settings.png
index 98e662f..98e662f 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/icon-settings.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/icon-settings.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/logo.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/logo.png
index 6bc6561..6bc6561 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/logo.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/logo.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-edge-left.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-edge-left.png
index ca29a3a..ca29a3a 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-edge-left.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-edge-left.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-edge-right.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-edge-right.png
index 7c2da7b..7c2da7b 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-edge-right.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-edge-right.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-grip.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-grip.png
index 953c408..953c408 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/paper-grip.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/paper-grip.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/settings-selected-a.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/settings-selected-a.png
index e08ddfa..e08ddfa 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/settings-selected-a.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/settings-selected-a.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/settings-selected-b.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/settings-selected-b.png
index d9aa7e3..d9aa7e3 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/settings-selected-b.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/settings-selected-b.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/touch-green.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/touch-green.png
index 64dbde6..64dbde6 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/touch-green.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/touch-green.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/touch-white.png b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/touch-white.png
index bb02b00..bb02b00 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/images/touch-white.png
+++ b/basicsuite/qt5-everywhere/demos/calqlatr/content/images/touch-white.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/canvasclock/canvasClock.qml b/basicsuite/qt5-everywhere/demos/canvasclock/canvasClock.qml
new file mode 100644
index 0000000..2a79735
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/canvasclock/canvasClock.qml
@@ -0,0 +1,404 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+ anchors.fill: parent
+ property color rimColor: Qt.rgba(1,0,0,1) //'#ff0000'
+ property color dialColor: Qt.rgba(0.2,0.2,0.2,1) //'#333333'
+ property color bgcolor: Qt.rgba(1,1,1,1)
+ property int dialStyle: 0
+ color: "#333333"
+
+ Text{
+ id: codeText
+ anchors {fill:parent}
+ text: ""
+ rotation: 10
+ color: "#666666"
+ font.pixelSize: root.height*.05
+
+ verticalAlignment:Text.AlignBottom
+
+ property int pos: 0
+
+ property string code: "
+var ctx = clockCanvas.getContext('2d')
+ctx.clearRect(0,0,clockContainer.clockRadius,clockContainer.clockRadius)
+
+var gradient = ctx.createRadialGradient(clockContainer.clockRadius/4, clockContainer.clockRadius/4, 0, clockContainer.clockRadius/4, clockContainer.clockRadius/4, clockContainer.clockRadius)
+gradient.addColorStop(0, '#ffffff')
+gradient.addColorStop(1, '#888888')
+
+ctx.fillStyle = gradient
+ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
+ctx.fill()
+
+drawDials(ctx)
+
+var gradient2 = ctx.createLinearGradient(0, 0, clockContainer.clockRadius, clockContainer.clockRadius)
+gradient2.addColorStop(0, Qt.rgba(0,0,0,.5))
+gradient2.addColorStop(.5, Qt.rgba(1,1,1,.5))
+gradient2.addColorStop(1, Qt.rgba(0,0,0,.5))
+
+var gradient3 = ctx.createLinearGradient(0, 0, clockContainer.clockRadius, clockContainer.clockRadius)
+gradient3.addColorStop(0, Qt.rgba(1,1,1,.5))
+gradient3.addColorStop(.5, Qt.rgba(0,0,0,.5))
+gradient3.addColorStop(1, Qt.rgba(1,1,1,.5))
+
+ctx.lineWidth = clockContainer.clockRadius*.05
+ctx.strokeStyle = root.rimColor
+
+ctx.beginPath()
+ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.45, 0, 360, false)
+ctx.stroke()
+
+ctx.strokeStyle = gradient2
+ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.45, 0, 360, false)
+ctx.stroke()
+
+ctx.beginPath()
+ctx.strokeStyle = root.rimColor
+ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
+ctx.stroke()
+
+ctx.strokeStyle = gradient3
+ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
+ctx.stroke()
+ctx.closePath()
+
+function drawPointer(context, angle, len, thickness, color){
+ context.beginPath()
+ context.lineWidth = thickness
+ context.strokeStyle = color
+ context.moveTo(clockContainer.clockRadius/2, clockContainer.clockRadius/2)
+ var x1=Math.cos(angle*0.01745)*len
+ var y1=Math.sin(angle*0.01745)*len
+ context.lineTo(clockContainer.clockRadius/2+.5+x1,clockContainer.clockRadius/2+.5+y1)
+ context.stroke()
+ context.closePath()
+}"
+
+ Timer{
+ id: textTimer
+ interval: 10
+ onTriggered: {
+ codeText.pos++
+ if (codeText.pos >= codeText.code.length)codeText.pos=0
+ codeText.text+=codeText.code.charAt(codeText.pos)
+ if (codeText.text.length >1000){
+ codeText.text=codeText.text.substring(codeText.text.length-1000)
+ }
+ }
+ repeat: true
+ running: true
+ }
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ gradient: Gradient {
+ GradientStop {position: .0; color :"black"}
+ GradientStop {position: .5; color :"transparent"}
+ GradientStop {position: 1.0; color :"black"}
+
+ }
+ opacity: .5
+ }
+
+ Item {
+ id: clockContainer
+ width: 2* Math.min(root.width*.8, root.height*.8)
+ height: width
+ scale: 0.5
+ anchors.centerIn: parent
+ property int clockRadius: width
+
+ ShaderEffectSource{
+ id: clockBg
+ anchors.fill: parent
+ sourceItem: clockCanvas
+ hideSource: true
+ live: false
+ }
+
+ Canvas {
+ id: clockCanvas
+ anchors.fill: parent
+ onPaint: {
+ var ctx = clockCanvas.getContext('2d')
+
+ ctx.clearRect(0,0,clockContainer.clockRadius,clockContainer.clockRadius)
+
+ var gradient = ctx.createRadialGradient(clockContainer.clockRadius/4, clockContainer.clockRadius/4, 0, clockContainer.clockRadius/4, clockContainer.clockRadius/4, clockContainer.clockRadius)
+
+ ctx.fillStyle = root.bgcolor
+ ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
+ ctx.fill()
+
+ gradient.addColorStop(0, Qt.rgba(0,0,0,0))
+ gradient.addColorStop(1, Qt.rgba(0,0,0,.5))
+
+ ctx.fillStyle = gradient
+ ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
+ ctx.fill()
+
+ drawDials(ctx)
+
+ var gradient2 = ctx.createLinearGradient(0, 0, clockContainer.clockRadius, clockContainer.clockRadius)
+ gradient2.addColorStop(0, Qt.rgba(0,0,0,.5))
+ gradient2.addColorStop(.5, Qt.rgba(1,1,1,.5))
+ gradient2.addColorStop(1, Qt.rgba(0,0,0,.5))
+
+ var gradient3 = ctx.createLinearGradient(0, 0, clockContainer.clockRadius, clockContainer.clockRadius)
+ gradient3.addColorStop(0, Qt.rgba(1,1,1,.5))
+ gradient3.addColorStop(.5, Qt.rgba(0,0,0,.5))
+ gradient3.addColorStop(1, Qt.rgba(1,1,1,.5))
+
+ ctx.lineWidth = clockContainer.clockRadius*.05
+
+ ctx.strokeStyle = root.rimColor
+ ctx.beginPath()
+ ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.45, 0, 360, false)
+ ctx.stroke()
+
+ ctx.strokeStyle = gradient2
+ ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.45, 0, 360, false)
+ ctx.stroke()
+
+ ctx.beginPath()
+ ctx.strokeStyle = root.rimColor
+ ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
+ ctx.stroke()
+
+ ctx.strokeStyle = gradient3
+
+ ctx.arc(clockContainer.clockRadius/2, clockContainer.clockRadius/2, clockContainer.clockRadius*.475, 0, 360, false)
+ ctx.stroke()
+ ctx.closePath()
+
+
+ clockBg.scheduleUpdate()
+ }
+
+ function drawDials(context){
+
+ context.strokeStyle = "#888888"
+ context.fillStyle = root.dialColor
+ context.lineWidth = 2
+ context.beginPath()
+ for (var i=1; i<=60; i++){
+ var x1=Math.cos(((i)*6)*0.01745)*clockContainer.clockRadius*.4
+ var y1=Math.sin(((i)*6)*0.01745)*clockContainer.clockRadius*.4
+
+ var x2=Math.cos(((i)*6)*0.01745)*clockContainer.clockRadius*.45
+ var y2=Math.sin(((i)*6)*0.01745)*clockContainer.clockRadius*.45
+
+ context.moveTo(clockContainer.clockRadius/2+.5+x1,clockContainer.clockRadius/2+.5+y1)
+ context.lineTo(clockContainer.clockRadius/2+.5+x2,clockContainer.clockRadius/2+.5+y2)
+ context.stroke()
+ }
+ context.closePath()
+
+ context.beginPath()
+
+ var romans = ['I','II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII']
+
+ for (i=1; i<=12; i++){
+ x1=Math.cos((-90+(i)*30)*0.01745)*clockContainer.clockRadius*.35 -clockContainer.width*0.03
+ y1=Math.sin((-90+(i)*30)*0.01745)*clockContainer.clockRadius*.35 +clockContainer.height*0.04
+
+ if (root.dialStyle === 1) x1-=clockContainer.width*0.01
+
+ context.font = 'bold '+Math.floor(clockContainer.width*.1)+'px sans-serif'
+
+
+ if (i >= 10)
+ x1 -= clockContainer.width*0.02
+ context.textAlign = 'center';
+ context.textBaseline = 'middle'
+
+ var dial = i
+
+ if (root.dialStyle === 1) dial = romans[i-1]
+ context.text(dial,clockContainer.clockRadius/2+x1,clockContainer.clockRadius/2+y1)
+
+ context.fill()
+ context.stroke()
+ }
+ context.closePath()
+ }
+ }
+
+ Canvas {
+ id: clockPointers
+ anchors.fill: parent
+ antialiasing: true
+ renderTarget: Canvas.Image
+ onPaint: {
+ var ctx = clockPointers.getContext('2d')
+ ctx.clearRect(0,0,clockContainer.clockRadius,clockContainer.clockRadius)
+ ctx.lineCap = 'round'
+ drawPointer(ctx, -90+clock.hours*30, clockContainer.clockRadius*.25, clockContainer.clockRadius*.05, "#000000")
+ drawPointer(ctx, -90+clock.minutes*6, clockContainer.clockRadius*.375, clockContainer.clockRadius*.025, "#333333")
+ drawPointer(ctx, -90+clock.seconds*6, clockContainer.clockRadius*.40, 4, "#aa0000")
+
+ // Draw nail
+ ctx.beginPath()
+ ctx.fillStyle = "#535353"
+ ctx.ellipse(clockContainer.clockRadius/2-16,clockContainer.clockRadius/2-16,32,32)
+ ctx.fill()
+ ctx.closePath()
+ }
+
+ function drawPointer(context, angle, len, thickness, color){
+ context.beginPath()
+ context.lineWidth = thickness
+ context.strokeStyle = color
+ context.moveTo(clockContainer.clockRadius/2, clockContainer.clockRadius/2)
+ var x1=Math.cos(angle*0.01745)*len
+ var y1=Math.sin(angle*0.01745)*len
+ context.lineTo(clockContainer.clockRadius/2+.5+x1,clockContainer.clockRadius/2+.5+y1)
+ context.stroke()
+ context.closePath()
+ }
+ }
+
+ Timer{
+ id: clock
+ interval: 1000
+ repeat: true
+ running: !mouseArea.pressed
+
+ property int hours: 0
+ property int minutes: 0
+ property int seconds: 0
+
+ onTriggered: {
+ seconds ++
+ if (seconds == 60) seconds = 0
+
+ if (seconds == 0) minutes++
+ if (minutes == 60) {
+ hours++
+ minutes=0
+ }
+
+ if (hours >= 12) hours=0
+
+ clockPointers.requestPaint()
+ }
+ }
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: clockContainer
+ property bool grabbed: false
+
+ onPressed: {
+
+ var temp = clockContainer.clockRadius/2
+ var ang = (90+Math.atan2((mouseY-temp), (mouseX-temp))*57.2957795)
+ if (ang <0) ang+=360
+
+ if (ang/6 > clock.minutes-2 && ang/6<clock.minutes+2){
+
+ grabbed = true
+ return;
+ } else {
+ var y = mouseY-temp
+ var x = mouseX-temp
+ var dist = Math.sqrt(y*y+x*x)
+
+ if (dist>clockContainer.clockRadius*.42*clockContainer.scale){
+ root.rimColor = newColor()
+ clockCanvas.requestPaint()
+ return;
+ }else if (dist>clockContainer.clockRadius*.32*clockContainer.scale) {
+ root.dialStyle = Math.round(Math.random())
+ root.dialColor = newColor()
+ clockCanvas.requestPaint()
+ }else{
+ root.bgcolor = newColor()
+ clockCanvas.requestPaint()
+ }
+ }
+ }
+
+ onPositionChanged: {
+ if (grabbed) {
+ var temp = clockContainer.clockRadius/2
+ var ang = (90+Math.atan2((mouseY-temp), (mouseX-temp))*57.2957795)
+ if (ang <0) ang+=360
+
+ var oldMinutes = clock.minutes
+ clock.minutes=ang/6
+
+ if (oldMinutes>55 && clock.minutes <5) clock.hours++
+ if (oldMinutes<5 && clock.minutes >50) clock.hours--
+ if (clock.hours >12) clock.hours=1
+ if (clock.hours <0) clock.hours=11
+
+
+ clockPointers.requestPaint()
+ }
+ }
+ onReleased: grabbed = false;
+ }
+
+ function newColor(){
+ var r=Math.random()
+ var g=Math.random()
+ var b=Math.random()
+ return Qt.rgba(r,g,b,1)
+ }
+
+ Component.onCompleted: {
+ var d = new Date()
+ clock.hours = d.getHours()
+ if (clock.hours>=12)clock.hours-=12
+ clock.minutes = d.getMinutes()
+ clock.seconds = d.getSeconds()
+ clockCanvas.requestPaint()
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/demos.pro b/basicsuite/qt5-everywhere/demos/demos.pro
index 439fe35..439fe35 100644
--- a/basicsuite/Qt5Everywhere/demos/demos.pro
+++ b/basicsuite/qt5-everywhere/demos/demos.pro
diff --git a/basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml b/basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml
new file mode 100644
index 0000000..87b25c2
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/gridrssnews/RssDelegate.qml
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+ id: delegate
+ height: grid.cellHeight
+ width: grid.cellWidth
+ color: mainWindow.appBackground
+ property int tileMargin: mainWindow.tileMargin
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.topMargin: parent.tileMargin/2
+ width: parent.width - tileMargin
+ height: parent.height - tileMargin
+ color: mainWindow.tileBackground
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ grid.currentIndex = index
+ console.log(link)
+ Qt.openUrlExternally(link)
+ }
+ }
+
+ states: [
+ State {
+ name: "selected"
+ when: delegate.GridView.isCurrentItem
+ }
+ ]
+
+
+ Image {
+ id: iconImage
+ source: url
+ width: parent.width
+ height: parent.height
+ }
+
+ Rectangle{
+ width: parent.width
+ height: dateText.height + tileMargin
+ anchors.top: dateText.top
+ anchors.bottom: parent.bottom
+ color: "Black"
+ opacity: 0.5
+ visible: iconImage.source
+
+ }
+
+ Text {
+ id: dateText
+ anchors.left: parent.left
+ anchors.leftMargin: tileMargin
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: tileMargin
+ anchors.right: parent.right
+ anchors.rightMargin: tileMargin
+
+ color: mainWindow.textColor
+ text: title
+ width: parent.width;
+ wrapMode: Text.WordWrap;
+ smooth: true
+ font { family: mainWindow.uiFont; pixelSize: mainWindow.tileFontSize }
+ }
+ }
+}
+
diff --git a/basicsuite/qt5-everywhere/demos/gridrssnews/ScrollBar.qml b/basicsuite/qt5-everywhere/demos/gridrssnews/ScrollBar.qml
new file mode 100644
index 0000000..3a8fea9
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/gridrssnews/ScrollBar.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: scrollBar
+
+ // The properties that define the scrollbar's state.
+ // position and pageSize are in the range 0.0 - 1.0. They are relative to the
+ // height of the page, i.e. a pageSize of 0.5 means that you can see 50%
+ // of the height of the view.
+ // orientation can be either Qt.Vertical or Qt.Horizontal
+ property real position
+ property real pageSize
+ property variant orientation : Qt.Vertical
+
+ // A light, semi-transparent background
+ Rectangle {
+ id: background
+ anchors.fill: parent
+ radius: width/2 - 1
+ color: mainWindow.appBackground
+ }
+
+ // Size the bar to the required size, depending upon the orientation.
+ Rectangle {
+ x: scrollBar.position * (scrollBar.width-2) + 1
+ y: 1
+ width: scrollBar.pageSize * (scrollBar.width-2)
+ height: parent.height
+ radius: height/2 - 1
+ color: mainWindow.tileBackground
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/gridrssnews/main.qml b/basicsuite/qt5-everywhere/demos/gridrssnews/main.qml
new file mode 100644
index 0000000..2856cfb
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/gridrssnews/main.qml
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.XmlListModel 2.0
+
+Rectangle {
+ id: mainWindow
+ anchors.fill: parent
+ color: appBackground
+
+ property int tileHeight: parseInt(grid.height / 3)
+ property int tileFontSize: tileHeight * 0.08
+ property int horizontalMargin: height * 0.08
+ property int topBarsize: height * 0.2
+ property int bottomBarSize: height * 0.08
+ property int tileMargin: height * 0.01
+ property int appHeaderFontSize: topBarsize * 0.4
+ property string appBackground: "#262626"
+ property string tileBackground: "#86bc24"
+ property string textColor: "white"
+ property string uiFont: "Segoe UI"
+
+ XmlListModel {
+ id: feedModel
+ //source: "http://blog.qt.digia.com/feed/"
+ source: "http://news.yahoo.com/rss/tech"
+ //query: "/rss/channel/item"
+ // Filter out items that don't have images
+ query: "/rss/channel/item[exists(child::media:content)]"
+ namespaceDeclarations: "declare namespace media=\"http://search.yahoo.com/mrss/\";"
+ XmlRole { name: "url"; query: "media:content/@url/string()" }
+ XmlRole { name: "title"; query: "title/string()" }
+ XmlRole { name: "pubDate"; query: "pubDate/string()" }
+ XmlRole { name: "link"; query: "link/string()" }
+
+ onStatusChanged: {
+ if (status == XmlListModel.Ready) {
+ playbanner.start();
+ } else if (status == XmlListModel.Error) {
+ networkErrorMessage.start();
+ }
+ }
+ }
+
+ // Top bar
+ Item {
+ id: topBar
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.leftMargin: horizontalMargin
+ opacity: 0
+ height: topBarsize
+ Text {
+ id: title
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ text: qsTr("Yahoo Technology")
+ font.family: uiFont;
+ font.pixelSize: appHeaderFontSize;
+ color: textColor
+ smooth: true
+ }
+ }
+
+ // Grid view
+ GridView {
+ id: grid
+ anchors.fill: parent
+ anchors.topMargin: topBarsize
+ anchors.bottomMargin: bottomBarSize
+ anchors.leftMargin: horizontalMargin
+ anchors.rightMargin: horizontalMargin
+ opacity: 0
+ flow: GridView.TopToBottom
+ cellHeight: tileHeight
+ cellWidth: parseInt(tileHeight * 1.5)
+ cacheBuffer: cellWidth
+ clip: false
+ focus: true
+ model: feedModel
+ delegate: RssDelegate {}
+
+ // Only show the scrollbars when the view is moving.
+ states: State {
+ when: grid.movingHorizontally
+ PropertyChanges { target: horizontalScrollBar; opacity: 1 }
+ }
+
+ transitions: Transition {
+ NumberAnimation { properties: "opacity"; duration: 400 }
+ }
+ }
+
+ ScrollBar {
+ id: horizontalScrollBar
+ width: parent.width; height: 6
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ opacity: 0
+ orientation: Qt.Horizontal
+ position: grid.visibleArea.xPosition
+ pageSize: grid.visibleArea.widthRatio
+ }
+
+ Item {
+ id: networkErrorBox
+ opacity: 0
+ anchors.fill: parent
+
+ Text {
+ anchors.centerIn: parent
+ text: qsTr("Sorry! No network connection")
+ font.family: uiFont;
+ font.pixelSize: appHeaderFontSize;
+ color: textColor
+ smooth: true
+ }
+ }
+
+ SequentialAnimation {
+ id: playbanner
+ running: false
+ NumberAnimation { target: topBar; property: "opacity"; to: 1.0; duration: 300}
+ NumberAnimation { target: grid; property: "opacity"; to: 1.0; duration: 300}
+ }
+
+ NumberAnimation {
+ id: networkErrorMessage
+ running: false
+ target: networkErrorBox
+ property: "opacity"
+ to: 1.0
+ duration: 300
+ }
+
+}
+
diff --git a/basicsuite/qt5-everywhere/demos/heartmonitor/HeartData.js b/basicsuite/qt5-everywhere/demos/heartmonitor/HeartData.js
new file mode 100644
index 0000000..d3ad154
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/heartmonitor/HeartData.js
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+var heartData = [0,0,0,0,0]
+
+function fillHeartData(length) {
+ if (length !== heartData.length) {
+ heartData = new Array(length);
+ for (var i=0; i<length; i++) {
+ heartData[i] = 0;
+ }
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/heartmonitor/heart.png b/basicsuite/qt5-everywhere/demos/heartmonitor/heart.png
index d7a6170..d7a6170 100644
--- a/basicsuite/Qt5Everywhere/demos/heartmonitor/heart.png
+++ b/basicsuite/qt5-everywhere/demos/heartmonitor/heart.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/heartmonitor/main.qml b/basicsuite/qt5-everywhere/demos/heartmonitor/main.qml
new file mode 100644
index 0000000..7594bdd
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/heartmonitor/main.qml
@@ -0,0 +1,266 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "HeartData.js" as Data
+
+Rectangle {
+ id: app
+ anchors.fill: parent
+ color: "black"
+
+ property int frequency: 60
+ property int beatDataIndex: -1
+ property int heartDataIndex: 0
+ property int beatDifference: 1200
+ property var previousTime: 0
+ property string curveColor: "#22ff22"
+ property string alarmColor: "#ff2222"
+ property string textColor: "#22ff22"
+ property string gridColor: "#333333"
+
+ function pulse() {
+ if (!heartAnimation.running) {
+ heartAnimation.restart()
+ heartTimer.restart()
+ calculateFrequency();
+ app.beatDataIndex = 0
+ }
+ }
+
+ function calculateFrequency() {
+ var ms = new Date().getTime();
+ if (app.previousTime > 0)
+ app.beatDifference = 0.8*beatDifference + 0.2*(ms - app.previousTime)
+ app.frequency = Math.round(60000.0 / app.beatDifference)
+ app.previousTime = ms;
+ }
+
+ function updateData() {
+ app.heartDataIndex++;
+ if (app.heartDataIndex >= Data.heartData.length)
+ app.heartDataIndex = 0;
+ else
+ app.heartDataIndex++;
+
+ if (beatDataIndex >= 0)
+ fillBeatData()
+ else
+ fillRandomData()
+
+ heartCanvas.requestPaint()
+ }
+
+ function fillBeatData() {
+ var value = 0;
+ switch (app.beatDataIndex) {
+ case 0: value = Math.random()*0.1+0.1; break;
+ case 1: value = Math.random()*0.1+0.0; break;
+ case 2: value = Math.random()*0.3+0.7; break;
+ case 3: value = Math.random()*0.1-0.05; break;
+ case 4: value = Math.random()*0.3-0.8; break;
+ case 5: value = Math.random()*0.1-0.05; break;
+ case 6: value = Math.random()*0.1-0.05; break;
+ case 7: value = Math.random()*0.1+0.15; break;
+ default: value = 0; break;
+ }
+
+ Data.heartData[app.heartDataIndex] = value;
+ app.beatDataIndex++;
+ if (app.beatDataIndex > 7)
+ app.beatDataIndex = -1
+ }
+
+ function fillRandomData() {
+ Data.heartData[app.heartDataIndex] = Math.random()*0.05-0.025
+ }
+
+ onWidthChanged: {
+ Data.fillHeartData(Math.floor(app.width*0.5))
+ gridCanvas.requestPaint();
+ }
+ onHeightChanged: gridCanvas.requestPaint()
+
+ Item {
+ id: grid
+ anchors.fill: parent
+
+ Canvas {
+ id: gridCanvas
+ anchors.fill: parent
+ antialiasing: true
+ renderTarget: Canvas.Image
+ onPaint: {
+ var ctx = gridCanvas.getContext('2d')
+
+ ctx.clearRect(0,0,grid.width,grid.height)
+ var step = 1000 / updateTimer.interval * (app.width / Data.heartData.length)
+ var xCount = app.width / step
+ var yCount = app.height / step
+ ctx.strokeStyle = app.gridColor;
+
+ var x=0;
+ ctx.beginPath()
+ for (var i=0; i<xCount; i++) {
+ x = i*step
+ ctx.moveTo(x,0)
+ ctx.lineTo(x,app.height)
+ }
+ ctx.stroke()
+ ctx.closePath()
+
+ var y=0;
+ ctx.beginPath()
+ for (var j=0; j<yCount; j++) {
+ y = j*step
+ ctx.moveTo(0, y)
+ ctx.lineTo(app.width,y)
+ }
+ ctx.stroke()
+ ctx.closePath()
+ }
+ }
+ }
+
+ Rectangle {
+ id: canvasBackground
+ anchors { bottom: parent.bottom; left: parent.left; right: parent.right }
+ height: 0.75 * parent.height
+
+ gradient: Gradient {
+ GradientStop {position: .0; color :"black"}
+ GradientStop {position: .5; color :"#00ff00"}
+ GradientStop {position: 1.0; color :"black"}
+ }
+ opacity: .3
+ }
+
+ Item {
+ id: canvasContainer
+ anchors.fill: canvasBackground
+
+ Canvas {
+ id: heartCanvas
+ anchors.fill: parent
+ antialiasing: true
+ renderTarget: Canvas.Image
+ onPaint: {
+ var ctx = heartCanvas.getContext('2d')
+
+ ctx.clearRect(0,0,canvasContainer.width,canvasContainer.height)
+
+ var baseY = heartCanvas.height/2;
+ var length = Data.heartData.length;
+ var step = (heartCanvas.width-5) / length;
+ var yFactor = heartCanvas.height * 0.35;
+ var heartIndex = (heartDataIndex+1) % length;
+ ctx.strokeStyle = app.curveColor;
+
+ ctx.beginPath()
+ ctx.moveTo(0,baseY)
+ var i=0, x=0, y=0;
+ for (i=0; i<length; i++) {
+ x=i*step;
+ y=baseY - Data.heartData[heartIndex]*yFactor;
+ ctx.lineTo(x,y)
+ heartIndex = (heartIndex+1)%length;
+ }
+ ctx.stroke()
+ ctx.closePath()
+
+ ctx.beginPath()
+ ctx.fillStyle = app.curveColor
+ ctx.ellipse(x-5,y-5,10,10)
+ ctx.fill()
+ ctx.closePath()
+ }
+ }
+ }
+ Image {
+ id: heart
+ anchors { left: parent.left; top: parent.top }
+ anchors.margins: app.width * 0.05
+ height: parent.height * 0.2
+ width: height*1.2
+ source: "heart.png"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: pulse()
+ }
+ }
+
+ Text {
+ id: pulseText
+ anchors { right: parent.right; verticalCenter: heart.verticalCenter }
+ anchors.margins: app.width * 0.05
+ antialiasing: true
+ text: app.frequency
+ color: app.frequency > 100 ? app.alarmColor : app.textColor
+ font { pixelSize: app.width * .1; bold: true }
+ }
+
+ // Pulse timer
+ Timer {
+ id: heartTimer
+ interval: 1200
+ running: true
+ repeat: false
+ onTriggered: pulse()
+ }
+
+ // Update timer
+ Timer {
+ id: updateTimer
+ interval: 30
+ running: true
+ repeat: true
+ onTriggered: updateData()
+ }
+
+ SequentialAnimation{
+ id: heartAnimation
+ NumberAnimation { target: heart; property: "scale"; duration: 100; from: 1.0; to:1.2; easing.type: Easing.Linear }
+ NumberAnimation { target: heart; property: "scale"; duration: 100; from: 1.2; to:1.0; easing.type: Easing.Linear }
+ }
+
+ Component.onCompleted: {
+ Data.fillHeartData(Math.max(100,Math.floor(app.width*0.5)))
+ }
+}
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/.DS_Store b/basicsuite/qt5-everywhere/demos/maroon/.DS_Store
index b5c859b..b5c859b 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/.DS_Store
+++ b/basicsuite/qt5-everywhere/demos/maroon/.DS_Store
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/Maroon.qml b/basicsuite/qt5-everywhere/demos/maroon/Maroon.qml
index d7bfcb6..d7bfcb6 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/Maroon.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/Maroon.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/BuildButton.qml b/basicsuite/qt5-everywhere/demos/maroon/content/BuildButton.qml
index 49641fc..49641fc 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/BuildButton.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/BuildButton.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/GameCanvas.qml b/basicsuite/qt5-everywhere/demos/maroon/content/GameCanvas.qml
index 5e6e963..5e6e963 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/GameCanvas.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/GameCanvas.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/GameOverScreen.qml b/basicsuite/qt5-everywhere/demos/maroon/content/GameOverScreen.qml
index dfb439f..dfb439f 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/GameOverScreen.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/GameOverScreen.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/InfoBar.qml b/basicsuite/qt5-everywhere/demos/maroon/content/InfoBar.qml
index 36303fc..36303fc 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/InfoBar.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/InfoBar.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/NewGameScreen.qml b/basicsuite/qt5-everywhere/demos/maroon/content/NewGameScreen.qml
index 495e3aa..495e3aa 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/NewGameScreen.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/NewGameScreen.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/SoundEffect.qml b/basicsuite/qt5-everywhere/demos/maroon/content/SoundEffect.qml
index 0dccd12..0dccd12 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/SoundEffect.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/SoundEffect.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/bomb-action.wav b/basicsuite/qt5-everywhere/demos/maroon/content/audio/bomb-action.wav
index b334dc1..b334dc1 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/bomb-action.wav
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/audio/bomb-action.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/catch-action.wav b/basicsuite/qt5-everywhere/demos/maroon/content/audio/catch-action.wav
index 3e22124..3e22124 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/catch-action.wav
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/audio/catch-action.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/catch.wav b/basicsuite/qt5-everywhere/demos/maroon/content/audio/catch.wav
index d3eade8..d3eade8 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/catch.wav
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/audio/catch.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/currency.wav b/basicsuite/qt5-everywhere/demos/maroon/content/audio/currency.wav
index 0d9ef2c..0d9ef2c 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/currency.wav
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/audio/currency.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/factory-action.wav b/basicsuite/qt5-everywhere/demos/maroon/content/audio/factory-action.wav
index a2ace6c..a2ace6c 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/factory-action.wav
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/audio/factory-action.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/melee-action.wav b/basicsuite/qt5-everywhere/demos/maroon/content/audio/melee-action.wav
index d325af4..d325af4 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/melee-action.wav
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/audio/melee-action.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/projectile-action.wav b/basicsuite/qt5-everywhere/demos/maroon/content/audio/projectile-action.wav
index 4e2284f..4e2284f 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/projectile-action.wav
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/audio/projectile-action.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/shooter-action.wav b/basicsuite/qt5-everywhere/demos/maroon/content/audio/shooter-action.wav
index 3e12b94..3e12b94 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/audio/shooter-action.wav
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/audio/shooter-action.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/background.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/background.png
index d548b93..d548b93 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/background.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/background.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb-action.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb-action.png
index 42da5d7..42da5d7 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb-action.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb-action.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb-idle.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb-idle.png
index 3bd62e2..3bd62e2 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb-idle.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb-idle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb.png
index 380da7d..380da7d 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/bomb.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/bomb.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/button-help.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/button-help.png
index aecebc1..aecebc1 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/button-help.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/button-help.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/button-play.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/button-play.png
index 6cdad6c..6cdad6c 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/button-play.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/button-play.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/catch-action.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/catch-action.png
index 78ca9fe..78ca9fe 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/catch-action.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/catch-action.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/catch.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/catch.png
index b7620fe..b7620fe 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/catch.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/catch.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/cloud.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/cloud.png
index d7c35f8..d7c35f8 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/cloud.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/cloud.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/currency.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/currency.png
index 1571341..1571341 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/currency.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/currency.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-bomb.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-bomb.png
index 708d916..708d916 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-bomb.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-bomb.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-factory.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-factory.png
index d2e2a48..d2e2a48 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-factory.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-factory.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-melee.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-melee.png
index 069d18d..069d18d 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-melee.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-melee.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-pointer.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-pointer.png
index 9b51a09..9b51a09 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-pointer.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-pointer.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-shooter.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-shooter.png
index af980ca..af980ca 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog-shooter.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog-shooter.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog.png
index d528ba7..d528ba7 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/dialog.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/dialog.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory-action.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory-action.png
index 8981678..8981678 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory-action.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory-action.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory-idle.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory-idle.png
index a145582..a145582 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory-idle.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory-idle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory.png
index bfb9f3f..bfb9f3f 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/factory.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/factory.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/grid.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/grid.png
index b595552..b595552 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/grid.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/grid.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/help.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/help.png
index 4654e4c..4654e4c 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/help.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/help.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/lifes.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/lifes.png
index 135310b..135310b 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/lifes.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/lifes.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo-bubble.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo-bubble.png
index 136151c..136151c 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo-bubble.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo-bubble.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo-fish.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo-fish.png
index c41833a..c41833a 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo-fish.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo-fish.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo.png
index 787ac99..787ac99 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/logo.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/logo.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee-action.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee-action.png
index c53873b..c53873b 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee-action.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee-action.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee-idle.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee-idle.png
index 621d9df..621d9df 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee-idle.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee-idle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee.png
index ab24015..ab24015 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/melee.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/melee.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/mob-idle.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/mob-idle.png
index dedacc7..dedacc7 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/mob-idle.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/mob-idle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/mob.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/mob.png
index 7569c35..7569c35 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/mob.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/mob.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/points.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/points.png
index 1d2386d..1d2386d 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/points.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/points.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/projectile-action.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/projectile-action.png
index aa2e650..aa2e650 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/projectile-action.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/projectile-action.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/projectile.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/projectile.png
index c25a0c3..c25a0c3 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/projectile.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/projectile.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/scores.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/scores.png
index af757fe..af757fe 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/scores.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/scores.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter-action.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter-action.png
index 08e7e30..08e7e30 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter-action.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter-action.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter-idle.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter-idle.png
index 663098d..663098d 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter-idle.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter-idle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter.png
index d44401e..d44401e 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/shooter.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/shooter.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/sunlight.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/sunlight.png
index d1c7042..d1c7042 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/sunlight.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/sunlight.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-1.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-1.png
index 3ea399c..3ea399c 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-1.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-1.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-2.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-2.png
index 934a481..934a481 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-2.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-2.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-3.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-3.png
index 47523f5..47523f5 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-3.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-3.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-blank.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-blank.png
index 4a687b2..4a687b2 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-blank.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-blank.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-gameover.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-gameover.png
index 4f53ef0..4f53ef0 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-gameover.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-gameover.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-go.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-go.png
index bfc26f7..bfc26f7 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/text-go.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/text-go.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/wave.png b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/wave.png
index f97426c..f97426c 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/gfx/wave.png
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/gfx/wave.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/logic.js b/basicsuite/qt5-everywhere/demos/maroon/content/logic.js
index dd76b7e..dd76b7e 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/logic.js
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/logic.js
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/mobs/MobBase.qml b/basicsuite/qt5-everywhere/demos/maroon/content/mobs/MobBase.qml
index d4ece66..d4ece66 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/mobs/MobBase.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/mobs/MobBase.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/Bomb.qml b/basicsuite/qt5-everywhere/demos/maroon/content/towers/Bomb.qml
index 41522ef..41522ef 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/Bomb.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/towers/Bomb.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/Factory.qml b/basicsuite/qt5-everywhere/demos/maroon/content/towers/Factory.qml
index b34a184..b34a184 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/Factory.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/towers/Factory.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/Melee.qml b/basicsuite/qt5-everywhere/demos/maroon/content/towers/Melee.qml
index 1b49a45..1b49a45 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/Melee.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/towers/Melee.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/Ranged.qml b/basicsuite/qt5-everywhere/demos/maroon/content/towers/Ranged.qml
index 33f3354..33f3354 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/Ranged.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/towers/Ranged.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/TowerBase.qml b/basicsuite/qt5-everywhere/demos/maroon/content/towers/TowerBase.qml
index 5c71cb0..5c71cb0 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/TowerBase.qml
+++ b/basicsuite/qt5-everywhere/demos/maroon/content/towers/TowerBase.qml
diff --git a/basicsuite/qt5-everywhere/demos/particledemo/BootScreenDemo.qml b/basicsuite/qt5-everywhere/demos/particledemo/BootScreenDemo.qml
new file mode 100644
index 0000000..ca1e55e
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/particledemo/BootScreenDemo.qml
@@ -0,0 +1,181 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ id: root
+ property real size: Math.min(root.width, root.height);
+ signal finished()
+
+ SequentialAnimation {
+ id: entryAnimation
+ running: true
+ PropertyAction { target: sphereEmitter; property: "emitRate"; value: 150 }
+ PropertyAction { target: starEmitter; property: "emitRate"; value: 100 }
+ PropertyAction { target: starEmitter; property: "enabled"; value: true }
+ PropertyAction { target: sphereEmitter; property: "enabled"; value: true }
+ PropertyAction { target: sphereSystem; property: "running"; value: true }
+ PropertyAction { target: starSystem; property: "running"; value: true }
+ PauseAnimation { duration: 5000 }
+
+ onRunningChanged: if (!running) explodeAnimation.restart()
+ }
+
+ SequentialAnimation{
+ id: explodeAnimation
+ ScriptAction { script: {
+ starAccel.x = 5
+ starAccel.xVariation = 20;
+ starAccel.yVariation = 20;
+ sphereAccel.x = -5
+ sphereAccel.xVariation = 20
+ sphereAccel.yVariation = 20
+ sphereParticle.alpha = 0;
+ }
+ }
+ PropertyAction { target: sphereEmitter; property: "emitRate"; value: 200 }
+ PropertyAction { target: starEmitter; property: "emitRate"; value: 200 }
+ PauseAnimation { duration: 2000 }
+ PropertyAction { target: starEmitter; property: "enabled"; value: false }
+ PropertyAction { target: sphereEmitter; property: "enabled"; value: false }
+ PauseAnimation { duration: 5000 }
+
+ onRunningChanged: {
+ if (!running) {
+ root.finished()
+ root.destroy()
+ }
+ }
+ }
+
+ Item {
+ id: logo;
+ width: root.size / 2;
+ height: root.size / 2;
+ anchors.centerIn: parent
+ }
+
+ ParticleSystem {
+ id: sphereSystem;
+ anchors.fill: logo
+ running: false
+
+ ImageParticle {
+ id: sphereParticle
+ source: "images/particle.png"
+ color: "#80c342"
+ alpha: 1
+ colorVariation: 0.0
+ }
+
+ Emitter {
+ id: sphereEmitter
+ anchors.fill: parent
+ emitRate: 100
+ lifeSpan: 4000
+ size: root.width*.15
+ sizeVariation: size *.2
+ velocity: PointDirection { xVariation: 2; yVariation: 2; }
+
+ acceleration: PointDirection {
+ id: sphereAccel
+ xVariation: 1;
+ yVariation: 1;
+ }
+
+ shape: MaskShape {
+ source: "images/qt-logo-green-mask.png"
+ }
+ }
+ }
+
+ ParticleSystem {
+ id: starSystem;
+ anchors.fill: logo
+ running: false
+
+ ImageParticle {
+ id: starParticle
+ source: "images/particle_star.png"
+ color: "#ffffff"
+ alpha: 0
+ colorVariation: 0
+ }
+
+ Emitter {
+ id: starEmitter
+ anchors.fill: parent
+ emitRate: 50
+ lifeSpan: 5000
+ size: root.width*.1
+ sizeVariation: size *.2
+ velocity: PointDirection { xVariation: 1; yVariation: 1; }
+
+ acceleration: PointDirection {
+ id: starAccel
+ xVariation: 0;
+ yVariation: 0;
+ }
+
+ shape: MaskShape {
+ source: "images/qt-logo-white-mask.png"
+ }
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+
+ if (entryAnimation.running) {
+ entryAnimation.complete()
+ return;
+ }
+
+ if (explodeAnimation.running) {
+ root.finished()
+ root.destroy()
+ }
+
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/particledemo/ParticleSysComponent.qml b/basicsuite/qt5-everywhere/demos/particledemo/ParticleSysComponent.qml
new file mode 100644
index 0000000..531b7c3
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/particledemo/ParticleSysComponent.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+/**
+ * ParticleSystem component draw particles with the given color.
+ */
+
+ParticleSystem {
+ id: root
+ anchors.fill: parent
+ running: true
+
+ property color particleColor: "#ff0000"
+ property real angle: particleRoot.angle;
+ property int pointCount: particleRoot.pointCount;
+ property real radius: particleRoot.distance;
+ property real movement: particleRoot.movement;
+ property bool emitting: particleRoot.running;
+ property int touchX: 0
+ property int touchY: 0
+ property int startAngle: 0
+ property bool pressed: false
+ property real targetX: pressed ? touchX : width/2+radius * Math.cos(targetAngle*(Math.PI/180))
+ property real targetY: pressed ? touchY : height/2+radius * Math.sin(targetAngle*(Math.PI/180))
+ property real targetAngle: angle+startAngle
+
+ Emitter {
+ id: emitter
+ lifeSpan: 1000
+ emitRate: 80
+ x: targetX
+ y: targetY
+ enabled: root.emitting
+ size: root.height*.05
+ endSize: root.height*.1
+ sizeVariation: .5
+ velocity: AngleDirection{angle:0; angleVariation: 360; magnitude: 10}
+ acceleration: AngleDirection{angle:0; angleVariation: 360; magnitude: 10}
+ velocityFromMovement: root.movement
+ }
+
+ ImageParticle {
+ id: imageParticle
+ source: "images/particle.png"
+ color: root.pointCount >0 && root.pressed ? root.particleColor: "#444444"
+ alpha: .0
+ colorVariation: root.pointCount >0 && root.pressed ? 0.3: .0
+
+ Behavior on color{
+ enabled: root.pointCount != 0
+ ColorAnimation { duration: 500 }
+ }
+
+ SequentialAnimation on color {
+ id: colorAnimation
+ loops: Animation.Infinite
+ running: root.pointCount === 0
+ ColorAnimation {from: root.particleColor; to: "magenta"; duration: 2000}
+ ColorAnimation {from: "magenta"; to: "blue"; duration: 1000}
+ ColorAnimation {from: "blue"; to: "violet"; duration: 1000}
+ ColorAnimation {from: "violet"; to: "red"; duration: 1000}
+ ColorAnimation {from: "red"; to: "orange"; duration: 1000}
+ ColorAnimation {from: "orange"; to: "yellow"; duration: 1000}
+ ColorAnimation {from: "yellow"; to: "green"; duration: 1000}
+ ColorAnimation {from: "green"; to: root.particleColor; duration: 2000}
+ }
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/particledemo/images/particle.png b/basicsuite/qt5-everywhere/demos/particledemo/images/particle.png
index 7520c9b..7520c9b 100644
--- a/basicsuite/Qt5Everywhere/demos/particledemo/images/particle.png
+++ b/basicsuite/qt5-everywhere/demos/particledemo/images/particle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/particledemo/images/particle_star.png b/basicsuite/qt5-everywhere/demos/particledemo/images/particle_star.png
index 5660d27..5660d27 100644
--- a/basicsuite/Qt5Everywhere/demos/particledemo/images/particle_star.png
+++ b/basicsuite/qt5-everywhere/demos/particledemo/images/particle_star.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/particledemo/images/qt-logo-green-mask.png b/basicsuite/qt5-everywhere/demos/particledemo/images/qt-logo-green-mask.png
index 84be10d..84be10d 100644
--- a/basicsuite/Qt5Everywhere/demos/particledemo/images/qt-logo-green-mask.png
+++ b/basicsuite/qt5-everywhere/demos/particledemo/images/qt-logo-green-mask.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/particledemo/images/qt-logo-white-mask.png b/basicsuite/qt5-everywhere/demos/particledemo/images/qt-logo-white-mask.png
index 920eeee..920eeee 100644
--- a/basicsuite/Qt5Everywhere/demos/particledemo/images/qt-logo-white-mask.png
+++ b/basicsuite/qt5-everywhere/demos/particledemo/images/qt-logo-white-mask.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/particle.png b/basicsuite/qt5-everywhere/demos/particledemo/particle.png
index 5c83896..5c83896 100644
--- a/basicsuite/Qt5 Launch Presentation/images/particle.png
+++ b/basicsuite/qt5-everywhere/demos/particledemo/particle.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/particledemo/particledemo.qml b/basicsuite/qt5-everywhere/demos/particledemo/particledemo.qml
new file mode 100644
index 0000000..235a2cd
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/particledemo/particledemo.qml
@@ -0,0 +1,213 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Rectangle {
+ id: particleRoot
+ color: "#000000"
+ anchors.fill: parent
+
+ property real distance: parent.height*.4
+ property real angle: 0
+ property real movement: 0
+ property alias running: angleAnimation.running
+ property int pointCount: mouseArea.pointCount + multiPointTouchArea.pointCount
+
+ BootScreenDemo {
+ width: Math.min(parent.width,parent.height)
+ height: width
+ anchors.centerIn: parent
+ z: 1
+ onFinished: {
+ distanceAnimation.restart()
+ angleAnimation.restart()
+ }
+ }
+
+ RotationAnimation on angle {
+ id: angleAnimation
+ from: 0
+ to: 360
+ running: false
+ duration: distanceAnimation.delay
+ direction: RotationAnimation.Shortest
+ loops: Animation.Infinite
+ }
+
+ SequentialAnimation on distance {
+ id: distanceAnimation
+ property int easingType:0
+ property int delay: 1000
+ running: false
+
+ NumberAnimation {
+ from: 0
+ to: parent.height*.4
+ duration: distanceAnimation.delay/2
+ easing.type: distanceAnimation.easingType
+ }
+
+ NumberAnimation {
+ from: parent.height*.4
+ to: 0
+ duration: distanceAnimation.delay/2
+ easing.type: distanceAnimation.easingType
+ }
+
+ onRunningChanged: {
+ if (!running){
+ var type = Math.floor(Math.random()*10)
+ switch (type){
+ case 0:
+ distanceAnimation.easingType=Easing.InOutBack
+ break;
+ case 1:
+ distanceAnimation.easingType=Easing.InOutBounce
+ break;
+ case 2:
+ distanceAnimation.easingType=Easing.InOutCirc
+ break;
+ case 3:
+ distanceAnimation.easingType=Easing.InOutElastic
+ break;
+ case 4:
+ distanceAnimation.easingType=Easing.InOutSine
+ break;
+ case 5:
+ distanceAnimation.easingType=Easing.OutInQuad
+ break;
+ case 6:
+ distanceAnimation.easingType=Easing.OutInCubic
+ break;
+ case 7:
+ distanceAnimation.easingType=Easing.OutExpo
+ break;
+ case 8:
+ distanceAnimation.easingType=Easing.OutCurve
+ break;
+ default:
+ distanceAnimation.easingType=Easing.Linear
+ break;
+ }
+
+ distanceAnimation.delay = 500 + Math.floor(Math.random()*1500)
+ angleAnimation.from = 180 + Math.random()*90 - 45
+ particleRoot.movement = Math.random()*2
+ angleAnimation.restart()
+ distanceAnimation.restart()
+ }
+ }
+ }
+
+ /**
+ * Create five ParticleSysComponents for drawing particles
+ * in the place of multitouch points with the given color.
+ */
+ ParticleSysComponent{ id: p1; particleColor: "#ff0000"; startAngle: 1*360/(5-particleRoot.pointCount); }
+ ParticleSysComponent{ id: p2; particleColor: "#00ff00"; startAngle: 2*360/(5-particleRoot.pointCount); }
+ ParticleSysComponent{ id: p3; particleColor: "#0000ff"; startAngle: 3*360/(5-particleRoot.pointCount); }
+ ParticleSysComponent{ id: p4; particleColor: "#ffff00"; startAngle: 4*360/(5-particleRoot.pointCount); }
+ ParticleSysComponent{ id: p5; particleColor: "#ff00ff"; startAngle: 5*360/(5-particleRoot.pointCount); }
+
+ /**
+ * In this demo we only support five touch point at the same time.
+ * One from mouseArea (because of Desktop-support) and four from MultiPointTouchArea.
+ */
+ MultiPointTouchArea {
+ id: multiPointTouchArea
+ anchors.fill: parent
+ minimumTouchPoints: 1
+ maximumTouchPoints: 6
+
+ property int pointCount:0
+
+ touchPoints: [
+ TouchPoint { id: point1 },
+ TouchPoint { id: point2 },
+ TouchPoint { id: point3 },
+ TouchPoint { id: point4 }
+ ]
+
+ onPressed: updatePointCount()
+ onReleased: updatePointCount()
+ onTouchUpdated: {
+ p2.touchX = point1.x; p2.touchY = point1.y; p2.pressed = point1.pressed;
+ p3.touchX = point2.x; p3.touchY = point2.y; p3.pressed = point2.pressed;
+ p4.touchX = point3.x; p4.touchY = point3.y; p4.pressed = point3.pressed;
+ p5.touchX = point4.x; p5.touchY = point4.y; p5.pressed = point4.pressed;
+ }
+
+ function updatePointCount(){
+ var tmp = 0
+ for (var i=0; i<4; i++) {
+ if (touchPoints[i].pressed)
+ tmp++
+ }
+ pointCount = tmp
+ }
+ }
+
+ /**
+ * For desktop.
+ */
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+
+ property int pointCount:0
+
+ onPressed: {
+ pointCount = 1;
+ p1.touchX = mouse.x;
+ p1.touchY = mouse.y;
+ p1.pressed = true;
+ }
+ onReleased: {
+ pointCount = 0;
+ p1.pressed = false;
+ }
+ onPositionChanged: {
+ p1.touchX = mouse.x;
+ p1.touchY = mouse.y;
+ }
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/photosurface/images/image0.png b/basicsuite/qt5-everywhere/demos/photosurface/images/image0.png
index 711b788..711b788 100644
--- a/basicsuite/Qt5Everywhere/demos/photosurface/images/image0.png
+++ b/basicsuite/qt5-everywhere/demos/photosurface/images/image0.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/photosurface/images/image1.png b/basicsuite/qt5-everywhere/demos/photosurface/images/image1.png
index e9bfcdf..e9bfcdf 100644
--- a/basicsuite/Qt5Everywhere/demos/photosurface/images/image1.png
+++ b/basicsuite/qt5-everywhere/demos/photosurface/images/image1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/photosurface/images/image2.png b/basicsuite/qt5-everywhere/demos/photosurface/images/image2.png
index b37453c..b37453c 100644
--- a/basicsuite/Qt5Everywhere/demos/photosurface/images/image2.png
+++ b/basicsuite/qt5-everywhere/demos/photosurface/images/image2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/photosurface/images/image3.png b/basicsuite/qt5-everywhere/demos/photosurface/images/image3.png
index 63d82e7..63d82e7 100644
--- a/basicsuite/Qt5Everywhere/demos/photosurface/images/image3.png
+++ b/basicsuite/qt5-everywhere/demos/photosurface/images/image3.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/photosurface/images/image4.png b/basicsuite/qt5-everywhere/demos/photosurface/images/image4.png
index a499231..a499231 100644
--- a/basicsuite/Qt5Everywhere/demos/photosurface/images/image4.png
+++ b/basicsuite/qt5-everywhere/demos/photosurface/images/image4.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/photosurface/images/qml-photosurface-example-small.png b/basicsuite/qt5-everywhere/demos/photosurface/images/qml-photosurface-example-small.png
index a0cd823..a0cd823 100644
--- a/basicsuite/Qt5Everywhere/demos/photosurface/images/qml-photosurface-example-small.png
+++ b/basicsuite/qt5-everywhere/demos/photosurface/images/qml-photosurface-example-small.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/photosurface/photosurface.qml b/basicsuite/qt5-everywhere/demos/photosurface/photosurface.qml
new file mode 100644
index 0000000..d96a9bd
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/photosurface/photosurface.qml
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+ visible: true
+ anchors.fill: parent
+ property int highestZ: 0
+ property real defaultSize: 200
+
+ gradient: Gradient{
+ GradientStop{position: 0.0; color: "#333333"}
+ GradientStop{position: 1.0; color: "#111111"}
+ }
+
+ Repeater {
+// model: FolderListModel {
+// id: folderModel
+// objectName: "folderModel"
+// showDirs: false
+// nameFilters: ["*.png", "*.jpg", "*.gif"]
+// }
+ id: repeater
+ model: 5
+ anchors.fill: parent
+
+ clip: true
+ Rectangle {
+ id: photoFrame
+ width: image.width * image.scale + 20
+ height: image.height * image.scale + 20
+ border.color: "black"
+ border.width: 2
+ smooth: true
+ antialiasing: true
+ x: Math.random() * root.width - defaultSize / 2
+ y: Math.random() * root.height - defaultSize / 2
+ rotation: Math.random() * 13 - 6
+ Image {
+ id: image
+ anchors.centerIn: parent
+ fillMode: Image.PreserveAspectFit
+ source: "images/image"+index+".png"
+ scale: defaultSize / Math.max(sourceSize.width, sourceSize.height)
+ antialiasing: true
+ }
+ PinchArea {
+ anchors.fill: parent
+ pinch.target: photoFrame
+ pinch.minimumRotation: -360
+ pinch.maximumRotation: 360
+ pinch.minimumScale: 0.1
+ pinch.maximumScale: 10
+ onPinchFinished: photoFrame.border.color = "black";
+ MouseArea {
+ id: dragArea
+ hoverEnabled: true
+ anchors.fill: parent
+ drag.target: photoFrame
+ onPressed: photoFrame.z = ++root.highestZ;
+ onEntered: photoFrame.border.color = "red";
+ onExited: photoFrame.border.color = "black";
+ onWheel: {
+ if (wheel.modifiers & Qt.ControlModifier) {
+ photoFrame.rotation += wheel.angleDelta.y / 120 * 5;
+ if (Math.abs(photoFrame.rotation) < 4)
+ photoFrame.rotation = 0;
+ } else {
+ photoFrame.rotation += wheel.angleDelta.x / 120;
+ if (Math.abs(photoFrame.rotation) < 0.6)
+ photoFrame.rotation = 0;
+ var scaleBefore = image.scale;
+ image.scale += image.scale * wheel.angleDelta.y / 120 / 10;
+ photoFrame.x -= image.width * (image.scale - scaleBefore) / 2.0;
+ photoFrame.y -= image.height * (image.scale - scaleBefore) / 2.0;
+ }
+ }
+ }
+ }
+ }
+ }
+// Text {
+// anchors.bottom: parent.bottom
+// anchors.left: parent.left
+// anchors.margins: 10
+// color: "darkgrey"
+// text: "On a touchscreen: use two fingers to zoom and rotate, one finger to drag\n" +
+// "With a mouse: drag normally, use the vertical wheel to zoom, horizontal wheel to rotate, or hold Ctrl while using the vertical wheel to rotate"
+// wrapMode: Text.Wrap
+// }
+
+ //Component.onCompleted: fileDialog.open()
+}
diff --git a/basicsuite/qt5-everywhere/demos/radio/VolumeButton.qml b/basicsuite/qt5-everywhere/demos/radio/VolumeButton.qml
new file mode 100644
index 0000000..11b687e
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/radio/VolumeButton.qml
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+ width: size
+ height: size
+
+ property int steps: 10
+ property int size: 0
+ property real volume: .5
+ property bool playing: false
+ signal clicked();
+
+ Item {
+ id: bg
+ anchors.fill: parent
+
+ Rectangle {
+ id: bgRect
+
+ gradient: Gradient {
+ GradientStop {position: .0; color: "lightgray"}
+ GradientStop {position: 1.0; color: "white"}
+ }
+
+ border {width:1; color: "#888888"}
+ radius: root.size/2
+ anchors.centerIn: parent
+ width: parent.width
+ height: parent.height
+ }
+
+ Rectangle {
+ gradient: Gradient {
+ GradientStop {position: .0; color: playButtonMouseArea.pressed ? "#052e41": "#095477"}
+ GradientStop {position: 1.0; color: playButtonMouseArea.pressed ? "#095477": "#052e41"}
+ }
+
+ border {width:1; color: "#888888"}
+ radius: width/2
+ anchors.centerIn: parent
+ width: parent.width*.6
+ height: parent.height*.6
+
+ Image {
+ anchors {fill: parent; margins: parent.height*.3}
+ source: !root.playing ? "images/radio_btn_play.png" : "images/radio_btn_pause.png"
+ }
+
+ MouseArea {
+ id: playButtonMouseArea
+ anchors.fill: parent
+ anchors.margins: parent.width*.2
+ onClicked:{
+ root.clicked()
+ }
+ }
+ }
+ }
+
+ Item {
+ id: volumeIndicator
+ anchors.centerIn: root
+ width: root.size
+ height: root.size
+ z:2
+
+ Rectangle{
+ id: volumeCircle
+ objectName: "volumeCircle"
+ anchors {horizontalCenter: parent.horizontalCenter; top: parent.top}
+
+ gradient: Gradient {
+ GradientStop {position: .1; color: "#095477"}
+ GradientStop {position: 1.0; color: "#0e82b8"}
+ }
+
+ width: root.size * .2
+ height: width
+ radius: width/2
+ border {width:1; color: "#888888"}
+
+ Image {
+ anchors {fill: parent; margins: parent.height*.2}
+ source: "images/radio_sound_icon.png"
+ rotation: -volumeRotation.angle
+ }
+ }
+
+ transform: Rotation {
+ id: volumeRotation
+ origin.x: volumeIndicator.width/2
+ origin.y: volumeIndicator.height/2
+ angle: 270.0*root.volume+225
+ }
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: volumeIndicator
+ property bool grabbed: false
+ anchors.margins: -root.size*.2
+ z: -1
+
+ onPressed: {
+ var object = mapToItem(volumeIndicator, mouse.x, mouse.y)
+ var item = volumeIndicator.childAt(object.x,object.y)
+ if (item && item.objectName === 'volumeCircle') {
+ grabbed = true
+ return;
+ } else {
+ grabbed = false
+ }
+
+ object = mapToItem(root, mouse.x, mouse.y)
+ item = root.childAt(object.x,object.y)
+ if (item && item.objectName === 'volumePoint') {
+ root.volume = item.level
+ }
+ }
+
+ onPositionChanged: {
+ if (!grabbed) return;
+ var ang = (225+Math.atan2((mouse.y-mouseArea.height/2.0), (mouse.x-mouseArea.width/2.0))*180.0/Math.PI)
+ if (ang >360) ang-=360
+ if (ang > 270) return;
+ root.volume = (ang)/270.0
+ }
+ }
+
+ function init(){
+ for (var i=0; i<=root.steps; i++){
+ var x=Math.cos(((i)*270/root.steps+135)*0.01745)*root.size*.40
+ var y=Math.sin(((i)*270/root.steps+135)*0.01745)*root.size*.40
+ var component = Qt.createComponent("VolumePoint.qml")
+ if (component.status === Component.Ready) {
+ var object = component.createObject(root);
+ object.size = root.size*.05
+ object.x = root.size/2+x-object.size/2
+ object.y = root.size/2+y-object.size/2
+ object.level = i/root.steps
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/radio/VolumePoint.qml b/basicsuite/qt5-everywhere/demos/radio/VolumePoint.qml
new file mode 100644
index 0000000..a491860
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/radio/VolumePoint.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+ objectName: "volumePoint"
+ width: size
+ height: size
+ radius: size/2
+ color: volume >= level ? "#0e82b8": "#095477"
+ border {width:1; color: "#888888"}
+ property int size: 10
+ property real level: 0
+ property real volume: parent.volume
+
+ Behavior on color{ColorAnimation { duration: 500 }}
+
+ Item {
+ id: pointClickArea
+ objectName: "pointClickArea"
+ property alias value: root.level
+ anchors.fill: parent
+ anchors.margins: -root.size*2
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/radio/channels.xml b/basicsuite/qt5-everywhere/demos/radio/channels.xml
index 99522ab..99522ab 100644
--- a/basicsuite/Qt5Everywhere/demos/radio/channels.xml
+++ b/basicsuite/qt5-everywhere/demos/radio/channels.xml
diff --git a/basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_pause.png b/basicsuite/qt5-everywhere/demos/radio/images/radio_btn_pause.png
index 5204834..5204834 100644
--- a/basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_pause.png
+++ b/basicsuite/qt5-everywhere/demos/radio/images/radio_btn_pause.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_play.png b/basicsuite/qt5-everywhere/demos/radio/images/radio_btn_play.png
index 92ee858..92ee858 100644
--- a/basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_play.png
+++ b/basicsuite/qt5-everywhere/demos/radio/images/radio_btn_play.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_stop.png b/basicsuite/qt5-everywhere/demos/radio/images/radio_btn_stop.png
index 187158a..187158a 100644
--- a/basicsuite/Qt5Everywhere/demos/radio/images/radio_btn_stop.png
+++ b/basicsuite/qt5-everywhere/demos/radio/images/radio_btn_stop.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/radio/images/radio_sound_icon.png b/basicsuite/qt5-everywhere/demos/radio/images/radio_sound_icon.png
index ac0b61e..ac0b61e 100644
--- a/basicsuite/Qt5Everywhere/demos/radio/images/radio_sound_icon.png
+++ b/basicsuite/qt5-everywhere/demos/radio/images/radio_sound_icon.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/radio/images/volume.png b/basicsuite/qt5-everywhere/demos/radio/images/volume.png
index a098d82..a098d82 100644
--- a/basicsuite/Qt5Everywhere/demos/radio/images/volume.png
+++ b/basicsuite/qt5-everywhere/demos/radio/images/volume.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/radio/radio.qml b/basicsuite/qt5-everywhere/demos/radio/radio.qml
new file mode 100644
index 0000000..e81c567
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/radio/radio.qml
@@ -0,0 +1,285 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtMultimedia 5.0
+import QtQuick.XmlListModel 2.0
+
+FocusScope {
+ id: scope
+ x: parent.x; y: parent.y
+ width: parent.width; height: parent.height
+ focus: true
+ property bool active: false
+
+ Rectangle {
+ id: root
+ width:parent.width
+ height: parent.height
+ anchors.centerIn: parent
+ focus: true
+ color: "#262626"
+
+ Audio {
+ id: playMusic
+ source: ""
+ volume: volumeButton.volume
+ onSourceChanged: {
+ if (volumeButton.playing) playMusic.play()
+ }
+ onAvailabilityChanged: {
+ if (availability === Audio.Available) {
+ if (volumeButton.playing) playMusic.play()
+ }
+ }
+ Component.onDestruction: {
+ volumeButton.playing = false
+ playMusic.stop()
+ playMusic.source = ""
+ }
+ }
+
+ Rectangle {
+ id: playerRect
+ anchors.top: volumeButton.top
+ anchors.left: volumeButton.left
+ anchors.bottom: volumeButton.bottom
+ anchors.right: parent.right
+ anchors.rightMargin: parent.height*.05
+ gradient: Gradient {
+ GradientStop {position: .1; color: "lightgrey"}
+ GradientStop {position: 1.0; color: "white"}
+ }
+ border {width:1; color: "#888888"}
+ radius: height/2
+
+ Rectangle {
+ id: displayRect
+ anchors.fill: parent
+ anchors.margins: parent.height*.1
+ gradient: Gradient {
+ GradientStop {position: .0; color: "#095477"}
+ GradientStop {position: 1.0; color: "#052e41"}
+ }
+ border {width:1; color: "#888888"}
+ radius: height/2
+
+
+ Item {
+ id: networkErrorBox
+ opacity: 0
+ anchors.fill: parent
+
+ Text {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: parent.width * 0.1
+ text: qsTr("Sorry! No network connection")
+ font.pixelSize: stationList.height*.1;
+ color: "white"
+ smooth: true
+ }
+ }
+
+ PathView {
+ enabled: root.activeFocus
+ id: stationList
+ anchors.fill:parent
+ anchors.leftMargin: parent.height*.9
+ model: stationModel
+ pathItemCount: 6
+ clip: true
+ property int openedIndex: -1
+
+ onMovementStarted: {
+ idleTimer.stop()
+ openedIndex = -1
+ pathItemCount = 5
+ }
+ onMovementEnded: idleTimer.restart()
+
+ onOpenedIndexChanged: {
+ if (openedIndex === -1) return
+ idleTimer.lastIndex=openedIndex
+ positionViewAtIndex(openedIndex, PathView.Center)
+ }
+
+ Timer {
+ id: idleTimer
+ interval: 5000
+ property int lastIndex: -1
+ onTriggered: {
+ stationList.openedIndex = idleTimer.lastIndex
+ }
+ }
+
+ Timer {
+ id: browseTimer
+ interval: 500
+ property string source:""
+ onTriggered: playMusic.source = source
+ }
+
+ path: Path {
+ startX: stationList.x; startY: 0
+ PathArc {
+ id: pathArc
+ x: stationList.x; relativeY: stationList.height*1.1
+ radiusX: volumeButton.height/2
+ radiusY: volumeButton.height/2
+ useLargeArc: false
+ }
+ }
+
+ delegate: Item {
+ id: stationDelegate
+ property bool opened: stationList.openedIndex === index
+ width: stationList.width*.7
+ height: opened? stationList.height*.4: stationList.height*.2
+
+ Behavior on height {NumberAnimation{duration:200}}
+
+ Text {
+ id: delegateText
+ anchors.left: parent.left
+ anchors.top: parent.top
+ text: (index+1) +". " +title
+ font.pixelSize: stationDelegate.opened? stationList.height*.15 : stationList.height*.1
+ font.weight: stationDelegate.opened? Font.Bold: Font.Normal
+ color: stationList.openedIndex ===-1 || opened? "white": "#0e82b8"
+ Behavior on font.pixelSize {NumberAnimation{duration:200}}
+ }
+
+ Text {
+ id: statustextText
+ anchors.left: parent.left
+ anchors.top: delegateText.bottom
+
+ text: playMusic.playbackState=== Audio.PlayingState ? "Playing...":
+ playMusic.status=== Audio.Buffering ? "Buffering...":
+ playMusic.status=== Audio.Loading ? "Loading...":
+ playMusic.playbackState=== Audio.StoppedState ? "Stopped":"Error"
+
+ font.pixelSize: stationList.height*.1
+ color: delegateText.color
+ opacity: opened? 1.0: .0
+ Behavior on opacity {NumberAnimation{duration:200}}
+ }
+
+
+ MouseArea {
+ anchors.fill: parent
+ visible: root.activeFocus
+
+ onClicked: {
+ if (opened){
+ idleTimer.lastIndex=-1
+ stationList.openedIndex=-1
+ }else {
+ stationList.openedIndex= index
+ browseTimer.source = url
+ browseTimer.restart()
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ XmlListModel {
+ id: stationModel
+ source: "http://qt-project.org/uploads/videos/qt5_radio_channels.xml"
+ query: "/radio/channel"
+ XmlRole {name: "title"; query: "title/string()"}
+ XmlRole {name: "url"; query: "url/string()"}
+
+ onStatusChanged: {
+ if (status == XmlListModel.Ready) {
+ networkErrorBox.opacity = 0;
+ } else if (status == XmlListModel.Error) {
+ networkErrorBox.opacity = 1;
+ }
+ }
+ }
+
+ VolumeButton {
+ id: volumeButton
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: size*.1
+ size:parent.height*.5
+ playing: playMusic.playbackState === Audio.PlayingState
+ onClicked: {
+ if (!playMusic.source) return;
+ if (!playing) {
+ playMusic.play()
+ }else {
+ playMusic.stop()
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ volumeButton.init()
+ scope.focus = true
+ }
+
+ Keys.onPressed: {
+ if (event.key === Qt.Key_Down || event.key === Qt.Key_VolumeDown) {
+ event.accepted = true
+ if (volumeButton.volume > .1){
+ volumeButton.volume-=.1
+ }else{
+ volumeButton.volume = 0.0
+ }
+ }
+
+ if (event.key === Qt.Key_Up || event.key === Qt.Key_VolumeUp) {
+ event.accepted = true
+ if (volumeButton.volume < .9){
+ volumeButton.volume+=.1
+ }else{
+ volumeButton.volume = 1.0
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/rssnews/content/BusyIndicator.qml b/basicsuite/qt5-everywhere/demos/rssnews/content/BusyIndicator.qml
new file mode 100644
index 0000000..97065b2
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/rssnews/content/BusyIndicator.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtQml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Image {
+ id: container
+ property bool on: false
+
+ source: "images/busy.png"; visible: container.on
+
+ NumberAnimation on rotation {
+ running: container.on; from: 0; to: 360; loops: Animation.Infinite; duration: 1200
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/rssnews/content/CategoryDelegate.qml b/basicsuite/qt5-everywhere/demos/rssnews/content/CategoryDelegate.qml
new file mode 100644
index 0000000..ae70e44
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/rssnews/content/CategoryDelegate.qml
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtQml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: delegate
+ property double margin: delegate.height * 0.2;
+ width: delegate.ListView.view.width;
+ height: 60
+
+ Text {
+ text: name
+ color: delegate.ListView.isCurrentItem ? "white" : "black"
+ font { family: "Helvetica"; pixelSize: delegate.height * 0.25; bold: true }
+ anchors {
+ left: parent.left;
+ leftMargin: margin
+ verticalCenter: parent.verticalCenter
+ }
+ }
+
+ BusyIndicator {
+ scale: 0.6
+ on: delegate.ListView.isCurrentItem && window.loading
+ anchors { right: parent.right; rightMargin: margin; verticalCenter: parent.verticalCenter }
+ }
+
+ Rectangle {
+ width: delegate.width; height: 1; color: "#cccccc"
+ anchors.bottom: delegate.bottom
+ visible: delegate.ListView.isCurrentItem ? false : true
+ }
+ Rectangle {
+ width: delegate.width; height: 1; color: "white"
+ visible: delegate.ListView.isCurrentItem ? false : true
+ }
+
+ MouseArea {
+ anchors.fill: delegate
+ onClicked: {
+ delegate.ListView.view.currentIndex = index
+ window.currentFeed = feed
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/rssnews/content/NewsDelegate.qml b/basicsuite/qt5-everywhere/demos/rssnews/content/NewsDelegate.qml
new file mode 100644
index 0000000..7080312
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/rssnews/content/NewsDelegate.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtQml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: delegate
+ height: column.height + 2*margin
+ width: delegate.ListView.view.width
+
+ property double margin: width * 0.03
+
+ Column {
+ id: column
+ x: margin; y: margin
+ width: parent.width - 2*margin
+
+ Text {
+ id: titleText
+ text: title; width: parent.width; wrapMode: Text.WordWrap
+ font { bold: true; family: "Helvetica"; pixelSize: 20}
+ }
+
+ Text {
+ id: descriptionText
+ width: parent.width; text: description
+ wrapMode: Text.WordWrap
+ font.family: "Helvetica"
+ font.pixelSize: 12
+ }
+ }
+
+ Rectangle {
+ width: parent.width; height: 1; color: "#cccccc"
+ anchors.bottom: parent.bottom
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/rssnews/content/RssFeeds.qml b/basicsuite/qt5-everywhere/demos/rssnews/content/RssFeeds.qml
new file mode 100644
index 0000000..2f0591b
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/rssnews/content/RssFeeds.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtQml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+ListModel {
+ id: rssFeeds
+
+ ListElement { name: "Top Stories"; feed: "feeds.bbci.co.uk/news/rss.xml" }
+ ListElement { name: "Popular Stories"; feed: "finance.yahoo.com/rss/popularstories" }
+ ListElement { name: "Qt Blog"; feed: "blog.qt.digia.com/feed/" }
+ ListElement { name: "Planet Qt"; feed: "planet.qt-project.org/rss20.xml" }
+ ListElement { name: "World"; feed: "rss.news.yahoo.com/rss/world" }
+ ListElement { name: "Oceania"; feed: "rss.news.yahoo.com/rss/oceania" }
+ ListElement { name: "U.S. National"; feed: "rss.news.yahoo.com/rss/us" }
+ ListElement { name: "Business"; feed: "rss.news.yahoo.com/rss/business" }
+ ListElement { name: "Technology"; feed: "rss.news.yahoo.com/rss/tech" }
+ ListElement { name: "Entertainment"; feed: "rss.news.yahoo.com/rss/entertainment" }
+ ListElement { name: "Sports"; feed: "sports.yahoo.com/mlb/teams/bos/rss.xml" }
+}
diff --git a/basicsuite/qt5-everywhere/demos/rssnews/content/ScrollBar.qml b/basicsuite/qt5-everywhere/demos/rssnews/content/ScrollBar.qml
new file mode 100644
index 0000000..02ad7ea
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/rssnews/content/ScrollBar.qml
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtQml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: container
+
+ property variant scrollArea
+ property variant orientation: Qt.Vertical
+
+ opacity: 0
+
+ function position()
+ {
+ var ny = 0;
+ if (container.orientation == Qt.Vertical)
+ ny = scrollArea.visibleArea.yPosition * container.height;
+ else
+ ny = scrollArea.visibleArea.xPosition * container.width;
+ if (ny > 2) return ny; else return 2;
+ }
+
+ function size()
+ {
+ var nh, ny;
+
+ if (container.orientation == Qt.Vertical)
+ nh = scrollArea.visibleArea.heightRatio * container.height;
+ else
+ nh = scrollArea.visibleArea.widthRatio * container.width;
+
+ if (container.orientation == Qt.Vertical)
+ ny = scrollArea.visibleArea.yPosition * container.height;
+ else
+ ny = scrollArea.visibleArea.xPosition * container.width;
+
+ if (ny > 3) {
+ var t;
+ if (container.orientation == Qt.Vertical)
+ t = Math.ceil(container.height - 3 - ny);
+ else
+ t = Math.ceil(container.width - 3 - ny);
+ if (nh > t) return t; else return nh;
+ } else return nh + ny;
+ }
+
+ Rectangle { anchors.fill: parent; color: "Black"; opacity: 0.3 }
+
+ BorderImage {
+ source: "images/scrollbar.png"
+ border { left: 1; right: 1; top: 1; bottom: 1 }
+ x: container.orientation == Qt.Vertical ? 2 : position()
+ width: container.orientation == Qt.Vertical ? container.width - 4 : size()
+ y: container.orientation == Qt.Vertical ? position() : 2
+ height: container.orientation == Qt.Vertical ? size() : container.height - 4
+ }
+
+ states: State {
+ name: "visible"
+ when: container.orientation == Qt.Vertical ? scrollArea.movingVertically : scrollArea.movingHorizontally
+ PropertyChanges { target: container; opacity: 1.0 }
+ }
+
+ transitions: Transition {
+ from: "visible"; to: ""
+ NumberAnimation { properties: "opacity"; duration: 600 }
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/content/images/busy.png b/basicsuite/qt5-everywhere/demos/rssnews/content/images/busy.png
index 664c2b1..664c2b1 100644
--- a/basicsuite/Qt5Everywhere/demos/rssnews/content/images/busy.png
+++ b/basicsuite/qt5-everywhere/demos/rssnews/content/images/busy.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/content/images/scrollbar.png b/basicsuite/qt5-everywhere/demos/rssnews/content/images/scrollbar.png
index 0228dcf..0228dcf 100644
--- a/basicsuite/Qt5Everywhere/demos/rssnews/content/images/scrollbar.png
+++ b/basicsuite/qt5-everywhere/demos/rssnews/content/images/scrollbar.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/rssnews/rssnews.qml b/basicsuite/qt5-everywhere/demos/rssnews/rssnews.qml
new file mode 100644
index 0000000..213d9e8
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/rssnews/rssnews.qml
@@ -0,0 +1,121 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtQml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.XmlListModel 2.0
+import "content"
+
+Rectangle {
+ id: window
+ anchors.fill: parent
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "#eeeeee" }
+ GradientStop { position: 0.1; color: "#ffffff" }
+ GradientStop { position: 0.9; color: "#ffffff" }
+ GradientStop { position: 1.0; color: "#bbbbbb" }
+ }
+
+ property int listWidth: window.width*0.35
+ property string currentFeed: "feeds.bbci.co.uk/news/rss.xml"
+ property bool loading: feedModel.status == XmlListModel.Loading
+
+ RssFeeds { id: rssFeeds }
+
+ XmlListModel {
+ id: feedModel
+ source: "http://" + window.currentFeed
+ query: "/rss/channel/item"
+
+ XmlRole { name: "title"; query: "title/string()" }
+ XmlRole { name: "link"; query: "link/string()" }
+ XmlRole { name: "description"; query: "description/string()" }
+
+ onStatusChanged: {
+ if (status == XmlListModel.Error) {
+ networkErrorBox.opacity = 1.0
+ } else if (status == XmlListModel.Ready) {
+ networkErrorBox.opacity = 0.0
+ }
+ }
+ }
+
+ Row {
+ Rectangle {
+ id: categoryContent
+ width: window.listWidth; height: window.height
+ color: "#efefef"
+
+ ListView {
+ id: categories
+ anchors.fill: parent
+ model: rssFeeds
+ delegate: CategoryDelegate {}
+ highlight: Rectangle { color: "steelblue" }
+ highlightMoveVelocity: 9999999
+ }
+ ScrollBar {
+ scrollArea: categories; height: categories.height; width: 8
+ anchors.right: categories.right
+ }
+ }
+ ListView {
+ id: list
+ width: window.width - window.listWidth; height: window.height
+ model: feedModel
+ delegate: NewsDelegate {}
+
+ Item {
+ id: networkErrorBox
+ opacity: 0
+ anchors.fill: parent
+
+ Text {
+ anchors.centerIn: parent
+ text: qsTr("Sorry! No network connection")
+ }
+ }
+ }
+ }
+
+
+ ScrollBar { scrollArea: list; height: list.height; width: 8; anchors.right: window.right }
+ Rectangle { x: window.listWidth; height: window.height; width: 1; color: "#cccccc" }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/rssnews/rssnews.qmlproject b/basicsuite/qt5-everywhere/demos/rssnews/rssnews.qmlproject
index 5becbda..5becbda 100644
--- a/basicsuite/Qt5Everywhere/demos/rssnews/rssnews.qmlproject
+++ b/basicsuite/qt5-everywhere/demos/rssnews/rssnews.qmlproject
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/Block.qml b/basicsuite/qt5-everywhere/demos/samegame/content/Block.qml
new file mode 100644
index 0000000..b643f4e
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/Block.qml
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ id: block
+ property bool dying: false
+ property bool spawned: false
+ property int type: 0
+ property ParticleSystem particleSystem
+
+ Behavior on x {
+ enabled: spawned;
+ SpringAnimation{ spring: 2; damping: 0.2 }
+ }
+ Behavior on y {
+ SpringAnimation{ spring: 2; damping: 0.2 }
+ }
+
+ Image {
+ id: img
+ source: {
+ if (type == 0){
+ "gfx/red.png";
+ } else if (type == 1) {
+ "gfx/blue.png";
+ } else if (type == 2) {
+ "gfx/green.png";
+ } else {
+ "gfx/yellow.png";
+ }
+ }
+ opacity: 0
+ Behavior on opacity { NumberAnimation { duration: 200 } }
+ anchors.fill: parent
+ }
+
+ //Foreground particles
+ BlockEmitter {
+ id: particles
+ system: particleSystem
+ group: {
+ if (type == 0){
+ "red";
+ } else if (type == 1) {
+ "blue";
+ } else if (type == 2) {
+ "green";
+ } else {
+ "yellow";
+ }
+ }
+ anchors.fill: parent
+ }
+
+ //Paint particles on the background
+ PaintEmitter {
+ id: particles2
+ system: particleSystem
+ }
+
+ states: [
+ State {
+ name: "AliveState"; when: spawned == true && dying == false
+ PropertyChanges { target: img; opacity: 1 }
+ },
+
+ State {
+ name: "DeathState"; when: dying == true
+ StateChangeScript { script: {particleSystem.paused = false; particles.pulse(100); particles2.pulse(100);} }
+ PropertyChanges { target: img; opacity: 0 }
+ StateChangeScript { script: block.destroy(1000); }
+ }
+ ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/BlockEmitter.qml b/basicsuite/qt5-everywhere/demos/samegame/content/BlockEmitter.qml
new file mode 100644
index 0000000..f2c975f
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/BlockEmitter.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+import "../settings.js" as Settings
+
+Emitter {
+ property Item block: parent
+ velocity: TargetDirection{targetX: block.width/2; targetY: block.height/2; magnitude: -40; magnitudeVariation: 40}
+ acceleration: TargetDirection{targetX: block.width/2; targetY: block.height/2; magnitude: -100;}
+ shape: EllipseShape{fill:true}
+ enabled: false;
+ lifeSpan: 700; lifeSpanVariation: 100
+ emitRate: 1000
+ maximumEmitted: 100 //only fires 0.1s bursts (still 2x old number)
+ size: Settings.blockSize * 0.85
+ endSize: Settings.blockSize * 0.85 /2
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/Button.qml b/basicsuite/qt5-everywhere/demos/samegame/content/Button.qml
new file mode 100644
index 0000000..5fcc578
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/Button.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ property alias imgSrc: image.source
+ property alias system: emitter.system
+ property alias group: emitter.group
+ signal clicked
+ property bool rotatedButton: false
+
+ width: image.width
+ height: image.sourceSize.height
+ Image {
+ id: image
+ height: parent.height
+ width: height/sourceSize.height * sourceSize.width
+
+ anchors.horizontalCenter: parent.horizontalCenter
+ rotation: rotatedButton ? ((Math.random() * 3 + 2) * (Math.random() <= 0.5 ? -1 : 1)) : 0
+ MenuEmitter {
+ id: emitter
+ anchors.fill: parent
+ //shape: MaskShape {source: image.source}
+ }
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {parent.clicked(); emitter.burst(400);}
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/GameArea.qml b/basicsuite/qt5-everywhere/demos/samegame/content/GameArea.qml
new file mode 100644
index 0000000..3a9e59b
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/GameArea.qml
@@ -0,0 +1,226 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+import "samegame.js" as Logic
+
+Item {
+ id: gameCanvas
+ property bool gameOver: true
+ property int score: 0
+ property int highScore: 0
+ property int moves: 0
+ property string mode: ""
+ property ParticleSystem ps: particleSystem
+ //For easy theming
+ property alias backgroundVisible: bg.visible
+ property string background: "gfx/background.png"
+ property string blockFile: "Block.qml"
+ onBlockFileChanged: Logic.changeBlock(blockFile);
+ property alias particlePack: auxLoader.source
+ //For multiplayer
+ property int score2: 0
+ property int curTurn: 1
+ property bool autoTurnChange: false
+ signal swapPlayers
+ property bool swapping: false
+ //onSwapPlayers: if (autoTurnChange) Logic.turnChange();//Now implemented below
+ //For puzzle
+ property url level
+ property bool puzzleWon: false
+ signal puzzleLost //Since root is tracking the puzzle progress
+ function showPuzzleEnd (won) {
+ if (won) {
+ smokeParticle.color = Qt.rgba(0,1,0,0);
+ puzzleWin.play();
+ } else {
+ smokeParticle.color = Qt.rgba(1,0,0,0);
+ puzzleFail.play();
+ puzzleLost();
+ }
+ }
+ function showPuzzleGoal (str) {
+ puzzleTextBubble.opacity = 1;
+ puzzleTextLabel.text = str;
+ }
+ Image {
+ id: bg
+ z: -1
+ anchors.fill: parent
+ source: background;
+ fillMode: Image.PreserveAspectCrop
+ }
+
+ MouseArea {
+ anchors.fill: parent; onClicked: {
+ if (puzzleTextBubble.opacity == 1) {
+ puzzleTextBubble.opacity = 0;
+ Logic.finishLoadingMap();
+ } else if (!swapping) {
+ Logic.handleClick(mouse.x,mouse.y);
+ }
+ }
+ }
+
+ Image {
+ id: highScoreTextBubble
+ opacity: mode == "arcade" && gameOver && gameCanvas.score == gameCanvas.highScore ? 1 : 0
+ Behavior on opacity { NumberAnimation {} }
+ anchors.centerIn: parent
+ z: 10
+ source: "gfx/bubble-highscore.png"
+ Image {
+ anchors.centerIn: parent
+ source: "gfx/text-highscore-new.png"
+ rotation: -10
+ }
+ }
+
+ Image {
+ id: puzzleTextBubble
+ anchors.centerIn: parent
+ opacity: 0
+ Behavior on opacity { NumberAnimation {} }
+ z: 10
+ source: "gfx/bubble-puzzle.png"
+ Connections {
+ target: gameCanvas
+ onModeChanged: if (mode != "puzzle" && puzzleTextBubble.opacity > 0) puzzleTextBubble.opacity = 0;
+ }
+ Text {
+ id: puzzleTextLabel
+ width: parent.width - 24
+ anchors.centerIn: parent
+ horizontalAlignment: Text.AlignHCenter
+ color: "white"
+ font.pixelSize: 24
+ font.bold: true
+ wrapMode: Text.WordWrap
+ }
+ }
+ onModeChanged: {
+ p1WonImg.opacity = 0;
+ p2WonImg.opacity = 0;
+ }
+ SmokeText { id: puzzleWin; source: "gfx/icon-ok.png"; system: particleSystem }
+ SmokeText { id: puzzleFail; source: "gfx/icon-fail.png"; system: particleSystem }
+
+ onSwapPlayers: {
+ smokeParticle.color = "yellow"
+ Logic.turnChange();
+ if (curTurn == 1) {
+ p1Text.play();
+ } else {
+ p2Text.play();
+ }
+ clickDelay.running = true;
+ }
+ SequentialAnimation {
+ id: clickDelay
+ ScriptAction { script: gameCanvas.swapping = true; }
+ PauseAnimation { duration: 750 }
+ ScriptAction { script: gameCanvas.swapping = false; }
+ }
+
+ SmokeText {
+ id: p1Text; source: "gfx/text-p1-go.png";
+ system: particleSystem; playerNum: 1
+ opacity: p1WonImg.opacity + p2WonImg.opacity > 0 ? 0 : 1
+ }
+
+ SmokeText {
+ id: p2Text; source: "gfx/text-p2-go.png";
+ system: particleSystem; playerNum: 2
+ opacity: p1WonImg.opacity + p2WonImg.opacity > 0 ? 0 : 1
+ }
+
+ onGameOverChanged: {
+ if (gameCanvas.mode == "multiplayer") {
+ if (gameCanvas.score >= gameCanvas.score2) {
+ p1WonImg.opacity = 1;
+ } else {
+ p2WonImg.opacity = 1;
+ }
+ }
+ }
+ Image {
+ id: p1WonImg
+ source: "gfx/text-p1-won.png"
+ anchors.centerIn: parent
+ opacity: 0
+ Behavior on opacity { NumberAnimation {} }
+ z: 10
+ }
+ Image {
+ id: p2WonImg
+ source: "gfx/text-p2-won.png"
+ anchors.centerIn: parent
+ opacity: 0
+ Behavior on opacity { NumberAnimation {} }
+ z: 10
+ }
+
+ ParticleSystem{
+ id: particleSystem;
+ anchors.fill: parent
+ z: 5
+ ImageParticle {
+ id: smokeParticle
+ groups: ["smoke"]
+ source: "gfx/particle-smoke.png"
+ alpha: 0.1
+ alphaVariation: 0.1
+ color: "yellow"
+ }
+ Loader {
+ id: auxLoader
+ anchors.fill: parent
+ source: "PrimaryPack.qml"
+ onItemChanged: {
+ if (item && "particleSystem" in item)
+ item.particleSystem = particleSystem
+ if (item && "gameArea" in item)
+ item.gameArea = gameCanvas
+ }
+ }
+ }
+}
+
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/LogoAnimation.qml b/basicsuite/qt5-everywhere/demos/samegame/content/LogoAnimation.qml
new file mode 100644
index 0000000..0322c67
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/LogoAnimation.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ id: container //Positioned where the 48x48 S/G should be
+ property alias running: mainAnim.running
+ property ParticleSystem particleSystem
+ property int dur: 500
+ signal boomTime
+ Image {
+ id: s1
+ source: "gfx/logo-s.png"
+ y: 0
+ }
+ Image {
+ id: g1
+ source: "gfx/logo-g.png"
+ y: -128
+ }
+ Column {
+ Repeater {
+ model: 2
+ Item {
+ width: 48
+ height: 48
+ BlockEmitter {
+ id: emitter
+ anchors.fill: parent
+ group: "red"
+ system: particleSystem
+ Connections {
+ target: container
+ onBoomTime: emitter.pulse(100);
+ }
+ }
+ }
+ }
+ }
+ SequentialAnimation {
+ id: mainAnim
+ running: true
+ loops: -1
+ PropertyAction { target: g1; property: "y"; value: -128}
+ PropertyAction { target: g1; property: "opacity"; value: 1}
+ PropertyAction { target: s1; property: "y"; value: 0}
+ PropertyAction { target: s1; property: "opacity"; value: 1}
+ NumberAnimation { target: g1; property: "y"; from: -96; to: -48; duration: dur}
+ ParallelAnimation {
+ NumberAnimation { target: g1; property: "y"; from: -48; to: 0; duration: dur}
+ NumberAnimation { target: s1; property: "y"; from: 0; to: 48; duration: dur }
+ }
+ PauseAnimation { duration: dur }
+ ScriptAction { script: container.boomTime(); }
+ ParallelAnimation {
+ NumberAnimation { target: g1; property: "opacity"; to: 0; duration: dur }
+ NumberAnimation { target: s1; property: "opacity"; to: 0; duration: dur }
+ }
+ PropertyAction { target: s1; property: "y"; value: -128}
+ PropertyAction { target: s1; property: "opacity"; value: 1}
+ NumberAnimation { target: s1; property: "y"; from: -96; to: 0; duration: dur * 2}
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/MenuEmitter.qml b/basicsuite/qt5-everywhere/demos/samegame/content/MenuEmitter.qml
new file mode 100644
index 0000000..c74b7a3
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/MenuEmitter.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Emitter {
+ anchors.fill: parent
+ velocity: AngleDirection{angleVariation: 360; magnitude: 140; magnitudeVariation: 40}
+ enabled: false;
+ lifeSpan: 500;
+ emitRate: 1
+ size: 28
+ endSize: 14
+ group: "yellow"
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/PaintEmitter.qml b/basicsuite/qt5-everywhere/demos/samegame/content/PaintEmitter.qml
new file mode 100644
index 0000000..c448cba
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/PaintEmitter.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+import "../settings.js" as Settings
+
+Emitter {
+ property Item block: parent
+ anchors.fill: parent
+ shape: EllipseShape { fill: true }
+ group: {
+ if (block.type == 0){
+ "redspots";
+ } else if (block.type == 1) {
+ "bluespots";
+ } else if (block.type == 2) {
+ "greenspots";
+ } else {
+ "yellowspots";
+ }
+ }
+ size: Settings.blockSize * 2
+ endSize: Settings.blockSize/2
+ lifeSpan: 30000
+ enabled: false
+ emitRate: 60
+ maximumEmitted: 60
+ velocity: PointDirection{ y: 4; yVariation: 4 }
+ /* Possibly better, but dependent on gerrit change,28212
+ property real mainIntensity: 0.8
+ property real subIntensity: 0.1
+ property real colorVariation: 0.005
+ onEmitParticles: {//One group, many colors, for better stacking
+ for (var i=0; i<particles.length; i++) {
+ var particle = particles[i];
+ if (block.type == 0) {
+ particle.red = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.green = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.blue = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ } else if (block.type == 1) {
+ particle.red = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.green = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.blue = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ } else if (block.type == 2) {
+ particle.red = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.green = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.blue = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ } else if (block.type == 3) {
+ particle.red = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.green = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.blue = subIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ } else {
+ particle.red = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.green = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ particle.blue = mainIntensity + (Math.random() * colorVariation * 2 - colorVariation);
+ }
+ }
+ }
+ */
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/PrimaryPack.qml b/basicsuite/qt5-everywhere/demos/samegame/content/PrimaryPack.qml
new file mode 100644
index 0000000..166fcb8
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/PrimaryPack.qml
@@ -0,0 +1,122 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ id: container
+ property ParticleSystem particleSystem
+ property GameArea gameArea
+ onGameAreaChanged: bgstacker.parent = gameArea;//Move to direct child of game canvas
+ Item {
+ id: bgstacker
+ z: 0
+ ImageParticle {
+ groups: ["yellowspots"]
+ color: Qt.darker("yellow");//Actually want desaturated...
+ system: particleSystem
+ source: "gfx/particle-paint.png"
+ colorVariation: 0.2
+ alpha: 0.2
+ entryEffect: ImageParticle.None
+ }
+ ImageParticle {
+ groups: ["redspots"]
+ system: particleSystem
+ color: Qt.darker("red");//Actually want desaturated...
+ source: "gfx/particle-paint.png"
+ colorVariation: 0.2
+ alpha: 0.2
+ entryEffect: ImageParticle.None
+ }
+ ImageParticle {
+ groups: ["greenspots"]
+ system: particleSystem
+ color: Qt.darker("green");//Actually want desaturated...
+ source: "gfx/particle-paint.png"
+ colorVariation: 0.2
+ alpha: 0.2
+ entryEffect: ImageParticle.None
+ }
+ ImageParticle {
+ groups: ["bluespots"]
+ system: particleSystem
+ color: Qt.darker("blue");//Actually want desaturated...
+ source: "gfx/particle-paint.png"
+ colorVariation: 0.2
+ alpha: 0.2
+ entryEffect: ImageParticle.None
+ }
+ }
+ ImageParticle {
+ groups: ["yellow"]
+ system: particleSystem
+ color: Qt.darker("yellow");//Actually want desaturated...
+ source: "gfx/particle-brick.png"
+ colorVariation: 0.4
+ alpha: 0.1
+ }
+ ImageParticle {
+ groups: ["red"]
+ system: particleSystem
+ color: Qt.darker("red");//Actually want desaturated...
+ source: "gfx/particle-brick.png"
+ colorVariation: 0.4
+ alpha: 0.1
+ }
+ ImageParticle {
+ groups: ["green"]
+ system: particleSystem
+ color: Qt.darker("green");//Actually want desaturated...
+ source: "gfx/particle-brick.png"
+ colorVariation: 0.4
+ alpha: 0.1
+ }
+ ImageParticle {
+ groups: ["blue"]
+ system: particleSystem
+ color: Qt.darker("blue");//Actually want desaturated...
+ source: "gfx/particle-brick.png"
+ colorVariation: 0.4
+ alpha: 0.1
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/PuzzleBlock.qml b/basicsuite/qt5-everywhere/demos/samegame/content/PuzzleBlock.qml
new file mode 100644
index 0000000..963565a
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/PuzzleBlock.qml
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ id: block
+ property bool dying: false
+ property bool spawned: false
+ property int type: 0
+ property ParticleSystem particleSystem
+
+ Behavior on x {
+ enabled: spawned;
+ NumberAnimation{ easing.type: Easing.OutBounce }
+ }
+ Behavior on y {
+ NumberAnimation{ easing.type: Easing.InQuad }
+ }
+
+ Image {
+ id: img
+ source: {
+ if (type == 0){
+ "gfx/red-puzzle.png";
+ } else if (type == 1) {
+ "gfx/blue-puzzle.png";
+ } else if (type == 2) {
+ "gfx/green-puzzle.png";
+ } else {
+ "gfx/yellow-puzzle.png";
+ }
+ }
+ opacity: 0
+ Behavior on opacity { NumberAnimation { duration: 200 } }
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -4
+ anchors.horizontalCenterOffset: 4
+ }
+
+ //Foreground particles
+ BlockEmitter {
+ id: particles
+ system: particleSystem
+ group: {
+ if (type == 0){
+ "red";
+ } else if (type == 1) {
+ "blue";
+ } else if (type == 2) {
+ "green";
+ } else {
+ "yellow";
+ }
+ }
+ anchors.fill: parent
+ }
+
+ states: [
+ State {
+ name: "AliveState"; when: spawned == true && dying == false
+ PropertyChanges { target: img; opacity: 1 }
+ },
+
+ State {
+ name: "DeathState"; when: dying == true
+ PropertyChanges { target: img; scale: 2 }
+ StateChangeScript { script: particles.pulse(200); }
+ PropertyChanges { target: img; opacity: 0 }
+ StateChangeScript { script: block.destroy(1000); }
+ }
+ ]
+}
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/SamegameText.qml b/basicsuite/qt5-everywhere/demos/samegame/content/SamegameText.qml
index 28c85f9..28c85f9 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/SamegameText.qml
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/SamegameText.qml
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/SimpleBlock.qml b/basicsuite/qt5-everywhere/demos/samegame/content/SimpleBlock.qml
new file mode 100644
index 0000000..e389abd
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/SimpleBlock.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ id: block
+ property bool dying: false
+ property bool spawned: false
+ property int type: 0
+ property ParticleSystem particleSystem
+
+ Behavior on x {
+ enabled: spawned;
+ SpringAnimation{ spring: 2; damping: 0.2 }
+ }
+ Behavior on y {
+ SpringAnimation{ spring: 2; damping: 0.2 }
+ }
+
+ Image {
+ id: img
+ source: {
+ if (type == 0){
+ "gfx/red.png";
+ } else if (type == 1) {
+ "gfx/blue.png";
+ } else if (type == 2) {
+ "gfx/green.png";
+ } else {
+ "gfx/yellow.png";
+ }
+ }
+ opacity: 0
+ Behavior on opacity { NumberAnimation { duration: 200 } }
+ anchors.fill: parent
+ }
+
+ //Foreground particles
+ BlockEmitter {
+ id: particles
+ system: particleSystem
+ group: {
+ if (type == 0){
+ "red";
+ } else if (type == 1) {
+ "blue";
+ } else if (type == 2) {
+ "green";
+ } else {
+ "yellow";
+ }
+ }
+ anchors.fill: parent
+ }
+
+ states: [
+ State {
+ name: "AliveState"; when: spawned == true && dying == false
+ PropertyChanges { target: img; opacity: 1 }
+ },
+
+ State {
+ name: "DeathState"; when: dying == true
+ StateChangeScript { script: {particleSystem.paused = false; particles.pulse(100); } }
+ PropertyChanges { target: img; opacity: 0 }
+ StateChangeScript { script: block.destroy(1000); }
+ }
+ ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/SmokeText.qml b/basicsuite/qt5-everywhere/demos/samegame/content/SmokeText.qml
new file mode 100644
index 0000000..d4c4365
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/SmokeText.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ z: 10
+ property alias source: img.source
+ property alias system: emitter.system
+ property int playerNum: 1
+ function play() {
+ anim.running = true;
+ }
+ anchors.centerIn: parent
+ Image {
+ opacity: 0
+ id: img
+ anchors.centerIn: parent
+ rotation: playerNum == 1 ? -8 : -5
+ Emitter {
+ id: emitter
+ group: "smoke"
+ anchors.fill: parent
+ shape: MaskShape { source: img.source }
+ enabled: false
+ emitRate: 1000
+ lifeSpan: 600
+ size: 64
+ endSize: 32
+ velocity: AngleDirection { angleVariation: 360; magnitudeVariation: 160 }
+ }
+ }
+ SequentialAnimation {
+ id: anim
+ running: false
+ PauseAnimation { duration: 500}
+ ParallelAnimation {
+ NumberAnimation { target: img; property: "opacity"; from: 0.1; to: 1.0 }
+ NumberAnimation { target: img; property: "scale"; from: 0.1; to: 1.0 }
+ }
+ PauseAnimation { duration: 250}
+ ScriptAction { script: emitter.pulse(100); }
+ NumberAnimation { target: img; property: "opacity"; from: 1.0; to: 0.0 }
+ }
+}
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/background-puzzle.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/background-puzzle.png
index c2eca5f..c2eca5f 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/background-puzzle.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/background-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/background.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/background.png
index 60f57b6..60f57b6 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/background.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/background.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bar.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/bar.png
index 4953cd6..4953cd6 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bar.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/bar.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/blue-puzzle.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/blue-puzzle.png
index e550d59..e550d59 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/blue-puzzle.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/blue-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/blue.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/blue.png
index b8161c0..b8161c0 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/blue.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/blue.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bubble-highscore.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/bubble-highscore.png
index c4e38df..c4e38df 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bubble-highscore.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/bubble-highscore.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bubble-puzzle.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/bubble-puzzle.png
index 278556b..278556b 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/bubble-puzzle.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/bubble-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-1.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-1.png
index 3343b7f..3343b7f 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-1.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-1.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-2.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-2.png
index afba106..afba106 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-2.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-2.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-3.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-3.png
index adea77a..adea77a 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-3.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-3.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-4.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-4.png
index 18c922b..18c922b 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-4.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-4.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-new.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-new.png
index 257e182..257e182 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-game-new.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-game-new.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-menu.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-menu.png
index 8440e87..8440e87 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-menu.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-menu.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-puzzle-next.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-puzzle-next.png
index 7e3ed41..7e3ed41 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-puzzle-next.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-puzzle-next.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-quit.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-quit.png
index 95c77ce..95c77ce 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/but-quit.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/but-quit.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/green-puzzle.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/green-puzzle.png
index 581f76f..581f76f 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/green-puzzle.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/green-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/green.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/green.png
index da4cca5..da4cca5 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/green.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/green.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-fail.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-fail.png
index 4072611..4072611 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-fail.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-fail.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-ok.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-ok.png
index 15a8442..15a8442 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-ok.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-ok.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-time.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-time.png
index 9490e49..9490e49 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/icon-time.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/icon-time.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-a.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-a.png
index 20c20ba..20c20ba 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-a.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-a.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-e.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-e.png
index dd663f1..dd663f1 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-e.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-e.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-g.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-g.png
index a319bf9..a319bf9 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-g.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-g.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-m.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-m.png
index 6a029b3..6a029b3 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-m.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-m.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-s.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-s.png
index 963b175..963b175 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo-s.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo-s.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo.png
index e900edd..e900edd 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/logo.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/logo.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-brick.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-brick.png
index 5c83896..5c83896 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-brick.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-brick.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-paint.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-paint.png
index 9bd0a2a..9bd0a2a 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-paint.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-paint.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-smoke.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-smoke.png
index b27f954..b27f954 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/particle-smoke.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/particle-smoke.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/red-puzzle.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/red-puzzle.png
index 9ceb17e..9ceb17e 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/red-puzzle.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/red-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/red.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/red.png
index 681810f..681810f 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/red.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/red.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-highscore-new.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-highscore-new.png
index 50f7fcd..50f7fcd 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-highscore-new.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-highscore-new.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-highscore.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-highscore.png
index 7198c27..7198c27 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-highscore.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-highscore.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-no-winner.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-no-winner.png
index b4a6685..b4a6685 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-no-winner.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-no-winner.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1-go.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1-go.png
index c7bd2a5..c7bd2a5 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1-go.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1-go.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1-won.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1-won.png
index 41c2eb7..41c2eb7 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1-won.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1-won.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1.png
index b59c87b..b59c87b 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p1.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p1.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2-go.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2-go.png
index f03cd93..f03cd93 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2-go.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2-go.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2-won.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2-won.png
index 116b7f2..116b7f2 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2-won.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2-won.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2.png
index d4f2bc7..d4f2bc7 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/text-p2.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/text-p2.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/yellow-puzzle.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/yellow-puzzle.png
index 66044c8..66044c8 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/yellow-puzzle.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/yellow-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/yellow.png b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/yellow.png
index 6bc5d38..6bc5d38 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/gfx/yellow.png
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/gfx/yellow.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/TemplateBase.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/TemplateBase.qml
new file mode 100644
index 0000000..d02f26d
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/TemplateBase.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle{
+ id: control
+ property int scoreTarget: -1
+ property int timeTarget: -1
+ property int moveTarget: -1
+ property bool mustClear: true
+ property string goalText: "Clear the level..."
+
+ property var startingGrid //If this isn't an array of ints, we will refuse to load the level.
+ /* Ints are 0-4. If not enough ints are there it will be prepadded with 0s to fill the grid
+ (which ruins everything if you have the wrong number of rows).
+ 0 - No block
+ 1 - Red
+ 2 - Blue
+ 3 - Green
+ 4 - Yellow
+ Ideas for future colors, but not supported in this version:
+ 5 - Purple
+ 6 - Cyan
+ 7 - Gray
+ 8 - Black
+ 9 - White
+ */
+
+ width: 320
+ height: 416
+ color: "white" //TODO: Theme support for both setting themes per level, and seeing it in the control!
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level0.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level0.qml
new file mode 100644
index 0000000..0e6e0a8
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level0.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ moveTarget: 3
+ goalText: "1 of 10<br><br>Clear in three moves..."
+ startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 ,
+ 0 , 0 , 0 , 0 , 0 , 1 , 1 , 2 , 1 , 1 ,
+ 0 , 0 , 0 , 1 , 1 , 3 , 3 , 3 , 3 , 3 ,
+ 0 , 1 , 1 , 3 , 3 , 3 , 1 , 3 , 1 , 1 ,
+ 1 , 2 , 3 , 3 , 1 , 1 , 3 , 3 , 3 , 3 ,
+ 1 , 3 , 3 , 2 , 3 , 3 , 3 , 3 , 1 , 1 ,
+ 1 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level1.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level1.qml
new file mode 100644
index 0000000..0467c5b
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level1.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ timeTarget: 10
+ goalText: "2 of 10<br><br>Clear in 10 seconds..."
+ startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 1 , 3 , 3 , 3 , 1 , 1 , 1 , 1 , 2 , 2 ,
+ 1 , 2 , 3 , 3 , 3 , 1 , 1 , 1 , 1 , 2 ,
+ 2 , 2 , 1 , 3 , 3 , 3 , 1 , 1 , 1 , 2 ,
+ 2 , 1 , 1 , 1 , 3 , 3 , 3 , 1 , 2 , 2 ,
+ 1 , 1 , 1 , 1 , 1 , 3 , 3 , 3 , 2 , 1 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level2.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level2.qml
new file mode 100644
index 0000000..332af0f
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level2.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ scoreTarget: 1200
+ timeTarget: 60
+ goalText: "3 of 10<br><br>Score over 1200 points in one minute..."
+ mustClear: false
+ startingGrid: [ 3 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 3 , 3 ,
+ 1 , 3 , 3 , 2 , 3 , 3 , 1 , 1 , 3 , 1 ,
+ 3 , 1 , 3 , 3 , 2 , 3 , 3 , 3 , 1 , 2 ,
+ 3 , 2 , 2 , 1 , 3 , 3 , 2 , 1 , 1 , 2 ,
+ 3 , 1 , 2 , 2 , 2 , 2 , 2 , 1 , 3 , 1 ,
+ 2 , 3 , 1 , 2 , 2 , 3 , 3 , 1 , 3 , 2 ,
+ 3 , 2 , 1 , 1 , 3 , 3 , 3 , 2 , 2 , 1 ,
+ 1 , 2 , 2 , 3 , 2 , 3 , 3 , 3 , 1 , 1 ,
+ 1 , 3 , 3 , 3 , 1 , 2 , 2 , 3 , 3 , 1 ,
+ 3 , 3 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 ,
+ 2 , 1 , 3 , 2 , 3 , 2 , 3 , 2 , 2 , 1 ,
+ 1 , 3 , 1 , 2 , 1 , 2 , 3 , 1 , 2 , 2 ,
+ 1 , 2 , 2 , 2 , 1 , 1 , 2 , 3 , 1 , 2 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level3.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level3.qml
new file mode 100644
index 0000000..9504baf
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level3.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ scoreTarget: 3000
+ timeTarget: 60
+ goalText: "4 of 10<br>Clear the board with over 3000 points in under a minute..."
+ startingGrid: [ 3 , 3 , 1 , 1 , 1 , 2 , 2 , 4 , 3 , 3 ,
+ 4 , 3 , 1 , 4 , 2 , 2 , 2 , 4 , 3 , 4 ,
+ 4 , 3 , 3 , 4 , 1 , 1 , 3 , 3 , 4 , 4 ,
+ 3 , 3 , 3 , 3 , 3 , 1 , 3 , 2 , 2 , 4 ,
+ 4 , 4 , 3 , 4 , 3 , 1 , 4 , 4 , 4 , 4 ,
+ 4 , 4 , 3 , 4 , 1 , 1 , 4 , 4 , 3 , 3 ,
+ 4 , 2 , 2 , 2 , 2 , 2 , 4 , 4 , 4 , 1 ,
+ 4 , 4 , 2 , 4 , 2 , 2 , 1 , 1 , 1 , 1 ,
+ 4 , 4 , 2 , 4 , 2 , 2 , 1 , 4 , 4 , 1 ,
+ 4 , 1 , 1 , 4 , 3 , 3 , 4 , 2 , 4 , 1 ,
+ 4 , 1 , 1 , 2 , 3 , 3 , 4 , 2 , 2 , 1 ,
+ 1 , 1 , 2 , 2 , 2 , 3 , 3 , 3 , 2 , 1 ,
+ 4 , 1 , 1 , 2 , 2 , 3 , 4 , 3 , 4 , 4 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level4.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level4.qml
new file mode 100644
index 0000000..d5d01f0
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level4.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ goalText: "5 of 10<br><br>Clear the level..."
+ startingGrid: [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
+ 1 , 3 , 2 , 1 , 1 , 1 , 1 , 3 , 2 , 3 ,
+ 1 , 2 , 3 , 1 , 3 , 2 , 2 , 1 , 1 , 2 ,
+ 3 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 3 , 3 ,
+ 2 , 1 , 1 , 3 , 2 , 1 , 1 , 2 , 1 , 3 ,
+ 1 , 3 , 3 , 1 , 2 , 1 , 2 , 1 , 3 , 3 ,
+ 1 , 3 , 2 , 2 , 2 , 1 , 1 , 3 , 2 , 3 ,
+ 1 , 1 , 3 , 2 , 3 , 3 , 2 , 1 , 1 , 1 ,
+ 1 , 2 , 2 , 3 , 2 , 2 , 1 , 3 , 1 , 3 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level5.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level5.qml
new file mode 100644
index 0000000..d602567
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level5.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ moveTarget: 4
+ goalText: "6 of 10<br><br>Clear in four or less moves..."
+ startingGrid: [ 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ,
+ 4 , 2 , 2 , 2 , 4 , 3 , 3 , 3 , 4 , 4 ,
+ 4 , 2 , 4 , 4 , 4 , 3 , 2 , 3 , 4 , 4 ,
+ 4 , 2 , 2 , 2 , 4 , 3 , 3 , 3 , 4 , 4 ,
+ 4 , 4 , 4 , 2 , 4 , 3 , 4 , 3 , 4 , 4 ,
+ 4 , 2 , 2 , 2 , 4 , 3 , 4 , 3 , 4 , 4 ,
+ 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ,
+ 4 , 3 , 4 , 3 , 4 , 2 , 2 , 2 , 4 , 3 ,
+ 4 , 3 , 3 , 3 , 4 , 2 , 4 , 4 , 4 , 3 ,
+ 4 , 3 , 3 , 3 , 4 , 2 , 2 , 2 , 4 , 3 ,
+ 4 , 3 , 4 , 3 , 4 , 2 , 4 , 4 , 4 , 4 ,
+ 4 , 3 , 4 , 3 , 4 , 2 , 2 , 2 , 4 , 3 ,
+ 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level6.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level6.qml
new file mode 100644
index 0000000..5dd42f8
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level6.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ moveTarget: 20
+ timeTarget: 40
+ goalText: "7 of 10<br><br>Clear with 20 moves in 40 seconds (or better)."
+ startingGrid: [ 1 , 3 , 1 , 1 , 1 , 1 , 2 , 1 , 2 , 2 ,
+ 2 , 1 , 2 , 3 , 3 , 1 , 3 , 1 , 1 , 3 ,
+ 3 , 1 , 1 , 1 , 2 , 2 , 3 , 2 , 3 , 1 ,
+ 1 , 3 , 1 , 1 , 3 , 1 , 1 , 1 , 2 , 3 ,
+ 2 , 1 , 1 , 1 , 3 , 2 , 3 , 3 , 2 , 3 ,
+ 3 , 3 , 3 , 3 , 2 , 2 , 3 , 1 , 3 , 2 ,
+ 2 , 2 , 3 , 2 , 2 , 3 , 2 , 2 , 2 , 2 ,
+ 1 , 2 , 1 , 2 , 1 , 3 , 2 , 3 , 2 , 3 ,
+ 1 , 1 , 2 , 3 , 3 , 3 , 3 , 1 , 1 , 2 ,
+ 3 , 3 , 2 , 2 , 2 , 2 , 3 , 1 , 3 , 1 ,
+ 1 , 2 , 3 , 3 , 3 , 1 , 3 , 2 , 1 , 2 ,
+ 1 , 2 , 1 , 1 , 2 , 3 , 1 , 2 , 1 , 3 ,
+ 3 , 1 , 2 , 2 , 1 , 3 , 3 , 1 , 3 , 2 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level7.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level7.qml
new file mode 100644
index 0000000..87633b4
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level7.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ goalText: "8 of 10<br><br>Clear the grid."
+ startingGrid: [ 2 , 4 , 3 , 2 , 3 , 2 , 3 , 3 , 4 , 3 ,
+ 2 , 2 , 3 , 3 , 1 , 4 , 3 , 3 , 3 , 2 ,
+ 1 , 4 , 2 , 3 , 4 , 3 , 3 , 1 , 1 , 1 ,
+ 2 , 1 , 2 , 4 , 4 , 2 , 2 , 3 , 2 , 1 ,
+ 3 , 4 , 4 , 1 , 3 , 2 , 4 , 2 , 1 , 1 ,
+ 2 , 2 , 3 , 1 , 2 , 4 , 1 , 2 , 1 , 2 ,
+ 1 , 2 , 3 , 2 , 4 , 4 , 3 , 1 , 1 , 2 ,
+ 4 , 4 , 2 , 1 , 2 , 4 , 2 , 2 , 4 , 3 ,
+ 4 , 2 , 4 , 1 , 3 , 4 , 1 , 4 , 2 , 4 ,
+ 4 , 3 , 4 , 1 , 4 , 3 , 1 , 3 , 1 , 1 ,
+ 3 , 3 , 2 , 3 , 2 , 4 , 1 , 2 , 4 , 4 ,
+ 3 , 4 , 2 , 2 , 4 , 3 , 4 , 1 , 3 , 2 ,
+ 4 , 3 , 3 , 4 , 2 , 4 , 1 , 2 , 3 , 2 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level8.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level8.qml
new file mode 100644
index 0000000..9d25e31
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level8.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ scoreTarget: 1000
+ goalText: "9 of 10<br><br>Score over 1000 points"
+ startingGrid: [ 1 , 4 , 4 , 3 , 2 , 1 , 4 , 2 , 4 , 2 ,
+ 2 , 3 , 4 , 4 , 1 , 1 , 1 , 4 , 4 , 4 ,
+ 1 , 3 , 1 , 2 , 2 , 1 , 2 , 1 , 4 , 2 ,
+ 4 , 3 , 4 , 2 , 1 , 4 , 1 , 2 , 2 , 3 ,
+ 3 , 4 , 2 , 4 , 4 , 3 , 2 , 2 , 2 , 1 ,
+ 4 , 4 , 3 , 2 , 4 , 4 , 2 , 1 , 1 , 1 ,
+ 1 , 2 , 1 , 3 , 4 , 1 , 1 , 3 , 2 , 3 ,
+ 3 , 4 , 2 , 2 , 1 , 3 , 2 , 2 , 4 , 2 ,
+ 2 , 4 , 1 , 2 , 2 , 4 , 3 , 3 , 3 , 1 ,
+ 1 , 2 , 2 , 4 , 1 , 2 , 2 , 3 , 3 , 3 ,
+ 4 , 4 , 1 , 4 , 3 , 1 , 3 , 3 , 3 , 4 ,
+ 1 , 2 , 4 , 1 , 2 , 1 , 1 , 4 , 2 , 1 ,
+ 1 , 2 , 3 , 4 , 2 , 4 , 4 , 2 , 1 , 3 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/levels/level9.qml b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level9.qml
new file mode 100644
index 0000000..755268d
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/levels/level9.qml
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TemplateBase{
+ scoreTarget: 2000
+ timeTarget: 60
+ moveTarget: 20
+ mustClear: false
+ goalText: "10 of 10<br><br>Score 2000 in one minute with less than 20 moves!"
+ startingGrid: [ 3 , 2 , 3 , 1 , 3 , 3 , 4 , 1 , 3 , 3 ,
+ 2 , 3 , 2 , 1 , 1 , 2 , 2 , 2 , 4 , 1 ,
+ 2 , 4 , 4 , 4 , 3 , 1 , 4 , 4 , 4 , 1 ,
+ 3 , 1 , 3 , 4 , 4 , 2 , 2 , 2 , 2 , 3 ,
+ 2 , 1 , 4 , 4 , 3 , 3 , 1 , 1 , 3 , 2 ,
+ 3 , 2 , 1 , 4 , 3 , 4 , 1 , 3 , 4 , 2 ,
+ 3 , 3 , 1 , 4 , 4 , 4 , 2 , 1 , 2 , 3 ,
+ 2 , 3 , 4 , 3 , 4 , 1 , 1 , 3 , 2 , 4 ,
+ 4 , 4 , 1 , 2 , 4 , 3 , 2 , 2 , 2 , 4 ,
+ 1 , 4 , 2 , 2 , 1 , 1 , 2 , 1 , 1 , 4 ,
+ 1 , 4 , 3 , 3 , 3 , 1 , 3 , 4 , 4 , 2 ,
+ 3 , 4 , 1 , 1 , 2 , 2 , 2 , 3 , 2 , 1 ,
+ 3 , 3 , 4 , 3 , 1 , 1 , 1 , 4 , 4 , 3 ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/content/samegame.js b/basicsuite/qt5-everywhere/demos/samegame/content/samegame.js
new file mode 100644
index 0000000..9035b12
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/content/samegame.js
@@ -0,0 +1,581 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/* This script file handles the game logic */
+.pragma library
+.import QtQuick.LocalStorage 2.0 as Sql
+.import "../settings.js" as Settings
+
+var maxColumn = 10;
+var maxRow = 13;
+var types = 3;
+var maxIndex = maxColumn*maxRow;
+var board = new Array(maxIndex);
+var blockSrc = "Block.qml";
+var gameDuration;
+var component = Qt.createComponent(blockSrc);
+var gameCanvas;
+var betweenTurns = false;
+
+var puzzleLevel = null;
+var puzzlePath = "";
+
+var gameMode = "arcade"; //Set in new game, then tweaks behavior of other functions
+var gameOver = false;
+
+function changeBlock(src)
+{
+ blockSrc = src;
+ component = Qt.createComponent(blockSrc);
+}
+
+// Index function used instead of a 2D array
+function index(column, row)
+{
+ return column + row * maxColumn;
+}
+
+function timeStr(msecs)
+{
+ var secs = Math.floor(msecs/1000);
+ var m = Math.floor(secs/60);
+ var ret = "" + m + "m " + (secs%60) + "s";
+ return ret;
+}
+
+function cleanUp()
+{
+ if (gameCanvas == undefined)
+ return;
+ // Delete blocks from previous game
+ for (var i = 0; i < maxIndex; i++) {
+ if (board[i] != null)
+ board[i].destroy();
+ board[i] = null;
+ }
+ if (puzzleLevel != null){
+ puzzleLevel.destroy();
+ puzzleLevel = null;
+ }
+ gameCanvas.mode = ""
+}
+
+function startNewGame(gc, mode, map)
+{
+ gameCanvas = gc;
+ if (mode == undefined)
+ gameMode = "arcade";
+ else
+ gameMode = mode;
+ gameOver = false;
+
+ cleanUp();
+
+ gc.gameOver = false;
+ gc.mode = gameMode;
+ // Calculate board size
+ maxColumn = Math.floor(gameCanvas.width/Settings.blockSize);
+ maxRow = Math.floor(gameCanvas.height/Settings.blockSize);
+ maxIndex = maxRow * maxColumn;
+ if (gameMode == "arcade") //Needs to be after board sizing
+ getHighScore();
+
+
+ // Initialize Board
+ board = new Array(maxIndex);
+ gameCanvas.score = 0;
+ gameCanvas.score2 = 0;
+ gameCanvas.moves = 0;
+ gameCanvas.curTurn = 1;
+ if (gameMode == "puzzle")
+ loadMap(map);
+ else//Note that we load them in reverse order for correct visual stacking
+ for (var column = maxColumn - 1; column >= 0; column--)
+ for (var row = maxRow - 1; row >= 0; row--)
+ createBlock(column, row);
+ if (gameMode == "puzzle")
+ getLevelHistory();//Needs to be after map load
+ gameDuration = new Date();
+}
+
+var fillFound; // Set after a floodFill call to the number of blocks found
+var floodBoard; // Set to 1 if the floodFill reaches off that node
+
+// NOTE: Be careful with vars named x,y, as the calling object's x,y are still in scope
+function handleClick(x,y)
+{
+ if (betweenTurns || gameOver || gameCanvas == undefined)
+ return;
+ var column = Math.floor(x/Settings.blockSize);
+ var row = Math.floor(y/Settings.blockSize);
+ if (column >= maxColumn || column < 0 || row >= maxRow || row < 0)
+ return;
+ if (board[index(column, row)] == null)
+ return;
+ // If it's a valid block, remove it and all connected (does nothing if it's not connected)
+ floodFill(column,row, -1);
+ if (fillFound <= 0)
+ return;
+ if (gameMode == "multiplayer" && gameCanvas.curTurn == 2)
+ gameCanvas.score2 += (fillFound - 1) * (fillFound - 1);
+ else
+ gameCanvas.score += (fillFound - 1) * (fillFound - 1);
+ if (gameMode == "multiplayer" && gameCanvas.curTurn == 2)
+ shuffleUp();
+ else
+ shuffleDown();
+ gameCanvas.moves += 1;
+ if (gameMode == "endless")
+ refill();
+ else if (gameMode != "multiplayer")
+ victoryCheck();
+ if (gameMode == "multiplayer" && !gc.gameOver){
+ betweenTurns = true;
+ gameCanvas.swapPlayers();//signal, animate and call turnChange() when ready
+ }
+}
+
+function floodFill(column,row,type)
+{
+ if (board[index(column, row)] == null)
+ return;
+ var first = false;
+ if (type == -1) {
+ first = true;
+ type = board[index(column,row)].type;
+
+ // Flood fill initialization
+ fillFound = 0;
+ floodBoard = new Array(maxIndex);
+ }
+ if (column >= maxColumn || column < 0 || row >= maxRow || row < 0)
+ return;
+ if (floodBoard[index(column, row)] == 1 || (!first && type != board[index(column, row)].type))
+ return;
+ floodBoard[index(column, row)] = 1;
+ floodFill(column + 1, row, type);
+ floodFill(column - 1, row, type);
+ floodFill(column, row + 1, type);
+ floodFill(column, row - 1, type);
+ if (first == true && fillFound == 0)
+ return; // Can't remove single blocks
+ board[index(column, row)].dying = true;
+ board[index(column, row)] = null;
+ fillFound += 1;
+}
+
+function shuffleDown()
+{
+ // Fall down
+ for (var column = 0; column < maxColumn; column++) {
+ var fallDist = 0;
+ for (var row = maxRow - 1; row >= 0; row--) {
+ if (board[index(column,row)] == null) {
+ fallDist += 1;
+ } else {
+ if (fallDist > 0) {
+ var obj = board[index(column, row)];
+ obj.y = (row + fallDist) * Settings.blockSize;
+ board[index(column, row + fallDist)] = obj;
+ board[index(column, row)] = null;
+ }
+ }
+ }
+ }
+ // Fall to the left
+ fallDist = 0;
+ for (column = 0; column < maxColumn; column++) {
+ if (board[index(column, maxRow - 1)] == null) {
+ fallDist += 1;
+ } else {
+ if (fallDist > 0) {
+ for (row = 0; row < maxRow; row++) {
+ obj = board[index(column, row)];
+ if (obj == null)
+ continue;
+ obj.x = (column - fallDist) * Settings.blockSize;
+ board[index(column - fallDist,row)] = obj;
+ board[index(column, row)] = null;
+ }
+ }
+ }
+ }
+}
+
+
+function shuffleUp()
+{
+ // Fall up
+ for (var column = 0; column < maxColumn; column++) {
+ var fallDist = 0;
+ for (var row = 0; row < maxRow; row++) {
+ if (board[index(column,row)] == null) {
+ fallDist += 1;
+ } else {
+ if (fallDist > 0) {
+ var obj = board[index(column, row)];
+ obj.y = (row - fallDist) * Settings.blockSize;
+ board[index(column, row - fallDist)] = obj;
+ board[index(column, row)] = null;
+ }
+ }
+ }
+ }
+ // Fall to the left (or should it be right, so as to be left for P2?)
+ fallDist = 0;
+ for (column = 0; column < maxColumn; column++) {
+ if (board[index(column, 0)] == null) {
+ fallDist += 1;
+ } else {
+ if (fallDist > 0) {
+ for (row = 0; row < maxRow; row++) {
+ obj = board[index(column, row)];
+ if (obj == null)
+ continue;
+ obj.x = (column - fallDist) * Settings.blockSize;
+ board[index(column - fallDist,row)] = obj;
+ board[index(column, row)] = null;
+ }
+ }
+ }
+ }
+}
+
+function turnChange()//called by ui outside
+{
+ betweenTurns = false;
+ if (gameCanvas.curTurn == 1){
+ shuffleUp();
+ gameCanvas.curTurn = 2;
+ victoryCheck();
+ }else{
+ shuffleDown();
+ gameCanvas.curTurn = 1;
+ victoryCheck();
+ }
+}
+
+function refill()
+{
+ for (var column = 0; column < maxColumn; column++) {
+ for (var row = 0; row < maxRow; row++) {
+ if (board[index(column, row)] == null)
+ createBlock(column, row);
+ }
+ }
+}
+
+function victoryCheck()
+{
+ // Awards bonuses for no blocks left
+ var deservesBonus = true;
+ if (board[index(0,maxRow - 1)] != null || board[index(0,0)] != null)
+ deservesBonus = false;
+ // Checks for game over
+ if (deservesBonus){
+ if (gameCanvas.curTurn = 1)
+ gameCanvas.score += 1000;
+ else
+ gameCanvas.score2 += 1000;
+ }
+ gameOver = deservesBonus;
+ if (gameCanvas.curTurn == 1){
+ if (!(floodMoveCheck(0, maxRow - 1, -1)))
+ gameOver = true;
+ }else{
+ if (!(floodMoveCheck(0, 0, -1, true)))
+ gameOver = true;
+ }
+ if (gameMode == "puzzle"){
+ puzzleVictoryCheck(deservesBonus);//Takes it from here
+ return;
+ }
+ if (gameOver) {
+ var winnerScore = Math.max(gameCanvas.score, gameCanvas.score2);
+ if (gameMode == "multiplayer"){
+ gameCanvas.score = winnerScore;
+ saveHighScore(gameCanvas.score2);
+ }
+ saveHighScore(gameCanvas.score);
+ gameDuration = new Date() - gameDuration;
+ gameCanvas.gameOver = true;
+ }
+}
+
+// Only floods up and right, to see if it can find adjacent same-typed blocks
+function floodMoveCheck(column, row, type, goDownInstead)
+{
+ if (column >= maxColumn || column < 0 || row >= maxRow || row < 0)
+ return false;
+ if (board[index(column, row)] == null)
+ return false;
+ var myType = board[index(column, row)].type;
+ if (type == myType)
+ return true;
+ if (goDownInstead)
+ return floodMoveCheck(column + 1, row, myType, goDownInstead) ||
+ floodMoveCheck(column, row + 1, myType, goDownInstead);
+ else
+ return floodMoveCheck(column + 1, row, myType) ||
+ floodMoveCheck(column, row - 1, myType);
+}
+
+function createBlock(column,row,type)
+{
+ // Note that we don't wait for the component to become ready. This will
+ // only work if the block QML is a local file. Otherwise the component will
+ // not be ready immediately. There is a statusChanged signal on the
+ // component you could use if you want to wait to load remote files.
+ if (component.status == 1){
+ if (type == undefined)
+ type = Math.floor(Math.random() * types);
+ if (type < 0 || type > 4) {
+ console.log("Invalid type requested");//TODO: Is this triggered by custom levels much?
+ return;
+ }
+ var dynamicObject = component.createObject(gameCanvas,
+ {"type": type,
+ "x": column*Settings.blockSize,
+ "y": -1*Settings.blockSize,
+ "width": Settings.blockSize,
+ "height": Settings.blockSize,
+ "particleSystem": gameCanvas.ps});
+ if (dynamicObject == null){
+ console.log("error creating block");
+ console.log(component.errorString());
+ return false;
+ }
+ dynamicObject.y = row*Settings.blockSize;
+ dynamicObject.spawned = true;
+
+ board[index(column,row)] = dynamicObject;
+ }else{
+ console.log("error loading block component");
+ console.log(component.errorString());
+ return false;
+ }
+ return true;
+}
+
+function showPuzzleError(str)
+{
+ //TODO: Nice user visible UI?
+ console.log(str);
+}
+
+function loadMap(map)
+{
+ puzzlePath = map;
+ var levelComp = Qt.createComponent(puzzlePath);
+ if (levelComp.status != 1){
+ console.log("Error loading level");
+ showPuzzleError(levelComp.errorString());
+ return;
+ }
+ puzzleLevel = levelComp.createObject();
+ if (puzzleLevel == null || !puzzleLevel.startingGrid instanceof Array) {
+ showPuzzleError("Bugger!");
+ return;
+ }
+ gameCanvas.showPuzzleGoal(puzzleLevel.goalText);
+ //showPuzzleGoal should call finishLoadingMap as the next thing it does, before handling more events
+}
+
+function finishLoadingMap()
+{
+ for (var i in puzzleLevel.startingGrid)
+ if (! (puzzleLevel.startingGrid[i] >= 0 && puzzleLevel.startingGrid[i] <= 9) )
+ puzzleLevel.startingGrid[i] = 0;
+ //TODO: Don't allow loading larger levels, leads to cheating
+ while (puzzleLevel.startingGrid.length > maxIndex) puzzleLevel.startingGrid.shift();
+ while (puzzleLevel.startingGrid.length < maxIndex) puzzleLevel.startingGrid.unshift(0);
+ for (var i in puzzleLevel.startingGrid)
+ if (puzzleLevel.startingGrid[i] > 0)
+ createBlock(i % maxColumn, Math.floor(i / maxColumn), puzzleLevel.startingGrid[i] - 1);
+
+ //### Experimental feature - allow levels to contain arbitrary QML scenes as well!
+ //while (puzzleLevel.children.length)
+ // puzzleLevel.children[0].parent = gameCanvas;
+ gameDuration = new Date(); //Don't start until we finish loading
+}
+
+function puzzleVictoryCheck(clearedAll)//gameOver has also been set if no more moves
+{
+ var won = true;
+ var soFar = new Date() - gameDuration;
+ if (puzzleLevel.scoreTarget != -1 && gameCanvas.score < puzzleLevel.scoreTarget){
+ won = false;
+ } if (puzzleLevel.scoreTarget != -1 && gameCanvas.score >= puzzleLevel.scoreTarget && !puzzleLevel.mustClear){
+ gameOver = true;
+ } if (puzzleLevel.timeTarget != -1 && soFar/1000.0 > puzzleLevel.timeTarget){
+ gameOver = true;
+ } if (puzzleLevel.moveTarget != -1 && gameCanvas.moves >= puzzleLevel.moveTarget){
+ gameOver = true;
+ } if (puzzleLevel.mustClear && gameOver && !clearedAll) {
+ won = false;
+ }
+
+ if (gameOver) {
+ gameCanvas.gameOver = true;
+ gameCanvas.showPuzzleEnd(won);
+
+ if (won) {
+ // Store progress
+ saveLevelHistory();
+ }
+ }
+}
+
+function getHighScore()
+{
+ var db = Sql.LocalStorage.openDatabaseSync(
+ "SameGame",
+ "2.0",
+ "SameGame Local Data",
+ 100
+ );
+ db.transaction(
+ function(tx) {
+ tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(game TEXT, score NUMBER, gridSize TEXT, time NUMBER)');
+ // Only show results for the current grid size
+ var rs = tx.executeSql('SELECT * FROM Scores WHERE gridSize = "'
+ + maxColumn + "x" + maxRow + '" AND game = "' + gameMode + '" ORDER BY score desc');
+ if (rs.rows.length > 0)
+ gameCanvas.highScore = rs.rows.item(0).score;
+ else
+ gameCanvas.highScore = 0;
+ }
+ );
+}
+
+function saveHighScore(score)
+{
+ // Offline storage
+ var db = Sql.LocalStorage.openDatabaseSync(
+ "SameGame",
+ "2.0",
+ "SameGame Local Data",
+ 100
+ );
+ var dataStr = "INSERT INTO Scores VALUES(?, ?, ?, ?)";
+ var data = [
+ gameMode,
+ score,
+ maxColumn + "x" + maxRow,
+ Math.floor(gameDuration / 1000)
+ ];
+ if (score >= gameCanvas.highScore)//Update UI field
+ gameCanvas.highScore = score;
+
+ db.transaction(
+ function(tx) {
+ tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(game TEXT, score NUMBER, gridSize TEXT, time NUMBER)');
+ tx.executeSql(dataStr, data);
+ }
+ );
+}
+
+function getLevelHistory()
+{
+ var db = Sql.LocalStorage.openDatabaseSync(
+ "SameGame",
+ "2.0",
+ "SameGame Local Data",
+ 100
+ );
+ db.transaction(
+ function(tx) {
+ tx.executeSql('CREATE TABLE IF NOT EXISTS Puzzle(level TEXT, score NUMBER, moves NUMBER, time NUMBER)');
+ var rs = tx.executeSql('SELECT * FROM Puzzle WHERE level = "' + puzzlePath + '" ORDER BY score desc');
+ if (rs.rows.length > 0) {
+ gameCanvas.puzzleWon = true;
+ gameCanvas.highScore = rs.rows.item(0).score;
+ } else {
+ gameCanvas.puzzleWon = false;
+ gameCanvas.highScore = 0;
+ }
+ }
+ );
+}
+
+function saveLevelHistory()
+{
+ var db = Sql.LocalStorage.openDatabaseSync(
+ "SameGame",
+ "2.0",
+ "SameGame Local Data",
+ 100
+ );
+ var dataStr = "INSERT INTO Puzzle VALUES(?, ?, ?, ?)";
+ var data = [
+ puzzlePath,
+ gameCanvas.score,
+ gameCanvas.moves,
+ Math.floor(gameDuration / 1000)
+ ];
+ gameCanvas.puzzleWon = true;
+
+ db.transaction(
+ function(tx) {
+ tx.executeSql('CREATE TABLE IF NOT EXISTS Puzzle(level TEXT, score NUMBER, moves NUMBER, time NUMBER)');
+ tx.executeSql(dataStr, data);
+ }
+ );
+}
+
+function nuke() //For "Debug mode"
+{
+ for (var row = 1; row <= 5; row++) {
+ for (var col = 0; col < 5; col++) {
+ if (board[index(col, maxRow - row)] != null) {
+ board[index(col, maxRow - row)].dying = true;
+ board[index(col, maxRow - row)] = null;
+ }
+ }
+ }
+ if (gameMode == "multiplayer" && gameCanvas.curTurn == 2)
+ shuffleUp();
+ else
+ shuffleDown();
+ if (gameMode == "endless")
+ refill();
+ else
+ victoryCheck();
+}
diff --git a/basicsuite/qt5-everywhere/demos/samegame/samegame.qml b/basicsuite/qt5-everywhere/demos/samegame/samegame.qml
new file mode 100644
index 0000000..e81a8bf
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/samegame/samegame.qml
@@ -0,0 +1,371 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+import "content/samegame.js" as Logic
+import "settings.js" as Settings
+import "content"
+
+Rectangle {
+ id: root
+ anchors.fill: parent
+ property int acc: 0
+
+
+ function loadPuzzle() {
+ if (gameCanvas.mode != "")
+ Logic.cleanUp();
+ Logic.startNewGame(gameCanvas,"puzzle","levels/level"+acc+".qml")
+ }
+ function nextPuzzle() {
+ acc = (acc + 1) % 10;
+ loadPuzzle();
+ }
+ Timer {
+ id: gameOverTimer
+ interval: 1500
+ running : gameCanvas.gameOver && gameCanvas.mode == "puzzle" //mode will be reset by cleanUp();
+ repeat : false
+ onTriggered: {
+ Logic.cleanUp();
+ nextPuzzle();
+ }
+ }
+
+ Image {
+ source: "content/gfx/background.png"
+ anchors.fill: parent
+ }
+
+ GameArea {
+ id: gameCanvas
+ z: 1
+ y: Settings.headerHeight
+
+ width: parent.width
+ height: parent.height - Settings.headerHeight - Settings.footerHeight
+
+ backgroundVisible: root.state == "in-game"
+ onModeChanged: if (gameCanvas.mode != "puzzle") puzzleWon = false; //UI has stricter constraints on this variable than the game does
+ Age {
+ groups: ["redspots", "greenspots", "bluespots", "yellowspots"]
+ enabled: root.state == ""
+ system: gameCanvas.ps
+ }
+
+ onPuzzleLost: acc--;//So that nextPuzzle() reloads the current one
+
+ }
+
+ Item {
+ id: menu
+ z: 2
+ width: parent.width;
+ anchors.top: parent.top
+ anchors.bottom: bottomBar.top
+
+ LogoAnimation {
+ x: 64
+ y: Settings.headerHeight
+ particleSystem: gameCanvas.ps
+ running: root.state == ""
+ }
+ Row {
+ x: 112
+ y: 20
+ Image { source: "content/gfx/logo-a.png" }
+ Image { source: "content/gfx/logo-m.png" }
+ Image { source: "content/gfx/logo-e.png" }
+ }
+
+ Column {
+ y: 100 + 40
+ spacing: Settings.menuButtonSpacing
+
+ Button {
+ width: root.width
+ rotatedButton: true
+ imgSrc: "content/gfx/but-game-1.png"
+ onClicked: {
+ if (root.state == "in-game")
+ return //Prevent double clicking
+ root.state = "in-game"
+ gameCanvas.blockFile = "Block.qml"
+ gameCanvas.background = "gfx/background.png"
+ arcadeTimer.start();
+ }
+ //Emitted particles don't fade out, because ImageParticle is on the GameArea
+ system: gameCanvas.ps
+ group: "green"
+ Timer {
+ id: arcadeTimer
+ interval: Settings.menuDelay
+ running : false
+ repeat : false
+ onTriggered: Logic.startNewGame(gameCanvas)
+ }
+ }
+
+ Button {
+ width: root.width
+ rotatedButton: true
+ imgSrc: "content/gfx/but-game-2.png"
+ onClicked: {
+ if (root.state == "in-game")
+ return
+ root.state = "in-game"
+ gameCanvas.blockFile = "Block.qml"
+ gameCanvas.background = "gfx/background.png"
+ twopTimer.start();
+ }
+ system: gameCanvas.ps
+ group: "green"
+ Timer {
+ id: twopTimer
+ interval: Settings.menuDelay
+ running : false
+ repeat : false
+ onTriggered: Logic.startNewGame(gameCanvas, "multiplayer")
+ }
+ }
+
+ Button {
+ width: root.width
+ rotatedButton: true
+ imgSrc: "content/gfx/but-game-3.png"
+ onClicked: {
+ if (root.state == "in-game")
+ return
+ root.state = "in-game"
+ gameCanvas.blockFile = "SimpleBlock.qml"
+ gameCanvas.background = "gfx/background.png"
+ endlessTimer.start();
+ }
+ system: gameCanvas.ps
+ group: "blue"
+ Timer {
+ id: endlessTimer
+ interval: Settings.menuDelay
+ running : false
+ repeat : false
+ onTriggered: Logic.startNewGame(gameCanvas, "endless")
+ }
+ }
+
+ Button {
+ width: root.width
+ rotatedButton: true
+ imgSrc: "content/gfx/but-game-4.png"
+ group: "yellow"
+ onClicked: {
+ if (root.state == "in-game")
+ return
+ root.state = "in-game"
+ gameCanvas.blockFile = "PuzzleBlock.qml"
+ gameCanvas.background = "gfx/background.png"
+ puzzleTimer.start();
+ }
+ Timer {
+ id: puzzleTimer
+ interval: Settings.menuDelay
+ running : false
+ repeat : false
+ onTriggered: loadPuzzle();
+ }
+ system: gameCanvas.ps
+ }
+ }
+ }
+
+ Image {
+ id: scoreBar
+ source: "content/gfx/bar.png"
+ width: parent.width
+ z: 6
+ y: -Settings.headerHeight
+ height: Settings.headerHeight
+ Behavior on opacity { NumberAnimation {} }
+ SamegameText {
+ id: arcadeScore
+ anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top}
+ text: '<font color="#f7d303">P1:</font> ' + gameCanvas.score
+ font.pixelSize: Settings.fontPixelSize
+ textFormat: Text.StyledText
+ color: "white"
+ opacity: gameCanvas.mode == "arcade" ? 1 : 0
+ Behavior on opacity { NumberAnimation {} }
+ }
+ SamegameText {
+ id: arcadeHighScore
+ anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top}
+ text: '<font color="#f7d303">Highscore:</font> ' + gameCanvas.highScore
+ opacity: gameCanvas.mode == "arcade" ? 1 : 0
+ }
+ SamegameText {
+ id: p1Score
+ anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top}
+ text: '<font color="#f7d303">P1:</font> ' + gameCanvas.score
+ opacity: gameCanvas.mode == "multiplayer" ? 1 : 0
+ }
+ SamegameText {
+ id: p2Score
+ anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top}
+ text: '<font color="#f7d303">P2:</font> ' + gameCanvas.score2
+ opacity: gameCanvas.mode == "multiplayer" ? 1 : 0
+ rotation: 180
+ }
+ SamegameText {
+ id: puzzleMoves
+ anchors { left: parent.left; topMargin: 3; leftMargin: 11; top: parent.top}
+ text: '<font color="#f7d303">Moves:</font> ' + gameCanvas.moves
+ opacity: gameCanvas.mode == "puzzle" ? 1 : 0
+ }
+ SamegameText {
+ Image {
+ source: "content/gfx/icon-time.png"
+ x: -20
+ }
+ id: puzzleTime
+ anchors { topMargin: 3; top: parent.top; horizontalCenter: parent.horizontalCenter; horizontalCenterOffset: 20}
+ text: "00:00"
+ opacity: gameCanvas.mode == "puzzle" ? 1 : 0
+ Timer {
+ interval: 1000
+ repeat: true
+ running: gameCanvas.mode == "puzzle" && !gameCanvas.gameOver
+ onTriggered: {
+ var elapsed = Math.floor((new Date() - Logic.gameDuration)/ 1000.0);
+ var mins = Math.floor(elapsed/60.0);
+ var secs = (elapsed % 60);
+ puzzleTime.text = (mins < 10 ? "0" : "") + mins + ":" + (secs < 10 ? "0" : "") + secs;
+ }
+ }
+ }
+ SamegameText {
+ id: puzzleScore
+ anchors { right: parent.right; topMargin: 3; rightMargin: 11; top: parent.top}
+ text: '<font color="#f7d303">Score:</font> ' + gameCanvas.score
+ opacity: gameCanvas.mode == "puzzle" ? 1 : 0
+ }
+ }
+
+ Image {
+ id: bottomBar
+ width: parent.width
+ height: Settings.footerHeight
+ source: "content/gfx/bar.png"
+ y: parent.height - Settings.footerHeight;
+ z: 2
+ /*Button {
+ id: quitButton
+ height: Settings.toolButtonHeight
+ imgSrc: "content/gfx/but-quit.png"
+ onClicked: {Qt.quit(); }
+ anchors { left: parent.left; verticalCenter: parent.verticalCenter; leftMargin: 11 }
+ }*/
+ Button {
+ id: menuButton
+ height: Settings.toolButtonHeight
+ imgSrc: "content/gfx/but-menu.png"
+ visible: (root.state == "in-game");
+ onClicked: {root.state = ""; Logic.cleanUp(); gameCanvas.mode = ""}
+ anchors { left: parent.left; verticalCenter: parent.verticalCenter; leftMargin: 0 }
+ }
+ Button {
+ id: againButton
+ height: Settings.toolButtonHeight
+ imgSrc: "content/gfx/but-game-new.png"
+ visible: (root.state == "in-game");
+ opacity: gameCanvas.gameOver && (gameCanvas.mode == "arcade" || gameCanvas.mode == "multiplayer")
+ Behavior on opacity{ NumberAnimation {} }
+ onClicked: {if (gameCanvas.gameOver) { Logic.startNewGame(gameCanvas, gameCanvas.mode);}}
+ anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 11 }
+ }
+ Button {
+ id: nextButton
+ height: Settings.toolButtonHeight
+ imgSrc: "content/gfx/but-puzzle-next.png"
+ visible: (root.state == "in-game") && gameCanvas.mode == "puzzle" && gameCanvas.puzzleWon
+ opacity: gameCanvas.puzzleWon ? 1 : 0
+ Behavior on opacity{ NumberAnimation {} }
+ onClicked: {if (gameCanvas.puzzleWon) nextPuzzle();}
+ anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 11 }
+ }
+ }
+
+ Connections {
+ target: root
+ onStateChanged: stateChangeAnim.running = true
+ }
+ SequentialAnimation {
+ id: stateChangeAnim
+ ParallelAnimation {
+ NumberAnimation { target: bottomBar; property: "y"; to: root.height; duration: Settings.menuDelay/2; easing.type: Easing.OutQuad }
+ NumberAnimation { target: scoreBar; property: "y"; to: -Settings.headerHeight; duration: Settings.menuDelay/2; easing.type: Easing.OutQuad }
+ }
+ ParallelAnimation {
+ NumberAnimation { target: bottomBar; property: "y"; to: root.height - Settings.footerHeight; duration: Settings.menuDelay/2; easing.type: Easing.OutBounce}
+ NumberAnimation { target: scoreBar; property: "y"; to: root.state == "" ? -Settings.headerHeight : 0; duration: Settings.menuDelay/2; easing.type: Easing.OutBounce}
+ }
+ }
+
+ states: [
+ State {
+ name: "in-game"
+ PropertyChanges {
+ target: menu
+ opacity: 0
+ visible: false
+ }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ NumberAnimation {properties: "x,y,opacity"}
+ }
+ ]
+
+ //"Debug mode"
+ focus: true
+ Keys.onAsteriskPressed: Logic.nuke();
+ Keys.onSpacePressed: gameCanvas.puzzleWon = true;
+}
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/samegame.qrc b/basicsuite/qt5-everywhere/demos/samegame/samegame.qrc
index 951b9d1..951b9d1 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/samegame.qrc
+++ b/basicsuite/qt5-everywhere/demos/samegame/samegame.qrc
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/settings.js b/basicsuite/qt5-everywhere/demos/samegame/settings.js
index e09dee9..e09dee9 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/settings.js
+++ b/basicsuite/qt5-everywhere/demos/samegame/settings.js
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Content.qml b/basicsuite/qt5-everywhere/demos/shaders/Content.qml
index aae2337..aae2337 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Content.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Content.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/EffectSelectionPanel.qml b/basicsuite/qt5-everywhere/demos/shaders/EffectSelectionPanel.qml
index 93cdb5f..93cdb5f 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/EffectSelectionPanel.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/EffectSelectionPanel.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/Effect.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/Effect.qml
index 34eb07c..34eb07c 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/Effect.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/Effect.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectBillboard.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectBillboard.qml
index 124a2a1..124a2a1 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectBillboard.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectBillboard.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectBlackAndWhite.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectBlackAndWhite.qml
index 37a3b6e..37a3b6e 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectBlackAndWhite.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectBlackAndWhite.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectEmboss.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectEmboss.qml
index 4bf5771..4bf5771 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectEmboss.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectEmboss.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectGaussianBlur.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectGaussianBlur.qml
index e63e17a..e63e17a 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectGaussianBlur.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectGaussianBlur.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectGlow.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectGlow.qml
index d6e987d..d6e987d 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectGlow.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectGlow.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectIsolate.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectIsolate.qml
index 2425a25..2425a25 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectIsolate.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectIsolate.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPassThrough.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectPassThrough.qml
index 1f259be..1f259be 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPassThrough.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectPassThrough.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPixelate.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectPixelate.qml
index 71f7da9..71f7da9 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPixelate.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectPixelate.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPosterize.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectPosterize.qml
index 0cf16a0..0cf16a0 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectPosterize.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectPosterize.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectRipple.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectRipple.qml
index 0b7c48c..0b7c48c 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectRipple.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectRipple.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSepia.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectSepia.qml
index 446e779..446e779 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSepia.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectSepia.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSharpen.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectSharpen.qml
index 99ece3c..99ece3c 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSharpen.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectSharpen.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectShockwave.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectShockwave.qml
index fe91781..fe91781 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectShockwave.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectShockwave.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSobelEdgeDetection1.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectSobelEdgeDetection1.qml
index 189d5d3..189d5d3 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectSobelEdgeDetection1.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectSobelEdgeDetection1.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectToon.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectToon.qml
index 08f1849..08f1849 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectToon.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectToon.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectVignette.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectVignette.qml
index 1120161..1120161 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectVignette.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectVignette.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectWarhol.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectWarhol.qml
index e96d052..e96d052 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectWarhol.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectWarhol.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectWobble.qml b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectWobble.qml
index 4cccf48..4cccf48 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/Effects/EffectWobble.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/Effects/EffectWobble.qml
diff --git a/basicsuite/qt5-everywhere/demos/shaders/Logo.qml b/basicsuite/qt5-everywhere/demos/shaders/Logo.qml
new file mode 100644
index 0000000..04bcd36
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/shaders/Logo.qml
@@ -0,0 +1,191 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+ id: root
+
+ property int logoSize: Math.min(parent.height, parent.width) / 2
+ property int logoSizeDivider: 1
+ property int logoState: 1
+ property double posX: parent.width / 2
+ property double posY: parent.height / 2
+ property double rot: 0
+ property double dx: 10
+ property double dy: 10
+ property double drot: 1
+ property string explodeColor: "#ff3333"
+
+ function play() {
+ randomValues();
+ animationTimer.restart()
+ }
+
+ function logoClicked() {
+ switch(root.logoState) {
+ case 1: {
+ parent.createNewLogos(root.posX,root.posY,logoSize,2)
+ parent.decreaseCounter();
+ logo.visible = false;
+ root.logoState = 2;
+ root.explodeColor = "#33ff33"
+ explodeAnimation.restart()
+ break;
+ }
+ default: {
+ // return true if we must destroy this logo
+ if (parent.decreaseCounter(root.posX,root.posY) === true) {
+ logo.visible = false;
+ root.logoState = 2;
+ root.dx = 0;
+ root.dy = 0;
+ root.drot = 0;
+ root.explodeColor = "#ff3333"
+ explodeAnimation.restart()
+ }
+ else { // It was last logo, we will keep it
+ root.logoState = 1
+ root.logoSizeDivider = 1
+ root.explodeColor = "#3333ff"
+ explodeAnimation.restart()
+ }
+ break;
+ }
+ }
+
+ }
+
+ function randomValues() {
+ root.dx = Math.random()*5
+ root.dy = Math.random()*5
+ root.drot = Math.floor(Math.random()*10) - 5
+ }
+
+ function move() {
+ var x = root.posX + root.dx;
+ var y = root.posY + root.dy;
+ var limit = logoSize / logoState;
+
+ // Check x
+ if (x + limit >= parent.width) {
+ x = parent.width - limit;
+ root.dx = -root.dx;
+ }
+ else if (x <= 0) {
+ x = 0;
+ root.dx = -root.dx;
+ }
+
+ // Check y
+ if (y + limit >= parent.height) {
+ y = parent.height - limit;
+ root.dy = -root.dy;
+ }
+ else if (y <= 0) {
+ y = 0;
+ root.dy = -root.dy;
+ }
+
+ root.posX = x
+ root.posY = y
+ root.rot = root.rot + root.drot
+ }
+
+ ParticleSystem{
+ id: particleSystem;
+ anchors.fill: logo
+
+ Emitter {
+ id: emitter
+ anchors.fill: particleSystem
+ enabled: false
+ emitRate: 1000
+ lifeSpan: 500
+ size: logo.height * .5
+ endSize: logo.height * .1
+ velocity: AngleDirection { angleVariation: 360; magnitudeVariation: 160 }
+ }
+
+ ImageParticle {
+ id: smokeParticle
+ source: "images/particle-smoke.png"
+ alpha: 0.3
+ alphaVariation: 0.1
+ color: root.explodeColor
+ }
+ }
+
+ Timer {
+ id: animationTimer
+ interval: 20
+ running: false
+ repeat: true
+ onTriggered: move();
+ }
+
+ Image {
+ id: logo
+ width: (logoSize / logoSizeDivider)
+ height: (logoSize / logoSizeDivider)
+ x: root.posX
+ y: root.posY
+ rotation: root.rot
+ source: "images/qt-logo.png"
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: logoClicked();
+ }
+ }
+
+ SequentialAnimation {
+ id: explodeAnimation
+ running: false
+ ScriptAction { script: emitter.pulse(100); }
+ PauseAnimation { duration: 600 }
+ onRunningChanged: {
+ if (!explodeAnimation.running && root.logoState > 1)
+ root.destroy();
+ }
+ }
+
+}
diff --git a/basicsuite/qt5-everywhere/demos/shaders/LogoContainer.qml b/basicsuite/qt5-everywhere/demos/shaders/LogoContainer.qml
new file mode 100644
index 0000000..57b3505
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/shaders/LogoContainer.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+ anchors.fill: parent
+
+ property int logoCount: 0
+
+ Image {
+ id: background
+ source: "images/wallpaper.png"
+ anchors.fill: root
+ }
+
+ function createNewLogo(x,y,logoState) {
+ logoCount++;
+ var component = Qt.createComponent("Logo.qml")
+ if (component.status === Component.Ready) {
+ var logo = component.createObject(root, {"posX": x, "posY": y, "logoState": logoState, "logoSizeDivider" : logoState, "objectName": "logo"});
+ logo.play();
+ }
+ }
+
+ function createNewLogos(x, y, logoSize, logoState) {
+ var newSize = logoSize / logoState;
+ var temp = logoSize - newSize;
+
+ createNewLogo(x, y, logoState);
+ createNewLogo(x+temp, y, logoState);
+ createNewLogo(x+temp, y+temp, logoState);
+ createNewLogo(x, y+temp, logoState);
+ createNewLogo(x+logoSize/2-newSize/2, y+logoSize/2-newSize/2, logoState);
+ }
+
+ function decreaseCounter() {
+ if (logoCount > 1) {
+ logoCount--;
+ return true;
+ }
+ return false;
+ }
+
+ Component.onCompleted: {
+ var logoSize = Math.min(root.height, root.width) / 2;
+ createNewLogo(root.width/2 - logoSize/2, root.height/2 - logoSize/2, 1)
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/ParameterPanel.qml b/basicsuite/qt5-everywhere/demos/shaders/ParameterPanel.qml
index 33dd5ea..33dd5ea 100644
--- a/basicsuite/Qt5Everywhere/demos/shaders/ParameterPanel.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/ParameterPanel.qml
diff --git a/basicsuite/qt5-everywhere/demos/shaders/Slider.qml b/basicsuite/qt5-everywhere/demos/shaders/Slider.qml
new file mode 100644
index 0000000..2e21010
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/shaders/Slider.qml
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: slider
+
+ height: handleBack.height
+ // value is read/write.
+ property real value: 0
+ property real maximum: 1
+ property real minimum: 0
+ property int xMax: width - handle.width
+ onXMaxChanged: updatePos()
+ onMinimumChanged: updatePos()
+ onValueChanged: if (!pressed) updatePos()
+ property bool mutable: true
+ property alias pressed : backgroundMouse.pressed
+
+ signal valueChangedByHandle(int newValue)
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = 0 + (value - minimum) * slider.xMax / (maximum - minimum);
+ pos = Math.min(pos, width - handle.width - 0);
+ pos = Math.max(pos, 0);
+ handle.x = pos;
+ } else {
+ handle.x = 0;
+ }
+ }
+
+ Rectangle {
+ id: background
+ width: slider.width
+ anchors.verticalCenter: slider.verticalCenter
+ height: 2
+ color: "#666666"
+
+ MouseArea {
+ id: backgroundMouse
+ anchors.fill: parent
+ anchors.topMargin: -24
+ anchors.bottomMargin: -24
+ enabled: slider.mutable
+ drag.target: handle
+ drag.axis: Drag.XAxis
+ drag.minimumX: 0
+ drag.maximumX: slider.xMax
+ onPressedChanged: {
+ value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
+ valueChangedByHandle(value);
+ updatePos();
+ }
+ onPositionChanged: {
+ value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
+ valueChangedByHandle(value);
+ }
+ onWheel: {
+ value = Math.max(minimum, Math.min(maximum, value + (wheel.angleDelta.y > 0 ? 1 : -1) * (10 / slider.xMax) * (slider.maximum - slider.minimum)));
+ valueChangedByHandle(value);
+ updatePos();
+ }
+ }
+ }
+
+ Rectangle {
+ id: progress
+ height: 5
+ anchors.verticalCenter: background.verticalCenter
+ anchors.left: background.left
+ anchors.right: handle.right
+ anchors.rightMargin: handle.width / 2
+ visible: slider.enabled
+ color: "#98c66c"
+ }
+
+ Rectangle {
+ id: handleBack
+ width: 40
+ height: width
+ radius: width / 2
+ color: "#8898c66c"
+ antialiasing: true
+ anchors.centerIn: handle
+ visible: handle.visible
+ }
+
+ Rectangle {
+ id: handle
+ width: 14
+ height: width
+ radius: width / 2
+ antialiasing: true
+ color: "#98c66c"
+ anchors.verticalCenter: background.verticalCenter
+ visible: slider.enabled
+ }
+}
+
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-smoke.png b/basicsuite/qt5-everywhere/demos/shaders/images/particle-smoke.png
index b27f954..b27f954 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-smoke.png
+++ b/basicsuite/qt5-everywhere/demos/shaders/images/particle-smoke.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/images/qt-logo.png b/basicsuite/qt5-everywhere/demos/shaders/images/qt-logo.png
index 242bb28..242bb28 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/images/qt-logo.png
+++ b/basicsuite/qt5-everywhere/demos/shaders/images/qt-logo.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/images/wallpaper.png b/basicsuite/qt5-everywhere/demos/shaders/images/wallpaper.png
index a499231..a499231 100644
--- a/basicsuite/Qt5Everywhere/demos/shaders/images/wallpaper.png
+++ b/basicsuite/qt5-everywhere/demos/shaders/images/wallpaper.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/shaders/import/import.pro b/basicsuite/qt5-everywhere/demos/shaders/import/import.pro
new file mode 100644
index 0000000..af51461
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/shaders/import/import.pro
@@ -0,0 +1,20 @@
+TEMPLATE = lib
+CONFIG += plugin
+
+TARGET = shaderreader
+
+QT += qml quick
+
+SOURCES = main.cpp \
+ shaderfilereader.cpp \
+
+HEADERS = shaderfilereader.h \
+
+pluginfiles.files += \
+ qmldir \
+
+B2QT_DEPLOYPATH = /data/user/qt/qmlplugins/ShaderReader
+target.path += $$B2QT_DEPLOYPATH
+pluginfiles.path += $$B2QT_DEPLOYPATH
+
+INSTALLS += target pluginfiles
diff --git a/basicsuite/qt5-everywhere/demos/shaders/import/main.cpp b/basicsuite/qt5-everywhere/demos/shaders/import/main.cpp
new file mode 100644
index 0000000..fe03f0e
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/shaders/import/main.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtQml/QQmlExtensionPlugin>
+#include <QtQml/QtQml>
+#include "shaderfilereader.h"
+
+QT_BEGIN_NAMESPACE
+
+class SensorExplorerDeclarativeModule : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface" FILE "plugin.json")
+public:
+ virtual void registerTypes(const char *uri)
+ {
+ Q_ASSERT(QLatin1String(uri) == QLatin1String("ShaderReader"));
+ qmlRegisterType<ShaderFileReader>(uri, 1, 0, "ShaderFileReader");
+ }
+};
+
+QT_END_NAMESPACE
+
+#include "main.moc"
+
diff --git a/basicsuite/qt5-everywhere/demos/shaders/import/plugin.json b/basicsuite/qt5-everywhere/demos/shaders/import/plugin.json
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/shaders/import/plugin.json
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/import/qmldir b/basicsuite/qt5-everywhere/demos/shaders/import/qmldir
index 0c53031..0c53031 100644
--- a/basicsuite/Qt5Everywhere/demos/shaders/import/qmldir
+++ b/basicsuite/qt5-everywhere/demos/shaders/import/qmldir
diff --git a/basicsuite/qt5-everywhere/demos/shaders/import/shaderfilereader.cpp b/basicsuite/qt5-everywhere/demos/shaders/import/shaderfilereader.cpp
new file mode 100644
index 0000000..629f4b7
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/shaders/import/shaderfilereader.cpp
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "shaderfilereader.h"
+#include <QtCore/QFile>
+#include <QtCore/QTextStream>
+#include <QtCore/QDir>
+#include <QtCore/QDebug>
+
+ShaderFileReader::ShaderFileReader(QObject* parent)
+ : QObject(parent)
+{
+ if (qEnvironmentVariableIsEmpty("QT_SHADER_PATH"))
+ setenv("QT_SHADER_PATH", "/data/user/qt/qt5-everywhere/demos/shaders/",1);
+ // check if directory contains shader files
+ QByteArray shaderPath(qgetenv("QT_SHADER_PATH").append("shaders/"));
+ QDir shaderDir(shaderPath);
+ if (shaderDir.entryInfoList(QStringList() << "*.fsh").length() < 1)
+ qWarning() << "ShaderFileReader: can not find shader files in " << shaderPath;
+}
+
+ShaderFileReader::~ShaderFileReader()
+{
+}
+
+void ShaderFileReader::setFragmentShaderFilename(const QString &name)
+{
+ m_fragmentShaderFilename = name;
+ Q_EMIT fragmentShaderFilenameChanged();
+}
+
+void ShaderFileReader::setVertexShaderFilename(const QString &name)
+{
+ m_vertexShaderFilename = name;
+ Q_EMIT vertexShaderFilenameChanged();
+}
+
+QString ShaderFileReader::fragmentShader() const
+{
+ return readShaderFile(m_fragmentShaderFilename);
+}
+
+QString ShaderFileReader::vertexShader() const
+{
+ return readShaderFile(m_vertexShaderFilename);
+}
+
+QString ShaderFileReader::readShaderFile(const QString &fileName) const
+{
+ QString content;
+ QString path = qgetenv("QT_SHADER_PATH");
+ QFile file(path.append(fileName));
+ if (file.open(QIODevice::ReadOnly)) {
+ QTextStream stream(&file);
+ content = stream.readAll();
+ file.close();
+ }
+ return content;
+}
+
diff --git a/basicsuite/qt5-everywhere/demos/shaders/import/shaderfilereader.h b/basicsuite/qt5-everywhere/demos/shaders/import/shaderfilereader.h
new file mode 100644
index 0000000..30a68f3
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/shaders/import/shaderfilereader.h
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef SHADERFILEREADER_H
+#define SHADERFILEREADER_H
+
+#include <QtCore/QObject>
+#include <QtCore/QString>
+
+class ShaderFileReader : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString fragmentShaderFilename READ fragmentShaderFilename
+ WRITE setFragmentShaderFilename NOTIFY fragmentShaderFilenameChanged)
+ Q_PROPERTY(QString vertexShaderFilename READ vertexShaderFilename
+ WRITE setVertexShaderFilename NOTIFY vertexShaderFilenameChanged)
+
+ Q_PROPERTY(QString fragmentShader READ fragmentShader)
+ Q_PROPERTY(QString vertexShader READ vertexShader)
+
+public:
+ ShaderFileReader(QObject* parent = 0);
+ ~ShaderFileReader();
+
+ void setFragmentShaderFilename(const QString &name);
+ void setVertexShaderFilename(const QString &name);
+ QString fragmentShaderFilename() const { return m_fragmentShaderFilename; }
+ QString vertexShaderFilename() const { return m_vertexShaderFilename; }
+
+ QString fragmentShader() const;
+ QString vertexShader() const;
+
+protected:
+ QString readShaderFile(const QString &fileName) const;
+
+Q_SIGNALS:
+ void fragmentShaderFilenameChanged();
+ void vertexShaderFilenameChanged();
+
+private:
+ QString m_fragmentShaderFilename;
+ QString m_vertexShaderFilename;
+};
+
+Q_DECLARE_METATYPE(ShaderFileReader*)
+
+#endif // SHADERFILEREADER_H
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/main.qml b/basicsuite/qt5-everywhere/demos/shaders/main.qml
index c5f5d4c..c5f5d4c 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/main.qml
+++ b/basicsuite/qt5-everywhere/demos/shaders/main.qml
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders.pro b/basicsuite/qt5-everywhere/demos/shaders/shaders.pro
index de580fd..de580fd 100644
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders.pro
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders.pro
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/billboard.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/billboard.fsh
index baa9554..baa9554 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/billboard.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/billboard.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/blackandwhite.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/blackandwhite.fsh
index 40756c4..40756c4 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/blackandwhite.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/blackandwhite.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/emboss.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/emboss.fsh
index bd13a0b..bd13a0b 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/emboss.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/emboss.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/gaussianblur_h.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/gaussianblur_h.fsh
index 96ae8e4..96ae8e4 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/gaussianblur_h.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/gaussianblur_h.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/gaussianblur_v.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/gaussianblur_v.fsh
index 6bc7b8b..6bc7b8b 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/gaussianblur_v.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/gaussianblur_v.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/glow.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/glow.fsh
index e0adcfd..e0adcfd 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/glow.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/glow.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/isolate.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/isolate.fsh
index 0f25bfa..0f25bfa 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/isolate.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/isolate.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/pixelate.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/pixelate.fsh
index 922d79b..922d79b 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/pixelate.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/pixelate.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/posterize.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/posterize.fsh
index e5c77ce..e5c77ce 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/posterize.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/posterize.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/ripple.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/ripple.fsh
index 6d4187c..6d4187c 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/ripple.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/ripple.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/selectionpanel.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/selectionpanel.fsh
index 89d570e..89d570e 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/selectionpanel.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/selectionpanel.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/sepia.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/sepia.fsh
index 196c517..196c517 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/sepia.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/sepia.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/sharpen.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/sharpen.fsh
index 3907637..3907637 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/sharpen.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/sharpen.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/shockwave.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/shockwave.fsh
index 64f33c8..64f33c8 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/shockwave.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/shockwave.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/sobeledgedetection1.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/sobeledgedetection1.fsh
index 96732fa..96732fa 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/sobeledgedetection1.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/sobeledgedetection1.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/toon.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/toon.fsh
index 2814dfb..2814dfb 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/toon.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/toon.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/vignette.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/vignette.fsh
index bd20c8e..bd20c8e 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/vignette.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/vignette.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/warhol.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/warhol.fsh
index 6852495..6852495 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/warhol.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/warhol.fsh
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/shaders/wobble.fsh b/basicsuite/qt5-everywhere/demos/shaders/shaders/wobble.fsh
index 1670de3..1670de3 100755
--- a/basicsuite/Qt5Everywhere/demos/shaders/shaders/wobble.fsh
+++ b/basicsuite/qt5-everywhere/demos/shaders/shaders/wobble.fsh
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/content/AndroidDelegate.qml b/basicsuite/qt5-everywhere/demos/touchgallery/content/AndroidDelegate.qml
new file mode 100644
index 0000000..e84d6b1
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/content/AndroidDelegate.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+
+Item {
+ id: root
+ width: parent.width
+ height: app.height*.1
+
+ property alias text: textitem.text
+ signal clicked
+
+ Rectangle {
+ anchors.fill: parent
+ color: "#11ffffff"
+ visible: mouse.pressed
+ }
+
+ Text {
+ id: textitem
+ color: "white"
+ font.pixelSize: root.height*.6
+ text: modelData
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 30
+ }
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 15
+ height: 1
+ color: "#424246"
+ }
+
+ Image {
+ anchors.right: parent.right
+ anchors.rightMargin: 20
+ anchors.verticalCenter: parent.verticalCenter
+ height: root.height*.8
+ width: height
+ source: "../images/navigation_next_item.png"
+ }
+
+ MouseArea {
+ id: mouse
+ anchors.fill: parent
+ onClicked: root.clicked()
+
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/content/ButtonPage.qml b/basicsuite/qt5-everywhere/demos/touchgallery/content/ButtonPage.qml
new file mode 100644
index 0000000..9133158
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/content/ButtonPage.qml
@@ -0,0 +1,121 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+ anchors {leftMargin: width*.1; rightMargin: width*.1}
+
+ property real progress: 0
+ SequentialAnimation on progress {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ from: 0
+ to: 1
+ duration: 3000
+ }
+ NumberAnimation {
+ from: 1
+ to: 0
+ duration: 3000
+ }
+ }
+
+ Column {
+ spacing: 40
+ anchors.centerIn: parent
+
+ Button {
+ anchors.margins: 20
+ text: "Press me"
+ style: touchStyle
+ }
+
+ Button {
+ anchors.margins: 20
+ style: touchStyle
+ text: "Press me too"
+ }
+
+ Button {
+ anchors.margins: 20
+ style: touchStyle
+ text: "Dont press me"
+ onClicked: if (pageStack) pageStack.pop()
+ }
+
+ }
+
+ Component {
+ id: touchStyle
+ ButtonStyle {
+ panel: Item {
+ implicitHeight: 50
+ implicitWidth: 300
+ BorderImage {
+ anchors.fill: parent
+ antialiasing: true
+ border.bottom: 8
+ border.top: 8
+ border.left: 8
+ border.right: 8
+ anchors.margins: control.pressed ? -4 : 0
+ source: control.pressed ? "../images/button_pressed.png" : "../images/button_default.png"
+ Text {
+ text: control.text
+ anchors.centerIn: parent
+ color: "white"
+ font.pixelSize: 23
+ renderType: Text.NativeRendering
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/content/CustomAppWindow.qml b/basicsuite/qt5-everywhere/demos/touchgallery/content/CustomAppWindow.qml
new file mode 100644
index 0000000..afaa951
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/content/CustomAppWindow.qml
@@ -0,0 +1,181 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick.Window 2.1
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Layouts 1.0
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ApplicationWindow
+ \since QtQuick.Controls 1.0
+ \inqmlmodule QtQuick.Controls 1.0
+ \ingroup applicationwindow
+ \brief Provides a top-level application window.
+
+ ApplicationWindow is a \l Window that adds convenience for positioning items,
+ such as \l MenuBar, \l ToolBar, and \l StatusBar in a platform independent
+ manner.
+
+ \code
+ ApplicationWindow {
+ id: window
+ menuBar: MenuBar {
+ Menu { MenuItem {...} }
+ Menu { MenuItem {...} }
+ }
+
+ toolBar: ToolBar {
+ RowLayout {
+ anchors.fill: parent
+ ToolButton {...}
+ }
+ }
+
+ TabView {
+ id: myContent
+ anchors.fill: parent
+ ...
+ }
+ }
+ \endcode
+*/
+
+Rectangle {
+ id: root
+
+ /*!
+ \qmlproperty MenuBar ApplicationWindow::menuBar
+
+ This property holds the \l MenuBar.
+
+ By default, this value is not set.
+ */
+ property MenuBar menuBar: null
+
+ /*!
+ \qmlproperty Item ApplicationWindow::toolBar
+
+ This property holds the toolbar \l Item.
+
+ It can be set to any Item type, but is generally used with \l ToolBar.
+
+ By default, this value is not set. When you set the toolbar item, it will
+ be anchored automatically into the application window.
+ */
+ property Item toolBar
+
+ /*!
+ \qmlproperty Item ApplicationWindow::statusBar
+
+ This property holds the status bar \l Item.
+
+ It can be set to any Item type, but is generally used with \l StatusBar.
+
+ By default, this value is not set. When you set the status bar item, it
+ will be anchored automatically into the application window.
+ */
+ property Item statusBar
+
+ onToolBarChanged: { if (toolBar) { toolBar.parent = toolBarArea } }
+
+ onStatusBarChanged: { if (statusBar) { statusBar.parent = statusBarArea } }
+
+ /*! \internal */
+ default property alias data: contentArea.data
+
+ color: syspal.window
+
+ SystemPalette {id: syspal}
+
+ Item {
+ id: backgroundItem
+ anchors.fill: parent
+
+ Item {
+ id: toolBarArea
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: childrenRect.height
+ }
+
+ Item {
+ id: contentArea
+ anchors.top: toolBarArea.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: statusBarArea.top
+ }
+
+ Item {
+ id: statusBarArea
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: childrenRect.height
+ }
+
+ onVisibleChanged: if (visible && menuBar) menuBar.__parentWindow = root
+
+ states: State {
+ name: "hasMenuBar"
+ when: menuBar && !menuBar.__isNative
+
+ ParentChange {
+ target: menuBar.__contentItem
+ parent: backgroundItem
+ }
+
+ PropertyChanges {
+ target: menuBar.__contentItem
+ x: 0
+ y: 0
+ width: backgroundItem.width
+ }
+
+ AnchorChanges {
+ target: toolBarArea
+ anchors.top: menuBar.__contentItem.bottom
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/content/ProgressBarPage.qml b/basicsuite/qt5-everywhere/demos/touchgallery/content/ProgressBarPage.qml
new file mode 100644
index 0000000..93adc7a
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/content/ProgressBarPage.qml
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+
+ property real progress: 0
+ SequentialAnimation on progress {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ from: 0
+ to: 1
+ duration: 3000
+ }
+ NumberAnimation {
+ from: 1
+ to: 0
+ duration: 3000
+ }
+ }
+
+ Column {
+ spacing: 40
+ anchors.centerIn: parent
+
+ ProgressBar {
+ anchors.margins: 20
+ style: touchStyle
+ width: 300
+ value: progress
+ }
+
+ ProgressBar {
+ anchors.margins: 20
+ style: touchStyle
+ width: 300
+ value: 1 - progress
+ }
+
+ ProgressBar {
+ anchors.margins: 20
+ style: touchStyle
+ value: 1
+ width: 300
+ }
+
+ }
+
+ Component {
+ id: touchStyle
+ ProgressBarStyle {
+ panel: Rectangle {
+ implicitHeight: 15
+ implicitWidth: 400
+ color: "#444"
+ opacity: 0.8
+ Rectangle {
+ antialiasing: true
+ radius: 1
+ color: "#468bb7"
+ height: parent.height
+ width: parent.width * control.value / control.maximumValue
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/content/SliderPage.qml b/basicsuite/qt5-everywhere/demos/touchgallery/content/SliderPage.qml
new file mode 100644
index 0000000..4a34037
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/content/SliderPage.qml
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ id: root
+ width: parent.width
+ height: parent.height
+
+ Column {
+ spacing: 12
+ anchors.centerIn: parent
+
+ Slider {
+ anchors.margins: 20
+ width: 280
+ style: touchStyle
+ value: 0
+ }
+ Slider {
+ anchors.margins: 20
+ width: 280
+ style: touchStyle
+ value: 0.5
+ }
+ Slider {
+ anchors.margins: 20
+ width: 280
+ style: touchStyle
+ value: 1.0
+ }
+ }
+
+ Component {
+ id: touchStyle
+ SliderStyle {
+ handle: Rectangle {
+ width: 30
+ height: 30
+ radius: height
+ antialiasing: true
+ color: Qt.lighter("#468bb7", 1.2)
+ }
+
+ groove: Item {
+ implicitHeight: 50
+ implicitWidth: root.width
+ Rectangle {
+ height: 8
+ width: parent.width
+ anchors.verticalCenter: parent.verticalCenter
+ color: "#444"
+ opacity: 0.8
+ Rectangle {
+ antialiasing: true
+ radius: 1
+ color: "#468bb7"
+ height: parent.height
+ width: parent.width * control.value / control.maximumValue
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/content/TabBarPage.qml b/basicsuite/qt5-everywhere/demos/touchgallery/content/TabBarPage.qml
new file mode 100644
index 0000000..7731c33
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/content/TabBarPage.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+
+ TabView {
+ anchors.fill: parent
+ style: touchStyle
+ Tab {
+ title: "Buttons"
+ ButtonPage{ visible: true }
+ }
+ Tab {
+ title: "Sliders"
+ SliderPage{ visible: true }
+ }
+ Tab {
+ title: "Progress"
+ ProgressBarPage{ visible: true }
+ }
+ }
+
+ Component {
+ id: touchStyle
+ TabViewStyle {
+ tabsAlignment: Qt.AlignVCenter
+ tabOverlap: 0
+ frame: Item { }
+ tab: Item {
+ implicitWidth: control.width/control.count
+ implicitHeight: 50
+ BorderImage {
+ anchors.fill: parent
+ border.bottom: 8
+ border.top: 8
+ source: tab.selected ? "../images/tab_selected.png":"../images/tabs_standard.png"
+ Text {
+ anchors.centerIn: parent
+ color: "white"
+ text: styleData.title
+ font.pixelSize: 16
+ }
+ Rectangle {
+ visible: index > 0
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.margins: 10
+ width:1
+ color: "#3a3a3a"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/content/TextInputPage.qml b/basicsuite/qt5-everywhere/demos/touchgallery/content/TextInputPage.qml
new file mode 100644
index 0000000..0ed71f7
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/content/TextInputPage.qml
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+
+Item {
+ width: parent.width
+ height: parent.height
+
+ property real progress: 0
+ SequentialAnimation on progress {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ from: 0
+ to: 1
+ duration: 3000
+ }
+ NumberAnimation {
+ from: 1
+ to: 0
+ duration: 3000
+ }
+ }
+
+ Column {
+ spacing: 40
+ anchors.centerIn: parent
+
+ TextField {
+ anchors.margins: 20
+ text: "Text input"
+ style: touchStyle
+ }
+
+ TextField {
+ anchors.margins: 20
+ text: "Readonly Text input"
+ style: touchStyle
+ readOnly: true
+ }
+ }
+ Component {
+ id: touchStyle
+
+ TextFieldStyle {
+ textColor: "white"
+ font.pixelSize: 28
+ background: Item {
+ implicitHeight: 50
+ implicitWidth: 300
+ BorderImage {
+ source: "../images/textinput.png"
+ border.left: 8
+ border.right: 8
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/NOTICE.txt b/basicsuite/qt5-everywhere/demos/touchgallery/images/NOTICE.txt
index 93a9afc..93a9afc 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/NOTICE.txt
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/NOTICE.txt
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/images/button_default.png b/basicsuite/qt5-everywhere/demos/touchgallery/images/button_default.png
new file mode 100644
index 0000000..6d6cfd9
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/button_default.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/images/button_pressed.png b/basicsuite/qt5-everywhere/demos/touchgallery/images/button_pressed.png
new file mode 100644
index 0000000..ab78b6e
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/button_pressed.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/navigation_next_item.png b/basicsuite/qt5-everywhere/demos/touchgallery/images/navigation_next_item.png
index 6665c9d..6665c9d 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/navigation_next_item.png
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/navigation_next_item.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/navigation_previous_item.png b/basicsuite/qt5-everywhere/demos/touchgallery/images/navigation_previous_item.png
index f8be011..f8be011 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/navigation_previous_item.png
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/navigation_previous_item.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/tab_selected.png b/basicsuite/qt5-everywhere/demos/touchgallery/images/tab_selected.png
index 2345f7a..2345f7a 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/tab_selected.png
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/tab_selected.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/tabs_standard.png b/basicsuite/qt5-everywhere/demos/touchgallery/images/tabs_standard.png
index 7140ab7..7140ab7 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/tabs_standard.png
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/tabs_standard.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/textinput.png b/basicsuite/qt5-everywhere/demos/touchgallery/images/textinput.png
index b0256db..b0256db 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/textinput.png
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/textinput.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/touchgallery/images/toolbar.png b/basicsuite/qt5-everywhere/demos/touchgallery/images/toolbar.png
index e9eba4c..e9eba4c 100644
--- a/basicsuite/Qt5Everywhere/demos/touchgallery/images/toolbar.png
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/images/toolbar.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/demos/touchgallery/main.qml b/basicsuite/qt5-everywhere/demos/touchgallery/main.qml
new file mode 100644
index 0000000..94089cf
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/touchgallery/main.qml
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import "content"
+
+CustomAppWindow {
+ id: app
+ anchors.fill: parent
+ color: "black"
+
+ toolBar: BorderImage {
+ border.bottom: 8
+ source: "images/toolbar.png"
+ width: parent.width
+ height: app.height*.1
+
+ Rectangle {
+ id: backButton
+ width: opacity ? height : 0
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ opacity: pageStack.depth > 1 ? 1 : 0
+ anchors.verticalCenter: parent.verticalCenter
+ antialiasing: true
+ height: parent.height* .8
+ radius: 4
+ color: backmouse.pressed ? "#222" : "transparent"
+ Behavior on opacity { NumberAnimation{} }
+ Image {
+ anchors.verticalCenter: parent.verticalCenter
+ source: "images/navigation_previous_item.png"
+ height: parent.height*.8
+ width: height
+ }
+ MouseArea {
+ id: backmouse
+ anchors.fill: parent
+ anchors.margins: -10
+ onClicked: pageStack.pop()
+ }
+ }
+
+ Text {
+ font.pixelSize: app.height*.06
+ Behavior on x { NumberAnimation{ easing.type: Easing.OutCubic} }
+ x: backButton.x + backButton.width + 10
+ anchors.verticalCenter: parent.verticalCenter
+ color: "white"
+ text: "Widget Gallery"
+ }
+}
+
+ ListModel {
+ id: pageModel
+ ListElement {
+ title: "Buttons"
+ page: "content/ButtonPage.qml"
+ }
+ ListElement {
+ title: "Sliders"
+ page: "content/SliderPage.qml"
+ }
+ ListElement {
+ title: "ProgressBar"
+ page: "content/ProgressBarPage.qml"
+ }
+ ListElement {
+ title: "Tabs"
+ page: "content/TabBarPage.qml"
+ }
+ ListElement {
+ title: "TextInput"
+ page: "content/TextInputPage.qml"
+ }
+ }
+
+ StackView {
+ id: pageStack
+ anchors.fill: parent
+
+ initialItem: Item {
+ width: parent.width
+ height: parent.height
+ ListView {
+ model: pageModel
+ anchors.fill: parent
+ clip: true
+ delegate: AndroidDelegate {
+ text: title
+ onClicked: pageStack.push(Qt.resolvedUrl(page))
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/video/Content.qml b/basicsuite/qt5-everywhere/demos/video/Content.qml
index de25f13..de25f13 100644
--- a/basicsuite/Qt5Everywhere/demos/video/Content.qml
+++ b/basicsuite/qt5-everywhere/demos/video/Content.qml
diff --git a/basicsuite/Qt5Everywhere/demos/video/ContentVideo.qml b/basicsuite/qt5-everywhere/demos/video/ContentVideo.qml
index 83c9ab7..83c9ab7 100644
--- a/basicsuite/Qt5Everywhere/demos/video/ContentVideo.qml
+++ b/basicsuite/qt5-everywhere/demos/video/ContentVideo.qml
diff --git a/basicsuite/qt5-everywhere/demos/video/ControlBar.qml b/basicsuite/qt5-everywhere/demos/video/ControlBar.qml
new file mode 100644
index 0000000..f013dcf
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/ControlBar.qml
@@ -0,0 +1,290 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtMultimedia 5.0
+
+Item {
+ id: controlBar
+ anchors.fill: parent
+
+ property MediaPlayer mediaPlayer: null
+ property bool isMouseAbove: false
+ property int margin: applicationWindow.width * 0.01
+
+ signal openURL()
+
+ state: "VISIBLE"
+
+ onMediaPlayerChanged: {
+ if (mediaPlayer === null)
+ return;
+ volumeControl.volume = mediaPlayer.volume;
+ }
+
+ function updateStatusText()
+ {
+ var strText = ""
+ switch (mediaPlayer.status) {
+ case MediaPlayer.NoMedia: strText = "No Media"; break;
+ case MediaPlayer.Loading: strText = "Loading..."; break;
+ case MediaPlayer.Buffering: strText = "Buffering..."; break;
+ case MediaPlayer.Stalled: strText = "Stalled"; break;
+ case MediaPlayer.EndOfMedia: strText = "EndOfMedia"; break;
+ case MediaPlayer.InvalidMedia: strText = "InvalidMedia"; break;
+ case MediaPlayer.UnknownStatus: strText = "UnknownStatus"; break;
+ default: strText = ""; break;
+ }
+
+ statusText.text = strText;
+ }
+
+ Rectangle {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ width: applicationWindow.height * 0.12
+ height: width
+ color: "#88333333"
+
+ Image {
+ id: closeImage
+ source: "images/CloseButton.png"
+ anchors.centerIn: parent
+ width: 0.5*parent.height
+ height: width
+ opacity: closeMouseArea.pressed ? 0.6 : 1
+ smooth: true
+ }
+
+ MouseArea {
+ id: closeMouseArea
+ anchors.fill: parent
+ onClicked: {
+ if (mediaPlayer !== null) {
+ mediaPlayer.stop();
+ mediaPlayer.source = "";
+ }
+
+ videoSelector.show();
+ }
+ }
+ }
+
+ Rectangle {
+ id: bottomBar
+ height: parent.height * 0.2
+ color: "#88333333"
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+
+ property double playBackHeight: height*0.48
+ property double seekHeight: height*0.48
+
+ VolumeControl {
+ id: volumeControl
+ anchors.verticalCenter: playbackControl.verticalCenter
+ anchors.left: bottomBar.left
+ anchors.leftMargin: bottomBar.margin
+ height: bottomBar.playBackHeight
+ width: parent.width * 0.3
+ onVolumeChanged: {
+ if (mediaPlayer !== null)
+ mediaPlayer.volume = volume
+ }
+
+ Connections {
+ target: mediaPlayer
+ onVolumeChanged: volumeControl.volume = mediaPlayer.volume
+ }
+ }
+
+ //Playback Controls
+ PlaybackControl {
+ id: playbackControl
+ anchors.horizontalCenter: bottomBar.horizontalCenter
+ anchors.top: bottomBar.top
+ anchors.topMargin: bottomBar.margin
+ height: bottomBar.playBackHeight
+
+ onPlayButtonPressed: {
+ if (mediaPlayer === null)
+ return;
+
+ if (isPlaying) {
+ mediaPlayer.pause();
+ } else {
+ mediaPlayer.play();
+ }
+ }
+ }
+
+ Text {
+ id: statusText
+ anchors.right: parent.right
+ anchors.verticalCenter: playbackControl.verticalCenter
+ anchors.rightMargin: bottomBar.margin
+ verticalAlignment: Text.AlignVCenter
+ height: bottomBar.playBackHeight
+ font.pixelSize: playbackControl.height * 0.5
+ color: "white"
+ }
+
+ //Seek controls
+ SeekControl {
+ id: seekControl
+ anchors.bottom: bottomBar.bottom
+ anchors.right: bottomBar.right
+ anchors.left: bottomBar.left
+ height: bottomBar.seekHeight
+ anchors.leftMargin: bottomBar.margin
+ anchors.rightMargin: bottomBar.margin
+
+ enabled: playbackControl.isPlaybackEnabled
+ duration: mediaPlayer !== null ? mediaPlayer.duration : 0
+
+ onSeekValueChanged: {
+ if (mediaPlayer !== null) {
+ mediaPlayer.seek(newPosition);
+ position = mediaPlayer.position;
+ }
+ }
+
+ Component.onCompleted: {
+ if (mediaPlayer !== null)
+ seekable = mediaPlayer.seekable;
+ }
+ }
+
+ Connections {
+ target: mediaPlayer
+ onPositionChanged: {
+ if (!seekControl.pressed) seekControl.position = mediaPlayer.position;
+ }
+ onStatusChanged: {
+ if ((mediaPlayer.status == MediaPlayer.Loaded) || (mediaPlayer.status == MediaPlayer.Buffered) || mediaPlayer.status === MediaPlayer.Buffering || mediaPlayer.status === MediaPlayer.EndOfMedia)
+ playbackControl.isPlaybackEnabled = true;
+ else
+ playbackControl.isPlaybackEnabled = false;
+ updateStatusText();
+ }
+ onErrorChanged: {
+ updateStatusText();
+ }
+
+ onPlaybackStateChanged: {
+ if (mediaPlayer.playbackState === MediaPlayer.PlayingState) {
+ playbackControl.isPlaying = true;
+ applicationWindow.resetTimer();
+ } else {
+ show();
+ playbackControl.isPlaying = false;
+ }
+ }
+
+ onSeekableChanged: {
+ seekControl.seekable = mediaPlayer.seekable;
+ }
+ }
+ }
+
+ //Usage: give the value you wish to modify position,
+ //returns a value between 0 and duration
+ function normalizeSeek(value) {
+ var newPosition = mediaPlayer.position + value;
+ if (newPosition < 0)
+ newPosition = 0;
+ else if (newPosition > mediaPlayer.duration)
+ newPosition = mediaPlayer.duration;
+ return newPosition;
+ }
+
+ function hide() {
+ controlBar.state = "HIDDEN";
+ }
+
+ function show() {
+ controlBar.state = "VISIBLE";
+ }
+
+ states: [
+ State {
+ name: "HIDDEN"
+ PropertyChanges {
+ target: controlBar
+ opacity: 0.0
+ }
+ },
+ State {
+ name: "VISIBLE"
+ PropertyChanges {
+ target: controlBar
+ opacity: 0.95
+ }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ from: "HIDDEN"
+ to: "VISIBLE"
+ NumberAnimation {
+ id: showAnimation
+ target: controlBar
+ properties: "opacity"
+ from: 0.0
+ to: 1.0
+ duration: 200
+ }
+ },
+ Transition {
+ from: "VISIBLE"
+ to: "HIDDEN"
+ NumberAnimation {
+ id: hideAnimation
+ target: controlBar
+ properties: "opacity"
+ from: 0.95
+ to: 0.0
+ duration: 200
+ }
+ }
+ ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/video/ImageButton.qml b/basicsuite/qt5-everywhere/demos/video/ImageButton.qml
new file mode 100644
index 0000000..428f6de
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/ImageButton.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+
+ height: parent.height * 0.8
+ width: image.width * image.scale
+
+ property alias enabled: mouseArea.enabled
+ property alias imageSource: image.source
+
+ property bool checkable: false
+ property bool checked: false
+ property alias hover: mouseArea.containsMouse
+ property alias pressed: mouseArea.pressed
+ property double imageSize: 0.9*root.height
+
+ opacity: enabled ? 1.0 : 0.3
+ signal clicked
+
+ Image {
+ id: image
+ anchors.centerIn: parent
+ scale: root.height / height
+ visible: true
+ opacity: pressed ? 0.6 : 1
+ smooth: true
+ }
+
+ MouseArea {
+ id: mouseArea
+ hoverEnabled: true
+ anchors.fill: root
+ onPositionChanged: applicationWindow.resetTimer()
+ onClicked: root.clicked();
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/video/PlaybackControl.qml b/basicsuite/qt5-everywhere/demos/video/PlaybackControl.qml
new file mode 100644
index 0000000..2d7307e
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/PlaybackControl.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Row {
+ id: root
+ spacing: controlBar.margin
+
+ property bool isPlaybackEnabled: false
+ property bool isPlaying: false
+
+ signal playButtonPressed()
+
+ ImageButton {
+ id: playButton
+ enabled: isPlaybackEnabled
+ imageSource: !isPlaying ? "images/PlayButton.png" : "images/PauseButton.png"
+ anchors.verticalCenter: root.verticalCenter
+ onClicked: {
+ playButtonPressed();
+ }
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/video/ScrollBar.qml b/basicsuite/qt5-everywhere/demos/video/ScrollBar.qml
new file mode 100644
index 0000000..8ac0d31
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/ScrollBar.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: scrollBar
+
+ // The properties that define the scrollbar's state.
+ // position and pageSize are in the range 0.0 - 1.0. They are relative to the
+ // height of the page, i.e. a pageSize of 0.5 means that you can see 50%
+ // of the height of the view.
+ property real position
+ property real pageSize
+
+ // A light, semi-transparent background
+ Rectangle {
+ id: background
+ anchors.fill: parent
+ radius: width/2 - 1
+ color: "transparent"
+ }
+
+ Rectangle {
+ x: scrollBar.position * (scrollBar.width-2) + 1
+ y: 1
+ width: scrollBar.pageSize * (scrollBar.width-2)
+ height: parent.height
+ radius: height/2 - 1
+ color: "#22aa22"
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/video/SeekControl.qml b/basicsuite/qt5-everywhere/demos/video/SeekControl.qml
new file mode 100644
index 0000000..2e037e3
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/SeekControl.qml
@@ -0,0 +1,125 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+
+ property int position: 0
+ property int duration: 0
+ property bool seekable: false
+ property alias pressed : seekSlider.pressed
+ property bool enabled
+
+ signal seekValueChanged(int newPosition)
+
+ onPositionChanged: {
+ elapsedText.text = formatTime(position);
+ seekSlider.value = position;
+ }
+
+ onDurationChanged: {
+ remainingText.text = formatTime(duration);
+ }
+
+ Text {
+ id: elapsedText
+ anchors.verticalCenter: seekSlider.verticalCenter
+ anchors.left: root.left
+ verticalAlignment: Text.AlignVCenter
+ height: parent.height
+ text: "00:00"
+ font.pixelSize: height * 0.4
+ color: "#cccccc"
+ }
+
+ Slider {
+ id: seekSlider
+ anchors.left: elapsedText.right
+ anchors.right: remainingText.left
+ anchors.verticalCenter: root.verticalCenter
+ mutable: root.seekable
+ enabled: root.enabled
+ height: parent.height
+
+ minimum: 0.0
+ maximum: root.duration !== 0 ? root.duration : 1
+
+ onValueChangedByHandle: {
+ seekValueChanged(newValue);
+ applicationWindow.resetTimer()
+ }
+ }
+
+ Text {
+ id: remainingText
+ anchors.verticalCenter: seekSlider.verticalCenter
+ anchors.right: root.right
+ verticalAlignment: Text.AlignVCenter
+ height: parent.height
+ text: "00:00"
+ font.pixelSize: height * 0.4
+ color: "#cccccc"
+ }
+
+ function formatTime(time) {
+ time = time / 1000
+ var hours = Math.floor(time / 3600);
+ time = time - hours * 3600;
+ var minutes = Math.floor(time / 60);
+ var seconds = Math.floor(time - minutes * 60);
+
+ if (hours > 0)
+ return formatTimeBlock(hours) + ":" + formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
+ else
+ return formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds);
+
+ }
+
+ function formatTimeBlock(time) {
+ if (time === 0)
+ return "00"
+ if (time < 10)
+ return "0" + time;
+ else
+ return time.toString();
+ }
+}
diff --git a/basicsuite/qt5-everywhere/demos/video/Slider.qml b/basicsuite/qt5-everywhere/demos/video/Slider.qml
new file mode 100644
index 0000000..cc45537
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/Slider.qml
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: slider
+
+ anchors.leftMargin: handleBack.radius
+ anchors.rightMargin: handleBack.radius
+
+ // value is read/write.
+ property real value: 0
+ property real maximum: 1
+ property real minimum: 0
+ property int xMax: width - handle.width
+ onXMaxChanged: updatePos()
+ onMinimumChanged: updatePos()
+ onValueChanged: if (!pressed) updatePos()
+ property bool mutable: true
+ property alias pressed : backgroundMouse.pressed
+
+ signal valueChangedByHandle(int newValue)
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = 0 + (value - minimum) * slider.xMax / (maximum - minimum);
+ pos = Math.min(pos, width - handle.width - 0);
+ pos = Math.max(pos, 0);
+ handle.x = pos;
+ } else {
+ handle.x = 0;
+ }
+ }
+
+ Rectangle {
+ id: background
+ width: slider.width
+ anchors.verticalCenter: slider.verticalCenter
+ height: 2
+ color: "#666666"
+
+ MouseArea {
+ id: backgroundMouse
+ anchors.fill: parent
+ anchors.topMargin: -24
+ anchors.bottomMargin: -24
+ enabled: slider.mutable
+ drag.target: handle
+ drag.axis: Drag.XAxis
+ drag.minimumX: 0
+ drag.maximumX: slider.xMax
+ onPressedChanged: {
+ value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
+ valueChangedByHandle(value);
+ updatePos();
+ }
+ onPositionChanged: {
+ value = Math.max(minimum, Math.min(maximum, (maximum - minimum) * (mouseX - handle.width/2) / slider.xMax + minimum));
+ valueChangedByHandle(value);
+ }
+ onWheel: {
+ value = Math.max(minimum, Math.min(maximum, value + (wheel.angleDelta.y > 0 ? 1 : -1) * (10 / slider.xMax) * (slider.maximum - slider.minimum)));
+ valueChangedByHandle(value);
+ updatePos();
+ }
+ }
+ }
+
+ Rectangle {
+ id: progress
+ height: 5
+ anchors.verticalCenter: background.verticalCenter
+ anchors.left: background.left
+ anchors.right: handle.right
+ anchors.rightMargin: handle.width / 2
+ visible: slider.enabled
+ color: "#98c66c"
+ }
+
+ Rectangle {
+ id: handleBack
+ width: Math.max(10, Math.min(50, slider.height))
+ height: width
+ radius: width / 2
+ color: "#8898c66c"
+ antialiasing: true
+ anchors.centerIn: handle
+ visible: handle.visible
+ }
+
+ Rectangle {
+ id: handle
+ width: Math.max(3,handleBack.height / 3)
+ height: width
+ radius: width / 2
+ antialiasing: true
+ color: "#98c66c"
+ anchors.verticalCenter: background.verticalCenter
+ visible: slider.enabled
+ }
+}
+
diff --git a/basicsuite/qt5-everywhere/demos/video/VideoDelegate.qml b/basicsuite/qt5-everywhere/demos/video/VideoDelegate.qml
new file mode 100644
index 0000000..fedc9f4
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/VideoDelegate.qml
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: delegate
+ height: grid.cellHeight
+ width: grid.cellWidth
+ property int tileMargin: videoSelector.tileMargin
+
+ signal videoSelected(string link)
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.topMargin: parent.tileMargin/2
+ width: parent.width - tileMargin
+ height: parent.height - tileMargin
+ color: videoSelector.tileBackground
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ grid.currentIndex = index
+ delegate.videoSelected(link)
+ }
+ }
+
+ states: [
+ State {
+ name: "selected"
+ when: delegate.GridView.isCurrentItem
+ }
+ ]
+
+
+ Image {
+ id: iconImage
+ source: thumbnail
+ width: parent.width
+ height: parent.height
+ }
+
+ Rectangle{
+ width: parent.width
+ height: titleText.height + tileMargin
+ anchors.top: titleText.top
+ anchors.bottom: parent.bottom
+ color: "Black"
+ opacity: 0.5
+ visible: iconImage.source
+
+ }
+
+ Text {
+ id: titleText
+ anchors.left: parent.left
+ anchors.leftMargin: tileMargin/3
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: tileMargin/3
+ anchors.right: parent.right
+ anchors.rightMargin: tileMargin/3
+
+ color: videoSelector.textColor
+ text: title
+ width: parent.width;
+ wrapMode: Text.WordWrap;
+ smooth: true
+ font { family: videoSelector.uiFont; pixelSize: videoSelector.tileFontSize }
+ }
+ }
+}
+
diff --git a/basicsuite/qt5-everywhere/demos/video/VideoSelector.qml b/basicsuite/qt5-everywhere/demos/video/VideoSelector.qml
new file mode 100644
index 0000000..8ce8d83
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/VideoSelector.qml
@@ -0,0 +1,181 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.XmlListModel 2.0
+
+Item {
+ id: videoSelector
+
+ property int tileHeight: parseInt(grid.height / 2)
+ property int tileMargin: tileHeight * 0.1
+ property int tileFontSize: tileHeight * 0.08
+ property string tileBackground: "#262626"
+ property string textColor: "white"
+ property string uiFont: "Segoe UI"
+
+ signal selectVideo(string link)
+
+ state: "VISIBLE"
+
+ onOpacityChanged: {
+ if (state === "HIDDEN" && opacity <= 0.05)
+ visible = false;
+ }
+
+ XmlListModel {
+ id: videoModel
+ source: "http://qt-project.org/uploads/videos/qt5_videos.xml"
+ query: "/videolist/item"
+ XmlRole { name: "thumbnail"; query: "thumbnail/string()" }
+ XmlRole { name: "title"; query: "title/string()" }
+ XmlRole { name: "link"; query: "link/string()" }
+
+ onStatusChanged: {
+ if (status == XmlListModel.Ready) {
+ networkErrorBox.opacity = 0.0
+ } else if (status == XmlListModel.Error) {
+ networkErrorBox.opacity = 1.0
+ }
+ }
+ }
+
+ Item {
+ id: networkErrorBox
+ opacity: 0
+ anchors.fill: parent
+
+ Text {
+ anchors.centerIn: parent
+ text: qsTr("Sorry! No network connection")
+ font.family: uiFont;
+ font.pixelSize: tileFontSize * 2;
+ color: textColor
+ smooth: true
+ }
+ }
+
+ // Grid view
+ GridView {
+ id: grid
+ anchors.fill: parent
+ flow: GridView.TopToBottom
+ cellHeight: tileHeight
+ cellWidth: parseInt(tileHeight * 1.5)
+ cacheBuffer: cellWidth
+ clip: false
+ focus: true
+ model: videoModel
+ delegate: VideoDelegate { onVideoSelected: videoSelector.selectVideo(link); }
+
+ // Only show the scrollbars when the view is moving.
+ states: State {
+ when: grid.movingHorizontally
+ PropertyChanges { target: horizontalScrollBar; opacity: 1 }
+ }
+
+ transitions: Transition {
+ NumberAnimation { properties: "opacity"; duration: 400 }
+ }
+ }
+
+ ScrollBar {
+ id: horizontalScrollBar
+ width: parent.width; height: 6
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ opacity: 0
+ position: grid.visibleArea.xPosition
+ pageSize: grid.visibleArea.widthRatio
+ }
+
+ function hide() {
+ videoSelector.state = "HIDDEN";
+ }
+
+ function show() {
+ videoSelector.visible = true;
+ videoSelector.state = "VISIBLE";
+ }
+
+ states: [
+ State {
+ name: "HIDDEN"
+ PropertyChanges {
+ target: videoSelector
+ opacity: 0.0
+ }
+ },
+ State {
+ name: "VISIBLE"
+ PropertyChanges {
+ target: videoSelector
+ opacity: 0.95
+ }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ from: "HIDDEN"
+ to: "VISIBLE"
+ NumberAnimation {
+ id: showAnimation
+ target: videoSelector
+ properties: "opacity"
+ from: 0.0
+ to: 1.0
+ duration: 200
+ }
+ },
+ Transition {
+ from: "VISIBLE"
+ to: "HIDDEN"
+ NumberAnimation {
+ id: hideAnimation
+ target: videoSelector
+ properties: "opacity"
+ from: 0.95
+ to: 0.0
+ duration: 200
+ }
+ }
+ ]
+}
diff --git a/basicsuite/qt5-everywhere/demos/video/VolumeControl.qml b/basicsuite/qt5-everywhere/demos/video/VolumeControl.qml
new file mode 100644
index 0000000..4754951
--- /dev/null
+++ b/basicsuite/qt5-everywhere/demos/video/VolumeControl.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: root
+ property alias volume: volumeSlider.value
+
+ //Volume Controls
+ ImageButton {
+ id: volumeDown
+ height: parent.height * 0.5
+ imageSource: "images/VolumeDown.png"
+ anchors.verticalCenter: root.verticalCenter
+ anchors.left: root.left
+ onClicked: {
+ root.volume = 0.0;
+ }
+ }
+ Slider {
+ id: volumeSlider
+ anchors.left: volumeDown.right
+ anchors.right: volumeUp.left
+ height: root.height
+ maximum: 1.0
+ minimum: 0.0
+ anchors.verticalCenter: root.verticalCenter
+ anchors.verticalCenterOffset: 1
+ }
+
+ ImageButton {
+ id: volumeUp
+ height: parent.height * 0.5
+ imageSource: "images/VolumeUp.png"
+ anchors.verticalCenter: root.verticalCenter
+ anchors.verticalCenterOffset: 1
+ anchors.right: root.right
+ onClicked: {
+ root.volume = 1.0
+ }
+ }
+}
diff --git a/basicsuite/Qt5Everywhere/demos/video/images/CloseButton.png b/basicsuite/qt5-everywhere/demos/video/images/CloseButton.png
index 24407fe..24407fe 100644
--- a/basicsuite/Qt5Everywhere/demos/video/images/CloseButton.png
+++ b/basicsuite/qt5-everywhere/demos/video/images/CloseButton.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/images/PauseButton.png b/basicsuite/qt5-everywhere/demos/video/images/PauseButton.png
index b58ceb4..b58ceb4 100644
--- a/basicsuite/Qt5Everywhere/demos/video/images/PauseButton.png
+++ b/basicsuite/qt5-everywhere/demos/video/images/PauseButton.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/images/PlayButton.png b/basicsuite/qt5-everywhere/demos/video/images/PlayButton.png
index 247fe32..247fe32 100644
--- a/basicsuite/Qt5Everywhere/demos/video/images/PlayButton.png
+++ b/basicsuite/qt5-everywhere/demos/video/images/PlayButton.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/images/RateButtonForward.png b/basicsuite/qt5-everywhere/demos/video/images/RateButtonForward.png
index ebfca0d..ebfca0d 100644
--- a/basicsuite/Qt5Everywhere/demos/video/images/RateButtonForward.png
+++ b/basicsuite/qt5-everywhere/demos/video/images/RateButtonForward.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/images/RateButtonReverse.png b/basicsuite/qt5-everywhere/demos/video/images/RateButtonReverse.png
index 1837bfd..1837bfd 100644
--- a/basicsuite/Qt5Everywhere/demos/video/images/RateButtonReverse.png
+++ b/basicsuite/qt5-everywhere/demos/video/images/RateButtonReverse.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/images/StopButton.png b/basicsuite/qt5-everywhere/demos/video/images/StopButton.png
index 76bcbc8..76bcbc8 100644
--- a/basicsuite/Qt5Everywhere/demos/video/images/StopButton.png
+++ b/basicsuite/qt5-everywhere/demos/video/images/StopButton.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/images/VolumeDown.png b/basicsuite/qt5-everywhere/demos/video/images/VolumeDown.png
index 38b1013..38b1013 100644
--- a/basicsuite/Qt5Everywhere/demos/video/images/VolumeDown.png
+++ b/basicsuite/qt5-everywhere/demos/video/images/VolumeDown.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/images/VolumeUp.png b/basicsuite/qt5-everywhere/demos/video/images/VolumeUp.png
index cffe961..cffe961 100644
--- a/basicsuite/Qt5Everywhere/demos/video/images/VolumeUp.png
+++ b/basicsuite/qt5-everywhere/demos/video/images/VolumeUp.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/main.qml b/basicsuite/qt5-everywhere/demos/video/main.qml
index 5987843..5987843 100644
--- a/basicsuite/Qt5Everywhere/demos/video/main.qml
+++ b/basicsuite/qt5-everywhere/demos/video/main.qml
diff --git a/basicsuite/Qt5Everywhere/demos/video/qt5_video_jens.png b/basicsuite/qt5-everywhere/demos/video/qt5_video_jens.png
index 84f3bce..84f3bce 100644
--- a/basicsuite/Qt5Everywhere/demos/video/qt5_video_jens.png
+++ b/basicsuite/qt5-everywhere/demos/video/qt5_video_jens.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/qt5_video_kenneth.png b/basicsuite/qt5-everywhere/demos/video/qt5_video_kenneth.png
index eecb297..eecb297 100644
--- a/basicsuite/Qt5Everywhere/demos/video/qt5_video_kenneth.png
+++ b/basicsuite/qt5-everywhere/demos/video/qt5_video_kenneth.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/qt5_video_lars.png b/basicsuite/qt5-everywhere/demos/video/qt5_video_lars.png
index 51e0701..51e0701 100644
--- a/basicsuite/Qt5Everywhere/demos/video/qt5_video_lars.png
+++ b/basicsuite/qt5-everywhere/demos/video/qt5_video_lars.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/qt5_video_samuel.png b/basicsuite/qt5-everywhere/demos/video/qt5_video_samuel.png
index 1ed97c1..1ed97c1 100644
--- a/basicsuite/Qt5Everywhere/demos/video/qt5_video_samuel.png
+++ b/basicsuite/qt5-everywhere/demos/video/qt5_video_samuel.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/qt5_video_simon.png b/basicsuite/qt5-everywhere/demos/video/qt5_video_simon.png
index 583c564..583c564 100644
--- a/basicsuite/Qt5Everywhere/demos/video/qt5_video_simon.png
+++ b/basicsuite/qt5-everywhere/demos/video/qt5_video_simon.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/qt5_video_thiago.png b/basicsuite/qt5-everywhere/demos/video/qt5_video_thiago.png
index abf8522..abf8522 100644
--- a/basicsuite/Qt5Everywhere/demos/video/qt5_video_thiago.png
+++ b/basicsuite/qt5-everywhere/demos/video/qt5_video_thiago.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/video/qt5_videos.xml b/basicsuite/qt5-everywhere/demos/video/qt5_videos.xml
index 420e476..420e476 100644
--- a/basicsuite/Qt5Everywhere/demos/video/qt5_videos.xml
+++ b/basicsuite/qt5-everywhere/demos/video/qt5_videos.xml
diff --git a/basicsuite/qt5-everywhere/description.txt b/basicsuite/qt5-everywhere/description.txt
new file mode 100644
index 0000000..4846702
--- /dev/null
+++ b/basicsuite/qt5-everywhere/description.txt
@@ -0,0 +1 @@
+This demo shows how to use different user interface styles in several platforms and device types with one source code. It contains several Qt Quick 2 applications which you can launch by tapping each device.
diff --git a/basicsuite/qt5-everywhere/engine.js b/basicsuite/qt5-everywhere/engine.js
new file mode 100644
index 0000000..fdc9a5b
--- /dev/null
+++ b/basicsuite/qt5-everywhere/engine.js
@@ -0,0 +1,302 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+var positions = [
+ {x:-1100, y:-1650, gid: 0, url: "demos/rssnews/rssnews.qml", device: 3, name: "Rss Reader"},
+ {x:-2100, y:-1550, gid: 0, url: "demos/gridrssnews/main.qml", device: 7, name: "Rss Reader"},
+
+ {x:1300, y:-1600, gid: 1, url: "demos/canvasclock/canvasClock.qml", device: 4, name: "Canvas\n Clock"},
+ {x:2020, y:-1520, gid: 1, url: "demos/heartmonitor/main.qml", device: 5, name: " Heart\nMonitor"},
+
+ {x:1000, y:-300, gid: 2, url: "demos/calqlatr/Calqlatr.qml", device: 0, name: "Calqlatr"},
+ {x:-500, y:-250, gid: 2, url: "demos/touchgallery/main.qml", device: 2, name: "Widget\nGallery"},
+ {x:200, y:-200, gid: 2, url: "demos/photosurface/photosurface.qml", device: 6, name: " Photo\nSurface"},
+
+ {x:-1800, y:0, gid: 3, url: "demos/maroon/Maroon.qml", device: 1, name: "Maroon in\n Trouble"},
+ {x:-2500, y:100, gid: 3, url: "demos/samegame/samegame.qml", device: 1, name: "SameGame"},
+
+ {x:1200, y:1200, gid: 5, url: "demos/shaders/main.qml", device: 6, name: "Shaders"},
+ {x:2200, y:1400, gid: 5, url: "demos/particledemo/particledemo.qml", device: 7, name: "Particle\n Paint"},
+
+ {x:-800, y:1180, gid: 4, url: "demos/video/main.qml", device: 8, name: "Video"},
+ {x:-1600, y:1500, gid: 4, url: "demos/radio/radio.qml", device: 4, name: "Internet\n Radio"}
+ ]
+
+var groupPositions = [
+ {x:-2880, y:-2100, width: 2400, height: 1200, textX: 50, textY: 50, name: "Feeds"},
+ {x:700, y:-2100, width: 1700, height: 1200, textX: 50, textY: 50, name: "Canvas"},
+ {x:-900, y:-800, width: 2650, height: 1300, textX: 50, textY: 50, name: "Applications"},
+ {x:-3000, y:-500, width: 1750, height: 1150, textX: 50, textY: 50, name: "Games"},
+ {x:-2200, y:850, width: 2050, height: 1150, textX: 50, textY: 150, name: "Multimedia"},
+ {x:510, y:600, width: 2450, height: 1500, textX: 50, textY: 50, name: "Particles & Shaders"}
+ ]
+
+var imageSources = ["phone1.png","phone2.png", "phone3.png","tablet1.png", "car_device.png", "medical_device.png", "laptop1.png", "laptop2.png", "tv.png"]
+var widths = [300, 360, 366, 758, 625, 600, 918, 923, 800]
+var heights = [605, 706, 720, 564, 386, 488, 600, 600, 638]
+var scales = [0.8, 0.8, 0.6, 0.9, 1.0, 1.0, 0.9, 1.0, 1.0]
+var demoWidths = [269, 322, 322, 642, 480, 482, 688, 691, 726]
+var demoHeights = [404, 482, 482, 402, 320, 322, 431, 432, 456]
+var maskHorizontalOffsets = [1, 1, 1, 1, -52, 1, 1, 1, 1]
+var maskVerticalOffsets = [20, 32, 15, 24, 15, 45, 59, 57, 56]
+var navigationList = [1,0,2,3,4,6,5,7,8,12,11,9,10]
+var groupNavigationList = [0,1,2,3,4,5]
+var currentDemoIndex = -1
+var currentGroupIndex = -1
+var objects = []
+var groups = []
+
+function initSlides(){
+ positions.forEach(function(pos){
+ createSlide(pos.x,pos.y, pos.gid, pos.url, pos.device, pos.name)
+ })
+}
+
+function createSlide(x,y,gid,url,device,name){
+ var component = Qt.createComponent("Slide.qml")
+ if (component.status === Component.Ready){
+ var object=component.createObject(canvas)
+ object.device = device
+ object.imageSource = "images/" + imageSources[device]
+ object.width = widths[device]
+ object.height = heights[device]
+ object.scale = scales[device]
+ object.demoWidth = demoWidths[device]
+ object.demoHeight = demoHeights[device]
+ object.maskVerticalOffset = maskVerticalOffsets[device]
+ object.maskHorizontalOffset = maskHorizontalOffsets[device]
+ object.uid = objects.length
+ object.gid = gid
+ object.name = name
+ object.x = x-object.width/2
+ object.y = y-object.height/2
+ object.createElements();
+
+ if (url){
+ object.url = url;
+ }
+ objects.push(object)
+ }
+}
+
+function initGroups(){
+ groupPositions.forEach(function(pos){
+ createGroup(pos.x, pos.y, pos.width, pos.height, pos.textX, pos.textY, pos.textSource, pos.name)
+ })
+}
+
+function createGroup(x,y,width,height,textX,textY,textSource,name){
+ var component = Qt.createComponent("Group.qml")
+ if (component.status === Component.Ready){
+ var object=component.createObject(canvas)
+ object.uid = groups.length
+ object.x = x
+ object.y = y
+ object.width = width
+ object.height = height
+ object.textX = textX
+ object.textY = textY
+ object.name = name
+
+ groups.push(object)
+ }
+}
+
+function loadCurrentDemo(){
+
+ // Load current demo and release all others possible running demos
+ if (currentDemoIndex != -1) {
+ for (var i=0; i < objects.length; i++){
+ if (currentDemoIndex == i){
+ objects[navigationList[currentDemoIndex]].loadDemo();
+ }
+ }
+ }
+}
+
+function releaseDemos()
+{
+ for (var i=0; i < objects.length; i++)
+ objects[i].releaseDemo();
+}
+
+function getCurrent()
+{
+ if (currentDemoIndex < 0 || currentDemoIndex >= objects.length)
+ return null;
+
+ return selectTarget(navigationList[currentDemoIndex]);
+}
+
+function getNext()
+{
+ currentDemoIndex++;
+ if (currentDemoIndex >= objects.length)
+ currentDemoIndex = 0;
+
+ return selectTarget(navigationList[currentDemoIndex]);
+}
+
+function getPrevious()
+{
+ currentDemoIndex--;
+ if (currentDemoIndex < 0)
+ currentDemoIndex = objects.length-1;
+
+ return selectTarget(navigationList[currentDemoIndex]);
+}
+
+function selectTarget(uid){
+
+ var idx = -1;
+
+ for (var i=0; i < objects.length; i++){
+ if (uid >= 0 && objects[i].uid === uid){
+ idx = i;
+ } else {
+ objects[i].releaseDemo();
+ }
+ }
+ if (idx !== -1){
+ currentDemoIndex = navigationList.indexOf(idx)
+ currentGroupIndex = objects[idx].gid
+ return {"x": positions[idx].x,
+ "y": positions[idx].y,
+ "targetScale": objects[idx].targetScale,
+ "navState": 2}
+ }
+
+ return null;
+}
+
+function getPosition(idx){
+ return {"x": positions[idx].x, "y": positions[idx].y}
+}
+
+function getCurrentGroup()
+{
+ if (currentGroupIndex < 0 || currentGroupIndex >= groups.length)
+ return null;
+
+ return selectGroup(groupNavigationList[currentGroupIndex]);
+}
+
+function getNextGroup()
+{
+ currentGroupIndex++;
+ if (currentGroupIndex >= groups.length)
+ currentGroupIndex = 0;
+
+ return selectGroup(groupNavigationList[currentGroupIndex]);
+}
+
+function getPreviousGroup()
+{
+ currentGroupIndex--;
+ if (currentGroupIndex < 0)
+ currentGroupIndex = groups.length-1;
+
+ return selectGroup(groupNavigationList[currentGroupIndex]);
+}
+
+function selectGroup(id){
+
+ var idx = -1;
+
+ for (var i=0; i < groups.length; i++){
+ if (id >= 0 && groups[i].uid === id){
+ idx = i;
+ break;
+ }
+ }
+
+ if (idx !== -1){
+ currentGroupIndex = groupNavigationList.indexOf(idx)
+ return {"x": groupPositions[idx].x + groupPositions[idx].width/2,
+ "y": groupPositions[idx].y + groupPositions[idx].height/2,
+ "targetScale": groups[idx].targetScale,
+ "navState": 1}
+ }
+
+ return null;
+}
+
+function boundingBox(){
+ var minX = 0, maxX = 0, minY = 0, maxY = 0;
+
+ for (var i=0; i<objects.length; i++){
+ var scale = objects[i].scale;
+ var w2 = objects[i].width/2;
+ var h2 = objects[i].height/2;
+ var left = (objects[i].x - w2)*scale;
+ var right = (objects[i].x + w2)*scale;
+ var top = (objects[i].y - h2)*scale;
+ var bottom = (objects[i].y + h2)*scale;
+
+ if (left < minX)
+ minX = left;
+ else if (right > maxX)
+ maxX = right;
+
+ if (top < minY)
+ minY = top;
+ else if (bottom > maxY)
+ maxY = bottom;
+ }
+
+ return {"x": minX, "y": minY, "width": maxX-minX, "height": maxY-minY, "centerX": (minX+maxX)/2, "centerY": (minY+maxY)/2};
+}
+
+function scaleToBox(destWidth, destHeight, sourceWidth, sourceHeight)
+{
+ return Math.min(destWidth / sourceWidth, destHeight / sourceHeight);
+}
+
+function updateObjectScales(destWidth, destHeight)
+{
+ for (var i=0; i<objects.length; i++)
+ objects[i].targetScale = scaleToBox(destWidth, destHeight, objects[i].targetWidth(), objects[i].targetHeight());
+}
+
+function updateGroupScales(destWidth, destHeight)
+{
+ for (var i=0; i<groups.length; i++)
+ groups[i].targetScale = scaleToBox(destWidth, destHeight, groups[i].width, groups[i].height);
+}
diff --git a/basicsuite/Qt5Everywhere/fonts/OFL.txt b/basicsuite/qt5-everywhere/fonts/OFL.txt
index 5e51e46..5e51e46 100644
--- a/basicsuite/Qt5Everywhere/fonts/OFL.txt
+++ b/basicsuite/qt5-everywhere/fonts/OFL.txt
diff --git a/basicsuite/Qt5Everywhere/fonts/PatrickHandSC-Regular.ttf b/basicsuite/qt5-everywhere/fonts/PatrickHandSC-Regular.ttf
index 49dfe40..49dfe40 100644
--- a/basicsuite/Qt5Everywhere/fonts/PatrickHandSC-Regular.ttf
+++ b/basicsuite/qt5-everywhere/fonts/PatrickHandSC-Regular.ttf
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/box.png b/basicsuite/qt5-everywhere/images/box.png
index b702861..b702861 100644
--- a/basicsuite/Qt5Everywhere/images/box.png
+++ b/basicsuite/qt5-everywhere/images/box.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/box_open.png b/basicsuite/qt5-everywhere/images/box_open.png
index 910f2ac..910f2ac 100644
--- a/basicsuite/Qt5Everywhere/images/box_open.png
+++ b/basicsuite/qt5-everywhere/images/box_open.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/btn_help.png b/basicsuite/qt5-everywhere/images/btn_help.png
index 6888b1a..6888b1a 100644
--- a/basicsuite/Qt5Everywhere/images/btn_help.png
+++ b/basicsuite/qt5-everywhere/images/btn_help.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/btn_home.png b/basicsuite/qt5-everywhere/images/btn_home.png
index e66d531..e66d531 100644
--- a/basicsuite/Qt5Everywhere/images/btn_home.png
+++ b/basicsuite/qt5-everywhere/images/btn_home.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/btn_next.png b/basicsuite/qt5-everywhere/images/btn_next.png
index c6f897e..c6f897e 100644
--- a/basicsuite/Qt5Everywhere/images/btn_next.png
+++ b/basicsuite/qt5-everywhere/images/btn_next.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/btn_previous.png b/basicsuite/qt5-everywhere/images/btn_previous.png
index efae81b..efae81b 100644
--- a/basicsuite/Qt5Everywhere/images/btn_previous.png
+++ b/basicsuite/qt5-everywhere/images/btn_previous.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/car_device.png b/basicsuite/qt5-everywhere/images/car_device.png
index 7f6fa07..7f6fa07 100644
--- a/basicsuite/Qt5Everywhere/images/car_device.png
+++ b/basicsuite/qt5-everywhere/images/car_device.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character0.png b/basicsuite/qt5-everywhere/images/character0.png
index 11a1b35..11a1b35 100644
--- a/basicsuite/Qt5Everywhere/images/character0.png
+++ b/basicsuite/qt5-everywhere/images/character0.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character1.png b/basicsuite/qt5-everywhere/images/character1.png
index 4f09ee6..4f09ee6 100644
--- a/basicsuite/Qt5Everywhere/images/character1.png
+++ b/basicsuite/qt5-everywhere/images/character1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character10.png b/basicsuite/qt5-everywhere/images/character10.png
index 2039664..2039664 100644
--- a/basicsuite/Qt5Everywhere/images/character10.png
+++ b/basicsuite/qt5-everywhere/images/character10.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character2.png b/basicsuite/qt5-everywhere/images/character2.png
index e7a841b..e7a841b 100644
--- a/basicsuite/Qt5Everywhere/images/character2.png
+++ b/basicsuite/qt5-everywhere/images/character2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character3.png b/basicsuite/qt5-everywhere/images/character3.png
index edad45f..edad45f 100644
--- a/basicsuite/Qt5Everywhere/images/character3.png
+++ b/basicsuite/qt5-everywhere/images/character3.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character4.png b/basicsuite/qt5-everywhere/images/character4.png
index c343f50..c343f50 100644
--- a/basicsuite/Qt5Everywhere/images/character4.png
+++ b/basicsuite/qt5-everywhere/images/character4.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character5.png b/basicsuite/qt5-everywhere/images/character5.png
index 65e00f7..65e00f7 100644
--- a/basicsuite/Qt5Everywhere/images/character5.png
+++ b/basicsuite/qt5-everywhere/images/character5.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character6.png b/basicsuite/qt5-everywhere/images/character6.png
index 05ab8f5..05ab8f5 100644
--- a/basicsuite/Qt5Everywhere/images/character6.png
+++ b/basicsuite/qt5-everywhere/images/character6.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character7.png b/basicsuite/qt5-everywhere/images/character7.png
index 700a46a..700a46a 100644
--- a/basicsuite/Qt5Everywhere/images/character7.png
+++ b/basicsuite/qt5-everywhere/images/character7.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character8.png b/basicsuite/qt5-everywhere/images/character8.png
index 3580062..3580062 100644
--- a/basicsuite/Qt5Everywhere/images/character8.png
+++ b/basicsuite/qt5-everywhere/images/character8.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/character9.png b/basicsuite/qt5-everywhere/images/character9.png
index 298242e..298242e 100644
--- a/basicsuite/Qt5Everywhere/images/character9.png
+++ b/basicsuite/qt5-everywhere/images/character9.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/cloud1.png b/basicsuite/qt5-everywhere/images/cloud1.png
index 474feea..474feea 100644
--- a/basicsuite/Qt5Everywhere/images/cloud1.png
+++ b/basicsuite/qt5-everywhere/images/cloud1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/cloud2.png b/basicsuite/qt5-everywhere/images/cloud2.png
index ccd811d..ccd811d 100644
--- a/basicsuite/Qt5Everywhere/images/cloud2.png
+++ b/basicsuite/qt5-everywhere/images/cloud2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/hand.png b/basicsuite/qt5-everywhere/images/hand.png
index 97cc9da..97cc9da 100644
--- a/basicsuite/Qt5Everywhere/images/hand.png
+++ b/basicsuite/qt5-everywhere/images/hand.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/highlight_mask.png b/basicsuite/qt5-everywhere/images/highlight_mask.png
index 6297142..6297142 100644
--- a/basicsuite/Qt5Everywhere/images/highlight_mask.png
+++ b/basicsuite/qt5-everywhere/images/highlight_mask.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/island.png b/basicsuite/qt5-everywhere/images/island.png
index 8e99f28..8e99f28 100644
--- a/basicsuite/Qt5Everywhere/images/island.png
+++ b/basicsuite/qt5-everywhere/images/island.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/laptop1.png b/basicsuite/qt5-everywhere/images/laptop1.png
index 48317c3..48317c3 100644
--- a/basicsuite/Qt5Everywhere/images/laptop1.png
+++ b/basicsuite/qt5-everywhere/images/laptop1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/laptop2.png b/basicsuite/qt5-everywhere/images/laptop2.png
index b17c39e..b17c39e 100644
--- a/basicsuite/Qt5Everywhere/images/laptop2.png
+++ b/basicsuite/qt5-everywhere/images/laptop2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/man1.png b/basicsuite/qt5-everywhere/images/man1.png
index 71b651e..71b651e 100644
--- a/basicsuite/Qt5Everywhere/images/man1.png
+++ b/basicsuite/qt5-everywhere/images/man1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/medical_device.png b/basicsuite/qt5-everywhere/images/medical_device.png
index 50814a6..50814a6 100644
--- a/basicsuite/Qt5Everywhere/images/medical_device.png
+++ b/basicsuite/qt5-everywhere/images/medical_device.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/mountain.png b/basicsuite/qt5-everywhere/images/mountain.png
index 210aa5f..210aa5f 100644
--- a/basicsuite/Qt5Everywhere/images/mountain.png
+++ b/basicsuite/qt5-everywhere/images/mountain.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/images/particle-smoke.png b/basicsuite/qt5-everywhere/images/particle-smoke.png
index b27f954..b27f954 100644
--- a/basicsuite/Qt5Everywhere/demos/shaders/images/particle-smoke.png
+++ b/basicsuite/qt5-everywhere/images/particle-smoke.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/phone1.png b/basicsuite/qt5-everywhere/images/phone1.png
index ba7d1e0..ba7d1e0 100644
--- a/basicsuite/Qt5Everywhere/images/phone1.png
+++ b/basicsuite/qt5-everywhere/images/phone1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/phone2.png b/basicsuite/qt5-everywhere/images/phone2.png
index df997d1..df997d1 100644
--- a/basicsuite/Qt5Everywhere/images/phone2.png
+++ b/basicsuite/qt5-everywhere/images/phone2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/phone3.png b/basicsuite/qt5-everywhere/images/phone3.png
index 66cb130..66cb130 100644
--- a/basicsuite/Qt5Everywhere/images/phone3.png
+++ b/basicsuite/qt5-everywhere/images/phone3.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/stones.png b/basicsuite/qt5-everywhere/images/stones.png
index 61e500b..61e500b 100644
--- a/basicsuite/Qt5Everywhere/images/stones.png
+++ b/basicsuite/qt5-everywhere/images/stones.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/tablet1.png b/basicsuite/qt5-everywhere/images/tablet1.png
index 5a80680..5a80680 100644
--- a/basicsuite/Qt5Everywhere/images/tablet1.png
+++ b/basicsuite/qt5-everywhere/images/tablet1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/tree1.png b/basicsuite/qt5-everywhere/images/tree1.png
index 7a24e41..7a24e41 100644
--- a/basicsuite/Qt5Everywhere/images/tree1.png
+++ b/basicsuite/qt5-everywhere/images/tree1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/tree2.png b/basicsuite/qt5-everywhere/images/tree2.png
index cdfd87d..cdfd87d 100644
--- a/basicsuite/Qt5Everywhere/images/tree2.png
+++ b/basicsuite/qt5-everywhere/images/tree2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/tv.png b/basicsuite/qt5-everywhere/images/tv.png
index 1454cde..1454cde 100644
--- a/basicsuite/Qt5Everywhere/images/tv.png
+++ b/basicsuite/qt5-everywhere/images/tv.png
Binary files differ
diff --git a/basicsuite/qt5-everywhere/main.qml b/basicsuite/qt5-everywhere/main.qml
new file mode 100644
index 0000000..cf77887
--- /dev/null
+++ b/basicsuite/qt5-everywhere/main.qml
@@ -0,0 +1,242 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "engine.js" as Engine
+import "style.js" as Style
+
+Rectangle{
+ id: app
+ clip: true
+ focus: true
+ width: 800
+ height: 1280
+
+ property real homeScaleFactor: .2
+ property int homeCenterX: 0
+ property int homeCenterY: 0
+ property real minScaleFactor: .04
+ property real maxScaleFactor: 1
+ property real tapLimitX : 2
+ property real tapLimitY : 1
+ property int navigationState: 0 //home, group, slide, dirty
+ property bool useGroups: true
+
+ function calculateScales(){
+ if (app.width > 0 && app.height > 0){
+ var bbox = Engine.boundingBox();
+ app.homeScaleFactor = Engine.scaleToBox(app.width*0.85, app.height*0.85, bbox.width, bbox.height);
+ app.homeCenterX = bbox.centerX;
+ app.homeCenterY = bbox.centerY;
+ app.minScaleFactor = app.homeScaleFactor / 10;
+ app.maxScaleFactor = app.homeScaleFactor * 20;
+ Engine.updateObjectScales(app.width*0.9, app.height*0.9);
+ Engine.updateGroupScales(app.width, app.height);
+ tapLimitX = Math.max(1,app.width * 0.02);
+ tapLimitY = Math.max(1,app.height * 0.02);
+
+
+ var target = Engine.getCurrentGroup()
+ if (app.useGroups && navigationState == 1) {
+ if (target !== null)
+ canvas.goTo(target, true)
+ else
+ canvas.goHome()
+ }
+ else if (navigationState == 2) {
+ target = Engine.getCurrent()
+ if (target !== null)
+ canvas.goTo(target, true)
+ else
+ canvas.goHome()
+ }
+ else
+ canvas.goHome()
+
+ navigationPanel.checkOrientation()
+ }
+ }
+
+ function selectTarget(uid) {
+ return Engine.selectTarget(uid)
+ }
+
+ function selectGroup(uid) {
+ return Engine.selectGroup(uid)
+ }
+
+ function getCurrentGroup() {
+ return Engine.getCurrentGroup()
+ }
+
+ function getNext() {
+ if (app.useGroups && app.navigationState == 1)
+ return Engine.getNextGroup()
+ else
+ return Engine.getNext()
+ }
+
+ function getPrevious() {
+ if (app.useGroups && app.navigationState == 1)
+ return Engine.getPreviousGroup()
+ else
+ return Engine.getPrevious()
+ }
+
+ onWidthChanged: calculateScales();
+ onHeightChanged: calculateScales();
+
+ FontLoader {
+ id: fontLoader
+ source: "fonts/PatrickHandSC-Regular.ttf"
+ }
+
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "#89d4ff" }
+ GradientStop { position: 1.0; color: "#f3fbff" }
+ }
+
+ Cloud { id: cloud1; sourceImage: "images/cloud1.png"}
+ Cloud { id: cloud2; sourceImage: "images/cloud1.png"}
+ Cloud { id: cloud3; sourceImage: "images/cloud1.png"}
+ Cloud { id: cloud4; sourceImage: "images/cloud2.png"}
+ Cloud { id: cloud5; sourceImage: "images/cloud2.png"}
+ Cloud { id: cloud6; sourceImage: "images/cloud2.png"}
+
+ WorldMouseArea { id: worldMouseArea }
+ WorldCanvas { id:canvas }
+ NavigationPanel{ id: navigationPanel }
+
+ HelpScreen {
+ id: helpscreen
+ visible: false
+ }
+ function getPosition(index){
+ return Engine.getPosition(index)
+ }
+
+ QuitDialog {
+ id: quitDialog
+ visible: false
+
+ onYes: Qt.quit()
+ onNo: visible = false
+ }
+
+ SmoothedAnimation {
+ id: zoomAnimation
+ target: canvas;
+ property: "scalingFactor";
+ duration: Style.APP_ANIMATION_DELAY
+ velocity: -1
+ to:canvas.zoomInTarget
+
+ onRunningChanged: {
+ if (!running) {
+ if (app.navigationState === 2)
+ Engine.loadCurrentDemo();
+ else
+ Engine.releaseDemos();
+ }
+ }
+ }
+
+ SequentialAnimation {
+ id: navigationAnimation
+
+ property int animCounter: 0
+
+ function restartAnimation() {
+ navigationAnimation.animCounter++;
+ restart();
+ }
+
+ NumberAnimation {
+ id: zoomOutAnimation
+ target: canvas;
+ property: "scalingFactor";
+ duration: Style.APP_ANIMATION_DELAY/2;
+ to: app.homeScaleFactor*1.3
+ easing.type: Easing.OutCubic
+ }
+
+ NumberAnimation {
+ id: zoomInAnimation
+ target: canvas;
+ property: "scalingFactor";
+ duration: Style.APP_ANIMATION_DELAY/2;
+ to: canvas.zoomInTarget
+ easing.type: Easing.InCubic
+ }
+
+ onRunningChanged: {
+ if (!running)
+ animCounter--
+
+ if (animCounter === 0 && navigationState === 2)
+ Engine.loadCurrentDemo();
+ }
+ }
+
+ Keys.onReleased: {
+ // Handle back-key
+ if (event.key === Qt.Key_Back) {
+ event.accepted = true;
+
+ if (app.navigationState !== 0)
+ canvas.goBack();
+ else
+ quitDialog.visible = true
+ }
+ }
+
+ Component.onCompleted: {
+ if (app.useGroups)
+ Engine.initGroups()
+
+ Engine.initSlides()
+ cloud1.start();
+ cloud2.start();
+ cloud3.start();
+ cloud4.start();
+ cloud5.start();
+ cloud6.start();
+ }
+}
diff --git a/basicsuite/qt5-everywhere/preview_l.jpg b/basicsuite/qt5-everywhere/preview_l.jpg
new file mode 100644
index 0000000..577a64c
--- /dev/null
+++ b/basicsuite/qt5-everywhere/preview_l.jpg
Binary files differ
diff --git a/basicsuite/qt5-everywhere/qt5-everywhere.pro b/basicsuite/qt5-everywhere/qt5-everywhere.pro
new file mode 100644
index 0000000..245d838
--- /dev/null
+++ b/basicsuite/qt5-everywhere/qt5-everywhere.pro
@@ -0,0 +1,5 @@
+TEMPLATE = subdirs
+CONFIG += ordered
+SUBDIRS += \
+ demos \
+ app.pro
diff --git a/basicsuite/qt5-everywhere/style.js b/basicsuite/qt5-everywhere/style.js
new file mode 100644
index 0000000..6f09c42
--- /dev/null
+++ b/basicsuite/qt5-everywhere/style.js
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+var APP_WIDTH = 800
+var APP_HEIGHT = 1280
+
+var APP_ANIMATION_DELAY = 1000
+
+var LOGO_WIDTH = 800 //1006
+var LOGO_HEIGHT = 960 //1200
+
+var FONT_FAMILY = "Patrick Hand SC"
diff --git a/basicsuite/Qt5Everywhere/title.txt b/basicsuite/qt5-everywhere/title.txt
index 2f1f4ce..2f1f4ce 100644
--- a/basicsuite/Qt5Everywhere/title.txt
+++ b/basicsuite/qt5-everywhere/title.txt
diff --git a/basicsuite/Qt5 Launch Presentation/Button.qml b/basicsuite/qt5-launchpresentation/Button.qml
index 6d6bf6e..6d6bf6e 100644
--- a/basicsuite/Qt5 Launch Presentation/Button.qml
+++ b/basicsuite/qt5-launchpresentation/Button.qml
diff --git a/basicsuite/qt5-launchpresentation/CameraSlide.qml b/basicsuite/qt5-launchpresentation/CameraSlide.qml
new file mode 100644
index 0000000..a253c08
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/CameraSlide.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt 5 launch demo.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtMultimedia 5.0
+import "presentation"
+
+import QtGraphicalEffects 1.0
+
+Slide {
+
+ id: slide
+
+ title: "Qt Multimedia - Camera"
+
+ Camera {
+ id: camera
+ Component.onCompleted: camera.stop();
+ }
+
+ VideoOutput {
+ id: videoOut
+ anchors.fill: parent
+ source: camera
+ layer.enabled: true;
+ layer.effect: ZoomBlur {
+ samples: 16
+ length: button.pressed ? parent.height / 5 : 0
+ Behavior on length {
+ NumberAnimation { duration: 250 }
+ }
+ }
+ }
+
+ onVisibleChanged: {
+ if (slide.visible)
+ camera.start();
+ else
+ camera.stop();
+ }
+
+ Button {
+ id: button
+ anchors.bottom: videoOut.bottom
+ anchors.horizontalCenter: videoOut.horizontalCenter
+ anchors.bottomMargin: height / 2;
+// anchors.bottom: slide.top;
+// anchors.right: slide.right;
+// anchors.bottomMargin: height;
+ label: pressed ? "Remove Effect" : "Zoom Effect";
+ width: height * 4;
+ height: parent.height * 0.1
+ }
+
+}
diff --git a/basicsuite/qt5-launchpresentation/CanvasSlide.qml b/basicsuite/qt5-launchpresentation/CanvasSlide.qml
new file mode 100644
index 0000000..46f98ed
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/CanvasSlide.qml
@@ -0,0 +1,161 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt 5 launch demo.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+import "presentation"
+
+Slide {
+ id: slide
+
+ title: "Qt Quick - Canvas"
+
+
+
+ Rectangle {
+ height: parent.height
+ width: parent.width * 0.45
+ anchors.right: parent.right;
+ antialiasing: true
+ radius: slide.height * 0.03;
+ color: Qt.rgba(0.0, 0.0, 0.0, 0.2);
+ Canvas {
+ id:canvas
+ anchors.fill: parent;
+
+ renderTarget: Canvas.Image;
+ antialiasing: true;
+ onPaint: {
+ eval(editor.text);
+ }
+ }
+ }
+
+ Rectangle {
+ height: parent.height
+ width: parent.width * 0.45
+ anchors.left: parent.left
+ antialiasing: true
+ radius: slide.height * 0.03;
+ color: Qt.rgba(0.0, 0.0, 0.0, 0.2);
+
+ clip: true;
+
+ TextEdit {
+ id: editor
+ anchors.fill: parent;
+ anchors.margins: 10
+
+ font.pixelSize: 16
+ color: "white"
+ font.family: "courier"
+ font.bold: true
+
+ text:
+"var ctx = canvas.getContext('2d');
+ctx.save();
+ctx.clearRect(0, 0, canvas.width, canvas.height);
+ctx.strokeStyle = 'palegreen'
+ctx.fillStyle = 'limegreen';
+ctx.lineWidth = 5;
+
+ctx.beginPath();
+ctx.moveTo(100, 100);
+ctx.lineTo(300, 100);
+ctx.lineTo(100, 200);
+ctx.closePath();
+ctx.fill();
+ctx.stroke();
+
+ctx.fillStyle = 'aquamarine'
+ctx.font = '20px sans-serif'
+ctx.fillText('HTML Canvas API!', 100, 300);
+ctx.fillText('Imperative Drawing!', 100, 340);
+
+ctx.restore();
+"
+ onTextChanged: canvas.requestPaint();
+
+ onCursorRectangleChanged: {
+ emitter.burst(10)
+
+ }
+
+ ParticleSystem {
+ id: sys1
+ running: slide.visible
+ }
+
+ ImageParticle {
+ system: sys1
+ source: "images/particle.png"
+ color: "white"
+ colorVariation: 0.2
+ alpha: 0
+ }
+
+ Emitter {
+ id: emitter
+ system: sys1
+
+ x: editor.cursorRectangle.x - editor.cursorRectangle.height / 2;
+ y: editor.cursorRectangle.y
+ width: editor.cursorRectangle.height
+ height: editor.cursorRectangle.height
+ enabled: false
+
+ lifeSpan: 1000
+
+ velocity: PointDirection { xVariation: 30; yVariation: 30; }
+ acceleration: PointDirection {xVariation: 30; yVariation: 30; y: 100 }
+
+ endSize: 0
+
+ size: 4
+ sizeVariation: 2
+ }
+
+ }
+
+
+
+
+ }
+}
diff --git a/basicsuite/Qt5 Launch Presentation/DemoMain.qml b/basicsuite/qt5-launchpresentation/DemoMain.qml
index 05454be..05454be 100644
--- a/basicsuite/Qt5 Launch Presentation/DemoMain.qml
+++ b/basicsuite/qt5-launchpresentation/DemoMain.qml
diff --git a/basicsuite/Qt5 Launch Presentation/EffectsSlide.qml b/basicsuite/qt5-launchpresentation/EffectsSlide.qml
index 0355284..0355284 100644
--- a/basicsuite/Qt5 Launch Presentation/EffectsSlide.qml
+++ b/basicsuite/qt5-launchpresentation/EffectsSlide.qml
diff --git a/basicsuite/Qt5 Launch Presentation/ExamplesSlide.qml b/basicsuite/qt5-launchpresentation/ExamplesSlide.qml
index 4540532..4540532 100644
--- a/basicsuite/Qt5 Launch Presentation/ExamplesSlide.qml
+++ b/basicsuite/qt5-launchpresentation/ExamplesSlide.qml
diff --git a/basicsuite/Qt5 Launch Presentation/FontSlide.qml b/basicsuite/qt5-launchpresentation/FontSlide.qml
index ce98779..ce98779 100644
--- a/basicsuite/Qt5 Launch Presentation/FontSlide.qml
+++ b/basicsuite/qt5-launchpresentation/FontSlide.qml
diff --git a/basicsuite/Qt5 Launch Presentation/NoisyGradient.qml b/basicsuite/qt5-launchpresentation/NoisyGradient.qml
index 904f14e..904f14e 100644
--- a/basicsuite/Qt5 Launch Presentation/NoisyGradient.qml
+++ b/basicsuite/qt5-launchpresentation/NoisyGradient.qml
diff --git a/basicsuite/Qt5 Launch Presentation/NormalMapGenerator.qml b/basicsuite/qt5-launchpresentation/NormalMapGenerator.qml
index c6f55c7..c6f55c7 100644
--- a/basicsuite/Qt5 Launch Presentation/NormalMapGenerator.qml
+++ b/basicsuite/qt5-launchpresentation/NormalMapGenerator.qml
diff --git a/basicsuite/qt5-launchpresentation/OpacityTransitionPresentation.qml b/basicsuite/qt5-launchpresentation/OpacityTransitionPresentation.qml
new file mode 100644
index 0000000..542ec6f
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/OpacityTransitionPresentation.qml
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt 5 launch demo.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+import QtQuick 2.0
+import "presentation"
+
+Presentation {
+
+ id: deck
+
+ width: 1280
+ height: 720
+
+ property bool inTransition: false;
+
+ property variant fromSlide: Item { }
+ property variant toSlide: Item { }
+
+ property int transitionTime: 500;
+
+ SequentialAnimation {
+ id: forwardTransition
+ PropertyAction { target: deck; property: "inTransition"; value: true }
+ PropertyAction { target: toSlide; property: "visible"; value: true }
+ ParallelAnimation {
+ NumberAnimation { target: fromSlide; property: "opacity"; from: 1; to: 0; duration: deck.transitionTime; easing.type: Easing.OutQuart }
+ NumberAnimation { target: fromSlide; property: "scale"; from: 1; to: 1.1; duration: deck.transitionTime; easing.type: Easing.InOutQuart }
+ NumberAnimation { target: toSlide; property: "opacity"; from: 0; to: 1; duration: deck.transitionTime; easing.type: Easing.InQuart }
+ NumberAnimation { target: toSlide; property: "scale"; from: 0.7; to: 1; duration: deck.transitionTime; easing.type: Easing.InOutQuart }
+ }
+ PropertyAction { target: fromSlide; property: "visible"; value: false }
+ PropertyAction { target: fromSlide; property: "scale"; value: 1 }
+ PropertyAction { target: deck; property: "inTransition"; value: false }
+ }
+ SequentialAnimation {
+ id: backwardTransition
+ running: false
+ PropertyAction { target: deck; property: "inTransition"; value: true }
+ PropertyAction { target: toSlide; property: "visible"; value: true }
+ ParallelAnimation {
+ NumberAnimation { target: fromSlide; property: "opacity"; from: 1; to: 0; duration: deck.transitionTime; easing.type: Easing.OutQuart }
+ NumberAnimation { target: fromSlide; property: "scale"; from: 1; to: 0.7; duration: deck.transitionTime; easing.type: Easing.InOutQuart }
+ NumberAnimation { target: toSlide; property: "opacity"; from: 0; to: 1; duration: deck.transitionTime; easing.type: Easing.InQuart }
+ NumberAnimation { target: toSlide; property: "scale"; from: 1.1; to: 1; duration: deck.transitionTime; easing.type: Easing.InOutQuart }
+ }
+ PropertyAction { target: fromSlide; property: "visible"; value: false }
+ PropertyAction { target: fromSlide; property: "scale"; value: 1 }
+ PropertyAction { target: deck; property: "inTransition"; value: false }
+ }
+
+ function switchSlides(from, to, forward)
+ {
+ if (deck.inTransition)
+ return false
+
+ deck.fromSlide = from
+ deck.toSlide = to
+
+ if (forward)
+ forwardTransition.running = true
+ else
+ backwardTransition.running = true
+
+ return true
+ }
+}
diff --git a/basicsuite/Qt5 Launch Presentation/ParticleSlide.qml b/basicsuite/qt5-launchpresentation/ParticleSlide.qml
index 2569a17..2569a17 100644
--- a/basicsuite/Qt5 Launch Presentation/ParticleSlide.qml
+++ b/basicsuite/qt5-launchpresentation/ParticleSlide.qml
diff --git a/basicsuite/Qt5 Launch Presentation/README b/basicsuite/qt5-launchpresentation/README
index 6b3f927..6b3f927 100644
--- a/basicsuite/Qt5 Launch Presentation/README
+++ b/basicsuite/qt5-launchpresentation/README
diff --git a/basicsuite/Qt5 Launch Presentation/ShaderSlide.qml b/basicsuite/qt5-launchpresentation/ShaderSlide.qml
index 206cd9e..206cd9e 100644
--- a/basicsuite/Qt5 Launch Presentation/ShaderSlide.qml
+++ b/basicsuite/qt5-launchpresentation/ShaderSlide.qml
diff --git a/basicsuite/Qt5 Launch Presentation/SlideDeck.qml b/basicsuite/qt5-launchpresentation/SlideDeck.qml
index d9b76ce..d9b76ce 100644
--- a/basicsuite/Qt5 Launch Presentation/SlideDeck.qml
+++ b/basicsuite/qt5-launchpresentation/SlideDeck.qml
diff --git a/basicsuite/Qt5 Launch Presentation/Swirl.qml b/basicsuite/qt5-launchpresentation/Swirl.qml
index 710f04b..710f04b 100644
--- a/basicsuite/Qt5 Launch Presentation/Swirl.qml
+++ b/basicsuite/qt5-launchpresentation/Swirl.qml
diff --git a/basicsuite/qt5-launchpresentation/VideoSlide.qml b/basicsuite/qt5-launchpresentation/VideoSlide.qml
new file mode 100644
index 0000000..a7aac8a
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/VideoSlide.qml
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt 5 launch demo.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtMultimedia 5.0
+import "presentation"
+
+import QtGraphicalEffects 1.0
+
+Slide {
+
+ id: slide
+
+ title: "Qt Multimedia - Video"
+
+ Video {
+ id: video
+
+ anchors.fill: parent
+ source: "bunny.mov"
+ autoLoad: true;
+
+ layer.enabled: true;
+ layer.smooth: true;
+ layer.effect: Displace {
+ displacementSource: normalMap
+ displacement: button.pressed ? 1.0 : 0.0
+ Behavior on displacement {
+ NumberAnimation { duration: 1000 }
+ }
+ }
+ }
+
+ Rectangle {
+ id: theItem;
+ width: 256
+ height: 128
+ color: "transparent"
+ Text {
+ id: label
+ color: "white"
+ text: "Qt 5"
+// font.family: "Times New Roman"
+ font.bold: true;
+ font.pixelSize: 80
+ anchors.centerIn: parent
+ }
+ visible: false;
+ }
+
+ NormalMapGenerator {
+ anchors.left: theItem.right
+ width: 256
+ height: 128
+ id: normalMap
+ source: theItem;
+ visible: false
+ }
+
+ centeredText: video.hasVideo ? "" : "'bunny.mov' is not found or cannot be played: " + video.errorString
+
+ onVisibleChanged: {
+ if (slide.visible)
+ video.play();
+ else
+ video.pause();
+ }
+
+ Button {
+ id: button
+ anchors.bottom: video.bottom
+ anchors.horizontalCenter: video.horizontalCenter
+ anchors.bottomMargin: height / 2;
+ label: pressed ? "Remove Effect" : "Displacement Effect";
+ width: height * 4;
+ height: parent.height * 0.1
+ }
+
+}
diff --git a/basicsuite/qt5-launchpresentation/WebKitSlideContent.qml b/basicsuite/qt5-launchpresentation/WebKitSlideContent.qml
new file mode 100644
index 0000000..ceb103f
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/WebKitSlideContent.qml
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+import QtWebKit 3.0
+
+Item {
+ id: slide
+
+ anchors.fill: parent;
+
+ WebView {
+ id: browser
+ anchors.fill: parent
+ url: editor.text
+
+ // This works around rendering bugs in webkit. CSS animations
+ // and webGL content gets a bad offset, but this hack
+ // clips it so it is not visible. Not ideal, but it kinda works
+ // for now.
+ layer.enabled: true
+ layer.smooth: true
+ }
+
+ Rectangle {
+ border.width: 2
+ border.color: "black"
+ opacity: 0.5
+ color: "black"
+ anchors.fill: editor
+ anchors.margins: -editor.height * 0.2;
+
+ radius: -anchors.margins
+ antialiasing: true
+ }
+
+ TextInput {
+ id: editor
+ anchors.top: browser.bottom;
+ anchors.horizontalCenter: browser.horizontalCenter
+ font.pixelSize: slide.height * 0.05;
+ text: "http://qt.digia.com"
+ onAccepted: browser.reload();
+ color: "white"
+
+ onCursorPositionChanged: {
+ var rect = positionToRectangle(cursorPosition);
+ emitter.x = rect.x;
+ emitter.y = rect.y;
+ emitter.width = rect.width;
+ emitter.height = rect.height;
+ emitter.burst(10);
+ }
+
+ ParticleSystem {
+ id: sys1
+ running: slide.visible
+ }
+
+ ImageParticle {
+ system: sys1
+ source: "images/particle.png"
+ color: "white"
+ colorVariation: 0.2
+ alpha: 0
+ }
+
+ Emitter {
+ id: emitter
+ system: sys1
+
+ enabled: false
+
+ lifeSpan: 2000
+
+ velocity: PointDirection { xVariation: 30; yVariation: 30; }
+ acceleration: PointDirection {xVariation: 30; yVariation: 30; y: 100 }
+
+ endSize: 0
+
+ size: 8
+ sizeVariation: 2
+ }
+ }
+
+}
diff --git a/basicsuite/qt5-launchpresentation/WebkitSlide.qml b/basicsuite/qt5-launchpresentation/WebkitSlide.qml
new file mode 100644
index 0000000..9febcdf
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/WebkitSlide.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import "presentation"
+
+Slide {
+ id: slide
+
+ title: "Qt WebKit - WebView"
+
+ Loader {
+ id: webkitLoader
+
+ anchors.fill: parent
+
+ source: "WebKitSlideContent.qml"
+ }
+
+ centeredText: webkitLoader.status == Loader.Error ? "Qt WebKit not installed or otherwise failed to load" : ""
+}
+
diff --git a/basicsuite/Qt5 Launch Presentation/WidgetsSlide.qml b/basicsuite/qt5-launchpresentation/WidgetsSlide.qml
index 20f0770..20f0770 100644
--- a/basicsuite/Qt5 Launch Presentation/WidgetsSlide.qml
+++ b/basicsuite/qt5-launchpresentation/WidgetsSlide.qml
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/.DS_Store b/basicsuite/qt5-launchpresentation/calqlatr/.DS_Store
index fe95b02..fe95b02 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/.DS_Store
+++ b/basicsuite/qt5-launchpresentation/calqlatr/.DS_Store
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/Calqlatr.qml b/basicsuite/qt5-launchpresentation/calqlatr/Calqlatr.qml
index 7640fbd..7640fbd 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/Calqlatr.qml
+++ b/basicsuite/qt5-launchpresentation/calqlatr/Calqlatr.qml
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/Button.qml b/basicsuite/qt5-launchpresentation/calqlatr/content/Button.qml
index c355c2d..c355c2d 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/Button.qml
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/Button.qml
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/Display.qml b/basicsuite/qt5-launchpresentation/calqlatr/content/Display.qml
index 3c1d9c0..3c1d9c0 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/Display.qml
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/Display.qml
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/NumberPad.qml b/basicsuite/qt5-launchpresentation/calqlatr/content/NumberPad.qml
index 853c763..853c763 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/NumberPad.qml
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/NumberPad.qml
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/StyleLabel.qml b/basicsuite/qt5-launchpresentation/calqlatr/content/StyleLabel.qml
index 3bdea86..3bdea86 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/StyleLabel.qml
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/StyleLabel.qml
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/audio/touch.wav b/basicsuite/qt5-launchpresentation/calqlatr/content/audio/touch.wav
index 94cccb7..94cccb7 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/audio/touch.wav
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/audio/touch.wav
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/calqlatr/content/calculator.js b/basicsuite/qt5-launchpresentation/calqlatr/content/calculator.js
index 843ef39..843ef39 100644
--- a/basicsuite/Qt5 Launch Presentation/calqlatr/content/calculator.js
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/calculator.js
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-back.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-back.png
index 2989ee2..2989ee2 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-back.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-back.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-close.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-close.png
index 3e21248..3e21248 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-close.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-close.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-settings.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-settings.png
index 98e662f..98e662f 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/icon-settings.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/icon-settings.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/logo.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/logo.png
index 6bc6561..6bc6561 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/logo.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/logo.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-edge-left.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-left.png
index ca29a3a..ca29a3a 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-edge-left.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-left.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-edge-right.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-right.png
index 7c2da7b..7c2da7b 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-edge-right.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-edge-right.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-grip.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-grip.png
index 953c408..953c408 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/paper-grip.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/paper-grip.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/settings-selected-a.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-a.png
index e08ddfa..e08ddfa 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/settings-selected-a.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-a.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/settings-selected-b.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-b.png
index d9aa7e3..d9aa7e3 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/settings-selected-b.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/settings-selected-b.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/touch-green.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-green.png
index 64dbde6..64dbde6 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/touch-green.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-green.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/touch-white.png b/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-white.png
index bb02b00..bb02b00 100644
--- a/basicsuite/Qt5Everywhere/demos/calqlatr/content/images/touch-white.png
+++ b/basicsuite/qt5-launchpresentation/calqlatr/content/images/touch-white.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/demo.qmlproject b/basicsuite/qt5-launchpresentation/demo.qmlproject
index eed1c97..eed1c97 100644
--- a/basicsuite/Qt5 Launch Presentation/demo.qmlproject
+++ b/basicsuite/qt5-launchpresentation/demo.qmlproject
diff --git a/basicsuite/qt5-launchpresentation/description.txt b/basicsuite/qt5-launchpresentation/description.txt
new file mode 100644
index 0000000..6ad8936
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/description.txt
@@ -0,0 +1,5 @@
+The following is a quick tour of what is new in Qt 5. It is an application written with Qt Quick, based on Qt 5, the source code is available from [1]. The demo makes use of the QML Presentation System, available from [2]. Qt5 launch demo has been modified slightly to run in this launcher.
+
+[1] https://qt.gitorious.org/qt-labs/qt5-launch-demo
+[2] ssh://codereview.qt-project.org/qt-labs/qml-presentation-system.git
+
diff --git a/basicsuite/Qt5 Launch Presentation/images/ally.png b/basicsuite/qt5-launchpresentation/images/ally.png
index 05b405b..05b405b 100644
--- a/basicsuite/Qt5 Launch Presentation/images/ally.png
+++ b/basicsuite/qt5-launchpresentation/images/ally.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/butterfly.png b/basicsuite/qt5-launchpresentation/images/butterfly.png
index b8cc35c..b8cc35c 100644
--- a/basicsuite/Qt5 Launch Presentation/images/butterfly.png
+++ b/basicsuite/qt5-launchpresentation/images/butterfly.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/displace.png b/basicsuite/qt5-launchpresentation/images/displace.png
index 440e8cb..440e8cb 100644
--- a/basicsuite/Qt5 Launch Presentation/images/displace.png
+++ b/basicsuite/qt5-launchpresentation/images/displace.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/fog.png b/basicsuite/qt5-launchpresentation/images/fog.png
index f462222..f462222 100644
--- a/basicsuite/Qt5 Launch Presentation/images/fog.png
+++ b/basicsuite/qt5-launchpresentation/images/fog.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/particles/particle.png b/basicsuite/qt5-launchpresentation/images/particle.png
index 5c83896..5c83896 100644
--- a/basicsuite/Qt5 Launch Presentation/particles/particle.png
+++ b/basicsuite/qt5-launchpresentation/images/particle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/qt-logo.png b/basicsuite/qt5-launchpresentation/images/qt-logo.png
index 7f2c662..7f2c662 100644
--- a/basicsuite/Qt5 Launch Presentation/images/qt-logo.png
+++ b/basicsuite/qt5-launchpresentation/images/qt-logo.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/widgets_boxes.png b/basicsuite/qt5-launchpresentation/images/widgets_boxes.png
index 3115255..3115255 100644
--- a/basicsuite/Qt5 Launch Presentation/images/widgets_boxes.png
+++ b/basicsuite/qt5-launchpresentation/images/widgets_boxes.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/widgets_chips.png b/basicsuite/qt5-launchpresentation/images/widgets_chips.png
index 4ef1664..4ef1664 100644
--- a/basicsuite/Qt5 Launch Presentation/images/widgets_chips.png
+++ b/basicsuite/qt5-launchpresentation/images/widgets_chips.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/widgets_mainwindows.png b/basicsuite/qt5-launchpresentation/images/widgets_mainwindows.png
index 5ce5416..5ce5416 100644
--- a/basicsuite/Qt5 Launch Presentation/images/widgets_mainwindows.png
+++ b/basicsuite/qt5-launchpresentation/images/widgets_mainwindows.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/widgets_styles_fusion.png b/basicsuite/qt5-launchpresentation/images/widgets_styles_fusion.png
index d94f859..d94f859 100644
--- a/basicsuite/Qt5 Launch Presentation/images/widgets_styles_fusion.png
+++ b/basicsuite/qt5-launchpresentation/images/widgets_styles_fusion.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/images/widgets_styles_macstyle.png b/basicsuite/qt5-launchpresentation/images/widgets_styles_macstyle.png
index 033f43b..033f43b 100644
--- a/basicsuite/Qt5 Launch Presentation/images/widgets_styles_macstyle.png
+++ b/basicsuite/qt5-launchpresentation/images/widgets_styles_macstyle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/main.qml b/basicsuite/qt5-launchpresentation/main.qml
index 627ec48..627ec48 100644
--- a/basicsuite/Qt5 Launch Presentation/main.qml
+++ b/basicsuite/qt5-launchpresentation/main.qml
diff --git a/basicsuite/Qt5 Launch Presentation/main_hifi.qml b/basicsuite/qt5-launchpresentation/main_hifi.qml
index 19e006b..19e006b 100644
--- a/basicsuite/Qt5 Launch Presentation/main_hifi.qml
+++ b/basicsuite/qt5-launchpresentation/main_hifi.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/.DS_Store b/basicsuite/qt5-launchpresentation/maroon/.DS_Store
index b5c859b..b5c859b 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/.DS_Store
+++ b/basicsuite/qt5-launchpresentation/maroon/.DS_Store
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/Maroon.qml b/basicsuite/qt5-launchpresentation/maroon/Maroon.qml
index d7bfcb6..d7bfcb6 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/Maroon.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/Maroon.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/BuildButton.qml b/basicsuite/qt5-launchpresentation/maroon/content/BuildButton.qml
index 49641fc..49641fc 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/BuildButton.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/BuildButton.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/GameCanvas.qml b/basicsuite/qt5-launchpresentation/maroon/content/GameCanvas.qml
index 5e6e963..5e6e963 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/GameCanvas.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/GameCanvas.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/GameOverScreen.qml b/basicsuite/qt5-launchpresentation/maroon/content/GameOverScreen.qml
index dfb439f..dfb439f 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/GameOverScreen.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/GameOverScreen.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/InfoBar.qml b/basicsuite/qt5-launchpresentation/maroon/content/InfoBar.qml
index 36303fc..36303fc 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/InfoBar.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/InfoBar.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/NewGameScreen.qml b/basicsuite/qt5-launchpresentation/maroon/content/NewGameScreen.qml
index 495e3aa..495e3aa 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/NewGameScreen.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/NewGameScreen.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/SoundEffect.qml b/basicsuite/qt5-launchpresentation/maroon/content/SoundEffect.qml
index d286a39..d286a39 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/SoundEffect.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/SoundEffect.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/bomb-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/bomb-action.wav
index b334dc1..b334dc1 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/bomb-action.wav
+++ b/basicsuite/qt5-launchpresentation/maroon/content/audio/bomb-action.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/catch-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/catch-action.wav
index 3e22124..3e22124 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/catch-action.wav
+++ b/basicsuite/qt5-launchpresentation/maroon/content/audio/catch-action.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/catch.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/catch.wav
index d3eade8..d3eade8 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/catch.wav
+++ b/basicsuite/qt5-launchpresentation/maroon/content/audio/catch.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/currency.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/currency.wav
index 0d9ef2c..0d9ef2c 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/currency.wav
+++ b/basicsuite/qt5-launchpresentation/maroon/content/audio/currency.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/factory-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/factory-action.wav
index a2ace6c..a2ace6c 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/factory-action.wav
+++ b/basicsuite/qt5-launchpresentation/maroon/content/audio/factory-action.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/melee-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/melee-action.wav
index d325af4..d325af4 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/melee-action.wav
+++ b/basicsuite/qt5-launchpresentation/maroon/content/audio/melee-action.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/projectile-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/projectile-action.wav
index 4e2284f..4e2284f 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/projectile-action.wav
+++ b/basicsuite/qt5-launchpresentation/maroon/content/audio/projectile-action.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/shooter-action.wav b/basicsuite/qt5-launchpresentation/maroon/content/audio/shooter-action.wav
index 3e12b94..3e12b94 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/audio/shooter-action.wav
+++ b/basicsuite/qt5-launchpresentation/maroon/content/audio/shooter-action.wav
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/background.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/background.png
index d548b93..d548b93 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/background.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/background.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-action.png
index 42da5d7..42da5d7 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb-action.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-action.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-idle.png
index 3bd62e2..3bd62e2 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb-idle.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb-idle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb.png
index 380da7d..380da7d 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/bomb.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/bomb.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/button-help.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-help.png
index aecebc1..aecebc1 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/button-help.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-help.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/button-play.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-play.png
index 6cdad6c..6cdad6c 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/button-play.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/button-play.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/catch-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch-action.png
index 78ca9fe..78ca9fe 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/catch-action.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch-action.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/catch.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch.png
index b7620fe..b7620fe 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/catch.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/catch.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/cloud.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/cloud.png
index d7c35f8..d7c35f8 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/cloud.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/cloud.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/currency.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/currency.png
index 1571341..1571341 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/currency.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/currency.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-bomb.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-bomb.png
index 708d916..708d916 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-bomb.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-bomb.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-factory.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-factory.png
index d2e2a48..d2e2a48 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-factory.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-factory.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-melee.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-melee.png
index 069d18d..069d18d 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-melee.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-melee.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-pointer.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-pointer.png
index 9b51a09..9b51a09 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-pointer.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-pointer.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-shooter.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-shooter.png
index af980ca..af980ca 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog-shooter.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog-shooter.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog.png
index d528ba7..d528ba7 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/dialog.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/dialog.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-action.png
index 8981678..8981678 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory-action.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-action.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-idle.png
index a145582..a145582 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory-idle.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory-idle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory.png
index bfb9f3f..bfb9f3f 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/factory.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/factory.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/grid.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/grid.png
index b595552..b595552 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/grid.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/grid.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/help.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/help.png
index 4654e4c..4654e4c 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/help.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/help.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/lifes.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/lifes.png
index 135310b..135310b 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/lifes.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/lifes.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo-bubble.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-bubble.png
index 136151c..136151c 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo-bubble.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-bubble.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo-fish.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-fish.png
index c41833a..c41833a 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo-fish.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo-fish.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo.png
index 787ac99..787ac99 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/logo.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/logo.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-action.png
index c53873b..c53873b 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee-action.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-action.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-idle.png
index 621d9df..621d9df 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee-idle.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee-idle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee.png
index ab24015..ab24015 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/melee.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/melee.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/mob-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob-idle.png
index dedacc7..dedacc7 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/mob-idle.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob-idle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/mob.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob.png
index 7569c35..7569c35 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/mob.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/mob.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/points.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/points.png
index 1d2386d..1d2386d 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/points.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/points.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/projectile-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile-action.png
index aa2e650..aa2e650 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/projectile-action.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile-action.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/projectile.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile.png
index c25a0c3..c25a0c3 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/projectile.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/projectile.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/scores.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/scores.png
index af757fe..af757fe 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/scores.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/scores.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter-action.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-action.png
index 08e7e30..08e7e30 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter-action.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-action.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter-idle.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-idle.png
index 663098d..663098d 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter-idle.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter-idle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter.png
index d44401e..d44401e 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/shooter.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/shooter.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/sunlight.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/sunlight.png
index d1c7042..d1c7042 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/sunlight.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/sunlight.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-1.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-1.png
index 3ea399c..3ea399c 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-1.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-2.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-2.png
index 934a481..934a481 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-2.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-3.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-3.png
index 47523f5..47523f5 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-3.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-3.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-blank.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-blank.png
index 4a687b2..4a687b2 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-blank.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-blank.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-gameover.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-gameover.png
index 4f53ef0..4f53ef0 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-gameover.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-gameover.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-go.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-go.png
index bfc26f7..bfc26f7 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/text-go.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/text-go.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/wave.png b/basicsuite/qt5-launchpresentation/maroon/content/gfx/wave.png
index f97426c..f97426c 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/gfx/wave.png
+++ b/basicsuite/qt5-launchpresentation/maroon/content/gfx/wave.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/logic.js b/basicsuite/qt5-launchpresentation/maroon/content/logic.js
index dd76b7e..dd76b7e 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/logic.js
+++ b/basicsuite/qt5-launchpresentation/maroon/content/logic.js
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/mobs/MobBase.qml b/basicsuite/qt5-launchpresentation/maroon/content/mobs/MobBase.qml
index d4ece66..d4ece66 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/mobs/MobBase.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/mobs/MobBase.qml
diff --git a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/Bomb.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/Bomb.qml
index 00437f4..00437f4 100644
--- a/basicsuite/Qt5 Launch Presentation/maroon/content/towers/Bomb.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/towers/Bomb.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/Factory.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/Factory.qml
index b34a184..b34a184 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/Factory.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/towers/Factory.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/Melee.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/Melee.qml
index 1b49a45..1b49a45 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/Melee.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/towers/Melee.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/Ranged.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/Ranged.qml
index 33f3354..33f3354 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/Ranged.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/towers/Ranged.qml
diff --git a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/TowerBase.qml b/basicsuite/qt5-launchpresentation/maroon/content/towers/TowerBase.qml
index 5c71cb0..5c71cb0 100644
--- a/basicsuite/Qt5Everywhere/demos/maroon/content/towers/TowerBase.qml
+++ b/basicsuite/qt5-launchpresentation/maroon/content/towers/TowerBase.qml
diff --git a/basicsuite/Qt5 Launch Presentation/particles/customemitter.qml b/basicsuite/qt5-launchpresentation/particles/customemitter.qml
index 270935d..270935d 100644
--- a/basicsuite/Qt5 Launch Presentation/particles/customemitter.qml
+++ b/basicsuite/qt5-launchpresentation/particles/customemitter.qml
diff --git a/basicsuite/Qt5 Launch Presentation/particles/emitmask.qml b/basicsuite/qt5-launchpresentation/particles/emitmask.qml
index 1c3bade..1c3bade 100644
--- a/basicsuite/Qt5 Launch Presentation/particles/emitmask.qml
+++ b/basicsuite/qt5-launchpresentation/particles/emitmask.qml
diff --git a/basicsuite/Qt5 Particles Demo/images/particle.png b/basicsuite/qt5-launchpresentation/particles/particle.png
index 5c83896..5c83896 100644
--- a/basicsuite/Qt5 Particles Demo/images/particle.png
+++ b/basicsuite/qt5-launchpresentation/particles/particle.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/particles/particle4.png b/basicsuite/qt5-launchpresentation/particles/particle4.png
index bc95b70..bc95b70 100644
--- a/basicsuite/Qt5 Launch Presentation/particles/particle4.png
+++ b/basicsuite/qt5-launchpresentation/particles/particle4.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/particles/star.png b/basicsuite/qt5-launchpresentation/particles/star.png
index 0d592cf..0d592cf 100644
--- a/basicsuite/Qt5 Launch Presentation/particles/star.png
+++ b/basicsuite/qt5-launchpresentation/particles/star.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/particles/starfish_mask.png b/basicsuite/qt5-launchpresentation/particles/starfish_mask.png
index 2ef74f9..2ef74f9 100644
--- a/basicsuite/Qt5 Launch Presentation/particles/starfish_mask.png
+++ b/basicsuite/qt5-launchpresentation/particles/starfish_mask.png
Binary files differ
diff --git a/basicsuite/qt5-launchpresentation/particles/velocityfrommotion.qml b/basicsuite/qt5-launchpresentation/particles/velocityfrommotion.qml
new file mode 100644
index 0000000..2824e1d
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/particles/velocityfrommotion.qml
@@ -0,0 +1,306 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Item {
+
+ id: root
+
+ height: 480
+ width: 320
+ visible: true
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: root
+ }
+
+ ParticleSystem { id: sys1 }
+ ImageParticle {
+ system: sys1
+ source: "particle.png"
+ color: "cyan"
+ alpha: 0
+ SequentialAnimation on color {
+ loops: Animation.Infinite
+ ColorAnimation {
+ from: "cyan"
+ to: "magenta"
+ duration: 1000
+ }
+ ColorAnimation {
+ from: "magenta"
+ to: "blue"
+ duration: 2000
+ }
+ ColorAnimation {
+ from: "blue"
+ to: "violet"
+ duration: 2000
+ }
+ ColorAnimation {
+ from: "violet"
+ to: "cyan"
+ duration: 2000
+ }
+ }
+ colorVariation: 0.3
+ }
+ //! [0]
+ Emitter {
+ id: trailsNormal
+ system: sys1
+
+ emitRate: 500
+ lifeSpan: 2000
+
+ y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
+ x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
+
+ velocity: PointDirection {xVariation: 4; yVariation: 4;}
+ acceleration: PointDirection {xVariation: 10; yVariation: 10;}
+ velocityFromMovement: 8
+
+ size: 8
+ sizeVariation: 4
+ }
+ //! [0]
+ ParticleSystem { id: sys2 }
+ ImageParticle {
+ color: "cyan"
+ system: sys2
+ alpha: 0
+ SequentialAnimation on color {
+ loops: Animation.Infinite
+ ColorAnimation {
+ from: "magenta"
+ to: "cyan"
+ duration: 1000
+ }
+ ColorAnimation {
+ from: "cyan"
+ to: "magenta"
+ duration: 2000
+ }
+ }
+ colorVariation: 0.5
+ source: "star.png"
+ }
+ Emitter {
+ id: trailsStars
+ system: sys2
+
+ emitRate: 100
+ lifeSpan: 2200
+
+
+ y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
+ x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
+
+ velocity: PointDirection {xVariation: 4; yVariation: 4;}
+ acceleration: PointDirection {xVariation: 10; yVariation: 10;}
+ velocityFromMovement: 8
+
+ size: 22
+ sizeVariation: 4
+ }
+ ParticleSystem { id: sys3; }
+ ImageParticle {
+ source: "particle.png"
+ system: sys3
+ color: "orange"
+ alpha: 0
+ SequentialAnimation on color {
+ loops: Animation.Infinite
+ ColorAnimation {
+ from: "red"
+ to: "green"
+ duration: 2000
+ }
+ ColorAnimation {
+ from: "green"
+ to: "red"
+ duration: 2000
+ }
+ }
+
+ colorVariation: 0.2
+
+ }
+ Emitter {
+ id: trailsNormal2
+ system: sys3
+
+ emitRate: 300
+ lifeSpan: 2000
+
+ y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
+ x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
+
+ velocityFromMovement: 16
+
+ velocity: PointDirection {xVariation: 4; yVariation: 4;}
+ acceleration: PointDirection {xVariation: 10; yVariation: 10;}
+
+ size: 12
+ sizeVariation: 4
+ }
+ ParticleSystem { id: sys4; }
+ ImageParticle {
+ system: sys4
+ source: "star.png"
+ color: "green"
+ alpha: 0
+ SequentialAnimation on color {
+ loops: Animation.Infinite
+ ColorAnimation {
+ from: "green"
+ to: "red"
+ duration: 2000
+ }
+ ColorAnimation {
+ from: "red"
+ to: "green"
+ duration: 2000
+ }
+ }
+
+ colorVariation: 0.5
+ }
+ Emitter {
+ id: trailsStars2
+ system: sys4
+
+ emitRate: 50
+ lifeSpan: 2200
+
+
+ y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
+ x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
+
+ velocityFromMovement: 16
+ velocity: PointDirection {xVariation: 2; yVariation: 2;}
+ acceleration: PointDirection {xVariation: 10; yVariation: 10;}
+
+ size: 22
+ sizeVariation: 4
+ }
+
+
+
+ Item {
+ id: circle
+ //anchors.fill: parent
+ property real radius: 0
+ property real dx: root.width / 2
+ property real dy: root.height / 2
+ property real cx: radius * Math.sin(percent*6.283185307179) + dx
+ property real cy: radius * Math.cos(percent*6.283185307179) + dy
+ property real percent: 0
+
+ SequentialAnimation on percent {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ duration: 1000
+ from: 1
+ to: 0
+ loops: 8
+ }
+ NumberAnimation {
+ duration: 1000
+ from: 0
+ to: 1
+ loops: 8
+ }
+
+ }
+
+ SequentialAnimation on radius {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ duration: 4000
+ from: 0
+ to: 100
+ }
+ NumberAnimation {
+ duration: 4000
+ from: 100
+ to: 0
+ }
+ }
+ }
+
+ Item {
+ id: circle3
+ property real radius: 100
+ property real dx: root.width / 2
+ property real dy: root.height / 2
+ property real cx: radius * Math.sin(percent*6.283185307179) + dx
+ property real cy: radius * Math.cos(percent*6.283185307179) + dy
+ property real percent: 0
+
+ SequentialAnimation on percent {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation { from: 0.0; to: 1 ; duration: 10000; }
+ }
+ }
+
+ Item {
+ id: circle2
+ property real radius: 30
+ property real dx: circle3.cx
+ property real dy: circle3.cy
+ property real cx: radius * Math.sin(percent*6.283185307179) + dx
+ property real cy: radius * Math.cos(percent*6.283185307179) + dy
+ property real percent: 0
+
+ SequentialAnimation on percent {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation { from: 0.0; to: 1 ; duration: 1000; }
+ }
+ }
+
+}
diff --git a/basicsuite/Qt5 Launch Presentation/presentation/Clock.qml b/basicsuite/qt5-launchpresentation/presentation/Clock.qml
index d4c97ce..d4c97ce 100644
--- a/basicsuite/Qt5 Launch Presentation/presentation/Clock.qml
+++ b/basicsuite/qt5-launchpresentation/presentation/Clock.qml
diff --git a/basicsuite/Qt5 Launch Presentation/presentation/CodeSlide.qml b/basicsuite/qt5-launchpresentation/presentation/CodeSlide.qml
index ba8626b..ba8626b 100644
--- a/basicsuite/Qt5 Launch Presentation/presentation/CodeSlide.qml
+++ b/basicsuite/qt5-launchpresentation/presentation/CodeSlide.qml
diff --git a/basicsuite/Qt5 Launch Presentation/presentation/Presentation.qml b/basicsuite/qt5-launchpresentation/presentation/Presentation.qml
index fc9ea4c..fc9ea4c 100644
--- a/basicsuite/Qt5 Launch Presentation/presentation/Presentation.qml
+++ b/basicsuite/qt5-launchpresentation/presentation/Presentation.qml
diff --git a/basicsuite/Qt5 Launch Presentation/presentation/Slide.qml b/basicsuite/qt5-launchpresentation/presentation/Slide.qml
index 339298d..339298d 100644
--- a/basicsuite/Qt5 Launch Presentation/presentation/Slide.qml
+++ b/basicsuite/qt5-launchpresentation/presentation/Slide.qml
diff --git a/basicsuite/Qt5 Launch Presentation/presentation/SlideCounter.qml b/basicsuite/qt5-launchpresentation/presentation/SlideCounter.qml
index 06e7542..06e7542 100644
--- a/basicsuite/Qt5 Launch Presentation/presentation/SlideCounter.qml
+++ b/basicsuite/qt5-launchpresentation/presentation/SlideCounter.qml
diff --git a/basicsuite/Qt5 Launch Presentation/preview_l.jpg b/basicsuite/qt5-launchpresentation/preview_l.jpg
index 8decd76..8decd76 100644
--- a/basicsuite/Qt5 Launch Presentation/preview_l.jpg
+++ b/basicsuite/qt5-launchpresentation/preview_l.jpg
Binary files differ
diff --git a/basicsuite/qt5-launchpresentation/qt5-launchpresentation.pro b/basicsuite/qt5-launchpresentation/qt5-launchpresentation.pro
new file mode 100644
index 0000000..c3aba46
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/qt5-launchpresentation.pro
@@ -0,0 +1,18 @@
+TARGET = qt5-launchpresentation
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ calqlatr \
+ maroon \
+ particles \
+ presentation \
+ samegame \
+ images
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/.DS_Store b/basicsuite/qt5-launchpresentation/samegame/.DS_Store
index 9805454..9805454 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/.DS_Store
+++ b/basicsuite/qt5-launchpresentation/samegame/.DS_Store
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/Samegame.qml b/basicsuite/qt5-launchpresentation/samegame/Samegame.qml
index 2b0b82a..2b0b82a 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/Samegame.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/Samegame.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/Block.qml b/basicsuite/qt5-launchpresentation/samegame/content/Block.qml
index 85f2e27..85f2e27 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/Block.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/Block.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/BlockEmitter.qml b/basicsuite/qt5-launchpresentation/samegame/content/BlockEmitter.qml
index 7dad509..7dad509 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/BlockEmitter.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/BlockEmitter.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/Button.qml b/basicsuite/qt5-launchpresentation/samegame/content/Button.qml
index aab21ec..aab21ec 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/Button.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/Button.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/GameArea.qml b/basicsuite/qt5-launchpresentation/samegame/content/GameArea.qml
index f3ca98d..f3ca98d 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/GameArea.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/GameArea.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/LogoAnimation.qml b/basicsuite/qt5-launchpresentation/samegame/content/LogoAnimation.qml
index c879893..c879893 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/LogoAnimation.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/LogoAnimation.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/MenuEmitter.qml b/basicsuite/qt5-launchpresentation/samegame/content/MenuEmitter.qml
index 16c7660..16c7660 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/MenuEmitter.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/MenuEmitter.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/PaintEmitter.qml b/basicsuite/qt5-launchpresentation/samegame/content/PaintEmitter.qml
index 4a67c4a..4a67c4a 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/PaintEmitter.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/PaintEmitter.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/PrimaryPack.qml b/basicsuite/qt5-launchpresentation/samegame/content/PrimaryPack.qml
index 278ed0e..278ed0e 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/PrimaryPack.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/PrimaryPack.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/PuzzleBlock.qml b/basicsuite/qt5-launchpresentation/samegame/content/PuzzleBlock.qml
index 8a0e725..8a0e725 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/PuzzleBlock.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/PuzzleBlock.qml
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/SamegameText.qml b/basicsuite/qt5-launchpresentation/samegame/content/SamegameText.qml
index 28c85f9..28c85f9 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/SamegameText.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/SamegameText.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/SimpleBlock.qml b/basicsuite/qt5-launchpresentation/samegame/content/SimpleBlock.qml
index 22a1fa3..22a1fa3 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/SimpleBlock.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/SimpleBlock.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/SmokeText.qml b/basicsuite/qt5-launchpresentation/samegame/content/SmokeText.qml
index 73d9ae4..73d9ae4 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/SmokeText.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/SmokeText.qml
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/background-puzzle.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/background-puzzle.png
index c2eca5f..c2eca5f 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/background-puzzle.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/background-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/background.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/background.png
index 60f57b6..60f57b6 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/background.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/background.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bar.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/bar.png
index 4953cd6..4953cd6 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bar.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/bar.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/blue-puzzle.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/blue-puzzle.png
index e550d59..e550d59 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/blue-puzzle.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/blue-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/blue.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/blue.png
index b8161c0..b8161c0 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/blue.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/blue.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bubble-highscore.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/bubble-highscore.png
index c4e38df..c4e38df 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bubble-highscore.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/bubble-highscore.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bubble-puzzle.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/bubble-puzzle.png
index 278556b..278556b 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/bubble-puzzle.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/bubble-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-1.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-1.png
index 3343b7f..3343b7f 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-1.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-2.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-2.png
index afba106..afba106 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-2.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-3.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-3.png
index adea77a..adea77a 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-3.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-3.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-4.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-4.png
index 18c922b..18c922b 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-4.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-4.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-new.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-new.png
index 257e182..257e182 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-game-new.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-game-new.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-menu.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-menu.png
index 8440e87..8440e87 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-menu.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-menu.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-puzzle-next.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-puzzle-next.png
index 7e3ed41..7e3ed41 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-puzzle-next.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-puzzle-next.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-quit.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-quit.png
index 95c77ce..95c77ce 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/but-quit.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/but-quit.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/green-puzzle.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/green-puzzle.png
index 581f76f..581f76f 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/green-puzzle.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/green-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/green.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/green.png
index da4cca5..da4cca5 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/green.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/green.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-fail.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-fail.png
index 4072611..4072611 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-fail.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-fail.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-ok.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-ok.png
index 15a8442..15a8442 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-ok.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-ok.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-time.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-time.png
index 9490e49..9490e49 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/icon-time.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/icon-time.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-a.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-a.png
index 20c20ba..20c20ba 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-a.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-a.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-e.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-e.png
index dd663f1..dd663f1 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-e.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-e.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-g.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-g.png
index a319bf9..a319bf9 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-g.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-g.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-m.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-m.png
index 6a029b3..6a029b3 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-m.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-m.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-s.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-s.png
index 963b175..963b175 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo-s.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo-s.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo.png
index e900edd..e900edd 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/logo.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/logo.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-brick.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-brick.png
index 5c83896..5c83896 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-brick.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-brick.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-paint.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-paint.png
index 9bd0a2a..9bd0a2a 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/particle-paint.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-paint.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/images/particle-smoke.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-smoke.png
index b27f954..b27f954 100644
--- a/basicsuite/Qt5Everywhere/images/particle-smoke.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/particle-smoke.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/red-puzzle.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/red-puzzle.png
index 9ceb17e..9ceb17e 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/red-puzzle.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/red-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/red.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/red.png
index 681810f..681810f 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/red.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/red.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-highscore-new.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-highscore-new.png
index 50f7fcd..50f7fcd 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-highscore-new.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-highscore-new.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-highscore.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-highscore.png
index 7198c27..7198c27 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-highscore.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-highscore.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-no-winner.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-no-winner.png
index b4a6685..b4a6685 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-no-winner.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-no-winner.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1-go.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1-go.png
index c7bd2a5..c7bd2a5 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1-go.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1-go.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1-won.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1-won.png
index 41c2eb7..41c2eb7 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1-won.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1-won.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1.png
index b59c87b..b59c87b 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p1.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p1.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2-go.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2-go.png
index f03cd93..f03cd93 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2-go.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2-go.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2-won.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2-won.png
index 116b7f2..116b7f2 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2-won.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2-won.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2.png
index d4f2bc7..d4f2bc7 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/text-p2.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/text-p2.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/yellow-puzzle.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/yellow-puzzle.png
index 66044c8..66044c8 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/yellow-puzzle.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/yellow-puzzle.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/yellow.png b/basicsuite/qt5-launchpresentation/samegame/content/gfx/yellow.png
index 6bc5d38..6bc5d38 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/content/gfx/yellow.png
+++ b/basicsuite/qt5-launchpresentation/samegame/content/gfx/yellow.png
Binary files differ
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/TemplateBase.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/TemplateBase.qml
index f0832d4..f0832d4 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/TemplateBase.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/TemplateBase.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level0.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level0.qml
index 5d2fa4f..5d2fa4f 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level0.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level0.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level1.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level1.qml
index 4bb15cb..4bb15cb 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level1.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level1.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level2.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level2.qml
index a319479..a319479 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level2.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level2.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level3.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level3.qml
index 43e82d7..43e82d7 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level3.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level3.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level4.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level4.qml
index 46ad42f..46ad42f 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level4.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level4.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level5.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level5.qml
index 3716264..3716264 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level5.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level5.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level6.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level6.qml
index 4547b75..4547b75 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level6.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level6.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level7.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level7.qml
index 5d71d7c..5d71d7c 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level7.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level7.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level8.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level8.qml
index 9dbb8c2..9dbb8c2 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level8.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level8.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level9.qml b/basicsuite/qt5-launchpresentation/samegame/content/levels/level9.qml
index 4e8bf19..4e8bf19 100644
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/levels/level9.qml
+++ b/basicsuite/qt5-launchpresentation/samegame/content/levels/level9.qml
diff --git a/basicsuite/Qt5 Launch Presentation/samegame/content/samegame.js b/basicsuite/qt5-launchpresentation/samegame/content/samegame.js
index 7b226cb..7b226cb 100755
--- a/basicsuite/Qt5 Launch Presentation/samegame/content/samegame.js
+++ b/basicsuite/qt5-launchpresentation/samegame/content/samegame.js
diff --git a/basicsuite/Qt5Everywhere/demos/samegame/settings.js b/basicsuite/qt5-launchpresentation/samegame/settings.js
index e09dee9..e09dee9 100644
--- a/basicsuite/Qt5Everywhere/demos/samegame/settings.js
+++ b/basicsuite/qt5-launchpresentation/samegame/settings.js
diff --git a/basicsuite/qt5-launchpresentation/title.txt b/basicsuite/qt5-launchpresentation/title.txt
new file mode 100644
index 0000000..d475d8a
--- /dev/null
+++ b/basicsuite/qt5-launchpresentation/title.txt
@@ -0,0 +1 @@
+Qt5 Launch Presentation
diff --git a/basicsuite/qt5-particlesdemo/content/burstandpulse.qml b/basicsuite/qt5-particlesdemo/content/burstandpulse.qml
new file mode 100644
index 0000000..de140c3
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/content/burstandpulse.qml
@@ -0,0 +1,110 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Rectangle {
+ width: 320
+ height: 480
+ color: "black"
+ property bool lastWasPulse: false
+ Timer {
+ interval: 3500
+ triggeredOnStart: true
+ running: true
+ repeat: true
+ onTriggered: {
+ //! [0]
+ if (lastWasPulse) {
+ burstEmitter.burst(500);
+ lastWasPulse = false;
+ } else {
+ pulseEmitter.pulse(500);
+ lastWasPulse = true;
+ }
+ //! [0]
+ }
+ }
+ ParticleSystem {
+ id: particles
+ anchors.fill: parent
+ ImageParticle {
+ source: "../images/star.png"
+ alpha: 0
+ colorVariation: 0.6
+ }
+
+ Emitter {
+ id: burstEmitter
+ x: parent.width/2
+ y: parent.height/3
+ emitRate: 1000
+ lifeSpan: 2000
+ enabled: false
+ velocity: AngleDirection{magnitude: 64; angleVariation: 360}
+ size: 24
+ sizeVariation: 8
+ Text {
+ anchors.centerIn: parent
+ color: "white"
+ font.pixelSize: 18
+ text: "Burst"
+ }
+ }
+ Emitter {
+ id: pulseEmitter
+ x: parent.width/2
+ y: 2*parent.height/3
+ emitRate: 1000
+ lifeSpan: 2000
+ enabled: false
+ velocity: AngleDirection{magnitude: 64; angleVariation: 360}
+ size: 24
+ sizeVariation: 8
+ Text {
+ anchors.centerIn: parent
+ color: "white"
+ font.pixelSize: 18
+ text: "Pulse"
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-particlesdemo/content/customemitter.qml b/basicsuite/qt5-particlesdemo/content/customemitter.qml
new file mode 100644
index 0000000..1c32cee
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/content/customemitter.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+ParticleSystem {
+ id: sys
+ width: 360
+ height: 600
+ running: true
+ Rectangle {
+ z: -1
+ anchors.fill: parent
+ color: "black"
+ }
+
+ property real petalLength: 180
+ property real petalRotation: 0
+ NumberAnimation on petalRotation {
+ from: 0;
+ to: 360;
+ loops: -1;
+ running: true
+ duration: 24000
+ }
+
+ function convert(a) {return a*(Math.PI/180);}
+ Emitter {
+ lifeSpan: 4000
+ emitRate: 120
+ size: 12
+ anchors.centerIn: parent
+ //! [0]
+ onEmitParticles: {
+ for (var i=0; i<particles.length; i++) {
+ var particle = particles[i];
+ particle.startSize = Math.max(02,Math.min(492,Math.tan(particle.t/2)*24));
+ var theta = Math.floor(Math.random() * 6.0);
+ particle.red = theta == 0 || theta == 1 || theta == 2 ? 0.2 : 1;
+ particle.green = theta == 2 || theta == 3 || theta == 4 ? 0.2 : 1;
+ particle.blue = theta == 4 || theta == 5 || theta == 0 ? 0.2 : 1;
+ theta /= 6.0;
+ theta *= 2.0*Math.PI;
+ theta += sys.convert(sys.petalRotation);//Convert from degrees to radians
+ particle.initialVX = petalLength * Math.cos(theta);
+ particle.initialVY = petalLength * Math.sin(theta);
+ particle.initialAX = particle.initialVX * -0.5;
+ particle.initialAY = particle.initialVY * -0.5;
+ }
+ }
+ //! [0]
+ }
+
+ ImageParticle {
+ source: "../images/particle4.png"
+ alpha: 0.0
+ }
+}
diff --git a/basicsuite/qt5-particlesdemo/content/emitmask.qml b/basicsuite/qt5-particlesdemo/content/emitmask.qml
new file mode 100644
index 0000000..c2b2b2f
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/content/emitmask.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Rectangle {
+ color: "goldenrod"
+ width: 400
+ height: 400
+ ParticleSystem {
+ width: 300
+ height: 300
+ anchors.centerIn: parent
+
+ ImageParticle {
+ source: "../images/particle.png"
+ z: 2
+ anchors.fill: parent
+ color: "#336666CC"
+ colorVariation: 0.0
+ }
+
+ Emitter {
+ anchors.fill: parent
+ emitRate: 6000
+ lifeSpan: 720
+ size: 10
+ //! [0]
+ shape: MaskShape {
+ source: "../images/starfish_mask.png"
+ }
+ //! [0]
+ }
+
+ }
+}
diff --git a/basicsuite/qt5-particlesdemo/content/maximumemitted.qml b/basicsuite/qt5-particlesdemo/content/maximumemitted.qml
new file mode 100644
index 0000000..11c90fe
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/content/maximumemitted.qml
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Rectangle {
+ color: "black"
+ width: 360
+ height: 540
+ ParticleSystem {
+ id: sys
+ anchors.fill: parent
+ onEmptyChanged: if (empty) sys.pause();
+
+ ImageParticle {
+ system: sys
+ id: cp
+ source: "../images/particle.png"
+ colorVariation: 0.4
+ color: "#000000FF"
+ }
+
+ Emitter {
+ //burst on click
+ id: bursty
+ system: sys
+ enabled: ma.pressed
+ x: ma.mouseX
+ y: ma.mouseY
+ emitRate: 16000
+ maximumEmitted: 4000
+ acceleration: AngleDirection {angleVariation: 360; magnitude: 360; }
+ size: 8
+ endSize: 16
+ sizeVariation: 4
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: sys.resume()
+ id: ma
+ }
+ }
+}
diff --git a/basicsuite/qt5-particlesdemo/content/shapeanddirection.qml b/basicsuite/qt5-particlesdemo/content/shapeanddirection.qml
new file mode 100644
index 0000000..c8b7952
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/content/shapeanddirection.qml
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Rectangle {
+ id: root
+ width: 360
+ height: 540
+ color: "black"
+ Image {
+ anchors.fill: parent
+ source: "../images/portal_bg.png"
+ }
+
+ ParticleSystem {
+ id: particles
+ anchors.fill: parent
+
+ ImageParticle {
+ groups: ["center","edge"]
+ anchors.fill: parent
+ source: "../images/particle.png"
+ colorVariation: 0.1
+ color: "#009999FF"
+ }
+
+ Emitter {
+ anchors.fill: parent
+ group: "center"
+ emitRate: 400
+ lifeSpan: 2000
+ size: 20
+ sizeVariation: 2
+ endSize: 0
+ //! [0]
+ shape: EllipseShape {fill: false}
+ velocity: TargetDirection {
+ targetX: root.width/2
+ targetY: root.height/2
+ proportionalMagnitude: true
+ magnitude: 0.5
+ }
+ //! [0]
+ }
+
+ Emitter {
+ anchors.fill: parent
+ group: "edge"
+ startTime: 2000
+ emitRate: 2000
+ lifeSpan: 2000
+ size: 28
+ sizeVariation: 2
+ endSize: 16
+ shape: EllipseShape {fill: false}
+ velocity: TargetDirection {
+ targetX: root.width/2
+ targetY: root.height/2
+ proportionalMagnitude: true
+ magnitude: 0.1
+ magnitudeVariation: 0.1
+ }
+ acceleration: TargetDirection {
+ targetX: root.width/2
+ targetY: root.height/2
+ targetVariation: 200
+ proportionalMagnitude: true
+ magnitude: 0.1
+ magnitudeVariation: 0.1
+ }
+ }
+ }
+}
diff --git a/basicsuite/qt5-particlesdemo/content/trailemitter.qml b/basicsuite/qt5-particlesdemo/content/trailemitter.qml
new file mode 100644
index 0000000..9278f78
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/content/trailemitter.qml
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Rectangle {
+ id: root
+ width: 360
+ height: 540
+ color: "black"
+
+ ParticleSystem {
+ id: particles
+ anchors.fill: parent
+
+ ImageParticle {
+ id: smoke
+ system: particles
+ anchors.fill: parent
+ groups: ["A", "B"]
+ source: "../images/particle.png"
+ colorVariation: 0
+ color: "#00111111"
+ }
+ ImageParticle {
+ id: flame
+ anchors.fill: parent
+ system: particles
+ groups: ["C", "D"]
+ source: "../images/particle.png"
+ colorVariation: 0.1
+ color: "#00ff400f"
+ }
+
+ Emitter {
+ id: fire
+ system: particles
+ group: "C"
+
+ y: parent.height
+ width: parent.width
+
+ emitRate: 350
+ lifeSpan: 3500
+
+ acceleration: PointDirection { y: -17; xVariation: 3 }
+ velocity: PointDirection {xVariation: 3}
+
+ size: 24
+ sizeVariation: 8
+ endSize: 4
+ }
+
+ TrailEmitter {
+ id: fireSmoke
+ group: "B"
+ system: particles
+ follow: "C"
+ width: root.width
+ height: root.height - 68
+
+ emitRatePerParticle: 1
+ lifeSpan: 2000
+
+ velocity: PointDirection {y:-17*6; yVariation: -17; xVariation: 3}
+ acceleration: PointDirection {xVariation: 3}
+
+ size: 36
+ sizeVariation: 8
+ endSize: 16
+ }
+
+ TrailEmitter {
+ id: fireballFlame
+ anchors.fill: parent
+ system: particles
+ group: "D"
+ follow: "E"
+
+ emitRatePerParticle: 120
+ lifeSpan: 180
+ emitWidth: TrailEmitter.ParticleSize
+ emitHeight: TrailEmitter.ParticleSize
+ emitShape: EllipseShape{}
+
+ size: 16
+ sizeVariation: 4
+ endSize: 4
+ }
+
+ TrailEmitter {
+ id: fireballSmoke
+ anchors.fill: parent
+ system: particles
+ group: "A"
+ follow: "E"
+
+ emitRatePerParticle: 128
+ lifeSpan: 2400
+ emitWidth: TrailEmitter.ParticleSize
+ emitHeight: TrailEmitter.ParticleSize
+ emitShape: EllipseShape{}
+
+ velocity: PointDirection {yVariation: 16; xVariation: 16}
+ acceleration: PointDirection {y: -16}
+
+ size: 24
+ sizeVariation: 8
+ endSize: 8
+ }
+
+ Emitter {
+ id: balls
+ system: particles
+ group: "E"
+
+ y: parent.height
+ width: parent.width
+
+ emitRate: 2
+ lifeSpan: 7000
+
+ velocity: PointDirection {y:-17*4*2; xVariation: 6*6}
+ acceleration: PointDirection {y: 17*2; xVariation: 6*6}
+
+ size: 8
+ sizeVariation: 4
+ }
+
+ Turbulence { //A bit of turbulence makes the smoke look better
+ anchors.fill: parent
+ groups: ["A","B"]
+ strength: 32
+ system: particles
+ }
+ }
+}
+
diff --git a/basicsuite/qt5-particlesdemo/content/velocityfrommotion.qml b/basicsuite/qt5-particlesdemo/content/velocityfrommotion.qml
new file mode 100644
index 0000000..280d8bf
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/content/velocityfrommotion.qml
@@ -0,0 +1,312 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Particles 2.0
+
+Rectangle {
+
+ id: root
+
+ height: 540
+ width: 360
+
+ gradient: Gradient {
+ GradientStop { position: 0; color: "#000020" }
+ GradientStop { position: 1; color: "#000000" }
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: root
+ }
+
+ ParticleSystem { id: sys1 }
+ ImageParticle {
+ system: sys1
+ source: "../images/particle.png"
+ color: "cyan"
+ alpha: 0
+ SequentialAnimation on color {
+ loops: Animation.Infinite
+ ColorAnimation {
+ from: "cyan"
+ to: "magenta"
+ duration: 1000
+ }
+ ColorAnimation {
+ from: "magenta"
+ to: "blue"
+ duration: 2000
+ }
+ ColorAnimation {
+ from: "blue"
+ to: "violet"
+ duration: 2000
+ }
+ ColorAnimation {
+ from: "violet"
+ to: "cyan"
+ duration: 2000
+ }
+ }
+ colorVariation: 0.3
+ }
+ //! [0]
+ Emitter {
+ id: trailsNormal
+ system: sys1
+
+ emitRate: 500
+ lifeSpan: 2000
+
+ y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
+ x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
+
+ velocity: PointDirection {xVariation: 4; yVariation: 4;}
+ acceleration: PointDirection {xVariation: 10; yVariation: 10;}
+ velocityFromMovement: 8
+
+ size: 8
+ sizeVariation: 4
+ }
+ //! [0]
+ ParticleSystem { id: sys2 }
+ ImageParticle {
+ color: "cyan"
+ system: sys2
+ alpha: 0
+ SequentialAnimation on color {
+ loops: Animation.Infinite
+ ColorAnimation {
+ from: "magenta"
+ to: "cyan"
+ duration: 1000
+ }
+ ColorAnimation {
+ from: "cyan"
+ to: "magenta"
+ duration: 2000
+ }
+ }
+ colorVariation: 0.5
+ source: "../images/star.png"
+ }
+ Emitter {
+ id: trailsStars
+ system: sys2
+
+ emitRate: 100
+ lifeSpan: 2200
+
+
+ y: mouseArea.pressed ? mouseArea.mouseY : circle.cy
+ x: mouseArea.pressed ? mouseArea.mouseX : circle.cx
+
+ velocity: PointDirection {xVariation: 4; yVariation: 4;}
+ acceleration: PointDirection {xVariation: 10; yVariation: 10;}
+ velocityFromMovement: 8
+
+ size: 22
+ sizeVariation: 4
+ }
+ ParticleSystem { id: sys3; }
+ ImageParticle {
+ source: "../images/particle.png"
+ system: sys3
+ color: "orange"
+ alpha: 0
+ SequentialAnimation on color {
+ loops: Animation.Infinite
+ ColorAnimation {
+ from: "red"
+ to: "green"
+ duration: 2000
+ }
+ ColorAnimation {
+ from: "green"
+ to: "red"
+ duration: 2000
+ }
+ }
+
+ colorVariation: 0.2
+
+ }
+ Emitter {
+ id: trailsNormal2
+ system: sys3
+
+ emitRate: 300
+ lifeSpan: 2000
+
+ y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
+ x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
+
+ velocityFromMovement: 16
+
+ velocity: PointDirection {xVariation: 4; yVariation: 4;}
+ acceleration: PointDirection {xVariation: 10; yVariation: 10;}
+
+ size: 12
+ sizeVariation: 4
+ }
+ ParticleSystem { id: sys4; }
+ ImageParticle {
+ system: sys4
+ source: "../images/star.png"
+ color: "green"
+ alpha: 0
+ SequentialAnimation on color {
+ loops: Animation.Infinite
+ ColorAnimation {
+ from: "green"
+ to: "red"
+ duration: 2000
+ }
+ ColorAnimation {
+ from: "red"
+ to: "green"
+ duration: 2000
+ }
+ }
+
+ colorVariation: 0.5
+ }
+ Emitter {
+ id: trailsStars2
+ system: sys4
+
+ emitRate: 50
+ lifeSpan: 2200
+
+
+ y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy
+ x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx
+
+ velocityFromMovement: 16
+ velocity: PointDirection {xVariation: 2; yVariation: 2;}
+ acceleration: PointDirection {xVariation: 10; yVariation: 10;}
+
+ size: 22
+ sizeVariation: 4
+ }
+
+
+
+ color: "white"
+
+ Item {
+ id: circle
+ //anchors.fill: parent
+ property real radius: 0
+ property real dx: root.width / 2
+ property real dy: root.height / 2
+ property real cx: radius * Math.sin(percent*6.283185307179) + dx
+ property real cy: radius * Math.cos(percent*6.283185307179) + dy
+ property real percent: 0
+
+ SequentialAnimation on percent {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ duration: 1000
+ from: 1
+ to: 0
+ loops: 8
+ }
+ NumberAnimation {
+ duration: 1000
+ from: 0
+ to: 1
+ loops: 8
+ }
+
+ }
+
+ SequentialAnimation on radius {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation {
+ duration: 4000
+ from: 0
+ to: 100
+ }
+ NumberAnimation {
+ duration: 4000
+ from: 100
+ to: 0
+ }
+ }
+ }
+
+ Item {
+ id: circle3
+ property real radius: 100
+ property real dx: root.width / 2
+ property real dy: root.height / 2
+ property real cx: radius * Math.sin(percent*6.283185307179) + dx
+ property real cy: radius * Math.cos(percent*6.283185307179) + dy
+ property real percent: 0
+
+ SequentialAnimation on percent {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation { from: 0.0; to: 1 ; duration: 10000; }
+ }
+ }
+
+ Item {
+ id: circle2
+ property real radius: 30
+ property real dx: circle3.cx
+ property real dy: circle3.cy
+ property real cx: radius * Math.sin(percent*6.283185307179) + dx
+ property real cy: radius * Math.cos(percent*6.283185307179) + dy
+ property real percent: 0
+
+ SequentialAnimation on percent {
+ loops: Animation.Infinite
+ running: true
+ NumberAnimation { from: 0.0; to: 1 ; duration: 1000; }
+ }
+ }
+
+}
diff --git a/basicsuite/Qt5 Particles Demo/description.txt b/basicsuite/qt5-particlesdemo/description.txt
index 6fd5320..6fd5320 100644
--- a/basicsuite/Qt5 Particles Demo/description.txt
+++ b/basicsuite/qt5-particlesdemo/description.txt
diff --git a/basicsuite/Qt5 Particles Demo/doc/images/qml-emitters-example.png b/basicsuite/qt5-particlesdemo/doc/images/qml-emitters-example.png
index 0025afd..0025afd 100644
--- a/basicsuite/Qt5 Particles Demo/doc/images/qml-emitters-example.png
+++ b/basicsuite/qt5-particlesdemo/doc/images/qml-emitters-example.png
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/doc/src/emitters.qdoc b/basicsuite/qt5-particlesdemo/doc/src/emitters.qdoc
new file mode 100644
index 0000000..b65f933
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/doc/src/emitters.qdoc
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: http://www.gnu.org/copyleft/fdl.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+/*!
+ \title QtQuick Particles Emitters
+ \example qt5-particlesdemo
+ \ingroup b2qt-demos
+ \brief This is a collection of examples using Emitters in the QML particle system.
+
+ \image b2qt-demo-qt5-particlesdemo.jpg
+
+ This is a collection of small QML examples relating to using Emitters in the particle system.
+ Each example is a small QML file emphasizing a particular element or feature.
+
+ Velocity from motion gives the effect of strong particle motion through primarily moving the emitters:
+ \snippet qt5-particlesdemo/content/velocityfrommotion.qml 0
+
+ Burst and pulse calls the burst and pulse methods on two idential emitters.
+ \snippet qt5-particlesdemo/content/burstandpulse.qml 0
+ Note how burst takes an argument of number of particles to emit, and pulse takes an argument of number of milliseconds to emit for.
+ This gives a slightly different behaviour, which is easy to see in this example.
+
+ Custom Emitter connects to the emitParticles signal to set arbitrary values on particle data as they're emitted;
+ \snippet qt5-particlesdemo/content/customemitter.qml 0
+ This is used to emit curving particles in six rotating spokes.
+
+ Emit mask sets an image mask on the Emitter, to emit out of an arbitrary shape.
+ \snippet qt5-particlesdemo/content/emitmask.qml 0
+
+ Maximum emitted emits no more than a certain number of particles at a time. This example makes it easy to see what happens when the limit is reached.
+
+ Shape and Direction emits particles out of an unfilled Ellipse shape, using a TargetDirection
+ \snippet qt5-particlesdemo/content/shapeanddirection.qml 0
+ This sends the particles towards the center of the ellipse with proportional speed, keeping the ellipse outline as they move to the center.
+
+ TrailEmitter uses that element to add smoke particles to trail the fire particles in the scene.
+ \snippet qt5-particlesdemo/content/customemitter.qml 0
+
+*/
diff --git a/basicsuite/Qt5 Particles Demo/emitters.pro b/basicsuite/qt5-particlesdemo/emitters.pro
index c5d8b8b..c5d8b8b 100644
--- a/basicsuite/Qt5 Particles Demo/emitters.pro
+++ b/basicsuite/qt5-particlesdemo/emitters.pro
diff --git a/basicsuite/Qt5 Particles Demo/emitters.qmlproject b/basicsuite/qt5-particlesdemo/emitters.qmlproject
index 5379aac..5379aac 100644
--- a/basicsuite/Qt5 Particles Demo/emitters.qmlproject
+++ b/basicsuite/qt5-particlesdemo/emitters.qmlproject
diff --git a/basicsuite/Qt5 Particles Demo/emitters.qrc b/basicsuite/qt5-particlesdemo/emitters.qrc
index 708c868..708c868 100644
--- a/basicsuite/Qt5 Particles Demo/emitters.qrc
+++ b/basicsuite/qt5-particlesdemo/emitters.qrc
diff --git a/basicsuite/qt5-particlesdemo/exclude.txt b/basicsuite/qt5-particlesdemo/exclude.txt
new file mode 100644
index 0000000..0702cb5
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/exclude.txt
@@ -0,0 +1 @@
+all
diff --git a/basicsuite/Qt5 Particles Demo/images/_explo.png b/basicsuite/qt5-particlesdemo/images/_explo.png
index 4297245..4297245 100644
--- a/basicsuite/Qt5 Particles Demo/images/_explo.png
+++ b/basicsuite/qt5-particlesdemo/images/_explo.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/backgroundLeaves.jpg b/basicsuite/qt5-particlesdemo/images/backgroundLeaves.jpg
index 08be167..08be167 100755
--- a/basicsuite/Qt5 Particles Demo/images/backgroundLeaves.jpg
+++ b/basicsuite/qt5-particlesdemo/images/backgroundLeaves.jpg
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/bear_tiles.png b/basicsuite/qt5-particlesdemo/images/bear_tiles.png
index 6bbb2a9..6bbb2a9 100644
--- a/basicsuite/Qt5 Particles Demo/images/bear_tiles.png
+++ b/basicsuite/qt5-particlesdemo/images/bear_tiles.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/candle.png b/basicsuite/qt5-particlesdemo/images/candle.png
index 8fa3193..8fa3193 100644
--- a/basicsuite/Qt5 Particles Demo/images/candle.png
+++ b/basicsuite/qt5-particlesdemo/images/candle.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/colortable.png b/basicsuite/qt5-particlesdemo/images/colortable.png
index a62ceeb..a62ceeb 100644
--- a/basicsuite/Qt5 Particles Demo/images/colortable.png
+++ b/basicsuite/qt5-particlesdemo/images/colortable.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/finalfrontier.png b/basicsuite/qt5-particlesdemo/images/finalfrontier.png
index 2ba1815..2ba1815 100644
--- a/basicsuite/Qt5 Particles Demo/images/finalfrontier.png
+++ b/basicsuite/qt5-particlesdemo/images/finalfrontier.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/flower.png b/basicsuite/qt5-particlesdemo/images/flower.png
index b5c6062..b5c6062 100644
--- a/basicsuite/Qt5 Particles Demo/images/flower.png
+++ b/basicsuite/qt5-particlesdemo/images/flower.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/matchmask.png b/basicsuite/qt5-particlesdemo/images/matchmask.png
index e575875..e575875 100644
--- a/basicsuite/Qt5 Particles Demo/images/matchmask.png
+++ b/basicsuite/qt5-particlesdemo/images/matchmask.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/meteor.png b/basicsuite/qt5-particlesdemo/images/meteor.png
index e8c368a..e8c368a 100644
--- a/basicsuite/Qt5 Particles Demo/images/meteor.png
+++ b/basicsuite/qt5-particlesdemo/images/meteor.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/meteor_explo.png b/basicsuite/qt5-particlesdemo/images/meteor_explo.png
index e659bfe..e659bfe 100644
--- a/basicsuite/Qt5 Particles Demo/images/meteor_explo.png
+++ b/basicsuite/qt5-particlesdemo/images/meteor_explo.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/meteors.png b/basicsuite/qt5-particlesdemo/images/meteors.png
index bada8a1..bada8a1 100644
--- a/basicsuite/Qt5 Particles Demo/images/meteors.png
+++ b/basicsuite/qt5-particlesdemo/images/meteors.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/nullRock.png b/basicsuite/qt5-particlesdemo/images/nullRock.png
index 4076327..4076327 100644
--- a/basicsuite/Qt5 Particles Demo/images/nullRock.png
+++ b/basicsuite/qt5-particlesdemo/images/nullRock.png
Binary files differ
diff --git a/basicsuite/Qt5Everywhere/demos/particledemo/particle.png b/basicsuite/qt5-particlesdemo/images/particle.png
index 5c83896..5c83896 100644
--- a/basicsuite/Qt5Everywhere/demos/particledemo/particle.png
+++ b/basicsuite/qt5-particlesdemo/images/particle.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/particle2.png b/basicsuite/qt5-particlesdemo/images/particle2.png
index 36349c6..36349c6 100644
--- a/basicsuite/Qt5 Particles Demo/images/particle2.png
+++ b/basicsuite/qt5-particlesdemo/images/particle2.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/particle3.png b/basicsuite/qt5-particlesdemo/images/particle3.png
index 905d8f3..905d8f3 100644
--- a/basicsuite/Qt5 Particles Demo/images/particle3.png
+++ b/basicsuite/qt5-particlesdemo/images/particle3.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/particle4.png b/basicsuite/qt5-particlesdemo/images/particle4.png
index bc95b70..bc95b70 100644
--- a/basicsuite/Qt5 Particles Demo/images/particle4.png
+++ b/basicsuite/qt5-particlesdemo/images/particle4.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/particleA.png b/basicsuite/qt5-particlesdemo/images/particleA.png
index c63acde..c63acde 100644
--- a/basicsuite/Qt5 Particles Demo/images/particleA.png
+++ b/basicsuite/qt5-particlesdemo/images/particleA.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/portal_bg.png b/basicsuite/qt5-particlesdemo/images/portal_bg.png
index 3c59eea..3c59eea 100644
--- a/basicsuite/Qt5 Particles Demo/images/portal_bg.png
+++ b/basicsuite/qt5-particlesdemo/images/portal_bg.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/realLeaf1.png b/basicsuite/qt5-particlesdemo/images/realLeaf1.png
index 6cabf29..6cabf29 100644
--- a/basicsuite/Qt5 Particles Demo/images/realLeaf1.png
+++ b/basicsuite/qt5-particlesdemo/images/realLeaf1.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/realLeaf2.png b/basicsuite/qt5-particlesdemo/images/realLeaf2.png
index bfeca86..bfeca86 100644
--- a/basicsuite/Qt5 Particles Demo/images/realLeaf2.png
+++ b/basicsuite/qt5-particlesdemo/images/realLeaf2.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/realLeaf3.png b/basicsuite/qt5-particlesdemo/images/realLeaf3.png
index b1071e8..b1071e8 100644
--- a/basicsuite/Qt5 Particles Demo/images/realLeaf3.png
+++ b/basicsuite/qt5-particlesdemo/images/realLeaf3.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/realLeaf4.png b/basicsuite/qt5-particlesdemo/images/realLeaf4.png
index d61d53d..d61d53d 100644
--- a/basicsuite/Qt5 Particles Demo/images/realLeaf4.png
+++ b/basicsuite/qt5-particlesdemo/images/realLeaf4.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/rocket.png b/basicsuite/qt5-particlesdemo/images/rocket.png
index a171610..a171610 100644
--- a/basicsuite/Qt5 Particles Demo/images/rocket.png
+++ b/basicsuite/qt5-particlesdemo/images/rocket.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/rocket2.png b/basicsuite/qt5-particlesdemo/images/rocket2.png
index 7110f8f..7110f8f 100644
--- a/basicsuite/Qt5 Particles Demo/images/rocket2.png
+++ b/basicsuite/qt5-particlesdemo/images/rocket2.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/sizeInOut.png b/basicsuite/qt5-particlesdemo/images/sizeInOut.png
index 0a306ea..0a306ea 100644
--- a/basicsuite/Qt5 Particles Demo/images/sizeInOut.png
+++ b/basicsuite/qt5-particlesdemo/images/sizeInOut.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/snowflake.png b/basicsuite/qt5-particlesdemo/images/snowflake.png
index 490887a..490887a 100644
--- a/basicsuite/Qt5 Particles Demo/images/snowflake.png
+++ b/basicsuite/qt5-particlesdemo/images/snowflake.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/sparkleSize.png b/basicsuite/qt5-particlesdemo/images/sparkleSize.png
index 7520565..7520565 100644
--- a/basicsuite/Qt5 Particles Demo/images/sparkleSize.png
+++ b/basicsuite/qt5-particlesdemo/images/sparkleSize.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/star.png b/basicsuite/qt5-particlesdemo/images/star.png
index 0d592cf..0d592cf 100644
--- a/basicsuite/Qt5 Particles Demo/images/star.png
+++ b/basicsuite/qt5-particlesdemo/images/star.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/starfish_0.png b/basicsuite/qt5-particlesdemo/images/starfish_0.png
index 8747f02..8747f02 100644
--- a/basicsuite/Qt5 Particles Demo/images/starfish_0.png
+++ b/basicsuite/qt5-particlesdemo/images/starfish_0.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/starfish_1.png b/basicsuite/qt5-particlesdemo/images/starfish_1.png
index 1f3f159..1f3f159 100644
--- a/basicsuite/Qt5 Particles Demo/images/starfish_1.png
+++ b/basicsuite/qt5-particlesdemo/images/starfish_1.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/starfish_2.png b/basicsuite/qt5-particlesdemo/images/starfish_2.png
index c6c7e5a..c6c7e5a 100644
--- a/basicsuite/Qt5 Particles Demo/images/starfish_2.png
+++ b/basicsuite/qt5-particlesdemo/images/starfish_2.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/starfish_3.png b/basicsuite/qt5-particlesdemo/images/starfish_3.png
index 307a89f..307a89f 100644
--- a/basicsuite/Qt5 Particles Demo/images/starfish_3.png
+++ b/basicsuite/qt5-particlesdemo/images/starfish_3.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/starfish_4.png b/basicsuite/qt5-particlesdemo/images/starfish_4.png
index d61c265..d61c265 100644
--- a/basicsuite/Qt5 Particles Demo/images/starfish_4.png
+++ b/basicsuite/qt5-particlesdemo/images/starfish_4.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/images/starfish_mask.png b/basicsuite/qt5-particlesdemo/images/starfish_mask.png
index 2ef74f9..2ef74f9 100644
--- a/basicsuite/Qt5 Particles Demo/images/starfish_mask.png
+++ b/basicsuite/qt5-particlesdemo/images/starfish_mask.png
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/main.cpp b/basicsuite/qt5-particlesdemo/main.cpp
new file mode 100644
index 0000000..15cb10b
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/main.cpp
@@ -0,0 +1,41 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "../../shared/shared.h"
+DECLARATIVE_EXAMPLE_MAIN(particles/emitters/emitters)
diff --git a/basicsuite/qt5-particlesdemo/main.qml b/basicsuite/qt5-particlesdemo/main.qml
new file mode 100644
index 0000000..d996b7b
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/main.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "shared" as Examples
+
+Item {
+ height: 480
+ width: 320
+ Examples.LauncherList {
+ id: ll
+ anchors.fill: parent
+ Component.onCompleted: {
+ addExample("Velocity from Motion", "Particle motion just by moving emitters", Qt.resolvedUrl("content/velocityfrommotion.qml"));
+ addExample("Burst and Pulse", "Emit imperatively", Qt.resolvedUrl("content/burstandpulse.qml"));
+ addExample("Custom Emitter", "Custom starting state", Qt.resolvedUrl("content/customemitter.qml"));
+ addExample("Emit Mask", "Emit arbitrary shapes", Qt.resolvedUrl("content/emitmask.qml"));
+ addExample("Maximum Emitted", "Put a limit on emissions", Qt.resolvedUrl("content/maximumemitted.qml"));
+ addExample("Shape and Direction", "Creates a portal effect", Qt.resolvedUrl("content/shapeanddirection.qml"));
+ addExample("TrailEmitter", "Emit from other particles", Qt.resolvedUrl("content/trailemitter.qml"));
+ }
+ }
+}
diff --git a/basicsuite/Qt5 Particles Demo/preview_l.jpg b/basicsuite/qt5-particlesdemo/preview_l.jpg
index fa0db59..fa0db59 100644
--- a/basicsuite/Qt5 Particles Demo/preview_l.jpg
+++ b/basicsuite/qt5-particlesdemo/preview_l.jpg
Binary files differ
diff --git a/basicsuite/qt5-particlesdemo/qt5-particlesdemo.pro b/basicsuite/qt5-particlesdemo/qt5-particlesdemo.pro
new file mode 100644
index 0000000..29afc4f
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/qt5-particlesdemo.pro
@@ -0,0 +1,15 @@
+TARGET = qt5-particlesdemo
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ content \
+ images \
+ shared
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content
diff --git a/basicsuite/qt5-particlesdemo/shared/Button.qml b/basicsuite/qt5-particlesdemo/shared/Button.qml
new file mode 100644
index 0000000..0f85e75
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/shared/Button.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: container
+
+ property string text: "Button"
+ property string subText: ""
+ signal clicked
+ property alias containsMouse: mouseArea.containsMouse
+ property alias pressed: mouseArea.pressed
+ implicitHeight: col.height
+ height: implicitHeight
+ width: buttonLabel.width + 20
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ onClicked: container.clicked()
+ hoverEnabled: true
+ }
+
+ Column {
+ spacing: 2
+ id: col
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ Text {
+ id: buttonLabel
+ anchors.left: parent.left
+ anchors.leftMargin: 10
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+ text: container.text
+ color: "black"
+ font.pixelSize: 22
+ wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ styleColor: "white"
+ style: Text.Raised
+
+ }
+ Text {
+ id: buttonLabel2
+ anchors.left: parent.left
+ anchors.leftMargin: 10
+ text: container.subText
+ wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ color: "#666"
+ font.pixelSize: 12
+ }
+ }
+}
diff --git a/basicsuite/qt5-particlesdemo/shared/LauncherList.qml b/basicsuite/qt5-particlesdemo/shared/LauncherList.qml
new file mode 100644
index 0000000..d18212a
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/shared/LauncherList.qml
@@ -0,0 +1,148 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Item {
+ //model is a list of {"name":"somename", "url":"file:///some/url/mainfile.qml"}
+ //function used to add to model A) to enforce scheme B) to allow Qt.resolveUrl in url assignments
+
+ function addExample(name, desc, url)
+ {
+ myModel.append({"name":name, "description":desc, "url":url})
+ }
+ function hideExample()
+ {
+ ei.visible = false;
+ }
+
+ ListView {
+ clip: true
+ delegate: SimpleLauncherDelegate{exampleItem: ei}
+ model: ListModel {id:myModel}
+ anchors.fill: parent
+ visible: !ei.visible
+ }
+
+ Item {
+ id: ei
+ visible: false
+ clip: true
+ property url exampleUrl
+ onExampleUrlChanged: visible = (exampleUrl == '' ? false : true); //Setting exampleUrl automatically shows example
+ anchors.fill: parent
+ anchors.bottomMargin: 40
+ MouseArea{
+ anchors.fill: parent
+ enabled: ei.visible
+ //Eats mouse events
+ }
+ Loader{
+ focus: true
+ source: ei.exampleUrl
+ anchors.fill: parent
+ }
+ }
+ Rectangle {
+ id: bar
+ visible: ei.visible
+ anchors.bottom: parent.bottom
+ width: parent.width
+ height: 40
+
+ Rectangle {
+ height: 1
+ color: "#ccc"
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+
+ Rectangle {
+ height: 1
+ color: "#fff"
+ anchors.top: parent.top
+ anchors.topMargin: 1
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+
+ gradient: Gradient {
+ GradientStop { position: 0 ; color: "#eee" }
+ GradientStop { position: 1 ; color: "#ccc" }
+ }
+
+ MouseArea{
+ anchors.fill: parent
+ enabled: ei.visible
+ //Eats mouse events
+ }
+
+ Image {
+ id: back
+ source: "images/back.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.verticalCenterOffset: 2
+ anchors.left: parent.left
+ anchors.leftMargin: 16
+
+ MouseArea {
+ id: mouse
+ hoverEnabled: true
+ anchors.centerIn: parent
+ width: 38
+ height: 31
+ anchors.verticalCenterOffset: -1
+ onClicked: ei.exampleUrl = ""
+ Rectangle {
+ anchors.fill: parent
+ opacity: mouse.pressed ? 1 : 0
+ Behavior on opacity { NumberAnimation{ duration: 100 }}
+ gradient: Gradient {
+ GradientStop { position: 0 ; color: "#22000000" }
+ GradientStop { position: 0.2 ; color: "#11000000" }
+ }
+ border.color: "darkgray"
+ antialiasing: true
+ radius: 4
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/Qt5 Particles Demo/shared/README b/basicsuite/qt5-particlesdemo/shared/README
index bf16f23..bf16f23 100644
--- a/basicsuite/Qt5 Particles Demo/shared/README
+++ b/basicsuite/qt5-particlesdemo/shared/README
diff --git a/basicsuite/qt5-particlesdemo/shared/SimpleLauncherDelegate.qml b/basicsuite/qt5-particlesdemo/shared/SimpleLauncherDelegate.qml
new file mode 100644
index 0000000..2e9138b
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/shared/SimpleLauncherDelegate.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+
+Rectangle {
+ id: container
+ property Item exampleItem
+ width: ListView.view.width
+ height: button.implicitHeight + 22
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ Behavior on color {ColorAnimation { duration: 100 }}
+ color: button.pressed ? "#e0e0e0" : "#fff"
+ }
+ GradientStop {
+ position: 1
+ Behavior on color {ColorAnimation { duration: 100 }}
+ color: button.pressed ? "#e0e0e0" : button.containsMouse ? "#f5f5f5" : "#eee"
+ }
+ }
+
+ Image {
+ id: image
+ opacity: 0.7
+ Behavior on opacity {NumberAnimation {duration: 100}}
+ source: "images/next.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: 16
+ }
+
+ Button {
+ id: button
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.right:image.left
+ text: name
+ subText: description
+ onClicked: exampleItem.exampleUrl = url;
+ }
+
+ Rectangle {
+ height: 1
+ color: "#ccc"
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+}
diff --git a/basicsuite/Qt5 Particles Demo/shared/images/back.png b/basicsuite/qt5-particlesdemo/shared/images/back.png
index 5340209..5340209 100644
--- a/basicsuite/Qt5 Particles Demo/shared/images/back.png
+++ b/basicsuite/qt5-particlesdemo/shared/images/back.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/shared/images/next.png b/basicsuite/qt5-particlesdemo/shared/images/next.png
index cdef8db..cdef8db 100644
--- a/basicsuite/Qt5 Particles Demo/shared/images/next.png
+++ b/basicsuite/qt5-particlesdemo/shared/images/next.png
Binary files differ
diff --git a/basicsuite/Qt5 Particles Demo/shared/qmldir b/basicsuite/qt5-particlesdemo/shared/qmldir
index 2f1e56a..2f1e56a 100644
--- a/basicsuite/Qt5 Particles Demo/shared/qmldir
+++ b/basicsuite/qt5-particlesdemo/shared/qmldir
diff --git a/basicsuite/Qt5 Particles Demo/shared/quick_shared.qrc b/basicsuite/qt5-particlesdemo/shared/quick_shared.qrc
index 9fc114d..9fc114d 100644
--- a/basicsuite/Qt5 Particles Demo/shared/quick_shared.qrc
+++ b/basicsuite/qt5-particlesdemo/shared/quick_shared.qrc
diff --git a/basicsuite/qt5-particlesdemo/shared/shared.h b/basicsuite/qt5-particlesdemo/shared/shared.h
new file mode 100644
index 0000000..9370758
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/shared/shared.h
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QDir>
+#include <QGuiApplication>
+#include <QQmlEngine>
+#include <QQuickView>
+#define DECLARATIVE_EXAMPLE_MAIN(NAME) int main(int argc, char* argv[]) \
+{\
+ QGuiApplication app(argc,argv);\
+ QQuickView view;\
+ view.connect(view.engine(), SIGNAL(quit()), &app, SLOT(quit()));\
+ view.setSource(QUrl("qrc:///" #NAME ".qml")); \
+ if (QGuiApplication::platformName() == QLatin1String("qnx") || \
+ QGuiApplication::platformName() == QLatin1String("eglfs")) {\
+ view.setResizeMode(QQuickView::SizeRootObjectToView);\
+ view.showFullScreen();\
+ } else {\
+ view.show();\
+ }\
+ return app.exec();\
+}
diff --git a/basicsuite/Qt5 Particles Demo/shared/shared.qrc b/basicsuite/qt5-particlesdemo/shared/shared.qrc
index 4ac856e..4ac856e 100644
--- a/basicsuite/Qt5 Particles Demo/shared/shared.qrc
+++ b/basicsuite/qt5-particlesdemo/shared/shared.qrc
diff --git a/basicsuite/qt5-particlesdemo/title.txt b/basicsuite/qt5-particlesdemo/title.txt
new file mode 100644
index 0000000..8abe769
--- /dev/null
+++ b/basicsuite/qt5-particlesdemo/title.txt
@@ -0,0 +1 @@
+Qt5 Particles Demo
diff --git a/basicsuite/sensorexplorer/app.pro b/basicsuite/sensorexplorer/app.pro
new file mode 100644
index 0000000..bc968c2
--- /dev/null
+++ b/basicsuite/sensorexplorer/app.pro
@@ -0,0 +1,11 @@
+TARGET = sensorexplorer
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = *.qml
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/sensorexplorer/description.txt b/basicsuite/sensorexplorer/description.txt
new file mode 100644
index 0000000..606dc9b
--- /dev/null
+++ b/basicsuite/sensorexplorer/description.txt
@@ -0,0 +1 @@
+This example provides a list of all available sensors installed on the system for which Qt has a backend. Start a sensor to see how values change depending from environment and user-device interaction.
diff --git a/basicsuite/sensorexplorer/doc/src/sensor_explorer.qdoc b/basicsuite/sensorexplorer/doc/src/sensor_explorer.qdoc
new file mode 100644
index 0000000..c9921a1
--- /dev/null
+++ b/basicsuite/sensorexplorer/doc/src/sensor_explorer.qdoc
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: http://www.gnu.org/copyleft/fdl.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example sensorexplorer
+ \title Sensor Explorer
+ \brief The Sensor Explorer example demonstrates how to read the meta-data of available sensors.
+ \ingroup b2qt-demos
+
+ \image b2qt-demo-sensorexplorer.jpg
+
+ This example provides a list of all available sensors installed on the system for which Qt has
+ a backend. Start a sensor to see how values change depending from environment and user-device
+ interaction.
+
+ This example is divided into two parts:
+
+ \list
+ \li A C++ plug-in that provides QML alternatives for QSensorExplorer, QPropertyInfo and the QSensorItem classes.
+ \li A QML Application that uses the QML alternatives to read the sensors meta-data and present it.
+ \endlist
+
+
+ This is a pure QML application that can be run from Qt Creator or directly using the
+ \c qmlscene binary. You should install the other C++ plug-in before trying to run
+ this example, otherwise it will not find its dependencies.
+
+ \code
+ qmlscene main.qml
+ \endcode
+
+ To write a QML application that will use the Explorer QML type you need to do the following steps:
+
+ Import the Explorer 1.0 declarative plugin:
+
+ \snippet sensorexplorer/main.qml 0
+
+ Create a SensorExplorer QML item:
+
+ \snippet sensorexplorer/main.qml 1
+
+ You can retrieve a list of all available sensors using the SensorExplorer:
+
+ \snippet sensorexplorer/main.qml 2
+
+ To retrieve the properties of a SensorItem use:
+
+ \snippet sensorexplorer/main.qml 3
+
+ Changing a property value can be done like:
+
+ \snippet sensorexplorer/main.qml 4
+
+ Starting and stopping a sensor can be done like:
+
+ \snippet sensorexplorer/main.qml 5
+*/
+
diff --git a/basicsuite/sensorexplorer/exclude.txt b/basicsuite/sensorexplorer/exclude.txt
new file mode 100644
index 0000000..0702cb5
--- /dev/null
+++ b/basicsuite/sensorexplorer/exclude.txt
@@ -0,0 +1 @@
+all
diff --git a/basicsuite/sensorexplorer/imports/explorer.cpp b/basicsuite/sensorexplorer/imports/explorer.cpp
new file mode 100644
index 0000000..f9edc90
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/explorer.cpp
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "explorer.h"
+#include <QtCore/QDebug>
+#include <qsensor.h>
+#include <QMetaObject>
+#include <QMetaProperty>
+
+QT_BEGIN_NAMESPACE
+
+/*
+ \class QSensorExplorer
+ \brief The QSensorExplorer type provides an easy access for reading all avalaible sensors installed on the system.
+*/
+
+/*
+ Construct a QSensorExplorer object with parent \a parent
+*/
+QSensorExplorer::QSensorExplorer(QObject* parent)
+ : QObject(parent)
+ , _selectedSensorItem(0)
+{
+ loadSensors();
+}
+
+/*
+ Destructor of a QSensorExplorer
+*/
+QSensorExplorer::~QSensorExplorer()
+{
+}
+
+/*
+ Load all available sensors and store it in a list.
+*/
+void QSensorExplorer::loadSensors()
+{
+ _availableSensors.clear();
+ foreach (const QByteArray &type, QSensor::sensorTypes()) {
+ foreach (const QByteArray &identifier, QSensor::sensorsForType(type)) {
+ // Don't put in sensors we can't connect to
+ QSensor* sensor = new QSensor(type, this);
+ //sensor->setIdentifier(identifier);
+ if (!sensor->connectToBackend()) {
+ qWarning() << "Couldn't connect to" << sensor->description();
+ continue;
+ }
+ _availableSensors.append(new QSensorItem(sensor, this));
+ }
+ }
+ emit availableSensorsChanged();
+}
+
+/*
+ \fn QSensorExplorer::availableSensorsChanged()
+ Notifies the client if the list of the available sensors was changed
+*/
+
+/*
+ \property QSensorExplorer::availableSensors
+ Returns a list of all available sensor.
+*/
+QQmlListProperty<QSensorItem> QSensorExplorer::availableSensors()
+{
+ return QQmlListProperty<QSensorItem>(this,_availableSensors);
+}
+
+/*
+ \fn QSensorExplorer::selectedSensorItemChanged()
+ Notifies the client if the selected sensor has been changed
+*/
+
+/*
+ \property QSensorExplorer::selectedSensorItem
+ Returns the current selected sensor item.
+*/
+QSensorItem* QSensorExplorer::selectedSensorItem()
+{
+ return _selectedSensorItem;
+}
+
+/*
+ \fn QSensorExplorer::setSelectedSensorItem(QSensorItem* selitem)
+ Sets the QSensorItem \a selitem as the current selected QSensorItem.
+*/
+void QSensorExplorer::setSelectedSensorItem(QSensorItem* selitem)
+{
+ if (selitem && _selectedSensorItem != selitem) {
+ if (_selectedSensorItem)
+ _selectedSensorItem->unSelect();
+ _selectedSensorItem = selitem;
+ _selectedSensorItem->select();
+ emit selectedSensorItemChanged();
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/basicsuite/sensorexplorer/imports/explorer.h b/basicsuite/sensorexplorer/imports/explorer.h
new file mode 100644
index 0000000..d9d9546
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/explorer.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSEONSOREXPLORER_H
+#define QSEONSOREXPLORER_H
+
+#include <QtQml/QtQml>
+#include <QtQml/QQmlListProperty>
+#include "sensoritem.h"
+
+QT_BEGIN_NAMESPACE
+
+class QSensorExplorer : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QQmlListProperty<QSensorItem> availableSensors READ availableSensors NOTIFY availableSensorsChanged)
+ Q_PROPERTY(QSensorItem* selectedSensorItem READ selectedSensorItem WRITE setSelectedSensorItem NOTIFY selectedSensorItemChanged)
+public:
+ QSensorExplorer(QObject* parent = 0);
+ virtual ~QSensorExplorer();
+
+private:
+ QQmlListProperty<QSensorItem> availableSensors();
+ void loadSensors();
+ void setSelectedSensorItem(QSensorItem* selitem);
+ QSensorItem* selectedSensorItem();
+
+Q_SIGNALS:
+ void availableSensorsChanged();
+ void selectedSensorItemChanged();
+
+private:
+ QList<QSensorItem*> _availableSensors;
+ QSensorItem* _selectedSensorItem;
+};
+
+QT_END_NAMESPACE
+
+QML_DECLARE_TYPE(QSensorExplorer)
+
+#endif // QSEONSOREXPLORER_H
diff --git a/basicsuite/sensorexplorer/imports/imports.pro b/basicsuite/sensorexplorer/imports/imports.pro
new file mode 100644
index 0000000..41a5f18
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/imports.pro
@@ -0,0 +1,24 @@
+TEMPLATE = lib
+CONFIG += plugin
+
+TARGET = sensorexplorer
+
+QT += qml sensors
+
+SOURCES = main.cpp \
+ explorer.cpp \
+ sensoritem.cpp \
+ propertyinfo.cpp \
+
+HEADERS = explorer.h \
+ sensoritem.h \
+ propertyinfo.h \
+
+pluginfiles.files += \
+ qmldir \
+
+B2QT_DEPLOYPATH = /data/user/qt/qmlplugins/Explorer
+target.path += $$B2QT_DEPLOYPATH
+pluginfiles.path += $$B2QT_DEPLOYPATH
+
+INSTALLS += target pluginfiles
diff --git a/basicsuite/sensorexplorer/imports/main.cpp b/basicsuite/sensorexplorer/imports/main.cpp
new file mode 100644
index 0000000..3a8f506
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/main.cpp
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtQml/QQmlExtensionPlugin>
+#include <QtQml/QtQml>
+#include "explorer.h"
+
+QT_BEGIN_NAMESPACE
+
+class SensorExplorerDeclarativeModule : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface" FILE "plugin.json")
+public:
+ virtual void registerTypes(const char *uri)
+ {
+ Q_ASSERT(QLatin1String(uri) == QLatin1String("Explorer"));
+ qmlRegisterType<QSensorExplorer>(uri, 1, 0, "SensorExplorer");
+ qmlRegisterType<QSensorItem>(uri, 1, 0, "SensorItem");
+ qmlRegisterType<QPropertyInfo>(uri, 1, 0, "PropertyInfo");
+ }
+};
+
+QT_END_NAMESPACE
+
+#include "main.moc"
diff --git a/basicsuite/sensorexplorer/imports/plugin.json b/basicsuite/sensorexplorer/imports/plugin.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/plugin.json
@@ -0,0 +1 @@
+{}
diff --git a/basicsuite/sensorexplorer/imports/propertyinfo.cpp b/basicsuite/sensorexplorer/imports/propertyinfo.cpp
new file mode 100644
index 0000000..0481d4d
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/propertyinfo.cpp
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "sensoritem.h"
+#include <QtCore/QDebug>
+#include <QtSensors>
+
+QT_BEGIN_NAMESPACE
+
+/*
+ \class QPropertyInfo
+ \brief The QPropertyInfo type provides an easy access for reading and writing the property values.
+*/
+
+/*
+ Construct a QPropertyInfo object with parent \a parent
+*/
+QPropertyInfo::QPropertyInfo(QObject* parent)
+ : QObject(parent)
+ , _index(0)
+ , _isWriteable(false)
+ , _name("")
+ , _typeName("")
+ , _value("")
+{}
+
+/*
+ Construct a QPropertyInfo object with parent \a parent, property name \a name, property index \a index,
+ property write access \a writeable, property type \a typeName and property value \a value
+*/
+QPropertyInfo::QPropertyInfo(const QString& name, int index, bool writeable, const QString& typeName, const QString& value, QObject* parent)
+ : QObject(parent)
+ , _index(index)
+ , _isWriteable(writeable)
+ , _name(name)
+ , _typeName(typeName)
+ , _value(value)
+{}
+
+/*
+ \property QPropertyInfo::name
+ Returns the name of the property
+*/
+QString QPropertyInfo::name()
+{
+ return _name;
+}
+
+/*
+ \property QPropertyInfo::typeName
+ Returns the type of the property
+*/
+QString QPropertyInfo::typeName()
+{
+ return _typeName;
+}
+
+/*
+ \property QPropertyInfo::value
+ Returns the current value of the property
+*/
+QString QPropertyInfo::value()
+{
+ return _value;
+}
+
+/*
+ \fn void QPropertyInfo::valueChanged()
+ Signal that notifies the client if the property value was changed.
+*/
+
+/*
+ \fn QPropertyInfo::setValue(const QString& value)
+ Sets the value \a value of the property
+*/
+void QPropertyInfo::setValue(const QString& value)
+{
+ if (value != _value){
+ _value = value;
+ emit valueChanged();
+ }
+}
+
+/*
+ \fn QPropertyInfo::index()
+ Returns the meta-data index of the property
+*/
+int QPropertyInfo::index()
+{
+ return _index;
+}
+
+/*
+ \property QPropertyInfo::isWriteable
+ Returns true if the property is writeable false if property is read only
+*/
+bool QPropertyInfo::isWriteable()
+{
+ return _isWriteable;
+}
+
+QT_END_NAMESPACE
diff --git a/basicsuite/sensorexplorer/imports/propertyinfo.h b/basicsuite/sensorexplorer/imports/propertyinfo.h
new file mode 100644
index 0000000..72ce640
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/propertyinfo.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QPROPERTYINFO_H
+#define QPROPERTYINFO_H
+
+#include <QtQml/QtQml>
+#include <QtCore/QString>
+
+QT_BEGIN_NAMESPACE
+
+class QPropertyInfo : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name CONSTANT)
+ Q_PROPERTY(QString typeName READ typeName CONSTANT)
+ Q_PROPERTY(QString value READ value NOTIFY valueChanged)
+ Q_PROPERTY(bool isWriteable READ isWriteable CONSTANT)
+
+public:
+ QPropertyInfo(QObject* parent = 0);
+ QPropertyInfo(const QString& name, int index, bool writeable, const QString& typeName, const QString& value, QObject* parent=0);
+ QString name();
+ QString typeName();
+ QString value();
+ void setValue(const QString& value);
+ int index();
+ bool isWriteable();
+
+Q_SIGNALS:
+ void valueChanged();
+
+private:
+ int _index;
+ bool _isWriteable;
+ QString _name;
+ QString _typeName;
+ QString _value;
+};
+
+QT_END_NAMESPACE
+
+QML_DECLARE_TYPE(QPropertyInfo)
+
+#endif // QPROPERTYINFO_H
diff --git a/basicsuite/sensorexplorer/imports/qmldir b/basicsuite/sensorexplorer/imports/qmldir
new file mode 100644
index 0000000..ad67d81
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/qmldir
@@ -0,0 +1,2 @@
+module Explorer
+plugin sensorexplorer
diff --git a/basicsuite/sensorexplorer/imports/sensoritem.cpp b/basicsuite/sensorexplorer/imports/sensoritem.cpp
new file mode 100644
index 0000000..cd33549
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/sensoritem.cpp
@@ -0,0 +1,322 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "sensoritem.h"
+#include <QtCore/QDebug>
+#include <QtSensors>
+
+QT_BEGIN_NAMESPACE
+
+/*
+ \class QSensorItem
+ \brief The QSensorItem type provides information about the meta-data from a sensors installed on the system.
+*/
+
+/*
+ Construct a QSensorItem object with parent \a parent
+*/
+QSensorItem::QSensorItem(QObject* parent)
+ : QObject(parent)
+ , _qsensor(0)
+{
+}
+
+/*
+ Construct a QSensorItem object with QSensor \a sensor and parent \a parent
+*/
+QSensorItem::QSensorItem(QSensor* sensor, QObject* parent)
+ : QObject(parent)
+ , _qsensor(sensor)
+{
+}
+
+/*
+ Destructor of a QSensorItem
+*/
+QSensorItem::~QSensorItem()
+{
+}
+
+/*
+ \fn QSensorItem::startChanged()
+ Notifies the client if the sensors has changed its start active status
+*/
+
+/*
+ \property QSensorItem::start
+ This property starts or stops the sensor
+*/
+bool QSensorItem::start()
+{
+ return (_qsensor ? _qsensor->isActive() : false);
+}
+
+void QSensorItem::setStart(bool run)
+{
+ if (_qsensor)
+ _qsensor->setActive(run);
+}
+
+/*
+ \property QSensorItem::id
+ Returns the sensor id of the sensor item
+*/
+QString QSensorItem::id()
+{
+ return (_qsensor ? _qsensor->description() : "");
+}
+
+/*
+ Set the new value \a val to the QPropertyInfo object \a property
+*/
+void QSensorItem::changePropertyValue(QPropertyInfo* property, const QString& val)
+{
+ if (_qsensor && _sensorProperties.contains(property)){
+ if ( _qsensor->setProperty(property->name().toLatin1().constData(), QVariant(val)))
+ updateSensorPropertyValues();
+ else
+ qWarning() << "new property value couldn't be set";
+ }
+}
+
+/*
+ Reading the meta-data and activates the sensor.
+*/
+void QSensorItem::select()
+{
+ if (_sensorProperties.isEmpty()) {
+ // Probe the reading using Qt's meta-object facilities
+ //Read properties from reader
+ QSensorReading *reading = _qsensor->reading();
+ const QMetaObject *mo = reading->metaObject();
+ int firstProperty = QSensorReading::staticMetaObject.propertyOffset();
+
+ for (int i = firstProperty; i < mo->propertyCount(); ++i) {
+ QString typeName = QLatin1String(mo->property(i).typeName());
+ int crap = typeName.lastIndexOf("::");
+ if (crap != -1)
+ typeName = typeName.mid(crap + 2);
+
+ QPropertyInfo* pi = new QPropertyInfo(mo->property(i).name()
+ , i
+ , isWriteable(mo->property(i).name())
+ , typeName
+ , "-"
+ , this);
+ _readerProperties.append(pi);
+ }
+
+ //Read properties from sensor
+ const QMetaObject *mo1 = _qsensor->metaObject();
+ firstProperty = QSensorReading::staticMetaObject.propertyOffset();
+
+ for (int i = firstProperty; i < mo1->propertyCount(); ++i) {
+ QString propertyname = mo1->property(i).name();
+ if (ignoreProperty(propertyname))
+ continue;
+
+ QString typeName = QLatin1String(mo1->property(i).typeName());
+ int crap = typeName.lastIndexOf("::");
+ if (crap != -1)
+ typeName = typeName.mid(crap + 2);
+
+ QPropertyInfo* pi = new QPropertyInfo(propertyname
+ , i
+ , isWriteable(propertyname)
+ , typeName
+ , "-"
+ , this);
+ _sensorProperties.append(pi);
+ }
+ updateSensorPropertyValues();
+ connect(_qsensor, SIGNAL(readingChanged()), this, SLOT(sensorReadingChanged()));
+ }
+ connect(_qsensor, SIGNAL(activeChanged()), SIGNAL(startChanged()));
+}
+
+/*
+ Unselect the sensor by stopping the sensor.
+*/
+void QSensorItem::unSelect()
+{
+ _qsensor->stop();
+ disconnect(_qsensor, SIGNAL(activeChanged()), this , SIGNAL(startChanged()));
+}
+
+/*
+ Updates the property values from QSensor
+*/
+void QSensorItem::updateSensorPropertyValues()
+{
+ if (_qsensor){
+ const QMetaObject *mo = _qsensor->metaObject();
+ for (int i = 0; i < _sensorProperties.count(); i++){
+ QVariant val = mo->property(_sensorProperties[i]->index()).read(_qsensor);
+ _sensorProperties[i]->setValue(convertValue(_sensorProperties[i]->typeName(), val));
+ }
+ }
+}
+
+/*
+ \fn QSensorItem::propertiesChanged()
+ Notifies the client if the list of the properties was changed
+*/
+
+/*
+ Updates the property values from the QSensorReader
+*/
+void QSensorItem::sensorReadingChanged()
+{
+ QSensorReading *reading = _qsensor->reading();
+ const QMetaObject *mo = reading->metaObject();
+ for (int i = 0; i < _readerProperties.count(); i++){
+ QVariant val = mo->property(_readerProperties[i]->index()).read(reading);
+ _readerProperties[i]->setValue(convertValue(_readerProperties[i]->typeName(), val));
+ }
+}
+
+/*
+ Returns true if the property with the name \a propertyname should be ignored
+*/
+bool QSensorItem::ignoreProperty(const QString& propertyname)
+{
+ if (propertyname == "reading" ||
+ propertyname == "active" ||
+ propertyname == "identifier" ||
+ propertyname == "connectedToBackend" ||
+ propertyname == "busy")
+ return true;
+
+ return false;
+}
+
+/*
+ Returns true if the property with the name \a propertyname is writeable
+*/
+bool QSensorItem::isWriteable(const QString& propertyname)
+{
+ if (_qsensor){
+ const QMetaObject *mo = _qsensor->metaObject();
+ int propertyindex = mo->indexOfProperty(propertyname.toLocal8Bit().constData());
+ if (propertyindex >= 0){
+ QMetaProperty prop = mo->property(propertyindex);
+ return prop.isWritable();
+ }
+ else {
+ QSensorReading *reading = _qsensor->reading();
+ const QMetaObject *moreader = reading->metaObject();
+ propertyindex = moreader->indexOfProperty(propertyname.toLocal8Bit().constData());
+ if (propertyindex >= 0){
+ QMetaProperty prop = mo->property(propertyindex);
+ return prop.isWritable();
+ }
+ }
+ }
+
+ return false;
+}
+
+/*
+ Convert the variant \a val dependent on the type \a type and returns the converted value as a QString
+*/
+QString QSensorItem::convertValue(const QString& type, const QVariant& val)
+{
+ if (type == "LightLevel"){
+ switch (val.toInt()) {
+ case 1: return "Dark";
+ case 2: return "Twilight";
+ case 3: return "Light";
+ case 4: return "Bright";
+ case 5: return "Sunny";
+ default: return "Undefined";
+ }
+ }
+ else if (type == "Orientation"){
+ switch (val.toInt()) {
+ case 1: return "TopUp";
+ case 2: return "TopDown";
+ case 3: return "LeftUp";
+ case 4: return "RightUp";
+ case 5: return "FaceUp";
+ case 6: return "FaceDown";
+ default: return "Undefined";
+ }
+ }
+ else if (type == "qrangelist"){
+ qrangelist rangelist = val.value<qrangelist>();
+ QStringList ranges;
+ foreach (const qrange &r, rangelist) {
+ if (r.first == r.second)
+ ranges << QString("%1 Hz").arg(r.first);
+ else
+ ranges << QString("%1-%2 Hz").arg(r.first).arg(r.second);
+ }
+ if (ranges.count() > 0)
+ return ranges.join(", ");
+ return "-";
+ }
+ else if (type == "qoutputrangelist") {
+ qoutputrangelist rangelist = val.value<qoutputrangelist>();
+ QStringList ranges;
+ foreach (const qoutputrange &r, rangelist) {
+ ranges << QString("(%1, %2) += %3").arg(r.minimum).arg(r.maximum).arg(r.accuracy);
+ }
+ if (ranges.count() > 0)
+ return ranges.join(", ");
+ return "-";
+ }
+
+ return val.toString();
+}
+
+/*
+ \property QSensorItem::properties
+ Returns a list of all properties from the sensor
+*/
+QQmlListProperty<QPropertyInfo> QSensorItem::properties()
+{
+ _properties.clear();
+ _properties.append(_sensorProperties);
+ _properties.append(_readerProperties);
+ return QQmlListProperty<QPropertyInfo> (this, _properties);
+}
+
+QT_END_NAMESPACE
diff --git a/basicsuite/sensorexplorer/imports/sensoritem.h b/basicsuite/sensorexplorer/imports/sensoritem.h
new file mode 100644
index 0000000..b17d8ed
--- /dev/null
+++ b/basicsuite/sensorexplorer/imports/sensoritem.h
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSENSORITEM_H
+#define QSENSORITEM_H
+
+#include <QtQml/QtQml>
+#include <QtCore/QString>
+#include "propertyinfo.h"
+
+QT_BEGIN_NAMESPACE
+
+class QSensor;
+class QSensorItem : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(bool start READ start WRITE setStart NOTIFY startChanged)
+ Q_PROPERTY(QString id READ id CONSTANT)
+ Q_PROPERTY(QQmlListProperty<QPropertyInfo> properties READ properties NOTIFY propertiesChanged)
+public:
+ QSensorItem(QObject* parent = 0);
+ QSensorItem(QSensor* sensor, QObject* parent = 0);
+ virtual ~QSensorItem();
+
+public slots:
+ void select();
+ void unSelect();
+ void changePropertyValue(QPropertyInfo* property, const QString& val);
+
+private slots:
+ void sensorReadingChanged();
+
+private:
+ QString id();
+ bool start();
+ void setStart(bool run);
+ QQmlListProperty<QPropertyInfo> properties();
+ QString convertValue(const QString& type, const QVariant& val);
+ bool isWriteable(const QString& propertyname);
+ bool ignoreProperty(const QString& propertyname);
+ void updateSensorPropertyValues();
+
+Q_SIGNALS:
+ void propertiesChanged();
+ void startChanged();
+
+private:
+ QSensor* _qsensor;
+ QList<QPropertyInfo*> _properties;
+ QList<QPropertyInfo*> _readerProperties;
+ QList<QPropertyInfo*> _sensorProperties;
+};
+
+QT_END_NAMESPACE
+
+QML_DECLARE_TYPE(QSensorItem)
+
+#endif // QSENSORITEM_H
diff --git a/basicsuite/sensorexplorer/main.qml b/basicsuite/sensorexplorer/main.qml
new file mode 100644
index 0000000..2a58709
--- /dev/null
+++ b/basicsuite/sensorexplorer/main.qml
@@ -0,0 +1,224 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import QtSensors 5.0
+
+//! [0]
+import Explorer 1.0
+//! [0]
+
+Item {
+ id: root
+ width: 800
+ height: 1280
+
+ Rectangle {
+ id: main
+ width: root.width
+ height: root.height
+ anchors.centerIn: parent
+
+ //! [1]
+ SensorExplorer {
+ id: explorer
+ }
+ //! [1]
+
+ Column {
+ anchors.fill: parent
+ anchors.margins: 8
+ spacing: 8
+
+ GroupBox {
+ id: topBox
+ title: qsTr("Available Sensors")
+ width: parent.width
+ height: main.height * 0.4
+
+ TableView {
+ id: sensorList
+ width: parent.width
+ height: parent.height * 0.80
+ anchors.top: parent.top
+ anchors.topMargin: 22
+ //! [2]
+ model: explorer.availableSensors
+ //! [2]
+
+ TableViewColumn { role: "id"; title: qsTr("ID"); width: main.width * 0.7 }
+ TableViewColumn { role: "start"; title: qsTr("Running"); width: main.width * 0.15 }
+
+ onClicked: {
+ explorer.selectedSensorItem = explorer.availableSensors[row]
+ //! [3]
+ propertyList.model = explorer.selectedSensorItem.properties
+ //! [3]
+ button.update()
+ }
+ }
+
+ Button {
+ id: button
+ anchors.top: sensorList.bottom
+ anchors.right: parent.right
+ anchors.topMargin: 8
+ text: qsTr("Start")
+ enabled: explorer.selectedSensorItem !== null
+
+ function update() {
+ text = (explorer.selectedSensorItem !== null ?
+ (explorer.selectedSensorItem.start === true ?
+ qsTr("Stop") : qsTr("Start")) : qsTr("Start"))
+ }
+
+ onClicked: {
+ if (explorer.selectedSensorItem !== null) {
+ //! [5]
+ if (text === "Start") {
+ explorer.selectedSensorItem.start = true;
+ text = "Stop";
+ }
+ else {
+ explorer.selectedSensorItem.start = false;
+ text = "Start";
+ }
+ //! [5]
+ }
+ }
+ }
+
+ }
+
+ GroupBox {
+ title: qsTr("Properties")
+ width: parent.width
+ height: main.height - topBox.height - 30
+ enabled: explorer.selectedSensorItem != null
+
+ TableView {
+ id: propertyList
+ property PropertyInfo selectedItem: null
+
+ anchors.fill: parent
+ anchors.topMargin: 22
+
+ TableViewColumn { role: "name"; title: qsTr("Name"); width: 140 }
+ TableViewColumn { role: "value"; title: qsTr("Value"); width: 140 }
+
+ onClicked: {
+ selectedItem = model[row]
+ }
+
+ itemDelegate: {
+ if (selectedItem && selectedItem.isWriteable)
+ return editableDelegate;
+ return readOnlyDelegate;
+ }
+
+ Component {
+ id: readOnlyDelegate
+ Item {
+ Text {
+ width: parent.width
+ anchors.margins: 4
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ elide: styleData.elideMode
+ text: styleData.value
+ color: propertyList.model[styleData.row].isWriteable ?
+ styleData.textColor : Qt.lighter(styleData.textColor)
+ }
+ }
+ }
+
+ Component {
+ id: editableDelegate
+ Item {
+ Text {
+ width: parent.width
+ anchors.margins: 4
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ elide: styleData.elideMode
+ text: styleData.value
+ color: styleData.textColor
+ visible: !styleData.selected || styleData.column === 0
+ }
+ Loader { // Initialize text editor lazily to improve performance
+ id: loaderEditor
+ anchors.margins: 4
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ Connections {
+ target: loaderEditor.item
+ onAccepted: {
+ //! [4]
+ explorer.selectedSensorItem.changePropertyValue(propertyList.selectedItem, loaderEditor.item.text);
+ //! [4]
+ }
+ }
+
+ // Load the editor for selected 'Value' cell
+ sourceComponent: (styleData.selected && styleData.column === 1) ? editor : null
+
+ Component {
+ id: editor
+ TextInput { // ### TODO - this needs to utilize a virtual keyboard
+ id: textinput
+ color: styleData.textColor
+ text: styleData.value
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ onClicked: textinput.forceActiveFocus()
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/sensorexplorer/preview_l.jpg b/basicsuite/sensorexplorer/preview_l.jpg
new file mode 100644
index 0000000..b0469e5
--- /dev/null
+++ b/basicsuite/sensorexplorer/preview_l.jpg
Binary files differ
diff --git a/basicsuite/sensorexplorer/sensorexplorer.pro b/basicsuite/sensorexplorer/sensorexplorer.pro
new file mode 100644
index 0000000..22ef5b8
--- /dev/null
+++ b/basicsuite/sensorexplorer/sensorexplorer.pro
@@ -0,0 +1,6 @@
+TEMPLATE = subdirs
+CONFIG += ordered
+SUBDIRS += \
+ imports \
+ app.pro
+
diff --git a/basicsuite/sensorexplorer/title.txt b/basicsuite/sensorexplorer/title.txt
new file mode 100644
index 0000000..c56fed8
--- /dev/null
+++ b/basicsuite/sensorexplorer/title.txt
@@ -0,0 +1 @@
+Sensor Explorer
diff --git a/basicsuite/Sensors/1.png b/basicsuite/sensors/1.png
index 8dd146b..8dd146b 100644
--- a/basicsuite/Sensors/1.png
+++ b/basicsuite/sensors/1.png
Binary files differ
diff --git a/basicsuite/Sensors/2.png b/basicsuite/sensors/2.png
index 362abaf..362abaf 100644
--- a/basicsuite/Sensors/2.png
+++ b/basicsuite/sensors/2.png
Binary files differ
diff --git a/basicsuite/Sensors/3.png b/basicsuite/sensors/3.png
index c8d3f8c..c8d3f8c 100644
--- a/basicsuite/Sensors/3.png
+++ b/basicsuite/sensors/3.png
Binary files differ
diff --git a/basicsuite/sensors/Accelbubble.qml b/basicsuite/sensors/Accelbubble.qml
new file mode 100644
index 0000000..7fba4d4
--- /dev/null
+++ b/basicsuite/sensors/Accelbubble.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtSensors 5.0
+
+Item {
+ Rectangle {
+ id: field
+ color: "lightblue"
+ border.width: 1
+ border.color: "darkblue"
+ width: parent.width
+ height: parent.height
+ Accelerometer {
+ id: accel
+ active:true
+ onReadingChanged: {
+ var newX = (bubble.x + calcRoll(accel.reading.x, accel.reading.y, accel.reading.z) * .1)
+ var newY = (bubble.y - calcPitch(accel.reading.x, accel.reading.y, accel.reading.z) * .1)
+
+ if (newX < 0)
+ newX = 0
+ if (newY < 0)
+ newY = 0
+
+ var right = field.width - bubble.width
+ var bottom = field.height - bubble.height
+
+ if (newX > right)
+ newX = right
+ if (newY > bottom)
+ newY = bottom
+
+ bubble.x = newX
+ bubble.y = newY
+ }
+ }
+
+ Image {
+ id: bubble
+ source: "bluebubble.png"
+ property real centerX: parent.width / 2
+ property real centerY: parent.height / 2;
+ property real bubbleCenter: bubble.width / 2
+ x: centerX - bubbleCenter
+ y: centerY - bubbleCenter
+ smooth: true
+
+ Behavior on y {
+ SmoothedAnimation {
+ easing.type: Easing.Linear
+ duration: 100
+ }
+ }
+ Behavior on x {
+ SmoothedAnimation {
+ easing.type: Easing.Linear
+ duration: 100
+ }
+ }
+ }
+ }
+
+ function calcPitch(x,y,z) {
+ return Math.atan(y / Math.sqrt(x*x + z*z)) * 57.2957795;
+ }
+ function calcRoll(x,y,z) {
+ return Math.atan(x / Math.sqrt(y*y + z*z)) * 57.2957795;
+ }
+}
diff --git a/basicsuite/sensors/Light.qml b/basicsuite/sensors/Light.qml
new file mode 100644
index 0000000..f997efd
--- /dev/null
+++ b/basicsuite/sensors/Light.qml
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtSensors 5.0
+
+Item {
+ rotation: 180
+ Rectangle {
+ id: bg
+ width: parent.width
+ height: parent.height
+ Text {
+ id: illuminanceLevel
+ anchors.horizontalCenter: parent.horizontalCenter
+ font.pointSize: 26
+ anchors.top: parent.top
+ }
+ Image {
+ id: avatar
+ anchors.top: illuminanceLevel.bottom
+ anchors.topMargin: 30
+ anchors.centerIn: parent
+ }
+
+ AmbientLightSensor {
+ active: true
+ onReadingChanged: {
+ if (reading.lightLevel === AmbientLightReading.Dark) {
+ avatar.source = "3.png"
+ bg.color = "midnightblue"
+ } else if (reading.lightLevel === AmbientLightReading.Twilight
+ || reading.lightLevel === AmbientLightReading.Light) {
+ avatar.source = "2.png"
+ bg.color = "steelblue"
+ } else if (reading.lightLevel === AmbientLightReading.Bright
+ || reading.lightLevel === AmbientLightReading.Sunny) {
+ avatar.source = "1.png"
+ bg.color = "yellow"
+ } else {
+ avatar.text = "Unknown light level"
+ }
+ }
+ }
+
+ LightSensor {
+ active: true
+ onReadingChanged: {
+ illuminanceLevel.text = "Illuminance: " + reading.illuminance
+ }
+ }
+ }
+}
diff --git a/basicsuite/Sensors/bluebubble.png b/basicsuite/sensors/bluebubble.png
index f96126e..f96126e 100644
--- a/basicsuite/Sensors/bluebubble.png
+++ b/basicsuite/sensors/bluebubble.png
Binary files differ
diff --git a/basicsuite/sensors/description.txt b/basicsuite/sensors/description.txt
new file mode 100644
index 0000000..e306066
--- /dev/null
+++ b/basicsuite/sensors/description.txt
@@ -0,0 +1,3 @@
+Demonstrates using the accelerometer and light sensors in a QML application.
+
+Tilting the device moves the bubble around, based on readings from the accelerometer sensor. For the light sensor, exposing the device to different lighting conditions changes the displayed image.
diff --git a/basicsuite/sensors/exclude.txt b/basicsuite/sensors/exclude.txt
new file mode 100644
index 0000000..e20e515
--- /dev/null
+++ b/basicsuite/sensors/exclude.txt
@@ -0,0 +1 @@
+android-beaglebone:android-iMX6:linux-iMX6:linux-raspberrypi:linux-beagleboard:linux-beaglebone
diff --git a/basicsuite/sensors/main.qml b/basicsuite/sensors/main.qml
new file mode 100644
index 0000000..b5a1207
--- /dev/null
+++ b/basicsuite/sensors/main.qml
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtSensors 5.0
+import QtSensors 5.0 as Sensors
+
+Item {
+ id: root
+ width: 800
+ height: 1280
+
+ Component {
+ id: sensorExample
+ Rectangle {
+ id: main
+ width: root.height
+ height: root.width
+ rotation: 90
+ border.width: 1
+ Light {
+ id: lys
+ width: main.width
+ height: main.height / 2
+ }
+
+ Accelbubble {
+ width: main.width
+ height: main.height / 2
+ anchors.top: lys.bottom
+ }
+ }
+ }
+
+ Component {
+ id: message
+ Rectangle {
+ width: root.width
+ height: root.height
+ Text {
+ font.pixelSize: 22
+ anchors.centerIn: parent
+ text: "It appears that this device doesn't provide the required sensors!"
+ }
+ }
+ }
+
+ Loader {
+ id: pageLoader
+ anchors.centerIn: parent
+ }
+
+ Component.onCompleted: {
+ var typesList = Sensors.QmlSensors.sensorTypes();
+ var count = 0
+ for (var i = 0; i < typesList.length; ++i) {
+ if (typesList[i] == "QAccelerometer")
+ count++
+ if (typesList[i] == "QLightSensor")
+ count++
+ }
+
+ if (count > 1)
+ pageLoader.sourceComponent = sensorExample
+ else
+ pageLoader.sourceComponent = message
+ }
+}
diff --git a/basicsuite/sensors/preview_l.jpg b/basicsuite/sensors/preview_l.jpg
new file mode 100644
index 0000000..7ce979d
--- /dev/null
+++ b/basicsuite/sensors/preview_l.jpg
Binary files differ
diff --git a/basicsuite/sensors/sensors.pro b/basicsuite/sensors/sensors.pro
new file mode 100644
index 0000000..0b431b8
--- /dev/null
+++ b/basicsuite/sensors/sensors.pro
@@ -0,0 +1,13 @@
+TARGET = sensors
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ *.png
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content \ No newline at end of file
diff --git a/basicsuite/sensors/title.txt b/basicsuite/sensors/title.txt
new file mode 100644
index 0000000..558b7c0
--- /dev/null
+++ b/basicsuite/sensors/title.txt
@@ -0,0 +1 @@
+Sensors Demo
diff --git a/basicsuite/shared/engine.cpp b/basicsuite/shared/engine.cpp
new file mode 100644
index 0000000..da021e5
--- /dev/null
+++ b/basicsuite/shared/engine.cpp
@@ -0,0 +1,35 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+#include "engine.h"
+#include <QGuiApplication>
+#include <QScreen>
+
+DummyEngine::DummyEngine(QObject *parent)
+ : QObject(parent)
+{
+ QScreen *screen = QGuiApplication::primaryScreen();
+ m_screenSize = screen->size();
+ m_dpcm = screen->physicalDotsPerInchY() / 2.54f;
+
+ // Make the buttons smaller for smaller screens to compensate for that
+ // one typically holds it nearer to the eyes.
+ float low = 5;
+ float high = 20;
+ float screenSizeCM = qMax<float>(qMin(m_screenSize.width(), m_screenSize.height()) / m_dpcm, low);
+ m_dpcm *= (screenSizeCM - low) / (high - low) * 0.5 + 0.5;
+}
diff --git a/basicsuite/shared/engine.h b/basicsuite/shared/engine.h
new file mode 100644
index 0000000..1600fc6
--- /dev/null
+++ b/basicsuite/shared/engine.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+#ifndef ENGINE_H
+#define ENGINE_H
+
+#include <QObject>
+#include <QSize>
+
+class QQmlEngine;
+class QQuickItem;
+class FpsCounter;
+class QQuickWindow;
+
+/*!
+ A simplified version of the one used by b2qt-launcher
+*/
+class DummyEngine : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit DummyEngine(QObject *parent = 0);
+
+ Q_INVOKABLE int smallFontSize() const { return qMax<int>(m_dpcm * 0.4, 10); }
+ Q_INVOKABLE int fontSize() const { return qMax<int>(m_dpcm * 0.6, 14); }
+ Q_INVOKABLE int titleFontSize() const { return qMax<int>(m_dpcm * 0.9, 20); }
+ Q_INVOKABLE int centimeter() const { return m_dpcm; }
+
+private:
+ QSize m_screenSize;
+ qreal m_dpcm;
+};
+
+#endif // ENGINE_H
diff --git a/basicsuite/shared/loader.qml b/basicsuite/shared/loader.qml
new file mode 100644
index 0000000..733fded
--- /dev/null
+++ b/basicsuite/shared/loader.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtQuick.Enterprise.VirtualKeyboard 1.0
+
+
+Item {
+ id: root
+
+ Loader {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.right: parent.right
+ anchors.bottom: inputPanel.top
+
+ source: "main.qml"
+ }
+
+ InputPanel {
+ id: inputPanel
+ z: 99
+ y: root.height
+ anchors.left: root.left
+ anchors.right: root.right
+
+ states: State {
+ name: "visible"
+ when: Qt.inputMethod.visible
+ PropertyChanges {
+ target: inputPanel
+ y: root.height - inputPanel.height
+ }
+ }
+ transitions: Transition {
+ from: ""
+ to: "visible"
+ reversible: true
+ ParallelAnimation {
+ NumberAnimation {
+ properties: "y"
+ duration: 250
+ easing.type: Easing.InOutQuad
+ }
+ }
+ }
+ }
+}
+
diff --git a/basicsuite/shared/main.cpp b/basicsuite/shared/main.cpp
new file mode 100644
index 0000000..74781e9
--- /dev/null
+++ b/basicsuite/shared/main.cpp
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+#include <QtCore/QDebug>
+// QtWidget (QApplication) dependecy is required by QtCharts demo,
+// when QtWidget dependecy is not required use QGuiApplication from QtGui module
+#include <QtWidgets/QApplication>
+#include <QtGui/QFont>
+#include <QtGui/QFontDatabase>
+#include <QtGui/QScreen>
+#include <QtGui/QPalette>
+#include <QtCore/QRegExp>
+
+#include <QtQuick/QQuickView>
+
+#include <QtQml/QQmlEngine>
+#include <QtQml/QQmlContext>
+#include <QtQml/QQmlComponent>
+
+#include "engine.h"
+
+
+int main(int argc, char **argv)
+{
+ //qputenv("QT_IM_MODULE", QByteArray("qtvkb"));
+
+ QApplication app(argc, argv);
+ QString path = app.applicationDirPath();
+
+ QPalette pal;
+ pal.setColor(QPalette::Text, Qt::black);
+ pal.setColor(QPalette::WindowText, Qt::black);
+ pal.setColor(QPalette::ButtonText, Qt::black);
+ pal.setColor(QPalette::Base, Qt::white);
+ QGuiApplication::setPalette(pal);
+
+ QString target = qgetenv("B2QT_BASE") + "-" + qgetenv("B2QT_PLATFORM");
+ QFile excludeFile(path + QStringLiteral("/exclude.txt"));
+ if (excludeFile.open(QFile::ReadOnly)) {
+ const QStringList excludeList = QString::fromUtf8(excludeFile.readAll()).split(QRegExp(":|\\s+"));
+ if (excludeList.contains(target))
+ qDebug("Warning: This example may not be fully functional on this platform");
+ excludeFile.close();
+ }
+
+ QString fontName = QStringLiteral("/system/lib/fonts/OpenSans-Regular.ttf");
+ if (QFile::exists(fontName)) {
+ QFontDatabase::addApplicationFont(fontName);
+ QFont font("Open Sans");
+ font.setPixelSize(12);
+ QGuiApplication::setFont(font);
+ } else {
+ QFont font;
+ font.setStyleHint(QFont::SansSerif);
+ QGuiApplication::setFont(font);
+ }
+
+ QQuickView view;
+
+ DummyEngine engine;
+ view.rootContext()->setContextProperty("engine", &engine);
+ view.setColor(Qt::black);
+ view.setResizeMode(QQuickView::SizeRootObjectToView);
+ view.setSource(QUrl::fromLocalFile(path + QStringLiteral("/loader.qml")));
+ view.show();
+
+ app.exec();
+}
diff --git a/basicsuite/shared/shared.pri b/basicsuite/shared/shared.pri
new file mode 100644
index 0000000..dbfd513
--- /dev/null
+++ b/basicsuite/shared/shared.pri
@@ -0,0 +1,23 @@
+# widget dependecy is required by QtCharts demo
+QT += quick widgets
+
+DESTPATH = /data/user/$$TARGET
+target.path = $$DESTPATH
+
+SOURCES += $$PWD/main.cpp \
+ $$PWD/engine.cpp
+
+HEADERS += $$PWD/engine.h
+
+defineTest(b2qtdemo_deploy_defaults) {
+ commonFiles.files = \
+ exclude.txt \
+ ../shared/loader.qml
+ commonFiles.path = $$DESTPATH
+ OTHER_FILES += $${commonFiles.files}
+ INSTALLS += commonFiles
+ export(commonFiles.files)
+ export(commonFiles.path)
+ export(OTHER_FILES)
+ export(INSTALLS)
+}
diff --git a/basicsuite/textinput/ScrollBar.qml b/basicsuite/textinput/ScrollBar.qml
new file mode 100644
index 0000000..b4753f2
--- /dev/null
+++ b/basicsuite/textinput/ScrollBar.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ property var scrollArea: parent
+
+ width: 6
+ opacity: scrollArea && scrollArea.movingVertically ? 1.0 : 0.0
+ visible: scrollArea && scrollArea.contentHeight >= scrollArea.height
+ anchors { right: parent.right; top: parent.top; bottom: parent.bottom; margins: 2 }
+
+ Behavior on opacity { NumberAnimation { properties: "opacity"; duration: 600 } }
+
+ function size() {
+ var nh = scrollArea.visibleArea.heightRatio * height
+ var ny = scrollArea.visibleArea.yPosition * height
+ return ny > 3 ? Math.min(nh, Math.ceil(height - 3 - ny)) : nh + ny
+ }
+ Rectangle {
+ x: 1
+ y: scrollArea ? Math.max(2, scrollArea.visibleArea.yPosition * parent.height) : 0
+ height: scrollArea ? size() : 0
+ width: parent.width - 2
+ color: Qt.rgba(1.0, 1.0, 1.0, 0.5)
+ radius: 1
+ }
+}
diff --git a/basicsuite/textinput/TextArea.qml b/basicsuite/textinput/TextArea.qml
new file mode 100644
index 0000000..490e066
--- /dev/null
+++ b/basicsuite/textinput/TextArea.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TextBase {
+ id: textArea
+
+ property alias color: textEdit.color
+ property alias text: textEdit.text
+ property alias textWidth: textEdit.width
+ property alias readOnly: textEdit.readOnly
+ property alias inputMethodHints: textEdit.inputMethodHints
+
+ editor: textEdit
+
+ Repeater {
+ model: Math.floor((parent.height - 30) / editor.cursorRectangle.height)
+ Rectangle {
+ x: 8
+ y: (index+1)*editor.cursorRectangle.height+6
+ height: 1; width: textArea.width-24
+ color: Qt.rgba(1.0, 1.0, 1.0, 0.5)
+ }
+ }
+ TextEdit {
+ id: textEdit
+
+ property alias enterKeyText: textArea.enterKeyText
+ property alias enterKeyEnabled: textArea.enterKeyEnabled
+
+ y: 6
+ focus: true
+ color: "#EEEEEE"
+ wrapMode: TextEdit.Wrap
+ cursorVisible: activeFocus
+ height: Math.max(implicitHeight, 60)
+ font.pixelSize: textArea.fontPixelSize
+ selectionColor: Qt.rgba(1.0, 1.0, 1.0, 0.5)
+ selectedTextColor: Qt.rgba(0.0, 0.0, 0.0, 0.8)
+ anchors { left: parent.left; right: parent.right; margins: 12 }
+ cursorDelegate: Rectangle {
+ width: 2
+ opacity: 0.7
+ color: "#EEEEEE"
+ visible: textEdit.activeFocus
+ }
+
+ onActiveFocusChanged: if (!activeFocus) deselect()
+ }
+}
diff --git a/basicsuite/textinput/TextBase.qml b/basicsuite/textinput/TextBase.qml
new file mode 100644
index 0000000..67ee3e3
--- /dev/null
+++ b/basicsuite/textinput/TextBase.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+FocusScope {
+ id: textBase
+
+ property var editor
+ property bool previewTextActive: !editor.activeFocus && text.length === 0
+ property int fontPixelSize: 32
+ property string previewText
+ property string enterKeyText
+ property bool enterKeyEnabled: true
+ property alias mouseParent: mouseArea.parent
+
+ implicitHeight: editor.height + 12
+
+ signal enterKeyClicked
+
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Return)
+ enterKeyClicked()
+ }
+
+ Rectangle {
+ // background
+ radius: 5.0
+ anchors.fill: parent
+ color: Qt.rgba(1.0, 1.0, 1.0, 0.2)
+ border { width: editor.activeFocus ? 2 : 0; color: "#CCCCCC" }
+ }
+ Text {
+ id: previewText
+
+ y: 8
+ color: "#CCCCCC"
+ visible: previewTextActive
+ text: textBase.previewText
+ font.pixelSize: 28
+ anchors { left: parent.left; right: parent.right; margins: 12 }
+
+ }
+ MouseArea {
+ id: mouseArea
+
+ z: 1
+ parent: textBase
+ anchors.fill: parent
+ onClicked: {
+ var positionInEditor = mapToItem(editor, mouseX, mouseY)
+ var cursorPosition = editor.positionAt(positionInEditor.x, positionInEditor.y)
+ editor.cursorPosition = cursorPosition
+ editor.forceActiveFocus()
+ Qt.inputMethod.show()
+ }
+ }
+}
diff --git a/basicsuite/textinput/TextField.qml b/basicsuite/textinput/TextField.qml
new file mode 100644
index 0000000..9b01418
--- /dev/null
+++ b/basicsuite/textinput/TextField.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+TextBase {
+ id: textField
+
+ property alias color: textInput.color
+ property alias text: textInput.text
+ property alias textWidth: textInput.width
+ property alias readOnly: textInput.readOnly
+ property alias inputMethodHints: textInput.inputMethodHints
+ property alias validator: textInput.validator
+ property alias echoMode: textInput.echoMode
+
+ editor: textInput
+ mouseParent: flickable
+
+ Flickable {
+ id: flickable
+
+ x: 12
+ clip: true
+ width: parent.width-24
+ height: parent.height
+ flickableDirection: Flickable.HorizontalFlick
+ interactive: contentWidth - 4 > width
+
+ contentWidth: textInput.width+2
+ contentHeight: textInput.height
+ TextInput {
+ id: textInput
+
+ property alias enterKeyText: textField.enterKeyText
+ property alias enterKeyEnabled: textField.enterKeyEnabled
+
+ y: 6
+ focus: true
+ color: "#EEEEEE"
+ cursorVisible: activeFocus
+ passwordCharacter: "\u2022"
+ font.pixelSize: textField.fontPixelSize
+ selectionColor: Qt.rgba(1.0, 1.0, 1.0, 0.5)
+ selectedTextColor: Qt.rgba(0.0, 0.0, 0.0, 0.8)
+ width: Math.max(flickable.width, implicitWidth)-2
+ cursorDelegate: Rectangle {
+ width: 2
+ opacity: 0.7
+ color: "#EEEEEE"
+ visible: textInput.activeFocus
+ }
+ onActiveFocusChanged: if (!activeFocus) deselect()
+ }
+ }
+}
diff --git a/basicsuite/textinput/description.txt b/basicsuite/textinput/description.txt
new file mode 100644
index 0000000..5330313
--- /dev/null
+++ b/basicsuite/textinput/description.txt
@@ -0,0 +1,3 @@
+This example illustrates how to handle input on touch devices.
+
+Qt Enterprise Embedded comes with Qt Virtual Keyboard - a framework that consists of a C++ back end with support for custom input methods, as well as a reference keyboard front end implemented in QML, supporting multiple languages.
diff --git a/basicsuite/textinput/main.qml b/basicsuite/textinput/main.qml
new file mode 100644
index 0000000..8f63b83
--- /dev/null
+++ b/basicsuite/textinput/main.qml
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Flickable {
+ id: flickable
+
+ property real scrollMarginVertical: 20
+
+ anchors.fill: parent
+ contentWidth: content.width
+ contentHeight: content.height
+ interactive: contentHeight > height
+ flickableDirection: Flickable.VerticalFlick
+ children: ScrollBar {}
+
+ MouseArea {
+ id: content
+
+ width: flickable.width
+ height: textEditors.height + 24
+
+ onClicked: focus = true
+
+ Column {
+ id: textEditors
+ spacing: 15
+ x: 12; y: 12
+ width: parent.width - 26
+
+ Text {
+ color: "#EEEEEE"
+ text: "Tap fields to enter text"
+ anchors.horizontalCenter: parent.horizontalCenter
+ font.pixelSize: 22
+ }
+ TextField {
+ width: parent.width
+ previewText: "One line field"
+ enterKeyText: "Next"
+ enterKeyEnabled: text.length > 0
+ onEnterKeyClicked: passwordField.focus = true
+ }
+ TextField {
+ id: passwordField
+
+ width: parent.width
+ echoMode: TextInput.PasswordEchoOnEdit
+ previewText: "Password field"
+ inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhPreferLowercase | Qt.ImhSensitiveData | Qt.ImhNoPredictiveText
+ enterKeyText: "Next"
+ enterKeyEnabled: text.length > 0
+ onEnterKeyClicked: numberField.focus = true
+ }
+ TextField {
+ id: numberField
+
+ validator: RegExpValidator { regExp: /^[0-9\+\-\#\*\ ]{6,}$/ }
+ width: parent.width
+ previewText: "Phone number field"
+ inputMethodHints: Qt.ImhDialableCharactersOnly
+ enterKeyText: "Next"
+ enterKeyEnabled: text.length > 0
+ onEnterKeyClicked: textArea.focus = true
+ }
+ TextArea {
+ id: textArea
+
+ width: parent.width
+ previewText: "Multiple lines field"
+ height: Math.max(206, implicitHeight)
+ }
+ }
+ }
+}
diff --git a/basicsuite/Text Input/preview_l.jpg b/basicsuite/textinput/preview_l.jpg
index f415a86..f415a86 100644
--- a/basicsuite/Text Input/preview_l.jpg
+++ b/basicsuite/textinput/preview_l.jpg
Binary files differ
diff --git a/basicsuite/textinput/textinput.pro b/basicsuite/textinput/textinput.pro
new file mode 100644
index 0000000..b5b97b2
--- /dev/null
+++ b/basicsuite/textinput/textinput.pro
@@ -0,0 +1,13 @@
+TARGET = textinput
+
+include(../shared/shared.pri)
+b2qtdemo_deploy_defaults()
+
+content.files = \
+ *.qml \
+ *.png
+content.path = $$DESTPATH
+
+OTHER_FILES += $${content.files}
+
+INSTALLS += target content
diff --git a/basicsuite/textinput/title.txt b/basicsuite/textinput/title.txt
new file mode 100644
index 0000000..932c2f3
--- /dev/null
+++ b/basicsuite/textinput/title.txt
@@ -0,0 +1 @@
+Virtual Keyboard
diff --git a/doc/b2qt-demos.qdoc b/doc/b2qt-demos.qdoc
new file mode 100644
index 0000000..d54a32c
--- /dev/null
+++ b/doc/b2qt-demos.qdoc
@@ -0,0 +1,238 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** the contact form at http://qt.digia.com/
+**
+****************************************************************************/
+
+/*!
+ \contentspage{b2qt-demos.html}{Qt Enterprise Embedded Examples and Demos}
+ \group b2qt-demos
+ \title Qt Enterprise Embedded Examples and Demos
+
+ \SDK has a number of examples and demos. These are included in the
+ \B2Q images, available in the launcher that is run by default at
+ startup.
+
+ In Qt Creator, you can find and open them from \b Welcome > \b Examples
+ by selecting a \c {Boot2Qt} version of Qt from the drop-down list.
+*/
+
+/*!
+ \example about-b2qt
+ \title About Boot to Qt
+ \ingroup b2qt-demos
+ \brief Displays information about the Boot to Qt software stack.
+
+ \image b2qt-demo-about-b2qt.jpg
+
+ The \e {About Boot to Qt} demo provides an introduction to what Boot to Qt is all about.
+
+ It talks briefly about how the software stack is built up, rough hardware requirements
+ and how Boot to Qt differs from the more traditional Qt editions.
+*/
+
+/*!
+ \example camera
+ \title Camera
+ \ingroup b2qt-demos
+ \brief Demonstrates using camera in a QML application.
+
+ \image b2qt-demo-camera.jpg
+
+ This example demonstrates the use of the camera features provided by Qt Multimedia with
+ Qt Quick.
+
+ Demo can be used to take pictures. Files are saved inside the \c {/data/images/} folder
+ and can be then viewed with the \l {Photo Gallery} demo application.
+
+ Camera parameters such as flash mode, scene mode or white balance can be changed. The
+ availability of parameters depends on what the camera driver provides.
+*/
+
+/*!
+ \example controls-touch
+ \title Controls Touch
+ \ingroup b2qt-demos
+ \brief Demonstrates a touch UI implemented with Qt Quick Controls.
+
+ \image b2qt-demo-controls-touch.jpg
+
+ The purpose of this example is to show Qt Quick Controls in practice. The example uses a
+ StackView to navigate between pages and illustrates the use of many of the controls provided
+ by Qt Quick Control, including Button, Slider, ProgressBar, TabBar and TextInput types. The
+ style in the example is a custom style made to look like the Android theme, it is written
+ purely in QML.
+*/
+
+/*!
+ \example graphicaleffects
+ \title Graphical Effects
+ \ingroup b2qt-demos
+ \brief Demonstrates the different graphical effects that can be used in a QML application.
+
+ \image b2qt-demo-graphicaleffects.jpg
+
+ This example shows the Qt Quick 2.0 ShaderEffect type and the Qt Graphical Effects module. Qt Quick
+ 2.0 provides the ability to use inline GLSL in your Qt Quick applications to create stunning visual
+ effects. However, as UIs typically reuse many of the same effects, the Qt Graphical Effects module
+ provides a set of predefined, commonly used effects. This includes blur, drop-shadows, glow,
+ blending, opacity masks and more.
+*/
+
+/*!
+ \example mediaplayer
+ \title Media Player
+ \ingroup b2qt-demos
+ \brief A media player implemented in QML.
+
+ \image b2qt-demo-mediaplayer.jpg
+ The Media Player example demonstrates the use of the media playback features of Qt Multimedia with
+ Qt Quick.
+
+ It can play from a file or from a network source, both videos and music.
+*/
+
+/*!
+ \example photogallery
+ \title Photo Gallery
+ \ingroup b2qt-demos
+ \brief A photo gallery implemented in QML.
+
+ \image b2qt-demo-photogallery.jpg
+
+ This is a simple photo gallery, showing images found in \c {/data/images} directory.
+*/
+
+/*!
+ \example qt5-cinematicdemo
+ \title Qt 5 Cinematic Demo
+ \ingroup b2qt-demos
+ \brief A cool demonstration of the graphical prowess of Qt 5 and Qt Quick 2.
+
+ \image b2qt-demo-qt5-cinematicdemo.jpg
+
+ The Qt5 Cinematic Experience is a demo by "QUIt Coding", a small group of talented individuals
+ enjoying software development with cutting edge technologies. They are official members of the
+ Qt Ambassador Program.
+
+ The demo shows off a number features of Qt Quick 2.0. A nicely styled list control of movie
+ covers with lighting effects, particles and transitions. The information roll-down curvy
+ curtain is implemented using inline GLSL in the QML file.
+
+ More awesome looking Qt Quick examples are available from \l {http://quitcoding.com}.
+*/
+
+/*!
+ \example qt5-launchpresentation
+ \title Qt 5 Launch Presentation
+ \ingroup b2qt-demos
+ \brief A quick tour of what is new in Qt 5.
+
+ \image b2qt-demo-qt5-launchpresentation.jpg
+
+ This is an application written with Qt Quick, based on Qt 5.
+
+ The source code is also available here: \l {https://qt.gitorious.org/qt-labs/qt5-launch-demo}.
+ The demo makes use of the QML Presentation System, available from
+ \c {ssh://codereview.qt-project.org/qt-labs/qml-presentation-system.git} repository.
+*/
+
+/*!
+ \example qt5-everywhere
+ \title Qt 5 Everywhere
+ \ingroup b2qt-demos
+ \brief Highlights the versatility and cross-platform capability of Qt
+
+ \image b2qt-demo-qt5-everywhere.jpg
+
+ The Qt 5 Everywhere demo shows how to use different user interface styles in several platforms
+ and device types with one source code.
+
+ The demo contains several Qt Quick 2 applications which you can launch by tapping the devices.
+*/
+
+/*!
+ \omit
+ \example sensors
+ \title Sensors
+ \ingroup b2qt-demos
+ \brief Demonstrates using the accelerometer and light sensors in a QML application.
+
+ \image b2qt-demo-sensors.jpg
+
+ Tilting the device moves the bubble around, based on readings from the accelerometer sensor.
+ For the light sensor, exposing the device to different lighting conditions changes the
+ displayed image.
+ \endomit
+*/
+
+/*!
+ \example textinput
+ \title Text Input
+ \ingroup b2qt-demos
+ \brief Demonstrates text input capabilities and the virtual keyboard in a QML application.
+
+ \image b2qt-demo-textinput.jpg
+
+ This example illustrates how to handle input on touch devices.
+
+ The Boot to Qt stack comes with Qt Virtual Keyboard - a framework that consists of a C++ back
+ end with support for custom input methods, as well as a reference keyboard front end
+ implemented in QML, supporting multiple languages.
+*/
+
+/*!
+ \example enterprise-charts
+ \title Charts
+ \ingroup b2qt-demos
+ \brief Showcases the different types of charts available from the Qt Charts library.
+
+ \image b2qt-demo-enterprise-charts.jpg
+
+ Qt Charts is part of the Qt Enterprise addons package which provides a set of easy to use
+ chart components. This demo showcases the different charts that are available as QML types.
+*/
+
+/*!
+ \example enterprise-dashboard
+ \title Dashboard
+ \ingroup b2qt-demos
+ \brief A car dashboard created using Qt Quick Enterprise Controls.
+
+ \image b2qt-demo-enterprise-dashboard.jpg
+
+ This example project demonstrates using several CircularGauge controls to create a car dashboard.
+*/
+
+/*!
+ \example enterprise-gallery
+ \title Enterprise Controls Gallery
+ \ingroup b2qt-demos
+ \brief An interactive showcase for Qt Quick Enterprise Controls.
+
+ \image b2qt-demo-enterprise-gallery.jpg
+
+ This example project demonstrates the various UI controls provided by Qt Quick Enterprise Controls.
+*/
+
+/*!
+ \omit
+ \example launchersettings
+ \title Launcher Settings
+ \ingroup b2qt-demos
+ \brief Displays information and settings available for the Boot to Qt launcher.
+ \endomit
+*/
diff --git a/doc/b2qt-demos.qdocconf b/doc/b2qt-demos.qdocconf
new file mode 100644
index 0000000..d1dec94
--- /dev/null
+++ b/doc/b2qt-demos.qdocconf
@@ -0,0 +1,46 @@
+include(html-offline.qdocconf)
+
+naturallanguage = en_US
+outputencoding = UTF-8
+sourceencoding = UTF-8
+
+project = QtEnterpriseEmbeddedDemos
+description = Qt Enterprise Embedded Examples and Demos
+version = 2.0.0
+
+sourcedirs = .
+imagedirs += images
+
+sources.fileextensions = "*.qdoc"
+
+examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.qml *.css"
+examples.imageextensions = "*.png *.jpg *.gif"
+
+exampledirs = ../basicsuite
+examplesinstallpath = ../../../Boot2Qt-2.x/sources/b2qt-demos/basicsuite
+
+qhp.projects = QtEnterpriseEmbeddedDemos
+
+qhp.QtEnterpriseEmbeddedDemos.file = b2qt-demos.qhp
+qhp.QtEnterpriseEmbeddedDemos.namespace = com.digia.b2qt-demos.200
+qhp.QtEnterpriseEmbeddedDemos.virtualFolder = b2qt-demos
+qhp.QtEnterpriseEmbeddedDemos.indexTitle = Qt Enterprise Embedded Examples and Demos
+qhp.QtEnterpriseEmbeddedDemos.indexRoot =
+
+qhp.QtEnterpriseEmbeddedDemos.subprojects = demos
+qhp.QtEnterpriseEmbeddedDemos.subprojects.demos.title = Qt Enterprise Embedded Examples and Demos
+qhp.QtEnterpriseEmbeddedDemos.subprojects.demos.indexTitle = Qt Enterprise Embedded Examples and Demos
+
+manifestmeta.filters = thumbnail
+#manifestmeta.thumbnail.attributes = "imageUrl:qthelp\://com.digia.b2qt-demos.200/b2qt-demos/images/b2qt-demo.png"
+manifestmeta.thumbnail.tags = "b2qt,qtee"
+manifestmeta.thumbnail.names = "QtEnterpriseEmbeddedDemos/*"
+
+# Add an image used in example manifests to qhp
+HTML.extraimages += images/b2qt-demo.png
+qhp.QtEnterpriseEmbeddedDemos.extraFiles += images/b2qt-demo.png
+
+macro.B2Q = "Boot to Qt"
+macro.SDK = "Qt Enterprise Embedded"
+
+navigation.landingpage = "Qt Enterprise Embedded Examples and Demos"
diff --git a/doc/doc.pro b/doc/doc.pro
new file mode 100644
index 0000000..9c84012
--- /dev/null
+++ b/doc/doc.pro
@@ -0,0 +1,3 @@
+TEMPLATE = aux
+QMAKE_DOCS = $$PWD/b2qt-demos.qdocconf
+
diff --git a/doc/html-offline.qdocconf b/doc/html-offline.qdocconf
new file mode 100644
index 0000000..bef6912
--- /dev/null
+++ b/doc/html-offline.qdocconf
@@ -0,0 +1,54 @@
+HTML.nobreadcrumbs = "true"
+
+HTML.stylesheets = template/style/offline.css
+
+# Copy images used by the template to images folder in output directory
+HTML.extraimages = template/images/bgrContent.png \
+ template/images/blu_dot.png \
+ template/images/btn_next.png \
+ template/images/btn_prev.png \
+ template/images/ico_note.png \
+ template/images/ico_note_attention.png \
+ template/images/ico_out.png \
+ template/images/arrow_bc.png \
+ template/images/home.png
+
+# Add style-related files into qch package
+qhp.extraFiles += style/offline.css \
+ images/bgrContent.png \
+ images/blu_dot.png \
+ images/btn_next.png \
+ images/btn_prev.png \
+ images/ico_note.png \
+ images/ico_note_attention.png \
+ images/ico_out.png \
+ images/home.png \
+ images/arrow_bc.png
+
+HTML.headerstyles = \
+ " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/offline.css\" />\n"
+
+HTML.endheader = \
+ "</head>\n" \
+ "<body>\n"
+
+HTML.footer = \
+ " <div class=\"ft\">\n" \
+ " <span></span>\n" \
+ " </div>\n" \
+ "</div> \n" \
+ "<div class=\"footer\">\n" \
+ " <p>\n" \
+ " <acronym title=\"Copyright\">&copy;</acronym> 2014 Digia Plc and/or its\n" \
+ " subsidiaries.</p>\n" \
+ " <p>\n" \
+ " Licensees holding valid Qt Commercial licenses may use this document in\n" \
+ " accordance with the Qt Commercial License Agreement provided with the\n" \
+ " Software or, alternatively, in accordance with the terms contained in a\n" \
+ " written agreement between you and Digia.<\p>\n" \
+ " <p>\n" \
+ " Digia, Qt and their respective logos are trademarks of Digia Plc \n" \
+ " in Finland and/or other countries worldwide. All other trademarks are property\n" \
+ " of their respective owners. <a title=\"Privacy Policy\"\n" \
+ " href=\"http://en.gitorious.org/privacy_policy/\">Privacy Policy</a></p>\n" \
+ "</div>\n"
diff --git a/doc/images/b2qt-demo-about-b2qt.jpg b/doc/images/b2qt-demo-about-b2qt.jpg
new file mode 100644
index 0000000..f2eb2e0
--- /dev/null
+++ b/doc/images/b2qt-demo-about-b2qt.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-camera.jpg b/doc/images/b2qt-demo-camera.jpg
new file mode 100644
index 0000000..3f15310
--- /dev/null
+++ b/doc/images/b2qt-demo-camera.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-controls-touch.jpg b/doc/images/b2qt-demo-controls-touch.jpg
new file mode 100644
index 0000000..c57eac3
--- /dev/null
+++ b/doc/images/b2qt-demo-controls-touch.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-enterprise-charts.jpg b/doc/images/b2qt-demo-enterprise-charts.jpg
new file mode 100644
index 0000000..2776b0b
--- /dev/null
+++ b/doc/images/b2qt-demo-enterprise-charts.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-enterprise-dashboard.jpg b/doc/images/b2qt-demo-enterprise-dashboard.jpg
new file mode 100644
index 0000000..eb2e3b5
--- /dev/null
+++ b/doc/images/b2qt-demo-enterprise-dashboard.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-enterprise-gallery.jpg b/doc/images/b2qt-demo-enterprise-gallery.jpg
new file mode 100644
index 0000000..8ddcad8
--- /dev/null
+++ b/doc/images/b2qt-demo-enterprise-gallery.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-graphicaleffects.jpg b/doc/images/b2qt-demo-graphicaleffects.jpg
new file mode 100644
index 0000000..80fbbd5
--- /dev/null
+++ b/doc/images/b2qt-demo-graphicaleffects.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-mediaplayer.jpg b/doc/images/b2qt-demo-mediaplayer.jpg
new file mode 100644
index 0000000..0fff215
--- /dev/null
+++ b/doc/images/b2qt-demo-mediaplayer.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-photogallery.jpg b/doc/images/b2qt-demo-photogallery.jpg
new file mode 100644
index 0000000..0b67f1d
--- /dev/null
+++ b/doc/images/b2qt-demo-photogallery.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-qt5-cinematicdemo.jpg b/doc/images/b2qt-demo-qt5-cinematicdemo.jpg
new file mode 100644
index 0000000..21bb2f9
--- /dev/null
+++ b/doc/images/b2qt-demo-qt5-cinematicdemo.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-qt5-everywhere.jpg b/doc/images/b2qt-demo-qt5-everywhere.jpg
new file mode 100644
index 0000000..1bb40bf
--- /dev/null
+++ b/doc/images/b2qt-demo-qt5-everywhere.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-qt5-launchpresentation.jpg b/doc/images/b2qt-demo-qt5-launchpresentation.jpg
new file mode 100644
index 0000000..8decd76
--- /dev/null
+++ b/doc/images/b2qt-demo-qt5-launchpresentation.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-qt5-particlesdemo.jpg b/doc/images/b2qt-demo-qt5-particlesdemo.jpg
new file mode 100644
index 0000000..fa0db59
--- /dev/null
+++ b/doc/images/b2qt-demo-qt5-particlesdemo.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-sensorexplorer.jpg b/doc/images/b2qt-demo-sensorexplorer.jpg
new file mode 100644
index 0000000..b0469e5
--- /dev/null
+++ b/doc/images/b2qt-demo-sensorexplorer.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-sensors.jpg b/doc/images/b2qt-demo-sensors.jpg
new file mode 100644
index 0000000..7ce979d
--- /dev/null
+++ b/doc/images/b2qt-demo-sensors.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo-textinput.jpg b/doc/images/b2qt-demo-textinput.jpg
new file mode 100644
index 0000000..f415a86
--- /dev/null
+++ b/doc/images/b2qt-demo-textinput.jpg
Binary files differ
diff --git a/doc/images/b2qt-demo.png b/doc/images/b2qt-demo.png
new file mode 100644
index 0000000..e798ae2
--- /dev/null
+++ b/doc/images/b2qt-demo.png
Binary files differ
diff --git a/doc/template/images/arrow_bc.png b/doc/template/images/arrow_bc.png
new file mode 100644
index 0000000..f2a83a5
--- /dev/null
+++ b/doc/template/images/arrow_bc.png
Binary files differ
diff --git a/doc/template/images/bgrContent.png b/doc/template/images/bgrContent.png
new file mode 100644
index 0000000..1a81b03
--- /dev/null
+++ b/doc/template/images/bgrContent.png
Binary files differ
diff --git a/doc/template/images/blu_dot.png b/doc/template/images/blu_dot.png
new file mode 100644
index 0000000..c332148
--- /dev/null
+++ b/doc/template/images/blu_dot.png
Binary files differ
diff --git a/doc/template/images/btn_next.png b/doc/template/images/btn_next.png
new file mode 100644
index 0000000..f7bc2b7
--- /dev/null
+++ b/doc/template/images/btn_next.png
Binary files differ
diff --git a/doc/template/images/btn_prev.png b/doc/template/images/btn_prev.png
new file mode 100644
index 0000000..10a620c
--- /dev/null
+++ b/doc/template/images/btn_prev.png
Binary files differ
diff --git a/doc/template/images/home.png b/doc/template/images/home.png
new file mode 100644
index 0000000..8de6d0c
--- /dev/null
+++ b/doc/template/images/home.png
Binary files differ
diff --git a/doc/template/images/ico_note.png b/doc/template/images/ico_note.png
new file mode 100644
index 0000000..1379404
--- /dev/null
+++ b/doc/template/images/ico_note.png
Binary files differ
diff --git a/doc/template/images/ico_note_attention.png b/doc/template/images/ico_note_attention.png
new file mode 100644
index 0000000..b85b696
--- /dev/null
+++ b/doc/template/images/ico_note_attention.png
Binary files differ
diff --git a/doc/template/images/ico_out.png b/doc/template/images/ico_out.png
new file mode 100644
index 0000000..ff6e458
--- /dev/null
+++ b/doc/template/images/ico_out.png
Binary files differ
diff --git a/doc/template/style/offline.css b/doc/template/style/offline.css
new file mode 100644
index 0000000..3bab27b
--- /dev/null
+++ b/doc/template/style/offline.css
@@ -0,0 +1,628 @@
+body{
+font: normal 400 14px/1.2 Arial;
+margin-top:85px;
+font-family: Arial, Helvetica;
+color:#313131;
+text-align:justify;
+margin-left:5px;
+margin-right:5px;
+}
+
+img{
+-moz-box-shadow: 3px 3px 3px #ccc;
+-webkit-box-shadow: 3px 3px 3px #ccc;
+box-shadow: 3px 3px 3px #ccc;
+border:#8E8D8D 2px solid;
+margin-left:0px;
+max-width: 800px;
+height: auto
+}
+
+b{
+font-weight:600;
+}
+
+.content{}
+
+.descr{
+margin-top:35px;
+/*max-width: 75%;*/
+margin-left:5px;
+text-align:justify;
+min-height:700px;
+vertical-align:top;
+}
+
+.name{
+max-width: 75%;
+font-weight:100;
+}
+
+tt{
+text-align:left;}
+
+/*
+-----------
+links
+-----------
+*/
+
+a:link{
+color: #2C418D;
+text-decoration: none;
+text-align:left;
+}
+
+a:hover{
+color: #869CD1;
+text-decoration:underline;
+text-align:left;
+}
+
+a:visited{
+color: #869CD1;
+text-decoration: none;
+text-align:left;
+}
+
+a:visited:hover{
+text-decoration:underline;
+text-align:left;
+}
+
+a[href*="http://"], a[href*="ftp://"],a[href*="https://"]
+{
+text-decoration: none;
+background-image:url(../images/ico_out.png);
+background-repeat:no-repeat;
+background-position:left;
+padding-left:20px;
+text-align:left;
+}
+
+.flags{
+text-decoration:none;
+text-height:24px;
+}
+
+/*
+-------------------------------
+NOTE styles
+-------------------------------
+*/
+.notetitle, .tiptitle, .fastpathtitle{
+font-weight:bold;
+}
+
+.attentiontitle,.cautiontitle,.dangertitle,.importanttitle,.remembertitle,.restrictiontitle{
+font-weight:bold;
+}
+
+.note,.tip,.fastpath{
+background: #F2F2F2 url(../images/ico_note.png);
+background-repeat: no-repeat;
+background-position: top left;
+padding:5px;
+padding-left:40px;
+padding-bottom:10px;
+border:#999 1px dotted;
+color:#666666;
+margin:5px;
+}
+
+.attention,.caution,.danger,.important,.remember,.restriction{
+background: #F2F2F2 url(../images/ico_note_attention.png);
+background-repeat:no-repeat;
+background-position:top left;
+padding:5px;
+padding-left:40px;
+padding-bottom:10px;
+border:#999 1px dotted;
+color:#666666;
+margin:5px;
+}
+
+/*
+-------------------------------
+Top navigation
+-------------------------------
+*/
+
+.header{
+
+height:1px;
+padding:0px;
+margin:0px;
+}
+
+.qtref{
+display: block;
+position: relative;
+top: -76px;
+height:15px;
+z-index: 1;
+font-size:11px;
+padding-right:10px;
+float:right;
+}
+
+.naviNextPrevious{
+display: block;
+position: relative;
+text-align: right;
+top: -53px;
+float:right;
+height:20px;
+z-index:1;
+padding-right:10px;
+padding-top:2px;
+vertical-align:top;
+margin:0px;
+}
+
+
+.naviNextPrevious > a.prevPage {
+background-image:url(../images/btn_prev.png);
+background-repeat:no-repeat;
+background-position:left;
+padding-left:20px;
+height:20px;
+padding-left:20px;
+}
+
+.naviNextPrevious > a.nextPage {
+background-image:url(../images/btn_next.png);
+background-repeat:no-repeat;
+background-position:right;
+padding-right:20px;
+height:20px;
+margin-left:30px;
+}
+
+.breadcrumb{
+display: block;
+position: relative;
+top:-20px;
+/*border-top:2px solid #ffffff;*/
+border-bottom: 1px solid #cecece;
+background-color:#F2F2F2;
+z-index:1;
+height:20px;
+padding:0px;
+margin:0px;
+padding-left:10px;
+padding-top:2px;
+margin-left:-5px;
+margin-right:-5px;
+}
+
+.breadcrumb ul{
+ margin:0px;
+ padding:0px;
+}
+
+.breadcrumb ul li{
+background-color:#F2F2F2;
+list-style-type:none;
+padding:0;
+margin:0;
+height:20px;
+}
+
+.breadcrumb li{
+float:left;
+}
+
+.breadcrumb .first {
+background:url(../images/home.png);
+background-position:left;
+background-repeat:no-repeat;
+padding-left:20px;
+}
+
+
+.breadcrumb li a{
+color:#2C418D;
+display:block;
+text-decoration:none;
+background:url(../images/arrow_bc.png);
+background-repeat:no-repeat;
+background-position:right;
+padding-right:25px;
+padding-left:10px;
+}
+
+.breadcrumb li a:hover{
+color:#909090;
+display:block;
+text-decoration:none;
+background:url(../images/arrow.png);
+background-repeat:no-repeat;
+background-position:right;
+padding-right:20px;
+padding-left:10px;
+}
+
+
+/* table of content
+no display
+*/
+
+/*
+-----------
+headers
+-----------
+*/
+
+
+@media screen{
+.title{
+color:#313131;
+font-size: 18px;
+font-weight: normal;
+left: 0;
+padding-bottom: 20px;
+padding-left: 10px;
+padding-top: 20px;
+position: absolute;
+right: 0;
+top: 0;
+background-color:#E6E6E6;
+border-bottom: 1px #CCC solid;
+border-top: 2px #CCC solid;
+font-weight:bold;
+margin-left:0px;
+margin-right:0px;
+}
+}
+
+h1 {
+margin: 0;
+}
+
+h2, p.h2 {
+font: 500 16px/1.2 Arial;
+font-weight:100;
+background-color:#F2F3F4;
+padding:4px;
+padding-left: 14px;
+margin-bottom:30px;
+margin-top:30px;
+margin-left: -10px;
+margin-right: -5px;
+border-top:#E0E0DE 1px solid;
+border-bottom: #E0E0DE 1px solid;
+}
+
+h3{
+
+font: 500 14px/1.2 Arial;
+font-weight:100;
+text-decoration:underline;
+margin-bottom:30px;
+margin-top:30px;
+}
+
+h3.fn,span.fn{
+border-width: 1px;
+border-style: solid;
+border-color: #E6E6E6;
+-moz-border-radius: 7px 7px 7px 7px;
+-webkit-border-radius: 7px 7px 7px 7px;
+border-radius: 7px 7px 7px 7px;
+background-color: #F6F6F6;
+word-spacing: 3px;
+padding: 5px 5px;
+text-decoration:none;
+font-weight:bold;
+max-width:75%;
+font-size:14px;
+margin:0px;
+margin-top:30px;
+
+}
+
+.name{
+color:#1A1A1A;
+}
+.type{
+color:#808080;
+}
+
+
+
+@media print {
+.title {
+color:#0066CB;
+font-family:Arial, Helvetica;
+font-size: 32px;
+font-weight: normal;
+left: 0;
+position: absolute;
+right: 0;
+top: 0;
+}
+}
+
+
+/*
+-----------------
+table styles
+-----------------
+*/
+.table img {
+border:none;
+margin-left:0px;
+-moz-box-shadow:0px 0px 0px #fff;
+-webkit-box-shadow: 0px 0px 0px #fff;
+box-shadow: 0px 0px 0px #fff;
+}
+
+/* table with border alternative colors*/
+
+ table,pre{
+-moz-border-radius: 7px 7px 7px 7px;
+-webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+background-color: #F6F6F6;
+border: 1px solid #E6E6E6;
+border-collapse: separate;
+font-size: 12px;
+line-height: 1.2;
+margin-bottom: 25px;
+margin-left: 15px;
+font-size: 12px;
+line-height: 1.2;
+margin-bottom: 25px;
+margin-left: 15px;
+}
+
+
+table th{
+text-align:left;
+padding-left:20px;
+}
+
+table td {
+padding: 3px 15px 3px 20px;
+border-bottom:#CCC dotted 1px;
+}
+table p { margin:0px;}
+
+table tr.even {
+background-color: white;
+color: #66666E;
+}
+
+table tr.odd {
+background-color: #F6F6F6;
+color: #66666E;
+}
+
+
+table thead {
+text-align:left;
+padding-left:20px;
+background-color:#e1e0e0;
+border-left:none;
+border-right:none;
+}
+
+table thead th {
+padding-top:5px;
+padding-left:10px;
+padding-bottom:5px;
+border-bottom: 2px solid #D1D1D1;
+padding-right:10px;
+}
+
+
+/* table bodless & white*/
+
+.borderless {
+border-radius: 0px 0px 0px 0px;
+background-color: #fff;
+border: 1px solid #fff;
+}
+
+.borderless tr {
+background-color: #FFF;
+color: #66666E;
+}
+
+.borderless td {
+border:none;
+border-bottom:#fff dotted 1px;
+}
+
+/*
+-----------
+List
+-----------
+*/
+
+ul{
+padding-bottom:2px;
+}
+
+li {
+margin-bottom: 10px;
+padding-left: 8px;
+list-style:outside;
+list-style-type:square;
+text-align:left;
+}
+
+
+ol{
+margin:10px;
+padding:0;
+}
+
+ol > li{
+margin-left: 30px;
+padding-left:8px;
+list-style:decimal;
+}
+
+.centerAlign{
+text-align: left;
+}
+
+.cpp{
+display: block;
+margin: 10;
+overflow: hidden;
+overflow-x: hidden;
+overflow-y: hidden;
+padding: 20px 0 20px 0;
+}
+
+.footer{
+margin-top: 50px;
+padding-left:5px;
+margin-bottom: 10px;
+font-size:10px;
+border-top: 1px solid #999;
+padding-top:11px;
+}
+
+.footer a[href*="http://"], a[href*="ftp://"],a[href*="https://"]{
+background-size: 13px 11px;
+padding-left: 16px;
+}
+
+.footerNavi{
+width:auto;
+text-align:right;
+margin-top:50px;
+z-index:1;
+}
+
+.memItemLeft{
+padding-right: 3px;
+}
+
+.memItemRight{
+padding: 3px 15px 3px 0;
+}
+
+.qml{
+display: block;
+margin: 10;
+overflow: hidden;
+overflow-x: hidden;
+overflow-y: hidden;
+padding: 20px 0 20px 0;
+}
+
+.qmldefault{
+padding-left: 5px;
+float: right;
+color: red;
+}
+
+.qmlreadonly{
+padding-left: 5px;
+float: right;
+color: #254117;
+}
+
+.rightAlign{
+padding: 3px 5px 3px 10px;
+text-align: right;
+}
+
+/*
+-----------
+Content table
+-----------
+*/
+
+@media print{
+.toc {
+float: right;
+padding-bottom: 10px;
+padding-top: 50px;
+width: 100%;
+background-image:url(../images/bgrContent.png);
+background-position:top;
+background-repeat:no-repeat;
+}
+}
+
+@media screen{
+.toc{
+clear:both;
+float:right;
+vertical-align:top;
+-moz-border-radius: 7px 7px 7px 7px;
+-webkit-border-radius: 7px 7px 7px 7px;
+border-radius: 7px 7px 7px 7px;
+ background:#FFF url(../images/bgrContent.png);
+background-position:top;
+background-repeat:repeat-x;
+border: 1px solid #E6E6E6;
+padding-left:5px;
+padding-bottom:10px;
+height: auto;
+width: 200px;
+text-align:left;
+z-index:2;
+margin-left:20px;
+margin-right:20px;
+margin-top:0px;
+padding-top:0px;
+}
+}
+
+.toc h3{
+text-decoration:none;
+}
+
+.toc h3{font: 500 14px/1.2 Arial;
+font-weight:100;
+padding:0px;
+margin:0px;
+padding-top:5px;
+padding-left:5px;
+}
+
+
+.toc ul{
+width:160px;
+padding-left:10px;
+padding-right:5px;
+padding-top:10px;
+}
+
+.toc ul li{
+margin-left:20px;
+list-style-image:url(../images/blu_dot.png);
+list-style:outside;
+
+}
+
+
+.toc ul li a:link{
+color: #2C418D;
+text-decoration: none;
+}
+
+.toc ul li a:hover{
+color: #869CD1;
+text-decoration:underline;
+
+}
+
+.toc ul li a:visited{
+color: #869CD1;
+font-weight: bold;
+}
+
+.level1{
+border:none;}
+
+.clearfix{
+clear:both;}
+
diff --git a/experimental/Overlay Tester/main.qml b/experimental/Overlay Tester/main.qml
index a764917..e7ae0af 100644
--- a/experimental/Overlay Tester/main.qml
+++ b/experimental/Overlay Tester/main.qml
@@ -1,3 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
import QtQuick 2.0
Item {
diff --git a/experimental/Wifi/main.qml b/experimental/Wifi/main.qml
deleted file mode 100644
index 5c7bed9..0000000
--- a/experimental/Wifi/main.qml
+++ /dev/null
@@ -1,159 +0,0 @@
-import QtQuick 2.0
-import Qt.labs.wifi 0.1
-
-Rectangle
-{
- id: root
-
- color: Qt.rgba(Math.random(), Math.random(), Math.random(), 1);
-
- QWifiManager {
- id: wifiManager;
-
- Component.onCompleted: start();
-
- onReadyChanged: {
- print("QML: QWifiManager is now connected...");
- }
-
- onOnlineChanged: print(online ? "QML: WifiManager is online" : "QML: WifiManager is not online...");
-
- //scanning: ready && connectedSSID == "";
- scanning: ready
- }
-
- Component {
- id: listDelegate
-
- Rectangle {
- id: delegateBackground
- property bool expanded: false
- height: expanded ? 300 : 70
- clip: true // ### fixme
-
- Behavior on height { NumberAnimation { duration: 500; easing.type: Easing.InOutCubic } }
-
- width: parent.width
-
- gradient: Gradient {
- GradientStop { position: 0; color: "white" }
- GradientStop { position: 67 / delegateBackground.height; color: "lightgray" }
- GradientStop { position: 1; color: "gray" }
- }
-
- Text {
- id: ssidLabel
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.margins: 10
- font.pixelSize: 24
- font.bold: true
- text: network.ssid + (wifiManager.connectedSSID == network.ssid ? " (connected)" : "");
- }
-
- Text {
- id: bssidLabel
- anchors.top: ssidLabel.bottom
- anchors.left: parent.left
- anchors.margins: 5
- anchors.leftMargin: 40
- text: network.bssid
- color: "gray"
- font.pixelSize: ssidLabel.font.pixelSize * 0.5
- }
-
- Text {
- id: flagsLabel
- x: 200
- anchors.top: bssidLabel.top
- text: (network.supportsWPA2 ? "WPA2 " : "")
- + (network.supportsWPA ? "WPA " : "")
- + (network.supportsWEP ? "WEP " : "")
- + (network.supportsWPS ? "WPS " : "");
- color: "gray"
- font.pixelSize: ssidLabel.font.pixelSize * 0.5
- font.italic: true
- }
-
- Rectangle {
- width: Math.max(100 + network.signalStrength, 0) / 100 * parent.width;
- height: 20
- radius: 10
- antialiasing: true
- anchors.margins: 20
- anchors.right: parent.right
- anchors.top: parent.top
- color: "lightblue"
- border.color: "lightgray"
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- parent.expanded = !expanded
- }
- }
-
- Rectangle {
- id: passwordInputBackground
- anchors.fill: passwordInput
- anchors.margins: -5
- color: "white"
- radius: 5
- border.color: "gray"
- }
-
- TextInput {
- id: passwordInput
- //echoMode: TextInput.PasswordEchoOnEdit
- y: 100
- width: 300
- height: 50
- anchors.horizontalCenter: parent.horizontalCenter
- font.pixelSize: 18
- }
-
- Rectangle {
- id: connectButton
- anchors.top: passwordInput.bottom
- anchors.margins: 20
- anchors.horizontalCenter: parent.horizontalCenter
- width: passwordInput.width
- height: passwordInputBackground.height
-
- gradient: Gradient {
- GradientStop { position: 0; color: "white" }
- GradientStop { position: 1; color: buttonMouse.pressed ? "steelblue" : "lightsteelblue" }
- }
-
- border.color: "gray"
-
- Text {
- anchors.centerIn: parent
- font.pixelSize: 24
- text: "Connect"
- }
- MouseArea {
- id: buttonMouse
- anchors.fill: parent
- onClicked: wifiManager.connect(network, passwordInput.text);
- }
- }
-
- }
- }
-
- ListView {
- anchors.fill: root
- model: wifiManager.networks
- delegate: listDelegate;
- }
-
- Image {
- source: wifiManager.online ? "http://img3.imageshack.us/img3/9870/magepicture.jpg" : ""
- anchors.bottom: parent.bottom
-
- width: parent.width
- height: sourceSize.height * (width / sourceSize.width);
- }
-}
diff --git a/experimental/qt5-intro-android/WebKitSlideContent.qml b/experimental/qt5-intro-android/WebKitSlideContent.qml
index ea5a364..ceb103f 100644
--- a/experimental/qt5-intro-android/WebKitSlideContent.qml
+++ b/experimental/qt5-intro-android/WebKitSlideContent.qml
@@ -1,3 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
import QtQuick 2.0
import QtQuick.Particles 2.0
import QtWebKit 3.0
diff --git a/experimental/qt5-intro-android/WebkitSlide.qml b/experimental/qt5-intro-android/WebkitSlide.qml
index edb8e4c..9febcdf 100644
--- a/experimental/qt5-intro-android/WebkitSlide.qml
+++ b/experimental/qt5-intro-android/WebkitSlide.qml
@@ -1,3 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
import QtQuick 2.0
import "presentation"
diff --git a/experimental/qt5-intro-android/main.cpp b/experimental/qt5-intro-android/main.cpp
index f68e26c..9147a55 100644
--- a/experimental/qt5-intro-android/main.cpp
+++ b/experimental/qt5-intro-android/main.cpp
@@ -1,3 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of the examples of the Qt Enterprise Embedded.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
#include <QtGui>
#include <QtQuick>