summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Gronholm <kim.1.gronholm@nokia.com>2011-05-03 13:30:58 +0300
committerKim Gronholm <kim.1.gronholm@nokia.com>2011-05-03 13:30:58 +0300
commit7aac6c99df60af961fb0acf14d6f050695756174 (patch)
treef7c30d2dc048cc7dcd3610561cf88cc6f6e5dc0f
Initial commit
-rw-r--r--README66
-rw-r--r--debian/changelog11
-rw-r--r--debian/compat1
-rwxr-xr-xdebian/configure_package_install_files33
-rw-r--r--debian/control39
-rw-r--r--debian/qmlshadersplugin-demos.install6
-rw-r--r--debian/qmlshadersplugin.install2
-rwxr-xr-xdebian/rules94
-rw-r--r--demos.pro7
-rw-r--r--doc/html/assistant.dcf3
-rw-r--r--doc/html/designer.dcf3
-rw-r--r--doc/html/images/Example1.pngbin0 -> 3941 bytes
-rwxr-xr-xdoc/html/images/arrow_down.pngbin0 -> 177 bytes
-rwxr-xr-xdoc/html/images/bg_l.pngbin0 -> 100 bytes
-rwxr-xr-xdoc/html/images/bg_l_blank.pngbin0 -> 84 bytes
-rwxr-xr-xdoc/html/images/bg_ll_blank.pngbin0 -> 320 bytes
-rwxr-xr-xdoc/html/images/bg_r.pngbin0 -> 96 bytes
-rwxr-xr-xdoc/html/images/bg_ul_blank.pngbin0 -> 304 bytes
-rwxr-xr-xdoc/html/images/box_bg.pngbin0 -> 89 bytes
-rwxr-xr-xdoc/html/images/breadcrumb.pngbin0 -> 134 bytes
-rwxr-xr-xdoc/html/images/bullet_dn.pngbin0 -> 230 bytes
-rwxr-xr-xdoc/html/images/bullet_gt.pngbin0 -> 124 bytes
-rwxr-xr-xdoc/html/images/bullet_sq.pngbin0 -> 74 bytes
-rwxr-xr-xdoc/html/images/bullet_up.pngbin0 -> 210 bytes
-rwxr-xr-xdoc/html/images/feedbackground.pngbin0 -> 263 bytes
-rwxr-xr-xdoc/html/images/header_bg.pngbin0 -> 114 bytes
-rwxr-xr-xdoc/html/images/horBar.pngbin0 -> 2807 bytes
-rwxr-xr-xdoc/html/images/page.pngbin0 -> 3102 bytes
-rwxr-xr-xdoc/html/images/page_bg.pngbin0 -> 84 bytes
-rwxr-xr-xdoc/html/images/spinner.gifbin0 -> 2037 bytes
-rwxr-xr-xdoc/html/images/sprites-combined.pngbin0 -> 62534 bytes
-rw-r--r--doc/html/linguist.dcf3
-rw-r--r--doc/html/qmake.dcf3
-rw-r--r--doc/html/qml-shadereffectitem-members.html191
-rw-r--r--doc/html/qml-shadereffectitem.html317
-rw-r--r--doc/html/qml-shadereffectsource-members.html194
-rw-r--r--doc/html/qml-shadereffectsource.html268
-rw-r--r--doc/html/qmlshadersplugin.dcf6
-rw-r--r--doc/html/qmlshadersplugin.index21
-rw-r--r--doc/html/qmlshadersplugin.pageindex11397
-rwxr-xr-xdoc/html/scripts/functions.js194
-rwxr-xr-xdoc/html/scripts/jquery.js152
-rwxr-xr-xdoc/html/scripts/narrow.js89
-rwxr-xr-xdoc/html/scripts/superfish.js121
-rwxr-xr-xdoc/html/style/narrow.css270
-rwxr-xr-xdoc/html/style/style.css1588
-rwxr-xr-xdoc/html/style/style_ie6.css54
-rwxr-xr-xdoc/html/style/style_ie7.css19
-rwxr-xr-xdoc/html/style/style_ie8.css0
-rwxr-xr-xdoc/html/style/superfish.css51
-rw-r--r--doc/src/images/Example1.pngbin0 -> 3941 bytes
-rwxr-xr-xdoc/src/images/arrow_down.pngbin0 -> 177 bytes
-rwxr-xr-xdoc/src/images/bg_l.pngbin0 -> 100 bytes
-rwxr-xr-xdoc/src/images/bg_l_blank.pngbin0 -> 84 bytes
-rwxr-xr-xdoc/src/images/bg_ll_blank.pngbin0 -> 320 bytes
-rwxr-xr-xdoc/src/images/bg_r.pngbin0 -> 96 bytes
-rwxr-xr-xdoc/src/images/bg_ul_blank.pngbin0 -> 304 bytes
-rwxr-xr-xdoc/src/images/box_bg.pngbin0 -> 89 bytes
-rwxr-xr-xdoc/src/images/breadcrumb.pngbin0 -> 134 bytes
-rwxr-xr-xdoc/src/images/bullet_dn.pngbin0 -> 230 bytes
-rwxr-xr-xdoc/src/images/bullet_gt.pngbin0 -> 124 bytes
-rwxr-xr-xdoc/src/images/bullet_sq.pngbin0 -> 74 bytes
-rwxr-xr-xdoc/src/images/bullet_up.pngbin0 -> 210 bytes
-rwxr-xr-xdoc/src/images/feedbackground.pngbin0 -> 263 bytes
-rwxr-xr-xdoc/src/images/header_bg.pngbin0 -> 114 bytes
-rwxr-xr-xdoc/src/images/horBar.pngbin0 -> 2807 bytes
-rwxr-xr-xdoc/src/images/page.pngbin0 -> 3102 bytes
-rwxr-xr-xdoc/src/images/page_bg.pngbin0 -> 84 bytes
-rwxr-xr-xdoc/src/images/spinner.gifbin0 -> 2037 bytes
-rwxr-xr-xdoc/src/images/sprites-combined.pngbin0 -> 62534 bytes
-rw-r--r--doc/src/qmlshadersplugin.qdocconf412
-rwxr-xr-xdoc/src/scripts/functions.js194
-rwxr-xr-xdoc/src/scripts/jquery.js152
-rwxr-xr-xdoc/src/scripts/narrow.js89
-rwxr-xr-xdoc/src/scripts/superfish.js121
-rwxr-xr-xdoc/src/style/narrow.css270
-rwxr-xr-xdoc/src/style/style.css1588
-rwxr-xr-xdoc/src/style/style_ie6.css54
-rwxr-xr-xdoc/src/style/style_ie7.css19
-rwxr-xr-xdoc/src/style/style_ie8.css0
-rwxr-xr-xdoc/src/style/superfish.css51
-rw-r--r--examples/helloworld/helloworld.desktop11
-rw-r--r--examples/helloworld/helloworld.pngbin0 -> 3400 bytes
-rw-r--r--examples/helloworld/helloworld.pro48
-rw-r--r--examples/helloworld/helloworld.svg93
-rw-r--r--examples/helloworld/main.cpp70
-rw-r--r--examples/helloworld/qml/helloworld/main.qml79
-rw-r--r--examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.cpp155
-rw-r--r--examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.h39
-rw-r--r--examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.pri167
-rw-r--r--examples/shadereffects/main.cpp67
-rw-r--r--examples/shadereffects/qml/shadereffects/Curtain.qml106
-rw-r--r--examples/shadereffects/qml/shadereffects/CurtainEffect.qml97
-rw-r--r--examples/shadereffects/qml/shadereffects/DropShadow.qml117
-rw-r--r--examples/shadereffects/qml/shadereffects/DropShadowEffect.qml174
-rw-r--r--examples/shadereffects/qml/shadereffects/Grayscale.qml77
-rw-r--r--examples/shadereffects/qml/shadereffects/GrayscaleEffect.qml62
-rw-r--r--examples/shadereffects/qml/shadereffects/ImageMask.qml143
-rw-r--r--examples/shadereffects/qml/shadereffects/ImageMaskEffect.qml60
-rw-r--r--examples/shadereffects/qml/shadereffects/RadialWave.qml85
-rw-r--r--examples/shadereffects/qml/shadereffects/RadialWaveEffect.qml81
-rwxr-xr-xexamples/shadereffects/qml/shadereffects/Water.qml60
-rw-r--r--examples/shadereffects/qml/shadereffects/WaterEffect.qml126
-rw-r--r--examples/shadereffects/qml/shadereffects/images/Curtain.jpgbin0 -> 16112 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/DropShadow.jpgbin0 -> 12975 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/Grayscale.jpgbin0 -> 19048 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/ImageMask.jpgbin0 -> 18751 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/RadialWave.jpgbin0 -> 41406 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/Water.jpgbin0 -> 17751 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/back.pngbin0 -> 370 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/bg.jpgbin0 -> 10189 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/desaturate.jpgbin0 -> 203942 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/drop_shadow.pngbin0 -> 219220 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/fabric.jpgbin0 -> 163431 bytes
-rwxr-xr-xexamples/shadereffects/qml/shadereffects/images/flower.pngbin0 -> 219220 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/image1.jpgbin0 -> 115770 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/image2.jpgbin0 -> 45837 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/qt-logo.pngbin0 -> 22746 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/shader_effects.jpgbin0 -> 4906 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/sky.jpgbin0 -> 36734 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/toolbar.pngbin0 -> 342 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/images/wave.jpgbin0 -> 176681 bytes
-rw-r--r--examples/shadereffects/qml/shadereffects/main.qml160
-rw-r--r--examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.cpp155
-rw-r--r--examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.h39
-rw-r--r--examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.pri167
-rw-r--r--examples/shadereffects/shadereffects.desktop11
-rw-r--r--examples/shadereffects/shadereffects.pngbin0 -> 3400 bytes
-rw-r--r--examples/shadereffects/shadereffects.pro49
-rw-r--r--examples/shadereffects/shadereffects.svg93
-rw-r--r--qmlshadersplugin.pro2
-rwxr-xr-xsrc/glfunctions.h75
-rw-r--r--src/qmldir2
-rw-r--r--src/qmlshadersplugin_plugin.cpp55
-rw-r--r--src/qmlshadersplugin_plugin.h56
-rw-r--r--src/scenegraph/qsggeometry.cpp310
-rw-r--r--src/scenegraph/qsggeometry.h234
-rw-r--r--src/shadereffect.cpp192
-rw-r--r--src/shadereffect.h81
-rw-r--r--src/shadereffectbuffer.cpp52
-rw-r--r--src/shadereffectbuffer.h62
-rw-r--r--src/shadereffectitem.cpp893
-rw-r--r--src/shadereffectitem.h149
-rw-r--r--src/shadereffectsource.cpp472
-rw-r--r--src/shadereffectsource.h158
-rw-r--r--src/src.pro55
-rw-r--r--tests/auto/auto.pro18
-rw-r--r--tests/auto/tst_qmlshadersplugin.cpp174
-rw-r--r--tests/manual/manual.pro2
-rw-r--r--tests/manual/performance/GaussianBlur.qml43
-rw-r--r--tests/manual/performance/GaussianDirectionalBlur.qml174
-rw-r--r--tests/manual/performance/GaussianDropShadow.qml41
-rwxr-xr-xtests/manual/performance/TestGaussianDropShadow.qml66
-rwxr-xr-xtests/manual/performance/TestWater.qml20
-rw-r--r--tests/manual/performance/Water.qml85
-rwxr-xr-xtests/manual/performance/drop_shadow_small.pngbin0 -> 46081 bytes
-rw-r--r--tests/manual/performance/performance.pro23
-rw-r--r--tests/manual/performance/sydney5.pngbin0 -> 174118 bytes
-rw-r--r--tests/manual/performance/tile.jpgbin0 -> 6494 bytes
-rw-r--r--tests/manual/performance/tst_performance.cpp110
-rw-r--r--tests/manual/qmlshadersplugintest/main.cpp67
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestActive.qml83
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBasic.qml57
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBlending.qml82
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBlendingModes.qml267
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestEffectHierarchy.qml133
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestEffectInsideAnotherEffect.qml119
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestFormat.qml89
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestFragmentShader.qml91
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestGrab.qml89
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestHideOriginal.qml97
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestHorizontalWrap.qml93
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageFiltering.qml84
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMargins.qml98
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMarginsWithTextureSize.qml96
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMipmap.qml95
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestItemMargins.qml102
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestItemMarginsWithTextureSize.qml101
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestLive.qml104
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestMeshResolution.qml108
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestOneSource.qml74
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestOpacity.qml98
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestRotation.qml95
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestScale.qml95
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTextureSize.qml85
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTwiceOnSameSource.qml92
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTwoSources.qml95
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestVertexShader.qml109
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestVerticalWrap.qml92
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestWrapRepeat.qml92
-rwxr-xr-xtests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/back.svg11
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestActive-1.pngbin0 -> 6428 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestActive-2.pngbin0 -> 6202 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBasic-1.pngbin0 -> 2966 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlendModes-1.pngbin0 -> 121192 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlending-1.pngbin0 -> 6287 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlending-2.pngbin0 -> 6252 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectHierarchy-1.pngbin0 -> 4673 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectHierarchy-2.pngbin0 -> 5716 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectInsideAnotherEffect-1.pngbin0 -> 4940 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectsHierarchy.pngbin0 -> 5292 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestFragmentShader-1.pngbin0 -> 5822 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestFragmentShader-2.pngbin0 -> 6150 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestGrab-1.pngbin0 -> 224941 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHideOriginal-1.pngbin0 -> 5989 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHideOriginal-2.pngbin0 -> 6272 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHorizontalWrap-1.pngbin0 -> 14586 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHorizontalWrap-2.pngbin0 -> 15382 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestImageFiltering-1.pngbin0 -> 31251 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestImageFiltering-2.pngbin0 -> 69604 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMargins-1.pngbin0 -> 234454 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMargins-2.pngbin0 -> 158751 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMarginsWithTextureSize-1.pngbin0 -> 55176 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMarginsWithTextureSize-2.pngbin0 -> 38922 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestLive-1.pngbin0 -> 6778 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestLive-2.pngbin0 -> 7410 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestMeshResolution-1.pngbin0 -> 243913 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestMeshResolution-2.pngbin0 -> 246348 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOneSource.pngbin0 -> 10433 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-1.pngbin0 -> 242692 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-2.pngbin0 -> 233300 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-3.pngbin0 -> 5284 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-1.pngbin0 -> 211632 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-2.pngbin0 -> 175446 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-3.pngbin0 -> 139381 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-1.pngbin0 -> 8829 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-2.pngbin0 -> 29391 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-3.pngbin0 -> 160384 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTextureSize-1.pngbin0 -> 78568 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTextureSize-2.pngbin0 -> 108826 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTwiceOnSameSource.pngbin0 -> 20114 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTwoSources.pngbin0 -> 7830 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVertexShader-1.pngbin0 -> 5815 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVertexShader-2.pngbin0 -> 6147 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVerticalWrap-1.pngbin0 -> 14679 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVerticalWrap-2.pngbin0 -> 39627 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestWrapRepeat-1.png.pngbin0 -> 14060 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestWrapRepeat-2.pngbin0 -> 46289 bytes
-rwxr-xr-xtests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/green_image_transparent.pngbin0 -> 1153 bytes
-rwxr-xr-xtests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image.pngbin0 -> 219220 bytes
-rwxr-xr-xtests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image_opaque.pngbin0 -> 293803 bytes
-rwxr-xr-xtests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image_small.pngbin0 -> 40220 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/main.qml236
-rwxr-xr-xtests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/wallpaper.jpgbin0 -> 337569 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.cpp127
-rw-r--r--tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.h28
-rw-r--r--tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.pri152
-rw-r--r--tests/manual/qmlshadersplugintest/qmlshadersplugintest.desktop11
-rw-r--r--tests/manual/qmlshadersplugintest/qmlshadersplugintest.pngbin0 -> 3400 bytes
-rw-r--r--tests/manual/qmlshadersplugintest/qmlshadersplugintest.pro29
-rw-r--r--tests/manual/qmlshadersplugintest/qmlshadersplugintest.svg93
-rw-r--r--tests/tests.pro2
252 files changed, 28019 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..669cdfe
--- /dev/null
+++ b/README
@@ -0,0 +1,66 @@
+What is this project
+====================
+
+This project is a QML extension plugin which provides two new QML elements (ShaderEffectItem & ShaderEffectSource).
+These elements can be used to embed OpenGL(ES) shader language code directly into QML.
+
+
+How is it implemented
+=====================
+
+Plugin implementation is a backport from scenegraph project (http://labs.qt.nokia.com/2010/10/08/qt-scene-graph-round-2)
+and the QML API has been kept as similar as possible, but there are some minor deviations.
+
+Adaptation to QGraphicsView (instead of scenegraph) is implemented inside following classes:
+
+- shadereffect.cpp
+- shadereffectitem.cpp
+- shadereffectsource.cpp
+- shadereffectbuffer.cpp
+- scenegraph/qsggeometry.cpp (identical to the scenegraph version)
+
+Additionally there is some code related to qml extension plugin mechanism and opengl function usage.
+
+Why is it implemented
+=====================
+
+Scenegraph (a.k.a QtQuick 2.0) is not yet released officially and it is somewhat incompatible with QGraphicsView based
+QtQuick 1.x packages. This plugin aims to provide early access for the developers to combine the power of QML and GLSL.
+
+
+Requirements
+============
+Qt 4.7 (or later) QtDeclarative and QtOpenGL modules are required.
+
+
+Build & install instructions
+===========================
+Compile and install the plugin with commands:
+
+qmake
+make install
+
+Finally check that the plugin binary libary can be found from $QTDIR/imports/Qt/labs/shaders
+
+
+Usage instructions
+==================
+Take a look at "helloworld" and "demo" apps in the examples folder.
+
+There is also some API documentation about the new QML elements available in html format in the doc/html folder.
+
+
+Known differencies between this plugin (Qt.labs.shaders) ShaderEffectItem and scenegraph (QML 2.0) ShaderEffectItem
+===================================================================================================================
+These differencies are changing almost daily as QML 2.0 is still currently under development, but here are some major
+known issues:
+
+- ShaderEffectItem cannot use source items that have property 'visible' set to false or are outside the view area. QML2.0 can use also these.
+- ShaderEffectItem requires Images to be used via ShaderEffectSource items. QML2.0 can work also on images directly.
+- ShaderEffectItem/source texture coordinates are not flipped, QML2.0 may have flipped coordinate system.
+- ShaderEffectSource does not draw itself, QML2.0 version does.
+- ShaderEffectSource does not support mipmaps, multisampling, culling or other texture formats than RGBA. These are supported in QML 2.0.
+- ShaderEffectSource grab() is asyncronous, in QML2.0 it is syncronous.
+- ...
+
+
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..f78427d
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,11 @@
+qmlshadersplugin (1.0~git20110414~1) UNRELEASED; urgency=low
+
+ * Debian packaging for the whole project
+
+ -- Aleksandar Stojiljkovic <aleksandar.stojiljkovic@nokia.com> Thu, 14 Apr 2011 12:40:07 +0300
+
+qmlshadersplugin (1.0~git20110121-1) unstable; urgency=low
+
+ * Initial release
+
+ -- Kim Grönholm <kim.1.gronholm@nokia.com> Fri, 21 Jan 2011 15:21:07 +0300
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+5
diff --git a/debian/configure_package_install_files b/debian/configure_package_install_files
new file mode 100755
index 0000000..68968e2
--- /dev/null
+++ b/debian/configure_package_install_files
@@ -0,0 +1,33 @@
+#!/bin/sh
+# =================================================================================================
+# Replace QT_INSTALL_IMPORTS pattern in package.install files with
+# path to Qt imports installation.
+# =================================================================================================
+
+# =================================================================================================
+# Get where is Qt imports installation folder
+# =================================================================================================
+
+export QT_INSTALL_IMPORTS_PATH=$(qmake -query QT_INSTALL_IMPORTS)
+if [ -z $QT_INSTALL_IMPORTS_PATH ]; then
+ echo "configure error: qmake -query QT_INSTALL_IMPORTS returned empty string."
+ export QT_INSTALL_IMPORTS_PATH=usr/lib/qt4/imports
+fi
+
+# =================================================================================================
+# Process package.install.in files to generate package.install.
+# Not that package.install.in files contain QT_INSTALL_IMPORTS string that with following block
+# replaces pattern with Qt imports installation path, for all debian/package.install.in files
+# creates debian/package.install with replaced content.
+# =================================================================================================
+
+IN_EXT=install.in
+OUT_EXT=install
+
+cd $(pwd)/debian
+
+for i in $(ls *.$IN_EXT)
+do
+ sed "s#QT_INSTALL_IMPORTS#$QT_INSTALL_IMPORTS_PATH#g" $i > ${i%.$IN_EXT}.$OUT_EXT
+done
+
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..0ce44b4
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,39 @@
+Source: qmlshadersplugin
+Section: libs
+Priority: optional
+Maintainer: Kim Grönholm <kim.1.gronholm@nokia.com>
+Build-Depends: debhelper (>= 5), libqt4-dev(>= 4.7.0~), libqt4-declarative(>= 4.7.0~), libqt4-opengl-dev
+Standards-Version: 3.7.2
+
+Package: qmlshadersplugin
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: QML Shader Effects plugin
+ QML Shader Effects plugin
+
+Package: qmlshadersplugin-dbg
+Section: debug
+Architecture: any
+Depends: qmlshadersplugin (=${binary:Version})
+Description: QML Shader Effects plugin (debug symbols)
+ QML Shader Effects plugin
+ .
+ This package contains debugging symbols for qmlshadersplugin.
+
+Package: qmlshadersplugin-demos
+Section: apps
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, qmlshadersplugin
+Description: Example projects demonstrating shader effects in QML
+ Example projects demonstrating shader effects in QML
+
+Package: qmlshadersplugin-demos-dbg
+Priority: extra
+Architecture: any
+Section: debug
+Depends: ${shlibs:Depends}, ${misc:Depends}, effectsuite
+Description: Example projects demonstrating shader effects in QML (debug symbols)
+ Example projects demonstrating shader effects in QML
+ .
+ This package contains the debugging symbols for QML shader effects demo applications,
+
diff --git a/debian/qmlshadersplugin-demos.install b/debian/qmlshadersplugin-demos.install
new file mode 100644
index 0000000..611bf4f
--- /dev/null
+++ b/debian/qmlshadersplugin-demos.install
@@ -0,0 +1,6 @@
+usr/share/shadereffects/qml/*
+usr/share/helloworld/qml/*
+usr/share/applications/*
+usr/share/icons/hicolor/64x64/apps/*
+usr/bin/helloworld
+usr/bin/shadereffects
diff --git a/debian/qmlshadersplugin.install b/debian/qmlshadersplugin.install
new file mode 100644
index 0000000..1e0fd6f
--- /dev/null
+++ b/debian/qmlshadersplugin.install
@@ -0,0 +1,2 @@
+/usr/lib/qt4/imports/Qt/labs/shaders/libqmlshadersplugin.so
+/usr/lib/qt4/imports/Qt/labs/shaders/qmldir
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..ee1eef2
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,94 @@
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+TMP_BUILD_OPTS = $(subst $(comma),$(space),$(DEB_BUILD_OPTIONS))
+MAKEDEMOS = 1
+
+ifneq (,$(filter parallel=%,$(TMP_BUILD_OPTS)))
+ NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(TMP_BUILD_OPTS)))
+ PARALLEL_MAKEFLAGS += -j$(NUMJOBS)
+endif
+
+# Disable building of demos by setting DEB_BUILD_OPTION=nodemos,...
+ifneq (,$(filter nodemos,$(TMP_BUILD_OPTS)))
+ #No demos
+ EXCLUSIONS += --no-package=qmlshadersplugin-demos
+ EXCLUSIONS += --no-package=qmlshadersplugin-demos-dbg
+ MAKEDEMOS = 0
+endif
+
+QMAKE_OPTIONS += CONFIG+=release
+# Add debug symbols to release configuration, and prevent make to strip them
+# (these are later stripped from binaries into dbg package with dh_strip).
+QMAKE_OPTIONS += QMAKE_CXXFLAGS_RELEASE+=-g
+QMAKE_OPTIONS += QMAKE_STRIP=echo
+
+build: build-stamp
+build-stamp:
+ dh_testdir
+ qmake -r $(QMAKE_OPTIONS)
+ +$(MAKE) $(PARALLEL_MAKEFLAGS)
+ifneq (0,$(MAKEDEMOS))
+ qmake -r $(QMAKE_OPTIONS) ./demos.pro -o Makefile_demos
+ +$(MAKE) $(PARALLEL_MAKEFLAGS) -f Makefile_demos
+endif
+ touch $@
+
+install: install-stamp
+
+install-stamp: build-stamp
+ dh_testdir
+ dh_testroot
+
+# FIXME check if dh_prep is available for maemo5 - N900 to replace deprecated dh_clean -k
+ dh_clean -k
+
+ dh_installdirs
+ INSTALL_ROOT=$(CURDIR)/debian/tmp $(MAKE) install
+ifneq (0,$(MAKEDEMOS))
+ INSTALL_ROOT=$(CURDIR)/debian/tmp $(MAKE) -f Makefile_demos install
+endif
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+
+ $(MAKE) distclean -f Makefile || true
+ $(MAKE) distclean -f Makefile_demos || true
+
+ dh_clean build-stamp install-stamp
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir $(EXCLUSIONS)
+ +./debian/configure_package_install_files
+ dh_testroot $(EXCLUSIONS)
+ dh_installchangelogs $(EXCLUSIONS)
+ dh_installdocs $(EXCLUSIONS)
+ dh_install --sourcedir=debian/tmp/ $(EXCLUSIONS) -v
+ # print warnings for not installed files
+ dh_install --sourcedir=debian/tmp/ $(EXCLUSIONS) --list-missing
+ dh_link $(EXCLUSIONS)
+ dh_strip -p qmlshadersplugin --dbg-package=qmlshadersplugin-dbg
+ifneq (0,$(MAKEDEMOS))
+ dh_strip -p qmlshadersplugin-demos --dbg-package=qmlshadersplugin-demos-dbg
+endif
+ dh_compress $(EXCLUSIONS)
+ dh_fixperms $(EXCLUSIONS)
+ dh_makeshlibs $(EXCLUSIONS)
+ dh_installdeb $(EXCLUSIONS)
+ dh_shlibdeps $(EXCLUSIONS)
+ dh_gencontrol $(EXCLUSIONS)
+ dh_md5sums $(EXCLUSIONS)
+ dh_builddeb $(EXCLUSIONS)
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
+
diff --git a/demos.pro b/demos.pro
new file mode 100644
index 0000000..b8227c0
--- /dev/null
+++ b/demos.pro
@@ -0,0 +1,7 @@
+#####################################################################
+# QML Shaders plugin for QtQuick 1.1 demos project file
+#####################################################################
+
+TEMPLATE = subdirs
+SUBDIRS += examples/shadereffects/shadereffects.pro \
+ examples/helloworld/helloworld.pro
diff --git a/doc/html/assistant.dcf b/doc/html/assistant.dcf
new file mode 100644
index 0000000..ca2fdea
--- /dev/null
+++ b/doc/html/assistant.dcf
@@ -0,0 +1,3 @@
+<!DOCTYPE DCF>
+<DCF ref="assistant-manual.html" icon="assistant.png" imagedir="../../gif" title="Qt Assistant Manual">
+</DCF>
diff --git a/doc/html/designer.dcf b/doc/html/designer.dcf
new file mode 100644
index 0000000..d307129
--- /dev/null
+++ b/doc/html/designer.dcf
@@ -0,0 +1,3 @@
+<!DOCTYPE DCF>
+<DCF ref="designer-manual.html" icon="designer.png" imagedir="../../gif" title="Qt Designer Manual">
+</DCF>
diff --git a/doc/html/images/Example1.png b/doc/html/images/Example1.png
new file mode 100644
index 0000000..dbc7291
--- /dev/null
+++ b/doc/html/images/Example1.png
Binary files differ
diff --git a/doc/html/images/arrow_down.png b/doc/html/images/arrow_down.png
new file mode 100755
index 0000000..9d01e97
--- /dev/null
+++ b/doc/html/images/arrow_down.png
Binary files differ
diff --git a/doc/html/images/bg_l.png b/doc/html/images/bg_l.png
new file mode 100755
index 0000000..90b1da1
--- /dev/null
+++ b/doc/html/images/bg_l.png
Binary files differ
diff --git a/doc/html/images/bg_l_blank.png b/doc/html/images/bg_l_blank.png
new file mode 100755
index 0000000..5a9673d
--- /dev/null
+++ b/doc/html/images/bg_l_blank.png
Binary files differ
diff --git a/doc/html/images/bg_ll_blank.png b/doc/html/images/bg_ll_blank.png
new file mode 100755
index 0000000..95a1c45
--- /dev/null
+++ b/doc/html/images/bg_ll_blank.png
Binary files differ
diff --git a/doc/html/images/bg_r.png b/doc/html/images/bg_r.png
new file mode 100755
index 0000000..f0fb121
--- /dev/null
+++ b/doc/html/images/bg_r.png
Binary files differ
diff --git a/doc/html/images/bg_ul_blank.png b/doc/html/images/bg_ul_blank.png
new file mode 100755
index 0000000..7051261
--- /dev/null
+++ b/doc/html/images/bg_ul_blank.png
Binary files differ
diff --git a/doc/html/images/box_bg.png b/doc/html/images/box_bg.png
new file mode 100755
index 0000000..3322f92
--- /dev/null
+++ b/doc/html/images/box_bg.png
Binary files differ
diff --git a/doc/html/images/breadcrumb.png b/doc/html/images/breadcrumb.png
new file mode 100755
index 0000000..0ded551
--- /dev/null
+++ b/doc/html/images/breadcrumb.png
Binary files differ
diff --git a/doc/html/images/bullet_dn.png b/doc/html/images/bullet_dn.png
new file mode 100755
index 0000000..f776247
--- /dev/null
+++ b/doc/html/images/bullet_dn.png
Binary files differ
diff --git a/doc/html/images/bullet_gt.png b/doc/html/images/bullet_gt.png
new file mode 100755
index 0000000..7561b4e
--- /dev/null
+++ b/doc/html/images/bullet_gt.png
Binary files differ
diff --git a/doc/html/images/bullet_sq.png b/doc/html/images/bullet_sq.png
new file mode 100755
index 0000000..a84845e
--- /dev/null
+++ b/doc/html/images/bullet_sq.png
Binary files differ
diff --git a/doc/html/images/bullet_up.png b/doc/html/images/bullet_up.png
new file mode 100755
index 0000000..7de2f06
--- /dev/null
+++ b/doc/html/images/bullet_up.png
Binary files differ
diff --git a/doc/html/images/feedbackground.png b/doc/html/images/feedbackground.png
new file mode 100755
index 0000000..3a38d99
--- /dev/null
+++ b/doc/html/images/feedbackground.png
Binary files differ
diff --git a/doc/html/images/header_bg.png b/doc/html/images/header_bg.png
new file mode 100755
index 0000000..a436aa6
--- /dev/null
+++ b/doc/html/images/header_bg.png
Binary files differ
diff --git a/doc/html/images/horBar.png b/doc/html/images/horBar.png
new file mode 100755
index 0000000..100fe91
--- /dev/null
+++ b/doc/html/images/horBar.png
Binary files differ
diff --git a/doc/html/images/page.png b/doc/html/images/page.png
new file mode 100755
index 0000000..1db151b
--- /dev/null
+++ b/doc/html/images/page.png
Binary files differ
diff --git a/doc/html/images/page_bg.png b/doc/html/images/page_bg.png
new file mode 100755
index 0000000..9b3bd99
--- /dev/null
+++ b/doc/html/images/page_bg.png
Binary files differ
diff --git a/doc/html/images/spinner.gif b/doc/html/images/spinner.gif
new file mode 100755
index 0000000..1ed786f
--- /dev/null
+++ b/doc/html/images/spinner.gif
Binary files differ
diff --git a/doc/html/images/sprites-combined.png b/doc/html/images/sprites-combined.png
new file mode 100755
index 0000000..3a48b21
--- /dev/null
+++ b/doc/html/images/sprites-combined.png
Binary files differ
diff --git a/doc/html/linguist.dcf b/doc/html/linguist.dcf
new file mode 100644
index 0000000..9e27d2b
--- /dev/null
+++ b/doc/html/linguist.dcf
@@ -0,0 +1,3 @@
+<!DOCTYPE DCF>
+<DCF ref="linguist-manual.html" icon="linguist.png" imagedir="../../gif" title="Qt Linguist Manual">
+</DCF>
diff --git a/doc/html/qmake.dcf b/doc/html/qmake.dcf
new file mode 100644
index 0000000..d7b2821
--- /dev/null
+++ b/doc/html/qmake.dcf
@@ -0,0 +1,3 @@
+<!DOCTYPE DCF>
+<DCF ref="qmake-manual.html" imagedir="../../gif" title="qmake Manual">
+</DCF>
diff --git a/doc/html/qml-shadereffectitem-members.html b/doc/html/qml-shadereffectitem-members.html
new file mode 100644
index 0000000..22fe32b
--- /dev/null
+++ b/doc/html/qml-shadereffectitem-members.html
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- shadereffectitem.cpp -->
+ <title>List of All Members for ShaderEffectItem</title>
+ <link rel="stylesheet" type="text/css" href="style/style.css" />
+ <script src="scripts/jquery.js" type="text/javascript"></script>
+ <script src="scripts/functions.js" type="text/javascript"></script>
+ <script src="./scripts/superfish.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="style/superfish.css" /> <script src="./scripts/narrow.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="style/narrow.css" />
+ <!--[if IE]>
+<meta name="MSSmartTagsPreventParsing" content="true">
+<meta http-equiv="imagetoolbar" content="no">
+<![endif]-->
+<!--[if lt IE 7]>
+<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
+<![endif]-->
+<!--[if IE 7]>
+<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
+<![endif]-->
+<!--[if IE 8]>
+<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
+<![endif]-->
+</head>
+<body class="" onload="CheckEmptyAndLoadList();">
+ <div class="header" id="qtdocheader">
+ <div class="content">
+ <div id="nav-logo">
+ <a href="index.html">Home</a></div>
+ <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
+ <div id="nav-topright">
+ <ul>
+ <li class="nav-topright-home"><a href="http://qt.nokia.com/">Qt HOME</a></li>
+ <li class="nav-topright-dev"><a href="http://developer.qt.nokia.com/">DEV</a></li>
+ <li class="nav-topright-labs"><a href="http://labs.qt.nokia.com/blogs/">LABS</a></li>
+ <li class="nav-topright-doc nav-topright-doc-active"><a href="http://doc.qt.nokia.com/">
+ DOC</a></li>
+ <li class="nav-topright-blog"><a href="http://blog.qt.nokia.com/">BLOG</a></li>
+ </ul>
+ </div>
+ <div id="shortCut">
+ <ul>
+ <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.7</a></span></li>
+ <li class="shortCut-topleft-active"><a href="http://doc.qt.nokia.com">ALL VERSIONS </a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="wrapper">
+ <div class="hd">
+ <span></span>
+ </div>
+ <div class="bd group">
+ <div class="sidebar">
+ <div class="searchlabel">
+ Search index:</div>
+ <div class="search">
+ <form id="qtdocsearch" action="" onsubmit="return false;">
+ <fieldset>
+ <input type="text" name="searchstring" id="pageType" value="" />
+ <div id="resultdialog">
+ <a href="#" id="resultclose">Close</a>
+ <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p>
+ <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p>
+ <ul id="resultlist" class="all">
+ </ul>
+ </div>
+ </fieldset>
+ </form>
+ </div>
+ <div class="box first bottombar" id="lookup">
+ <h2 title="API Lookup"><span></span>
+ API Lookup</h2>
+ <div id="list001" class="list">
+ <ul id="ul001" >
+ <li class="defaultLink"><a href="classes.html">Class index</a></li>
+ <li class="defaultLink"><a href="functions.html">Function index</a></li>
+ <li class="defaultLink"><a href="modules.html">Modules</a></li>
+ <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
+ <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
+ <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="box bottombar" id="topics">
+ <h2 title="Qt Topics"><span></span>
+ Qt Topics</h2>
+ <div id="list002" class="list">
+ <ul id="ul002" >
+ <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li>
+ <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>
+ <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li>
+ <li class="defaultLink"><a href="developing-with-qt.html">Cross-platform and Platform-specific</a></li>
+ <li class="defaultLink"><a href="platform-specific.html">Platform-specific info</a></li>
+ <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li>
+ <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="box" id="examples">
+ <h2 title="Examples"><span></span>
+ Examples</h2>
+ <div id="list003" class="list">
+ <ul id="ul003">
+ <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
+ <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
+ <li class="defaultLink"><a href="demos.html">Demos</a></li>
+ <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="wrap">
+ <div class="toolbar">
+ <div class="breadcrumb toolblock">
+ <ul>
+ <li class="first"><a href="index.html">Home</a></li>
+ <!-- Bread crumbs goes here -->
+ <li><a href="qdeclarativeelements.html">QML Elements</a></li> <li>List of All Members for ShaderEffectItem</li> </ul>
+ </div>
+ <div class="toolbuttons toolblock">
+ <ul>
+ <li id="smallA" class="t_button">A</li>
+ <li id="medA" class="t_button active">A</li>
+ <li id="bigA" class="t_button">A</li>
+ <li id="print" class="t_button"><a href="javascript:this.print();">
+ <span>Print</span></a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="content mainContent">
+<h1 class="title">List of All Members for ShaderEffectItem</h1>
+<p>This is the complete list of members for <a href="qml-shadereffectitem.html">QML ShaderEffectItem Element</a>, including inherited members.</p>
+<ul>
+<li class="fn"><b><a href="qml-shadereffectitem.html#blending-prop">blending</a></b></li>
+<li class="fn"><b><a href="qml-shadereffectitem.html#fragmentShader-prop">fragmentShader</a></b></li>
+<li class="fn"><b><a href="qml-shadereffectitem.html#meshResolution-prop">meshResolution</a></b></li>
+<li class="fn"><b><a href="qml-shadereffectitem.html#vertexShader-prop">vertexShader</a></b></li>
+</ul>
+ <div class="feedback t_button">
+ [+] Documentation Feedback</div>
+ </div>
+ </div>
+ </div>
+ <div class="ft">
+ <span></span>
+ </div>
+ </div>
+ <div class="footer">
+ <p>
+ <acronym title="Copyright">&copy;</acronym> 2008-2010 Nokia Corporation and/or its
+ subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation
+ in Finland and/or other countries worldwide.</p>
+ <p>
+ All other trademarks are property of their respective owners. <a title="Privacy Policy"
+ href="http://qt.nokia.com/about/privacy-policy">Privacy Policy</a></p>
+ <br />
+ <p>
+ Licensees holding valid Qt Commercial licenses may use this document 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 Nokia.</p>
+ <p>
+ Alternatively, this document may be used under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU
+ Free Documentation License version 1.3</a>
+ as published by the Free Software Foundation.</p>
+ </div>
+ <div id="feedbackBox">
+ <div id="feedcloseX" class="feedclose t_button">X</div>
+ <form id="feedform" action="http://doc.qt.nokia.com/docFeedbck/feedback.php" method="get">
+ <p id="noteHead">Thank you for giving your feedback.</p> <p class="note">Make sure it is related to this specific page. For more general bugs and
+ requests, please use the <a href="http://bugreports.qt.nokia.com/secure/Dashboard.jspa">Qt Bug Tracker</a>.</p>
+ <p><textarea id="feedbox" name="feedText" rows="5" cols="40"></textarea></p>
+ <p><input id="feedsubmit" class="feedclose" type="submit" name="feedback" /></p>
+ </form>
+ </div>
+ <div id="blurpage">
+ </div>
+ <script src="scripts/functions.js" type="text/javascript"></script>
+ <!-- <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-4457116-5']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script> -->
+</body>
+</html>
diff --git a/doc/html/qml-shadereffectitem.html b/doc/html/qml-shadereffectitem.html
new file mode 100644
index 0000000..d2ddc02
--- /dev/null
+++ b/doc/html/qml-shadereffectitem.html
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- shadereffectitem.cpp -->
+ <title>QML ShaderEffectItem Element</title>
+ <link rel="stylesheet" type="text/css" href="style/style.css" />
+ <script src="scripts/jquery.js" type="text/javascript"></script>
+ <script src="scripts/functions.js" type="text/javascript"></script>
+ <script src="./scripts/superfish.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="style/superfish.css" /> <script src="./scripts/narrow.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="style/narrow.css" />
+ <!--[if IE]>
+<meta name="MSSmartTagsPreventParsing" content="true">
+<meta http-equiv="imagetoolbar" content="no">
+<![endif]-->
+<!--[if lt IE 7]>
+<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
+<![endif]-->
+<!--[if IE 7]>
+<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
+<![endif]-->
+<!--[if IE 8]>
+<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
+<![endif]-->
+</head>
+<body class="" onload="CheckEmptyAndLoadList();">
+ <div class="header" id="qtdocheader">
+ <div class="content">
+ <div id="nav-logo">
+ <a href="index.html">Home</a></div>
+ <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
+ <div id="nav-topright">
+ <ul>
+ <li class="nav-topright-home"><a href="http://qt.nokia.com/">Qt HOME</a></li>
+ <li class="nav-topright-dev"><a href="http://developer.qt.nokia.com/">DEV</a></li>
+ <li class="nav-topright-labs"><a href="http://labs.qt.nokia.com/blogs/">LABS</a></li>
+ <li class="nav-topright-doc nav-topright-doc-active"><a href="http://doc.qt.nokia.com/">
+ DOC</a></li>
+ <li class="nav-topright-blog"><a href="http://blog.qt.nokia.com/">BLOG</a></li>
+ </ul>
+ </div>
+ <div id="shortCut">
+ <ul>
+ <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.7</a></span></li>
+ <li class="shortCut-topleft-active"><a href="http://doc.qt.nokia.com">ALL VERSIONS </a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="wrapper">
+ <div class="hd">
+ <span></span>
+ </div>
+ <div class="bd group">
+ <div class="sidebar">
+ <div class="searchlabel">
+ Search index:</div>
+ <div class="search">
+ <form id="qtdocsearch" action="" onsubmit="return false;">
+ <fieldset>
+ <input type="text" name="searchstring" id="pageType" value="" />
+ <div id="resultdialog">
+ <a href="#" id="resultclose">Close</a>
+ <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p>
+ <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p>
+ <ul id="resultlist" class="all">
+ </ul>
+ </div>
+ </fieldset>
+ </form>
+ </div>
+ <div class="box first bottombar" id="lookup">
+ <h2 title="API Lookup"><span></span>
+ API Lookup</h2>
+ <div id="list001" class="list">
+ <ul id="ul001" >
+ <li class="defaultLink"><a href="classes.html">Class index</a></li>
+ <li class="defaultLink"><a href="functions.html">Function index</a></li>
+ <li class="defaultLink"><a href="modules.html">Modules</a></li>
+ <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
+ <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
+ <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="box bottombar" id="topics">
+ <h2 title="Qt Topics"><span></span>
+ Qt Topics</h2>
+ <div id="list002" class="list">
+ <ul id="ul002" >
+ <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li>
+ <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>
+ <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li>
+ <li class="defaultLink"><a href="developing-with-qt.html">Cross-platform and Platform-specific</a></li>
+ <li class="defaultLink"><a href="platform-specific.html">Platform-specific info</a></li>
+ <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li>
+ <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="box" id="examples">
+ <h2 title="Examples"><span></span>
+ Examples</h2>
+ <div id="list003" class="list">
+ <ul id="ul003">
+ <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
+ <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
+ <li class="defaultLink"><a href="demos.html">Demos</a></li>
+ <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="wrap">
+ <div class="toolbar">
+ <div class="breadcrumb toolblock">
+ <ul>
+ <li class="first"><a href="index.html">Home</a></li>
+ <!-- Bread crumbs goes here -->
+ <li><a href="qdeclarativeelements.html">QML Elements</a></li> <li>QML ShaderEffectItem Element</li> </ul>
+ </div>
+ <div class="toolbuttons toolblock">
+ <ul>
+ <li id="smallA" class="t_button">A</li>
+ <li id="medA" class="t_button active">A</li>
+ <li id="bigA" class="t_button">A</li>
+ <li id="print" class="t_button"><a href="javascript:this.print();">
+ <span>Print</span></a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="content mainContent">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</a></li>
+<li class="level1"><a href="#details">Detailed Description</a></li>
+</ul>
+</div>
+<h1 class="title">QML ShaderEffectItem Element</h1>
+<span class="subtitle"></span>
+<!-- $$$ShaderEffectItem-brief -->
+<p>The ShaderEffectItem object alters the output of given item with OpenGL shaders. <a href="#details">More...</a></p>
+<!-- @@@ShaderEffectItem -->
+<li><a href="qml-shadereffectitem-members.html">List of all members, including inherited members</a></li>
+<a name="properties"></a>
+<h2>Properties</h2>
+<tr class="odd topAlign"><ul>
+<li class="fn"><b><b><a href="qml-shadereffectitem.html#blending-prop">blending</a></b></b> : bool</li>
+<li class="fn"><b><b><a href="qml-shadereffectitem.html#fragmentShader-prop">fragmentShader</a></b></b> : string</li>
+<li class="fn"><b><b><a href="qml-shadereffectitem.html#meshResolution-prop">meshResolution</a></b></b> : QSize</li>
+<li class="fn"><b><b><a href="qml-shadereffectitem.html#vertexShader-prop">vertexShader</a></b></b> : string</li>
+</ul>
+<!-- $$$ShaderEffectItem-description -->
+<a name="details"></a>
+<h2>Detailed Description</h2>
+<p>ShaderEffectItem is available in the <b>Qt.labs.shaders 1.0</b> module. <i>Elements in the Qt.labs module are not guaranteed to remain compatible in future versions.</i></p>
+<p>This element provides preliminary support for embedding OpenGL shader code into QML, and may be heavily changed or removed in later versions.</p>
+<p>Requirement for the use of shaders is that the application is either using Qt OpenGL graphicssystem or is forced to use OpenGL by setting <a href="http://qt.nokia.com/doc/4.7/qglwidget.html">QGLWidget</a> as the viewport to <a href="http://qt.nokia.com/doc/4.7/qdeclarativeview.html">QDeclarativeView</a> (recommened way).</p>
+<p>ShaderEffectItem internal behaviour is such that during the paint event it first renders its <a href="qml-shadereffectsource.html">ShaderEffectSource</a> items into a OpenGL framebuffer object which can be used as a texture. If the <a href="qml-shadereffectsource.html">ShaderEffectSource</a> is defined to be an image, it is directly uploaded as a texture. The texture(s) containing the source pixelcontent are then bound to graphics pipeline texture units. Finally a textured mesh is passed to the vertex- and fragmentshaders which then produce the final output for the ShaderEffectItem. It is possible to alter the mesh structure by defining the amount vertices it contains, but currently it is not possible to import complex 3D-models to be used as the mesh.</p>
+<p>It is possible to define one or more ShaderEffectItems to be a <a href="qml-shadereffectsource.html">ShaderEffectSource</a> for other ShaderEffectItems, but ShaderEffectItem should never be declared as a child element of its source item(s) because it would cause circular loop in the painting.</p>
+<p>A standard set of vertex attributes are provided for the shaders:</p>
+<ul>
+<li>qt_Vertex - The primary position of the vertex.</li>
+<li>qt_MultiTexCoord0 - The texture co-ordinate at each vertex for texture unit 0.</li>
+</ul>
+<p>Additionally following uniforms are available for shaders:</p>
+<ul>
+<li>qt_Opacity - Effective opacity of the item.</li>
+<li>qt_ModelViewProjectionMatrix - current 4x4 transformation matrix of the item.</li>
+</ul>
+<p>Furthermore, it is possible to utilize automatic QML propertybinding into vertex- and fragment shader uniforms. Conversions are done according to the table below:</p>
+<table class="generic">
+<thead><tr class="qt-style topAlign"><th >QML property</th><th >GLSL uniform</th></tr></thead>
+<tr class="odd topAlign"><td ><p>property double foo: 1.0</p></td><td ><p>uniform highp float foo</p></td></tr>
+<tr class="even topAlign"><td ><p>property real foo: 1.0</p></td><td ><p>uniform highp float foo</p></td></tr>
+<tr class="odd topAlign"><td ><p>property bool foo: true</p></td><td ><p>uniform bool foo</p></td></tr>
+<tr class="even topAlign"><td ><p>property int foo: 1</p></td><td ><p>uniform int foo</p></td></tr>
+<tr class="odd topAlign"><td ><p>property variant foo: Qt.point(1,1)</p></td><td ><p>uniform highp vec2 foo</p></td></tr>
+<tr class="even topAlign"><td ><p>property variant foo: Qt.size(1, 1)</p></td><td ><p>uniform highp vec2 foo</p></td></tr>
+<tr class="odd topAlign"><td ><p>property variant foo: Qt.rect(1, 1, 2, 2)</p></td><td ><p>uniform highp vec4 foo</p></td></tr>
+<tr class="even topAlign"><td ><p>property color foo: &quot;#00000000&quot;</p></td><td ><p>uniform lowp vec4 foo</p></td></tr>
+<tr class="odd topAlign"><td ><p>property variant foo: Qt.vector3d(1.0, 2.0, 0.0)</p></td><td ><p>uniform highp vec3 foo</p></td></tr>
+<tr class="even topAlign"><td ><p>property variant foo: <a href="qml-shadereffectsource.html">ShaderEffectSource</a> { SourceItem: bar }</p></td><td ><p>uniform lowp sampler2D foo</p></td></tr>
+</table>
+<p><b>Note:</b> The uniform precision definitions in the above table are not strict, it is possible to choose the uniform precision based on what is the most suitable for the shader code for that particular uniform.</p>
+<p>The below example uses fragment shader to create simple wiggly effect to a text label. Automatic property binding takes care of binding the properties to the uniforms if their names are identical. <a href="qml-shadereffectsource.html">ShaderEffectSource</a> referring to textLabel is bound to sampler2D uniform inside the fragment shader code.</p>
+<pre class="highlightedCode brush: cpp"> import QtQuick 1.0
+ import Qt.labs.shaders 1.0
+
+ Rectangle {
+ width: 300
+ height: 300
+ color: &quot;black&quot;
+
+ Text {
+ id: textLabel
+ text: &quot;Hello World&quot;
+ anchors.centerIn: parent
+ font.pixelSize: 32
+ color: &quot;white&quot;
+
+ }
+
+ ShaderEffectItem {
+ property variant source: ShaderEffectSource { sourceItem: textLabel; hideSource: true }
+ property real wiggleAmount: 0.005
+ anchors.fill: textLabel
+
+ fragmentShader: &quot;
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform highp float wiggleAmount;
+ void main(void)
+ {
+ highp vec2 wiggledTexCoord = qt_TexCoord0;
+ wiggledTexCoord.s += sin(4.0 * 3.141592653589 * wiggledTexCoord.t) * wiggleAmount;
+ gl_FragColor = texture2D(source, wiggledTexCoord.st);
+ }
+ &quot;
+ }
+ }</pre>
+<p class="centerAlign"><img src="images/Example1.png" /></p><!-- @@@ShaderEffectItem -->
+<h2>Property Documentation</h2>
+<!-- $$$blending -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="blending-prop"></a>blending : bool</td></tr></table></div><div class="qmldoc"><p>This property defines wheter item is drawn using blending.</p>
+<p>If true, the RGBA pixel output from the fragment shader is blended with the pixel RGBA-values already in the framebuffer.</p>
+<p>If false, fragment shader output is written to framebuffer as such.</p>
+<p>Usually drawing without blending is slightly faster, thus disabling blending might be a good choice when item is used as a background element.</p>
+<p><b>Note:</b> By default the pixel data in textures is stored in 32-bit premultiplied alpha format. This should be taken into account when blending or reading the pixel values in the fragment shader code.</p>
+<p>The default value is true.</p>
+</div></div><!-- @@@blending -->
+<br/>
+<!-- $$$fragmentShader -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="fragmentShader-prop"></a>fragmentShader : string</td></tr></table></div><div class="qmldoc"><p>This property holds the OpenGL fragment shader code.</p>
+<p>The default fragment shader is following:</p>
+<pre class="highlightedCode brush: cpp"> varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ void main(void)
+ {
+ gl_FragColor = texture2D(source, qt_TexCoord0.st);
+ }</pre>
+</div></div><!-- @@@fragmentShader -->
+<br/>
+<!-- $$$meshResolution -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="meshResolution-prop"></a>meshResolution : <a href="http://qt.nokia.com/doc/4.7/qsize.html">QSize</a></td></tr></table></div><div class="qmldoc"><p>This property defines to how many triangles the item is divided into before its vertices are passed to the vertex shader.</p>
+<p>Triangles are defined as triangle strips and the amount of triangles can be controlled separately for x and y-axis.</p>
+<p>The default value is <a href="http://qt.nokia.com/doc/4.7/qsize.html">QSize</a>(1,1).</p>
+</div></div><!-- @@@meshResolution -->
+<br/>
+<!-- $$$vertexShader -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="vertexShader-prop"></a>vertexShader : string</td></tr></table></div><div class="qmldoc"><p>This property holds the OpenGL vertex shader code.</p>
+<p>The default vertex shader is following:</p>
+<pre class="highlightedCode brush: cpp"> uniform highp mat4 qt_ModelViewProjectionMatrix;
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ varying highp vec2 qt_TexCoord0;
+ void main(void)
+ {
+ qt_TexCoord0 = qt_MultiTexCoord0;
+ gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;
+ }</pre>
+</div></div><!-- @@@vertexShader -->
+<br/>
+<p>
+</p>
+ <div class="feedback t_button">
+ [+] Documentation Feedback</div>
+ </div>
+ </div>
+ </div>
+ <div class="ft">
+ <span></span>
+ </div>
+ </div>
+ <div class="footer">
+ <p>
+ <acronym title="Copyright">&copy;</acronym> 2008-2010 Nokia Corporation and/or its
+ subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation
+ in Finland and/or other countries worldwide.</p>
+ <p>
+ All other trademarks are property of their respective owners. <a title="Privacy Policy"
+ href="http://qt.nokia.com/about/privacy-policy">Privacy Policy</a></p>
+ <br />
+ <p>
+ Licensees holding valid Qt Commercial licenses may use this document 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 Nokia.</p>
+ <p>
+ Alternatively, this document may be used under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU
+ Free Documentation License version 1.3</a>
+ as published by the Free Software Foundation.</p>
+ </div>
+ <div id="feedbackBox">
+ <div id="feedcloseX" class="feedclose t_button">X</div>
+ <form id="feedform" action="http://doc.qt.nokia.com/docFeedbck/feedback.php" method="get">
+ <p id="noteHead">Thank you for giving your feedback.</p> <p class="note">Make sure it is related to this specific page. For more general bugs and
+ requests, please use the <a href="http://bugreports.qt.nokia.com/secure/Dashboard.jspa">Qt Bug Tracker</a>.</p>
+ <p><textarea id="feedbox" name="feedText" rows="5" cols="40"></textarea></p>
+ <p><input id="feedsubmit" class="feedclose" type="submit" name="feedback" /></p>
+ </form>
+ </div>
+ <div id="blurpage">
+ </div>
+ <script src="scripts/functions.js" type="text/javascript"></script>
+ <!-- <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-4457116-5']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script> -->
+</body>
+</html>
diff --git a/doc/html/qml-shadereffectsource-members.html b/doc/html/qml-shadereffectsource-members.html
new file mode 100644
index 0000000..11efa3f
--- /dev/null
+++ b/doc/html/qml-shadereffectsource-members.html
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- shadereffectsource.cpp -->
+ <title>List of All Members for ShaderEffectSource</title>
+ <link rel="stylesheet" type="text/css" href="style/style.css" />
+ <script src="scripts/jquery.js" type="text/javascript"></script>
+ <script src="scripts/functions.js" type="text/javascript"></script>
+ <script src="./scripts/superfish.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="style/superfish.css" /> <script src="./scripts/narrow.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="style/narrow.css" />
+ <!--[if IE]>
+<meta name="MSSmartTagsPreventParsing" content="true">
+<meta http-equiv="imagetoolbar" content="no">
+<![endif]-->
+<!--[if lt IE 7]>
+<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
+<![endif]-->
+<!--[if IE 7]>
+<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
+<![endif]-->
+<!--[if IE 8]>
+<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
+<![endif]-->
+</head>
+<body class="" onload="CheckEmptyAndLoadList();">
+ <div class="header" id="qtdocheader">
+ <div class="content">
+ <div id="nav-logo">
+ <a href="index.html">Home</a></div>
+ <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
+ <div id="nav-topright">
+ <ul>
+ <li class="nav-topright-home"><a href="http://qt.nokia.com/">Qt HOME</a></li>
+ <li class="nav-topright-dev"><a href="http://developer.qt.nokia.com/">DEV</a></li>
+ <li class="nav-topright-labs"><a href="http://labs.qt.nokia.com/blogs/">LABS</a></li>
+ <li class="nav-topright-doc nav-topright-doc-active"><a href="http://doc.qt.nokia.com/">
+ DOC</a></li>
+ <li class="nav-topright-blog"><a href="http://blog.qt.nokia.com/">BLOG</a></li>
+ </ul>
+ </div>
+ <div id="shortCut">
+ <ul>
+ <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.7</a></span></li>
+ <li class="shortCut-topleft-active"><a href="http://doc.qt.nokia.com">ALL VERSIONS </a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="wrapper">
+ <div class="hd">
+ <span></span>
+ </div>
+ <div class="bd group">
+ <div class="sidebar">
+ <div class="searchlabel">
+ Search index:</div>
+ <div class="search">
+ <form id="qtdocsearch" action="" onsubmit="return false;">
+ <fieldset>
+ <input type="text" name="searchstring" id="pageType" value="" />
+ <div id="resultdialog">
+ <a href="#" id="resultclose">Close</a>
+ <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p>
+ <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p>
+ <ul id="resultlist" class="all">
+ </ul>
+ </div>
+ </fieldset>
+ </form>
+ </div>
+ <div class="box first bottombar" id="lookup">
+ <h2 title="API Lookup"><span></span>
+ API Lookup</h2>
+ <div id="list001" class="list">
+ <ul id="ul001" >
+ <li class="defaultLink"><a href="classes.html">Class index</a></li>
+ <li class="defaultLink"><a href="functions.html">Function index</a></li>
+ <li class="defaultLink"><a href="modules.html">Modules</a></li>
+ <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
+ <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
+ <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="box bottombar" id="topics">
+ <h2 title="Qt Topics"><span></span>
+ Qt Topics</h2>
+ <div id="list002" class="list">
+ <ul id="ul002" >
+ <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li>
+ <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>
+ <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li>
+ <li class="defaultLink"><a href="developing-with-qt.html">Cross-platform and Platform-specific</a></li>
+ <li class="defaultLink"><a href="platform-specific.html">Platform-specific info</a></li>
+ <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li>
+ <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="box" id="examples">
+ <h2 title="Examples"><span></span>
+ Examples</h2>
+ <div id="list003" class="list">
+ <ul id="ul003">
+ <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
+ <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
+ <li class="defaultLink"><a href="demos.html">Demos</a></li>
+ <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="wrap">
+ <div class="toolbar">
+ <div class="breadcrumb toolblock">
+ <ul>
+ <li class="first"><a href="index.html">Home</a></li>
+ <!-- Bread crumbs goes here -->
+ <li><a href="qdeclarativeelements.html">QML Elements</a></li> <li>List of All Members for ShaderEffectSource</li> </ul>
+ </div>
+ <div class="toolbuttons toolblock">
+ <ul>
+ <li id="smallA" class="t_button">A</li>
+ <li id="medA" class="t_button active">A</li>
+ <li id="bigA" class="t_button">A</li>
+ <li id="print" class="t_button"><a href="javascript:this.print();">
+ <span>Print</span></a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="content mainContent">
+<h1 class="title">List of All Members for ShaderEffectSource</h1>
+<p>This is the complete list of members for <a href="qml-shadereffectsource.html">QML ShaderEffectSource Element</a>, including inherited members.</p>
+<ul>
+<li class="fn"><b><a href="qml-shadereffectsource.html#grab-method">grab</a></b> ()</li>
+<li class="fn"><b><a href="qml-shadereffectsource.html#hideSource-prop">hideSource</a></b></li>
+<li class="fn"><b><a href="qml-shadereffectsource.html#live-prop">live</a></b></li>
+<li class="fn"><b><a href="qml-shadereffectsource.html#sourceItem-prop">sourceItem</a></b></li>
+<li class="fn"><b><a href="qml-shadereffectsource.html#sourceRect-prop">sourceRect</a></b></li>
+<li class="fn"><b><a href="qml-shadereffectsource.html#textureSize-prop">textureSize</a></b></li>
+<li class="fn"><b><a href="qml-shadereffectsource.html#wrapMode-prop">wrapMode</a></b></li>
+</ul>
+ <div class="feedback t_button">
+ [+] Documentation Feedback</div>
+ </div>
+ </div>
+ </div>
+ <div class="ft">
+ <span></span>
+ </div>
+ </div>
+ <div class="footer">
+ <p>
+ <acronym title="Copyright">&copy;</acronym> 2008-2010 Nokia Corporation and/or its
+ subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation
+ in Finland and/or other countries worldwide.</p>
+ <p>
+ All other trademarks are property of their respective owners. <a title="Privacy Policy"
+ href="http://qt.nokia.com/about/privacy-policy">Privacy Policy</a></p>
+ <br />
+ <p>
+ Licensees holding valid Qt Commercial licenses may use this document 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 Nokia.</p>
+ <p>
+ Alternatively, this document may be used under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU
+ Free Documentation License version 1.3</a>
+ as published by the Free Software Foundation.</p>
+ </div>
+ <div id="feedbackBox">
+ <div id="feedcloseX" class="feedclose t_button">X</div>
+ <form id="feedform" action="http://doc.qt.nokia.com/docFeedbck/feedback.php" method="get">
+ <p id="noteHead">Thank you for giving your feedback.</p> <p class="note">Make sure it is related to this specific page. For more general bugs and
+ requests, please use the <a href="http://bugreports.qt.nokia.com/secure/Dashboard.jspa">Qt Bug Tracker</a>.</p>
+ <p><textarea id="feedbox" name="feedText" rows="5" cols="40"></textarea></p>
+ <p><input id="feedsubmit" class="feedclose" type="submit" name="feedback" /></p>
+ </form>
+ </div>
+ <div id="blurpage">
+ </div>
+ <script src="scripts/functions.js" type="text/javascript"></script>
+ <!-- <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-4457116-5']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script> -->
+</body>
+</html>
diff --git a/doc/html/qml-shadereffectsource.html b/doc/html/qml-shadereffectsource.html
new file mode 100644
index 0000000..702a78c
--- /dev/null
+++ b/doc/html/qml-shadereffectsource.html
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- shadereffectsource.cpp -->
+ <title>QML ShaderEffectSource Element</title>
+ <link rel="stylesheet" type="text/css" href="style/style.css" />
+ <script src="scripts/jquery.js" type="text/javascript"></script>
+ <script src="scripts/functions.js" type="text/javascript"></script>
+ <script src="./scripts/superfish.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="style/superfish.css" /> <script src="./scripts/narrow.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="style/narrow.css" />
+ <!--[if IE]>
+<meta name="MSSmartTagsPreventParsing" content="true">
+<meta http-equiv="imagetoolbar" content="no">
+<![endif]-->
+<!--[if lt IE 7]>
+<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
+<![endif]-->
+<!--[if IE 7]>
+<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
+<![endif]-->
+<!--[if IE 8]>
+<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
+<![endif]-->
+</head>
+<body class="" onload="CheckEmptyAndLoadList();">
+ <div class="header" id="qtdocheader">
+ <div class="content">
+ <div id="nav-logo">
+ <a href="index.html">Home</a></div>
+ <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
+ <div id="nav-topright">
+ <ul>
+ <li class="nav-topright-home"><a href="http://qt.nokia.com/">Qt HOME</a></li>
+ <li class="nav-topright-dev"><a href="http://developer.qt.nokia.com/">DEV</a></li>
+ <li class="nav-topright-labs"><a href="http://labs.qt.nokia.com/blogs/">LABS</a></li>
+ <li class="nav-topright-doc nav-topright-doc-active"><a href="http://doc.qt.nokia.com/">
+ DOC</a></li>
+ <li class="nav-topright-blog"><a href="http://blog.qt.nokia.com/">BLOG</a></li>
+ </ul>
+ </div>
+ <div id="shortCut">
+ <ul>
+ <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.7</a></span></li>
+ <li class="shortCut-topleft-active"><a href="http://doc.qt.nokia.com">ALL VERSIONS </a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="wrapper">
+ <div class="hd">
+ <span></span>
+ </div>
+ <div class="bd group">
+ <div class="sidebar">
+ <div class="searchlabel">
+ Search index:</div>
+ <div class="search">
+ <form id="qtdocsearch" action="" onsubmit="return false;">
+ <fieldset>
+ <input type="text" name="searchstring" id="pageType" value="" />
+ <div id="resultdialog">
+ <a href="#" id="resultclose">Close</a>
+ <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p>
+ <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p>
+ <ul id="resultlist" class="all">
+ </ul>
+ </div>
+ </fieldset>
+ </form>
+ </div>
+ <div class="box first bottombar" id="lookup">
+ <h2 title="API Lookup"><span></span>
+ API Lookup</h2>
+ <div id="list001" class="list">
+ <ul id="ul001" >
+ <li class="defaultLink"><a href="classes.html">Class index</a></li>
+ <li class="defaultLink"><a href="functions.html">Function index</a></li>
+ <li class="defaultLink"><a href="modules.html">Modules</a></li>
+ <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
+ <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
+ <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="box bottombar" id="topics">
+ <h2 title="Qt Topics"><span></span>
+ Qt Topics</h2>
+ <div id="list002" class="list">
+ <ul id="ul002" >
+ <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li>
+ <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>
+ <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li>
+ <li class="defaultLink"><a href="developing-with-qt.html">Cross-platform and Platform-specific</a></li>
+ <li class="defaultLink"><a href="platform-specific.html">Platform-specific info</a></li>
+ <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li>
+ <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="box" id="examples">
+ <h2 title="Examples"><span></span>
+ Examples</h2>
+ <div id="list003" class="list">
+ <ul id="ul003">
+ <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
+ <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
+ <li class="defaultLink"><a href="demos.html">Demos</a></li>
+ <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="wrap">
+ <div class="toolbar">
+ <div class="breadcrumb toolblock">
+ <ul>
+ <li class="first"><a href="index.html">Home</a></li>
+ <!-- Bread crumbs goes here -->
+ <li><a href="qdeclarativeelements.html">QML Elements</a></li> <li>QML ShaderEffectSource Element</li> </ul>
+ </div>
+ <div class="toolbuttons toolblock">
+ <ul>
+ <li id="smallA" class="t_button">A</li>
+ <li id="medA" class="t_button active">A</li>
+ <li id="bigA" class="t_button">A</li>
+ <li id="print" class="t_button"><a href="javascript:this.print();">
+ <span>Print</span></a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="content mainContent">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</a></li>
+<li class="level1"><a href="#methods">Methods</a></li>
+<li class="level1"><a href="#details">Detailed Description</a></li>
+</ul>
+</div>
+<h1 class="title">QML ShaderEffectSource Element</h1>
+<span class="subtitle"></span>
+<!-- $$$ShaderEffectSource-brief -->
+<p>The ShaderEffectSource object encapsulates the source content for the <a href="qml-shadereffectitem.html">ShaderEffectItem</a>. <a href="#details">More...</a></p>
+<!-- @@@ShaderEffectSource -->
+<li><a href="qml-shadereffectsource-members.html">List of all members, including inherited members</a></li>
+<a name="properties"></a>
+<h2>Properties</h2>
+<tr class="odd topAlign"><ul>
+<li class="fn"><b><b><a href="qml-shadereffectsource.html#hideSource-prop">hideSource</a></b></b> : bool</li>
+<li class="fn"><b><b><a href="qml-shadereffectsource.html#live-prop">live</a></b></b> : bool</li>
+<li class="fn"><b><b><a href="qml-shadereffectsource.html#sourceItem-prop">sourceItem</a></b></b> : Item</li>
+<li class="fn"><b><b><a href="qml-shadereffectsource.html#sourceRect-prop">sourceRect</a></b></b> : QRectF</li>
+<li class="fn"><b><b><a href="qml-shadereffectsource.html#textureSize-prop">textureSize</a></b></b> : QSize</li>
+<li class="fn"><b><b><a href="qml-shadereffectsource.html#wrapMode-prop">wrapMode</a></b></b> : enumeration</li>
+</ul>
+<a name="methods"></a>
+<h2>Methods</h2>
+<tr class="even topAlign"><ul>
+<li class="fn"><b><b><a href="qml-shadereffectsource.html#grab-method">grab</a></b></b></li>
+</ul>
+<!-- $$$ShaderEffectSource-description -->
+<a name="details"></a>
+<h2>Detailed Description</h2>
+<p>ShaderEffectSource is available in the <b>Qt.labs.shaders 1.0</b> module. <i>Elements in the Qt.labs module are not guaranteed to remain compatible in future versions.</i></p>
+<p>This element provides preliminary support for OpenGL shaders in QML, and may be heavily changed or removed in later versions.</p>
+<p>Requirement for the ability to use of shaders is that the application is either using opengl graphicssystem or has set <a href="http://qt.nokia.com/doc/4.7/qglwidget.html">QGLWidget</a> as the viewport to <a href="http://qt.nokia.com/doc/4.7/qdeclarativeview.html">QDeclarativeView</a> (recommended way).</p>
+<p>ShaderEffectSource object encapsulates the source content so that it can be utilized in <a href="qml-shadereffectitem.html">ShaderEffectItem</a>. Source content can be a live QML object tree, or a snapshot of QML object tree.</p>
+<!-- @@@ShaderEffectSource -->
+<h2>Property Documentation</h2>
+<!-- $$$hideSource -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="hideSource-prop"></a>hideSource : bool</td></tr></table></div><div class="qmldoc"><p>This property holds the flag to define wheter the original source item is hidden when the effect item is drawn.</p>
+<p>The default value is false.</p>
+</div></div><!-- @@@hideSource -->
+<br/>
+<!-- $$$live -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="live-prop"></a>live : bool</td></tr></table></div><div class="qmldoc"><p>This property holds the optimization flag to define wheter the source item content is changing or static.</p>
+<p>If value true is assigned to this property, source item content is re-rendered into a texture for every frame. Setting the value to false improves the performance as it skips rendering the source item (and its chidleren) and instead immediately passes the previously rendered and cached texture to the shaders.</p>
+<p>The default value is true.</p>
+</div></div><!-- @@@live -->
+<br/>
+<!-- $$$sourceItem -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="sourceItem-prop"></a>sourceItem : Item</td></tr></table></div><div class="qmldoc"><p>This property holds the Item which is used as the source for the shader effect. If the item has children, those are included as well.</p>
+<p><b>Note:</b> When source item content is passed to the <a href="qml-shadereffectitem.html">ShaderEffectItem</a>(s), it is always clipped to the boundingrect of the sourceItem regardless of its clipping property.</p>
+</div></div><!-- @@@sourceItem -->
+<br/>
+<!-- $$$sourceRect -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="sourceRect-prop"></a>sourceRect : <a href="http://qt.nokia.com/doc/4.7/qrectf.html">QRectF</a></td></tr></table></div><div class="qmldoc"><p>This property can be used to specify margins for the source content.</p>
+<p>If other value than Qt.rect(0,0,0,0) is assigned to this property, it is interpreted as specifying a relative source rectangle for the source content.</p>
+<p>For example, setting Qt.rect(-10.0, -10.0, 120.0, 120.0) for a source that has width and height of 100 pixels would produce 10 pixels margins to each side of the source.</p>
+<p>Margins are useful when the original content is wanted to be spread outside the original source area, like when creating a dropshadow with the shader or in other similar effects.</p>
+<p>The default value is Qt.rect(0,0,0,0).</p>
+</div></div><!-- @@@sourceRect -->
+<br/>
+<!-- $$$textureSize -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="textureSize-prop"></a>textureSize : <a href="http://qt.nokia.com/doc/4.7/qsize.html">QSize</a></td></tr></table></div><div class="qmldoc"><p>This property holds the size for the texture containing the source content.</p>
+<p>If value <a href="http://qt.nokia.com/doc/4.7/qsize.html">QSize</a>(0,0) is assigned to this property, texture is resized according to the source size. Otherwise source content is scaled to the given size.</p>
+<p>The default value is <a href="http://qt.nokia.com/doc/4.7/qsize.html">QSize</a>(0,0).</p>
+</div></div><!-- @@@textureSize -->
+<br/>
+<!-- $$$wrapMode -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlPropNode"><p><a name="wrapMode-prop"></a>wrapMode : enumeration</td></tr></table></div><div class="qmldoc"><p>This property defines the wrap parameter for the source after it has been mapped as a texture.</p>
+<ul>
+<li>WrapMode.ClampToEdge - Causes texturecoordinates to be clamped to the range [ 1/2*N , 1 - 1/2*N ], where N is the texture width.</li>
+<li>WrapMode.RepeatHorizontally - Causes the integer part of the horizontal texturecoordinate to be ignored; the GL uses only the fractional part, thereby creating a horizontal repeating pattern.</li>
+<li>WrapMode.RepeatVertically - Causes the integer part of the vertical texturecoordinate to be ignored; the GL uses only the fractional part, thereby creating a vertical repeating pattern.</li>
+<li>WrapMode.Repeat - Causes the integer part of both the horizontal and vertical texturecoordinates to be ignored; the GL uses only the fractional part, thereby creating a repeating pattern.</li>
+</ul>
+<p>The default value is ClampToEdge.</p>
+</div></div><!-- @@@wrapMode -->
+<br/>
+<h2>Method Documentation</h2>
+<!-- $$$grab -->
+<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr class="odd"><td class="tblQmlFuncNode"><p><a name="grab-method"></a>ShaderEffectSource::grab ()</p></td></tr></table></div><div class="qmldoc"><p>Repaints the source item content into the texture.</p>
+<p>This method is useful when <a href="qml-shadereffectsource.html#live-prop">ShaderEffectSource::live</a> has been set to false and the changes in the source item content is desired to be made visible for the shaders.</p>
+</div></div><!-- @@@grab -->
+<br/>
+ <div class="feedback t_button">
+ [+] Documentation Feedback</div>
+ </div>
+ </div>
+ </div>
+ <div class="ft">
+ <span></span>
+ </div>
+ </div>
+ <div class="footer">
+ <p>
+ <acronym title="Copyright">&copy;</acronym> 2008-2010 Nokia Corporation and/or its
+ subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation
+ in Finland and/or other countries worldwide.</p>
+ <p>
+ All other trademarks are property of their respective owners. <a title="Privacy Policy"
+ href="http://qt.nokia.com/about/privacy-policy">Privacy Policy</a></p>
+ <br />
+ <p>
+ Licensees holding valid Qt Commercial licenses may use this document 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 Nokia.</p>
+ <p>
+ Alternatively, this document may be used under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU
+ Free Documentation License version 1.3</a>
+ as published by the Free Software Foundation.</p>
+ </div>
+ <div id="feedbackBox">
+ <div id="feedcloseX" class="feedclose t_button">X</div>
+ <form id="feedform" action="http://doc.qt.nokia.com/docFeedbck/feedback.php" method="get">
+ <p id="noteHead">Thank you for giving your feedback.</p> <p class="note">Make sure it is related to this specific page. For more general bugs and
+ requests, please use the <a href="http://bugreports.qt.nokia.com/secure/Dashboard.jspa">Qt Bug Tracker</a>.</p>
+ <p><textarea id="feedbox" name="feedText" rows="5" cols="40"></textarea></p>
+ <p><input id="feedsubmit" class="feedclose" type="submit" name="feedback" /></p>
+ </form>
+ </div>
+ <div id="blurpage">
+ </div>
+ <script src="scripts/functions.js" type="text/javascript"></script>
+ <!-- <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-4457116-5']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script> -->
+</body>
+</html>
diff --git a/doc/html/qmlshadersplugin.dcf b/doc/html/qmlshadersplugin.dcf
new file mode 100644
index 0000000..c3c8a5f
--- /dev/null
+++ b/doc/html/qmlshadersplugin.dcf
@@ -0,0 +1,6 @@
+<!DOCTYPE DCF>
+<DCF ref="index.html" icon="qmlshadersplugin.png" imagedir="../../gif" title="Qt.labs.shaders Documentation">
+<section ref="classes.html" title="Classes"/>
+<section ref="overviews.html" title="Overviews"/>
+<section ref="examples.html" title="Tutorial &amp; Examples"/>
+</DCF>
diff --git a/doc/html/qmlshadersplugin.index b/doc/html/qmlshadersplugin.index
new file mode 100644
index 0000000..898c986
--- /dev/null
+++ b/doc/html/qmlshadersplugin.index
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE QDOCINDEX>
+<INDEX url="" title="Qt.labs.shaders Documentation" version="">
+ <namespace access="public" threadsafety="unspecified" status="commendable" name="" href="" location="" module="">
+ <page access="public" status="commendable" name="ShaderEffectSource" href="qml-shadereffectsource.html" subtype="qmlclass" title="QML ShaderEffectSource Element" fulltitle="QML ShaderEffectSource Element" subtitle="" location="shadereffectsource.cpp">
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="sourceItem" fullname="ShaderEffectSource#sourceItem" href="qml-shadereffectsource.html#sourceItem-prop" type="Item"/>
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="sourceRect" fullname="ShaderEffectSource#sourceRect" href="qml-shadereffectsource.html#sourceRect-prop" type="QRectF"/>
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="textureSize" fullname="ShaderEffectSource#textureSize" href="qml-shadereffectsource.html#textureSize-prop" type="QSize"/>
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="live" fullname="ShaderEffectSource#live" href="qml-shadereffectsource.html#live-prop" type="bool"/>
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="hideSource" fullname="ShaderEffectSource#hideSource" href="qml-shadereffectsource.html#hideSource-prop" type="bool"/>
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="wrapMode" fullname="ShaderEffectSource#wrapMode" href="qml-shadereffectsource.html#wrapMode-prop" type="enumeration"/>
+ <qmlmethod access="public" threadsafety="unspecified" status="commendable" name="grab" fullname="ShaderEffectSource#grab" href="qml-shadereffectsource.html#grab-method"/>
+ </page>
+ <page access="public" status="commendable" name="ShaderEffectItem" href="qml-shadereffectitem.html" subtype="qmlclass" title="QML ShaderEffectItem Element" fulltitle="QML ShaderEffectItem Element" subtitle="" location="shadereffectitem.cpp">
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="fragmentShader" fullname="ShaderEffectItem#fragmentShader" href="qml-shadereffectitem.html#fragmentShader-prop" type="string"/>
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="vertexShader" fullname="ShaderEffectItem#vertexShader" href="qml-shadereffectitem.html#vertexShader-prop" type="string"/>
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="blending" fullname="ShaderEffectItem#blending" href="qml-shadereffectitem.html#blending-prop" type="bool"/>
+ <qmlproperty access="public" threadsafety="unspecified" status="commendable" name="meshResolution" fullname="ShaderEffectItem#meshResolution" href="qml-shadereffectitem.html#meshResolution-prop" type="QSize"/>
+ </page>
+ </namespace>
+</INDEX>
diff --git a/doc/html/qmlshadersplugin.pageindex b/doc/html/qmlshadersplugin.pageindex
new file mode 100644
index 0000000..cea1fc2
--- /dev/null
+++ b/doc/html/qmlshadersplugin.pageindex
@@ -0,0 +1,11397 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<qtPageIndex>
+ <page id="0">
+ <pageWords>QDeclarativePropertyMap Class Reference</pageWords>
+ <pageTitle>QDeclarativePropertyMap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativepropertymap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1">
+ <pageWords>QWebHistoryItem Class Reference</pageWords>
+ <pageTitle>QWebHistoryItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebhistoryitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="2">
+ <pageWords>QWebHistory Class Reference</pageWords>
+ <pageTitle>QWebHistory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebhistory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="3">
+ <pageWords>Q3Wizard Class Reference</pageWords>
+ <pageTitle>Q3Wizard Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3wizard.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="4">
+ <pageWords>QPainter Class Reference</pageWords>
+ <pageTitle>QPainter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpainter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="5">
+ <pageWords>PixmapFragment Class Reference</pageWords>
+ <pageTitle>PixmapFragment Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpainter-pixmapfragment.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="6">
+ <pageWords>QPolygon Class Reference</pageWords>
+ <pageTitle>QPolygon Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpolygon.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="7">
+ <pageWords>QPolygonF Class Reference</pageWords>
+ <pageTitle>QPolygonF Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpolygonf.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="8">
+ <pageWords>QFuture Class Reference</pageWords>
+ <pageTitle>QFuture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfuture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="9">
+ <pageWords>const_iterator Class Reference</pageWords>
+ <pageTitle>const_iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfuture-const-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="10">
+ <pageWords>QBasicTimer Class Reference</pageWords>
+ <pageTitle>QBasicTimer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qbasictimer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="11">
+ <pageWords>QProgressBar Class Reference</pageWords>
+ <pageTitle>QProgressBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprogressbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="12">
+ <pageWords>QMimeData Class Reference</pageWords>
+ <pageTitle>QMimeData Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmimedata.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="13">
+ <pageWords>QEasingCurve Class Reference</pageWords>
+ <pageTitle>QEasingCurve Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qeasingcurve.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="14">
+ <pageWords>Phonon Namespace Reference</pageWords>
+ <pageTitle>Phonon Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="15">
+ <pageWords>EffectWidget Class Reference</pageWords>
+ <pageTitle>EffectWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-effectwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="16">
+ <pageWords>AudioDataOutputPrivate Class Reference</pageWords>
+ <pageTitle>AudioDataOutputPrivate Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-audiodataoutputprivate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="17">
+ <pageWords>PulseSupport Class Reference</pageWords>
+ <pageTitle>PulseSupport Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-pulsesupport.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="18">
+ <pageWords>EffectParameter Class Reference</pageWords>
+ <pageTitle>EffectParameter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-effectparameter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="19">
+ <pageWords>AudioDataOutput Class Reference</pageWords>
+ <pageTitle>AudioDataOutput Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-audiodataoutput.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="20">
+ <pageWords>Path Class Reference</pageWords>
+ <pageTitle>Path Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-path.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="21">
+ <pageWords>VideoWidgetInterface44 Class Reference</pageWords>
+ <pageTitle>VideoWidgetInterface44 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-videowidgetinterface44.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="22">
+ <pageWords>AudioOutput Class Reference</pageWords>
+ <pageTitle>AudioOutput Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-audiooutput.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="23">
+ <pageWords>MediaController Class Reference</pageWords>
+ <pageTitle>MediaController Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-mediacontroller.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="24">
+ <pageWords>Effect Class Reference</pageWords>
+ <pageTitle>Effect Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-effect.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="25">
+ <pageWords>BackendCapabilities Namespace Reference</pageWords>
+ <pageTitle>BackendCapabilities Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-backendcapabilities.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="26">
+ <pageWords>Notifier Class Reference</pageWords>
+ <pageTitle>Notifier Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-backendcapabilities-notifier.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="27">
+ <pageWords>GlobalConfigPrivate Class Reference</pageWords>
+ <pageTitle>GlobalConfigPrivate Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-globalconfigprivate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="28">
+ <pageWords>VolumeSlider Class Reference</pageWords>
+ <pageTitle>VolumeSlider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-volumeslider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="29">
+ <pageWords>VideoWidget Class Reference</pageWords>
+ <pageTitle>VideoWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-videowidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="30">
+ <pageWords>SeekSlider Class Reference</pageWords>
+ <pageTitle>SeekSlider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-seekslider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="31">
+ <pageWords>SwiftSlider Class Reference</pageWords>
+ <pageTitle>SwiftSlider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-swiftslider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="32">
+ <pageWords>MediaSource Class Reference</pageWords>
+ <pageTitle>MediaSource Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-mediasource.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="33">
+ <pageWords>MediaNode Class Reference</pageWords>
+ <pageTitle>MediaNode Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-medianode.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="34">
+ <pageWords>MediaObject Class Reference</pageWords>
+ <pageTitle>MediaObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-mediaobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="35">
+ <pageWords>ObjectDescription Class Reference</pageWords>
+ <pageTitle>ObjectDescription Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-objectdescription.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="36">
+ <pageWords>AudioDataOutputInterface Class Reference</pageWords>
+ <pageTitle>AudioDataOutputInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-audiodataoutputinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="37">
+ <pageWords>VideoPlayer Class Reference</pageWords>
+ <pageTitle>VideoPlayer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-videoplayer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="38">
+ <pageWords>QUndoView Class Reference</pageWords>
+ <pageTitle>QUndoView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qundoview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="39">
+ <pageWords>QSysInfo Class Reference</pageWords>
+ <pageTitle>QSysInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsysinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="40">
+ <pageWords>QFlag Class Reference</pageWords>
+ <pageTitle>QFlag Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qflag.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="41">
+ <pageWords>QFlags Class Reference</pageWords>
+ <pageTitle>QFlags Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qflags.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="42">
+ <pageWords>QGraphicsSvgItem Class Reference</pageWords>
+ <pageTitle>QGraphicsSvgItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicssvgitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="43">
+ <pageWords>QPrintPreviewDialog Class Reference</pageWords>
+ <pageTitle>QPrintPreviewDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprintpreviewdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="44">
+ <pageWords>QDataWidgetMapper Class Reference</pageWords>
+ <pageTitle>QDataWidgetMapper Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdatawidgetmapper.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="45">
+ <pageWords>QAudioFormat Class Reference</pageWords>
+ <pageTitle>QAudioFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaudioformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="46">
+ <pageWords>QAxObject Class Reference</pageWords>
+ <pageTitle>QAxObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="47">
+ <pageWords>QMouseDriverPlugin Class Reference</pageWords>
+ <pageTitle>QMouseDriverPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmousedriverplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="48">
+ <pageWords>QCopChannel Class Reference</pageWords>
+ <pageTitle>QCopChannel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcopchannel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="49">
+ <pageWords>QNetworkAddressEntry Class Reference</pageWords>
+ <pageTitle>QNetworkAddressEntry Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkaddressentry.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="50">
+ <pageWords>QNetworkInterface Class Reference</pageWords>
+ <pageTitle>QNetworkInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="51">
+ <pageWords>QTextObject Class Reference</pageWords>
+ <pageTitle>QTextObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="52">
+ <pageWords>QTextBlockGroup Class Reference</pageWords>
+ <pageTitle>QTextBlockGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextblockgroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="53">
+ <pageWords>QTextFrame Class Reference</pageWords>
+ <pageTitle>QTextFrame Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextframe.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="54">
+ <pageWords>iterator Class Reference</pageWords>
+ <pageTitle>iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextframe-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="55">
+ <pageWords>QTextBlockUserData Class Reference</pageWords>
+ <pageTitle>QTextBlockUserData Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextblockuserdata.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="56">
+ <pageWords>QTextBlock Class Reference</pageWords>
+ <pageTitle>QTextBlock Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextblock.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="57">
+ <pageWords>iterator Class Reference</pageWords>
+ <pageTitle>iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextblock-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="58">
+ <pageWords>QTextFragment Class Reference</pageWords>
+ <pageTitle>QTextFragment Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextfragment.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="59">
+ <pageWords>QWSScreenSaver Class Reference</pageWords>
+ <pageTitle>QWSScreenSaver Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsscreensaver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="60">
+ <pageWords>QWSWindow Class Reference</pageWords>
+ <pageTitle>QWSWindow Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwswindow.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="61">
+ <pageWords>QWSServer Class Reference</pageWords>
+ <pageTitle>QWSServer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsserver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="62">
+ <pageWords>KeyboardFilter Class Reference</pageWords>
+ <pageTitle>KeyboardFilter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsserver-keyboardfilter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="63">
+ <pageWords>QWSInputMethod Class Reference</pageWords>
+ <pageTitle>QWSInputMethod Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsinputmethod.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="64">
+ <pageWords>QWSClient Class Reference</pageWords>
+ <pageTitle>QWSClient Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsclient.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="65">
+ <pageWords>QDeclarativeProperty Class Reference</pageWords>
+ <pageTitle>QDeclarativeProperty Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeproperty.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="66">
+ <pageWords>Q3AsciiCache Class Reference</pageWords>
+ <pageTitle>Q3AsciiCache Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3asciicache.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="67">
+ <pageWords>Q3AsciiCacheIterator Class Reference</pageWords>
+ <pageTitle>Q3AsciiCacheIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3asciicacheiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="68">
+ <pageWords>QCursor Class Reference</pageWords>
+ <pageTitle>QCursor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcursor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="69">
+ <pageWords>QLocalSocket Class Reference</pageWords>
+ <pageTitle>QLocalSocket Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlocalsocket.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="70">
+ <pageWords>QVector Class Reference</pageWords>
+ <pageTitle>QVector Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvector.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="71">
+ <pageWords>Q3HBoxLayout Class Reference</pageWords>
+ <pageTitle>Q3HBoxLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3hboxlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="72">
+ <pageWords>Q3VBoxLayout Class Reference</pageWords>
+ <pageTitle>Q3VBoxLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3vboxlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="73">
+ <pageWords>QMdiSubWindow Class Reference</pageWords>
+ <pageTitle>QMdiSubWindow Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmdisubwindow.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="74">
+ <pageWords>QFocusFrame Class Reference</pageWords>
+ <pageTitle>QFocusFrame Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfocusframe.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="75">
+ <pageWords>QIconEngine Class Reference</pageWords>
+ <pageTitle>QIconEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qiconengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="76">
+ <pageWords>QIconEngineV2 Class Reference</pageWords>
+ <pageTitle>QIconEngineV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qiconenginev2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="77">
+ <pageWords>AvailableSizesArgument Class Reference</pageWords>
+ <pageTitle>AvailableSizesArgument Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qiconenginev2-availablesizesargument.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="78">
+ <pageWords>QLine Class Reference</pageWords>
+ <pageTitle>QLine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qline.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="79">
+ <pageWords>QLineF Class Reference</pageWords>
+ <pageTitle>QLineF Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlinef.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="80">
+ <pageWords>QFontDatabase Class Reference</pageWords>
+ <pageTitle>QFontDatabase Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfontdatabase.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="81">
+ <pageWords>QDBusError Class Reference</pageWords>
+ <pageTitle>QDBusError Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbuserror.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="82">
+ <pageWords>QWindowsVistaStyle Class Reference</pageWords>
+ <pageTitle>QWindowsVistaStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwindowsvistastyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="83">
+ <pageWords>QPrintEngine Class Reference</pageWords>
+ <pageTitle>QPrintEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprintengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="84">
+ <pageWords>QPair Class Reference</pageWords>
+ <pageTitle>QPair Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpair.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="85">
+ <pageWords>QEvent Class Reference</pageWords>
+ <pageTitle>QEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="86">
+ <pageWords>QTimerEvent Class Reference</pageWords>
+ <pageTitle>QTimerEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtimerevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="87">
+ <pageWords>QChildEvent Class Reference</pageWords>
+ <pageTitle>QChildEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qchildevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="88">
+ <pageWords>QCustomEvent Class Reference</pageWords>
+ <pageTitle>QCustomEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcustomevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="89">
+ <pageWords>QDynamicPropertyChangeEvent Class Reference</pageWords>
+ <pageTitle>QDynamicPropertyChangeEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdynamicpropertychangeevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="90">
+ <pageWords>QXmlQuery Class Reference</pageWords>
+ <pageTitle>QXmlQuery Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlquery.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="91">
+ <pageWords>QAbstractEventDispatcher Class Reference</pageWords>
+ <pageTitle>QAbstractEventDispatcher Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstracteventdispatcher.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="92">
+ <pageWords>Q3UrlOperator Class Reference</pageWords>
+ <pageTitle>Q3UrlOperator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3urloperator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="93">
+ <pageWords>Q3MultiLineEdit Class Reference</pageWords>
+ <pageTitle>Q3MultiLineEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3multilineedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="94">
+ <pageWords>QThread Class Reference</pageWords>
+ <pageTitle>QThread Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qthread.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="95">
+ <pageWords>QFontEngineInfo Class Reference</pageWords>
+ <pageTitle>QFontEngineInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfontengineinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="96">
+ <pageWords>QFontEnginePlugin Class Reference</pageWords>
+ <pageTitle>QFontEnginePlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfontengineplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="97">
+ <pageWords>QAbstractFontEngine Class Reference</pageWords>
+ <pageTitle>QAbstractFontEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfontengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="98">
+ <pageWords>FixedPoint Class Reference</pageWords>
+ <pageTitle>FixedPoint Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfontengine-fixedpoint.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="99">
+ <pageWords>GlyphMetrics Class Reference</pageWords>
+ <pageTitle>GlyphMetrics Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfontengine-glyphmetrics.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="100">
+ <pageWords>QFutureSynchronizer Class Reference</pageWords>
+ <pageTitle>QFutureSynchronizer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfuturesynchronizer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="101">
+ <pageWords>QTextEdit Class Reference</pageWords>
+ <pageTitle>QTextEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="102">
+ <pageWords>ExtraSelection Class Reference</pageWords>
+ <pageTitle>ExtraSelection Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextedit-extraselection.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="103">
+ <pageWords>Q3EditorFactory Class Reference</pageWords>
+ <pageTitle>Q3EditorFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3editorfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="104">
+ <pageWords>QLatin1Char Class Reference</pageWords>
+ <pageTitle>QLatin1Char Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlatin1char.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="105">
+ <pageWords>QChar Class Reference</pageWords>
+ <pageTitle>QChar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qchar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="106">
+ <pageWords>QMovie Class Reference</pageWords>
+ <pageTitle>QMovie Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmovie.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="107">
+ <pageWords>QAuthenticator Class Reference</pageWords>
+ <pageTitle>QAuthenticator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qauthenticator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="108">
+ <pageWords>QSqlIndex Class Reference</pageWords>
+ <pageTitle>QSqlIndex Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlindex.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="109">
+ <pageWords>QSortFilterProxyModel Class Reference</pageWords>
+ <pageTitle>QSortFilterProxyModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsortfilterproxymodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="110">
+ <pageWords>QWebView Class Reference</pageWords>
+ <pageTitle>QWebView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="111">
+ <pageWords>QWebElement Class Reference</pageWords>
+ <pageTitle>QWebElement Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebelement.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="112">
+ <pageWords>QWebElementCollection Class Reference</pageWords>
+ <pageTitle>QWebElementCollection Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebelementcollection.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="113">
+ <pageWords>const_iterator Class Reference</pageWords>
+ <pageTitle>const_iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebelementcollection-const-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="114">
+ <pageWords>iterator Class Reference</pageWords>
+ <pageTitle>iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebelementcollection-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="115">
+ <pageWords>QXmlResultItems Class Reference</pageWords>
+ <pageTitle>QXmlResultItems Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlresultitems.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="116">
+ <pageWords>QScreenDriverFactory Class Reference</pageWords>
+ <pageTitle>QScreenDriverFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscreendriverfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="117">
+ <pageWords>Q3PointArray Class Reference</pageWords>
+ <pageTitle>Q3PointArray Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3pointarray.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="118">
+ <pageWords>QAxFactory Class Reference</pageWords>
+ <pageTitle>QAxFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="119">
+ <pageWords>QAbstractPrintDialog Class Reference</pageWords>
+ <pageTitle>QAbstractPrintDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractprintdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="120">
+ <pageWords>QTextInlineObject Class Reference</pageWords>
+ <pageTitle>QTextInlineObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextinlineobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="121">
+ <pageWords>QTextLayout Class Reference</pageWords>
+ <pageTitle>QTextLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="122">
+ <pageWords>FormatRange Class Reference</pageWords>
+ <pageTitle>FormatRange Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextlayout-formatrange.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="123">
+ <pageWords>QTextLine Class Reference</pageWords>
+ <pageTitle>QTextLine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextline.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="124">
+ <pageWords>QTextCodec Class Reference</pageWords>
+ <pageTitle>QTextCodec Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextcodec.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="125">
+ <pageWords>ConverterState Class Reference</pageWords>
+ <pageTitle>ConverterState Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextcodec-converterstate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="126">
+ <pageWords>QTextEncoder Class Reference</pageWords>
+ <pageTitle>QTextEncoder Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextencoder.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="127">
+ <pageWords>QTextDecoder Class Reference</pageWords>
+ <pageTitle>QTextDecoder Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextdecoder.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="128">
+ <pageWords>Qt Namespace Reference</pageWords>
+ <pageTitle>Qt Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="129">
+ <pageWords>QSystemLocale Class Reference</pageWords>
+ <pageTitle>QSystemLocale Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsystemlocale.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="130">
+ <pageWords>QLocale Class Reference</pageWords>
+ <pageTitle>QLocale Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlocale.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="131">
+ <pageWords>Data Class Reference</pageWords>
+ <pageTitle>Data Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlocale-data.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="132">
+ <pageWords>QResource Class Reference</pageWords>
+ <pageTitle>QResource Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qresource.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="133">
+ <pageWords>QNetworkCookieJar Class Reference</pageWords>
+ <pageTitle>QNetworkCookieJar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkcookiejar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="134">
+ <pageWords>QPicture Class Reference</pageWords>
+ <pageTitle>QPicture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpicture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="135">
+ <pageWords>QPictureIO Class Reference</pageWords>
+ <pageTitle>QPictureIO Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpictureio.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="136">
+ <pageWords>Q3SyntaxHighlighter Class Reference</pageWords>
+ <pageTitle>Q3SyntaxHighlighter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3syntaxhighlighter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="137">
+ <pageWords>QKeyEventTransition Class Reference</pageWords>
+ <pageTitle>QKeyEventTransition Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qkeyeventtransition.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="138">
+ <pageWords>Q3DragObject Class Reference</pageWords>
+ <pageTitle>Q3DragObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dragobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="139">
+ <pageWords>Q3StoredDrag Class Reference</pageWords>
+ <pageTitle>Q3StoredDrag Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3storeddrag.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="140">
+ <pageWords>Q3TextDrag Class Reference</pageWords>
+ <pageTitle>Q3TextDrag Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3textdrag.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="141">
+ <pageWords>Q3ImageDrag Class Reference</pageWords>
+ <pageTitle>Q3ImageDrag Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3imagedrag.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="142">
+ <pageWords>Q3UriDrag Class Reference</pageWords>
+ <pageTitle>Q3UriDrag Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3uridrag.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="143">
+ <pageWords>Q3ColorDrag Class Reference</pageWords>
+ <pageTitle>Q3ColorDrag Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3colordrag.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="144">
+ <pageWords>QScriptContext Class Reference</pageWords>
+ <pageTitle>QScriptContext Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptcontext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="145">
+ <pageWords>QMutex Class Reference</pageWords>
+ <pageTitle>QMutex Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmutex.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="146">
+ <pageWords>QMutexLocker Class Reference</pageWords>
+ <pageTitle>QMutexLocker Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmutexlocker.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="147">
+ <pageWords>QDirModel Class Reference</pageWords>
+ <pageTitle>QDirModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdirmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="148">
+ <pageWords>QWSEmbedWidget Class Reference</pageWords>
+ <pageTitle>QWSEmbedWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsembedwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="149">
+ <pageWords>QQueue Class Reference</pageWords>
+ <pageTitle>QQueue Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qqueue.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="150">
+ <pageWords>QHeaderView Class Reference</pageWords>
+ <pageTitle>QHeaderView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qheaderview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="151">
+ <pageWords>QUndoGroup Class Reference</pageWords>
+ <pageTitle>QUndoGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qundogroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="152">
+ <pageWords>QScriptClassPropertyIterator Class Reference</pageWords>
+ <pageTitle>QScriptClassPropertyIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptclasspropertyiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="153">
+ <pageWords>QList Class Reference</pageWords>
+ <pageTitle>QList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="154">
+ <pageWords>iterator Class Reference</pageWords>
+ <pageTitle>iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlist-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="155">
+ <pageWords>const_iterator Class Reference</pageWords>
+ <pageTitle>const_iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlist-const-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="156">
+ <pageWords>QHistoryState Class Reference</pageWords>
+ <pageTitle>QHistoryState Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhistorystate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="157">
+ <pageWords>QUuid Class Reference</pageWords>
+ <pageTitle>QUuid Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/quuid.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="158">
+ <pageWords>Q3Url Class Reference</pageWords>
+ <pageTitle>Q3Url Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3url.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="159">
+ <pageWords>QScriptValue Class Reference</pageWords>
+ <pageTitle>QScriptValue Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptvalue.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="160">
+ <pageWords>QWebInspector Class Reference</pageWords>
+ <pageTitle>QWebInspector Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebinspector.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="161">
+ <pageWords>Q3Dns Class Reference</pageWords>
+ <pageTitle>Q3Dns Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dns.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="162">
+ <pageWords>QRadioButton Class Reference</pageWords>
+ <pageTitle>QRadioButton Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qradiobutton.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="163">
+ <pageWords>QDBusContext Class Reference</pageWords>
+ <pageTitle>QDBusContext Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbuscontext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="164">
+ <pageWords>QPageSetupDialog Class Reference</pageWords>
+ <pageTitle>QPageSetupDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpagesetupdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="165">
+ <pageWords>QGraphicsGridLayout Class Reference</pageWords>
+ <pageTitle>QGraphicsGridLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsgridlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="166">
+ <pageWords>Q3ListViewItem Class Reference</pageWords>
+ <pageTitle>Q3ListViewItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3listviewitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="167">
+ <pageWords>Q3ListView Class Reference</pageWords>
+ <pageTitle>Q3ListView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3listview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="168">
+ <pageWords>Q3CheckListItem Class Reference</pageWords>
+ <pageTitle>Q3CheckListItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3checklistitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="169">
+ <pageWords>Q3ListViewItemIterator Class Reference</pageWords>
+ <pageTitle>Q3ListViewItemIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3listviewitemiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="170">
+ <pageWords>QPictureFormatPlugin Class Reference</pageWords>
+ <pageTitle>QPictureFormatPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpictureformatplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="171">
+ <pageWords>QWaitCondition Class Reference</pageWords>
+ <pageTitle>QWaitCondition Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwaitcondition.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="172">
+ <pageWords>QAccessibleBridge Class Reference</pageWords>
+ <pageTitle>QAccessibleBridge Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaccessiblebridge.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="173">
+ <pageWords>QAccessibleBridgePlugin Class Reference</pageWords>
+ <pageTitle>QAccessibleBridgePlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaccessiblebridgeplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="174">
+ <pageWords>QHostAddress Class Reference</pageWords>
+ <pageTitle>QHostAddress Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhostaddress.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="175">
+ <pageWords>QDesignerContainerExtension Class Reference</pageWords>
+ <pageTitle>QDesignerContainerExtension Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignercontainerextension.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="176">
+ <pageWords>QHelpSearchQuery Class Reference</pageWords>
+ <pageTitle>QHelpSearchQuery Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpsearchquery.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="177">
+ <pageWords>QHelpSearchEngine Class Reference</pageWords>
+ <pageTitle>QHelpSearchEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpsearchengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="178">
+ <pageWords>QItemDelegate Class Reference</pageWords>
+ <pageTitle>QItemDelegate Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qitemdelegate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="179">
+ <pageWords>QSslKey Class Reference</pageWords>
+ <pageTitle>QSslKey Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsslkey.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="180">
+ <pageWords>QTemporaryFile Class Reference</pageWords>
+ <pageTitle>QTemporaryFile Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtemporaryfile.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="181">
+ <pageWords>QPainterPath Class Reference</pageWords>
+ <pageTitle>QPainterPath Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpainterpath.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="182">
+ <pageWords>Element Class Reference</pageWords>
+ <pageTitle>Element Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpainterpath-element.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="183">
+ <pageWords>QPainterPathStroker Class Reference</pageWords>
+ <pageTitle>QPainterPathStroker Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpainterpathstroker.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="184">
+ <pageWords>QDebug Class Reference</pageWords>
+ <pageTitle>QDebug Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdebug.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="185">
+ <pageWords>QRegExp Class Reference</pageWords>
+ <pageTitle>QRegExp Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qregexp.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="186">
+ <pageWords>Q3MimeSourceFactory Class Reference</pageWords>
+ <pageTitle>Q3MimeSourceFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3mimesourcefactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="187">
+ <pageWords>QColorDialog Class Reference</pageWords>
+ <pageTitle>QColorDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcolordialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="188">
+ <pageWords>QLayout Class Reference</pageWords>
+ <pageTitle>QLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="189">
+ <pageWords>QSystemSemaphore Class Reference</pageWords>
+ <pageTitle>QSystemSemaphore Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsystemsemaphore.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="190">
+ <pageWords>QXmlStreamAttribute Class Reference</pageWords>
+ <pageTitle>QXmlStreamAttribute Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlstreamattribute.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="191">
+ <pageWords>QXmlStreamAttributes Class Reference</pageWords>
+ <pageTitle>QXmlStreamAttributes Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlstreamattributes.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="192">
+ <pageWords>QXmlStreamNamespaceDeclaration Class Reference</pageWords>
+ <pageTitle>QXmlStreamNamespaceDeclaration Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlstreamnamespacedeclaration.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="193">
+ <pageWords>QXmlStreamNotationDeclaration Class Reference</pageWords>
+ <pageTitle>QXmlStreamNotationDeclaration Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlstreamnotationdeclaration.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="194">
+ <pageWords>QXmlStreamEntityDeclaration Class Reference</pageWords>
+ <pageTitle>QXmlStreamEntityDeclaration Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlstreamentitydeclaration.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="195">
+ <pageWords>QXmlStreamEntityResolver Class Reference</pageWords>
+ <pageTitle>QXmlStreamEntityResolver Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlstreamentityresolver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="196">
+ <pageWords>QXmlStreamReader Class Reference</pageWords>
+ <pageTitle>QXmlStreamReader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlstreamreader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="197">
+ <pageWords>QXmlStreamWriter Class Reference</pageWords>
+ <pageTitle>QXmlStreamWriter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlstreamwriter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="198">
+ <pageWords>QDBusAbstractAdaptor Class Reference</pageWords>
+ <pageTitle>QDBusAbstractAdaptor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusabstractadaptor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="199">
+ <pageWords>QFile Class Reference</pageWords>
+ <pageTitle>QFile Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfile.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="200">
+ <pageWords>QAtomicInt Class Reference</pageWords>
+ <pageTitle>QAtomicInt Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qatomicint.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="201">
+ <pageWords>QAtomicPointer Class Reference</pageWords>
+ <pageTitle>QAtomicPointer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qatomicpointer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="202">
+ <pageWords>QScriptEngineAgent Class Reference</pageWords>
+ <pageTitle>QScriptEngineAgent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptengineagent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="203">
+ <pageWords>QDeclarativePropertyValueSource Class Reference</pageWords>
+ <pageTitle>QDeclarativePropertyValueSource Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativepropertyvaluesource.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="204">
+ <pageWords>QPixmap Class Reference</pageWords>
+ <pageTitle>QPixmap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpixmap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="205">
+ <pageWords>QWSGLWindowSurface Class Reference</pageWords>
+ <pageTitle>QWSGLWindowSurface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsglwindowsurface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="206">
+ <pageWords>Q3GroupBox Class Reference</pageWords>
+ <pageTitle>Q3GroupBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3groupbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="207">
+ <pageWords>Q3Accel Class Reference</pageWords>
+ <pageTitle>Q3Accel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3accel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="208">
+ <pageWords>QDBusReply Class Reference</pageWords>
+ <pageTitle>QDBusReply Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusreply.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="209">
+ <pageWords>QWidgetAction Class Reference</pageWords>
+ <pageTitle>QWidgetAction Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwidgetaction.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="210">
+ <pageWords>QS60MainDocument Class Reference</pageWords>
+ <pageTitle>QS60MainDocument Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qs60maindocument.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="211">
+ <pageWords>QGraphicsLayoutItem Class Reference</pageWords>
+ <pageTitle>QGraphicsLayoutItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicslayoutitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="212">
+ <pageWords>QAbstractVideoSurface Class Reference</pageWords>
+ <pageTitle>QAbstractVideoSurface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractvideosurface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="213">
+ <pageWords>Q3TextView Class Reference</pageWords>
+ <pageTitle>Q3TextView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3textview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="214">
+ <pageWords>QAudio Namespace Reference</pageWords>
+ <pageTitle>QAudio Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaudio.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="215">
+ <pageWords>QStringListModel Class Reference</pageWords>
+ <pageTitle>QStringListModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstringlistmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="216">
+ <pageWords>QProxyStyle Class Reference</pageWords>
+ <pageTitle>QProxyStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qproxystyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="217">
+ <pageWords>QCleanlooksStyle Class Reference</pageWords>
+ <pageTitle>QCleanlooksStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcleanlooksstyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="218">
+ <pageWords>QAbstractState Class Reference</pageWords>
+ <pageTitle>QAbstractState Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractstate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="219">
+ <pageWords>QTextBoundaryFinder Class Reference</pageWords>
+ <pageTitle>QTextBoundaryFinder Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextboundaryfinder.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="220">
+ <pageWords>QSettings Class Reference</pageWords>
+ <pageTitle>QSettings Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsettings.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="221">
+ <pageWords>QX11EmbedWidget Class Reference</pageWords>
+ <pageTitle>QX11EmbedWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qx11embedwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="222">
+ <pageWords>QX11EmbedContainer Class Reference</pageWords>
+ <pageTitle>QX11EmbedContainer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qx11embedcontainer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="223">
+ <pageWords>QPrinter Class Reference</pageWords>
+ <pageTitle>QPrinter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprinter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="224">
+ <pageWords>QAnimationGroup Class Reference</pageWords>
+ <pageTitle>QAnimationGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qanimationgroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="225">
+ <pageWords>QSizeGrip Class Reference</pageWords>
+ <pageTitle>QSizeGrip Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsizegrip.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="226">
+ <pageWords>QKbdDriverFactory Class Reference</pageWords>
+ <pageTitle>QKbdDriverFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qkbddriverfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="227">
+ <pageWords>QDesignerFormWindowManagerInterface Class Reference</pageWords>
+ <pageTitle>QDesignerFormWindowManagerInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerformwindowmanagerinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="228">
+ <pageWords>QWizard Class Reference</pageWords>
+ <pageTitle>QWizard Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwizard.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="229">
+ <pageWords>QWizardPage Class Reference</pageWords>
+ <pageTitle>QWizardPage Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwizardpage.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="230">
+ <pageWords>QTransform Class Reference</pageWords>
+ <pageTitle>QTransform Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtransform.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="231">
+ <pageWords>QTcpServer Class Reference</pageWords>
+ <pageTitle>QTcpServer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtcpserver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="232">
+ <pageWords>QAccessibleWidget Class Reference</pageWords>
+ <pageTitle>QAccessibleWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaccessiblewidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="233">
+ <pageWords>QByteArray Class Reference</pageWords>
+ <pageTitle>QByteArray Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qbytearray.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="234">
+ <pageWords>QIcon Class Reference</pageWords>
+ <pageTitle>QIcon Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qicon.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="235">
+ <pageWords>Q3HBox Class Reference</pageWords>
+ <pageTitle>Q3HBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3hbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="236">
+ <pageWords>QXmlFormatter Class Reference</pageWords>
+ <pageTitle>QXmlFormatter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlformatter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="237">
+ <pageWords>QObject Class Reference</pageWords>
+ <pageTitle>QObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="238">
+ <pageWords>QSignalTransition Class Reference</pageWords>
+ <pageTitle>QSignalTransition Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsignaltransition.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="239">
+ <pageWords>Q3SqlFieldInfo Class Reference</pageWords>
+ <pageTitle>Q3SqlFieldInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3sqlfieldinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="240">
+ <pageWords>QTableWidgetSelectionRange Class Reference</pageWords>
+ <pageTitle>QTableWidgetSelectionRange Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtablewidgetselectionrange.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="241">
+ <pageWords>QTableWidgetItem Class Reference</pageWords>
+ <pageTitle>QTableWidgetItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtablewidgetitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="242">
+ <pageWords>QTableWidget Class Reference</pageWords>
+ <pageTitle>QTableWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtablewidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="243">
+ <pageWords>QStandardItem Class Reference</pageWords>
+ <pageTitle>QStandardItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstandarditem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="244">
+ <pageWords>QStandardItemModel Class Reference</pageWords>
+ <pageTitle>QStandardItemModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstandarditemmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="245">
+ <pageWords>Q3Picture Class Reference</pageWords>
+ <pageTitle>Q3Picture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3picture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="246">
+ <pageWords>Q3Signal Class Reference</pageWords>
+ <pageTitle>Q3Signal Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3signal.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="247">
+ <pageWords>QSemaphore Class Reference</pageWords>
+ <pageTitle>QSemaphore Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsemaphore.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="248">
+ <pageWords>QImageReader Class Reference</pageWords>
+ <pageTitle>QImageReader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qimagereader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="249">
+ <pageWords>QAccessiblePlugin Class Reference</pageWords>
+ <pageTitle>QAccessiblePlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaccessibleplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="250">
+ <pageWords>QS60MainAppUi Class Reference</pageWords>
+ <pageTitle>QS60MainAppUi Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qs60mainappui.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="251">
+ <pageWords>QNetworkConfiguration Class Reference</pageWords>
+ <pageTitle>QNetworkConfiguration Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkconfiguration.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="252">
+ <pageWords>QNetworkAccessManager Class Reference</pageWords>
+ <pageTitle>QNetworkAccessManager Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkaccessmanager.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="253">
+ <pageWords>QSvgGenerator Class Reference</pageWords>
+ <pageTitle>QSvgGenerator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsvggenerator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="254">
+ <pageWords>QDBusObjectPath Class Reference</pageWords>
+ <pageTitle>QDBusObjectPath Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusobjectpath.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="255">
+ <pageWords>QDBusSignature Class Reference</pageWords>
+ <pageTitle>QDBusSignature Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbussignature.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="256">
+ <pageWords>QDBusVariant Class Reference</pageWords>
+ <pageTitle>QDBusVariant Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusvariant.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="257">
+ <pageWords>QGraphicsEffect Class Reference</pageWords>
+ <pageTitle>QGraphicsEffect Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicseffect.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="258">
+ <pageWords>QGraphicsColorizeEffect Class Reference</pageWords>
+ <pageTitle>QGraphicsColorizeEffect Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicscolorizeeffect.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="259">
+ <pageWords>QGraphicsBlurEffect Class Reference</pageWords>
+ <pageTitle>QGraphicsBlurEffect Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsblureffect.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="260">
+ <pageWords>QGraphicsDropShadowEffect Class Reference</pageWords>
+ <pageTitle>QGraphicsDropShadowEffect Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsdropshadoweffect.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="261">
+ <pageWords>QGraphicsOpacityEffect Class Reference</pageWords>
+ <pageTitle>QGraphicsOpacityEffect Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsopacityeffect.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="262">
+ <pageWords>QScriptExtensionPlugin Class Reference</pageWords>
+ <pageTitle>QScriptExtensionPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptextensionplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="263">
+ <pageWords>QKeySequence Class Reference</pageWords>
+ <pageTitle>QKeySequence Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qkeysequence.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="264">
+ <pageWords>QAbstractSlider Class Reference</pageWords>
+ <pageTitle>QAbstractSlider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractslider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="265">
+ <pageWords>QStyleOption Class Reference</pageWords>
+ <pageTitle>QStyleOption Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoption.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="266">
+ <pageWords>QStyleOptionFocusRect Class Reference</pageWords>
+ <pageTitle>QStyleOptionFocusRect Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionfocusrect.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="267">
+ <pageWords>QStyleOptionFrame Class Reference</pageWords>
+ <pageTitle>QStyleOptionFrame Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionframe.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="268">
+ <pageWords>QStyleOptionFrameV2 Class Reference</pageWords>
+ <pageTitle>QStyleOptionFrameV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionframev2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="269">
+ <pageWords>QStyleOptionFrameV3 Class Reference</pageWords>
+ <pageTitle>QStyleOptionFrameV3 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionframev3.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="270">
+ <pageWords>QStyleOptionTabWidgetFrame Class Reference</pageWords>
+ <pageTitle>QStyleOptionTabWidgetFrame Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontabwidgetframe.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="271">
+ <pageWords>QStyleOptionTabWidgetFrameV2 Class Reference</pageWords>
+ <pageTitle>QStyleOptionTabWidgetFrameV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontabwidgetframev2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="272">
+ <pageWords>QStyleOptionTabBarBase Class Reference</pageWords>
+ <pageTitle>QStyleOptionTabBarBase Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontabbarbase.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="273">
+ <pageWords>QStyleOptionTabBarBaseV2 Class Reference</pageWords>
+ <pageTitle>QStyleOptionTabBarBaseV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontabbarbasev2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="274">
+ <pageWords>QStyleOptionHeader Class Reference</pageWords>
+ <pageTitle>QStyleOptionHeader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionheader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="275">
+ <pageWords>QStyleOptionButton Class Reference</pageWords>
+ <pageTitle>QStyleOptionButton Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionbutton.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="276">
+ <pageWords>QStyleOptionTab Class Reference</pageWords>
+ <pageTitle>QStyleOptionTab Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontab.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="277">
+ <pageWords>QStyleOptionTabV2 Class Reference</pageWords>
+ <pageTitle>QStyleOptionTabV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontabv2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="278">
+ <pageWords>QStyleOptionTabV3 Class Reference</pageWords>
+ <pageTitle>QStyleOptionTabV3 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontabv3.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="279">
+ <pageWords>QStyleOptionToolBar Class Reference</pageWords>
+ <pageTitle>QStyleOptionToolBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontoolbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="280">
+ <pageWords>QStyleOptionProgressBar Class Reference</pageWords>
+ <pageTitle>QStyleOptionProgressBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionprogressbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="281">
+ <pageWords>QStyleOptionProgressBarV2 Class Reference</pageWords>
+ <pageTitle>QStyleOptionProgressBarV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionprogressbarv2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="282">
+ <pageWords>QStyleOptionMenuItem Class Reference</pageWords>
+ <pageTitle>QStyleOptionMenuItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionmenuitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="283">
+ <pageWords>QStyleOptionQ3ListViewItem Class Reference</pageWords>
+ <pageTitle>QStyleOptionQ3ListViewItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionq3listviewitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="284">
+ <pageWords>QStyleOptionQ3DockWindow Class Reference</pageWords>
+ <pageTitle>QStyleOptionQ3DockWindow Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionq3dockwindow.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="285">
+ <pageWords>QStyleOptionDockWidget Class Reference</pageWords>
+ <pageTitle>QStyleOptionDockWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiondockwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="286">
+ <pageWords>QStyleOptionViewItem Class Reference</pageWords>
+ <pageTitle>QStyleOptionViewItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionviewitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="287">
+ <pageWords>QStyleOptionViewItemV2 Class Reference</pageWords>
+ <pageTitle>QStyleOptionViewItemV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionviewitemv2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="288">
+ <pageWords>QStyleOptionViewItemV3 Class Reference</pageWords>
+ <pageTitle>QStyleOptionViewItemV3 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionviewitemv3.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="289">
+ <pageWords>QStyleOptionViewItemV4 Class Reference</pageWords>
+ <pageTitle>QStyleOptionViewItemV4 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionviewitemv4.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="290">
+ <pageWords>QStyleOptionToolBox Class Reference</pageWords>
+ <pageTitle>QStyleOptionToolBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontoolbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="291">
+ <pageWords>QStyleOptionToolBoxV2 Class Reference</pageWords>
+ <pageTitle>QStyleOptionToolBoxV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontoolboxv2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="292">
+ <pageWords>QStyleOptionRubberBand Class Reference</pageWords>
+ <pageTitle>QStyleOptionRubberBand Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionrubberband.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="293">
+ <pageWords>QStyleOptionComplex Class Reference</pageWords>
+ <pageTitle>QStyleOptionComplex Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptioncomplex.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="294">
+ <pageWords>QStyleOptionSlider Class Reference</pageWords>
+ <pageTitle>QStyleOptionSlider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionslider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="295">
+ <pageWords>QStyleOptionSpinBox Class Reference</pageWords>
+ <pageTitle>QStyleOptionSpinBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionspinbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="296">
+ <pageWords>QStyleOptionQ3ListView Class Reference</pageWords>
+ <pageTitle>QStyleOptionQ3ListView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionq3listview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="297">
+ <pageWords>QStyleOptionToolButton Class Reference</pageWords>
+ <pageTitle>QStyleOptionToolButton Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontoolbutton.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="298">
+ <pageWords>QStyleOptionComboBox Class Reference</pageWords>
+ <pageTitle>QStyleOptionComboBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptioncombobox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="299">
+ <pageWords>QStyleOptionTitleBar Class Reference</pageWords>
+ <pageTitle>QStyleOptionTitleBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiontitlebar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="300">
+ <pageWords>QStyleOptionGroupBox Class Reference</pageWords>
+ <pageTitle>QStyleOptionGroupBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiongroupbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="301">
+ <pageWords>QStyleOptionSizeGrip Class Reference</pageWords>
+ <pageTitle>QStyleOptionSizeGrip Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptionsizegrip.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="302">
+ <pageWords>QStyleOptionGraphicsItem Class Reference</pageWords>
+ <pageTitle>QStyleOptionGraphicsItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleoptiongraphicsitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="303">
+ <pageWords>QStyleHintReturn Class Reference</pageWords>
+ <pageTitle>QStyleHintReturn Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstylehintreturn.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="304">
+ <pageWords>QStyleHintReturnMask Class Reference</pageWords>
+ <pageTitle>QStyleHintReturnMask Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstylehintreturnmask.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="305">
+ <pageWords>QStyleHintReturnVariant Class Reference</pageWords>
+ <pageTitle>QStyleHintReturnVariant Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstylehintreturnvariant.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="306">
+ <pageWords>QByteArrayMatcher Class Reference</pageWords>
+ <pageTitle>QByteArrayMatcher Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qbytearraymatcher.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="307">
+ <pageWords>QMessageBox Class Reference</pageWords>
+ <pageTitle>QMessageBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmessagebox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="308">
+ <pageWords>QTranslator Class Reference</pageWords>
+ <pageTitle>QTranslator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtranslator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="309">
+ <pageWords>QX11Info Class Reference</pageWords>
+ <pageTitle>QX11Info Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qx11info.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="310">
+ <pageWords>QDeclarativeComponent Class Reference</pageWords>
+ <pageTitle>QDeclarativeComponent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativecomponent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="311">
+ <pageWords>QStackedLayout Class Reference</pageWords>
+ <pageTitle>QStackedLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstackedlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="312">
+ <pageWords>QDrag Class Reference</pageWords>
+ <pageTitle>QDrag Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdrag.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="313">
+ <pageWords>QInputContext Class Reference</pageWords>
+ <pageTitle>QInputContext Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qinputcontext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="314">
+ <pageWords>QAudioOutput Class Reference</pageWords>
+ <pageTitle>QAudioOutput Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaudiooutput.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="315">
+ <pageWords>QImage Class Reference</pageWords>
+ <pageTitle>QImage Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qimage.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="316">
+ <pageWords>QScriptable Class Reference</pageWords>
+ <pageTitle>QScriptable Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptable.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="317">
+ <pageWords>QFileDialog Class Reference</pageWords>
+ <pageTitle>QFileDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfiledialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="318">
+ <pageWords>QLocalServer Class Reference</pageWords>
+ <pageTitle>QLocalServer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlocalserver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="319">
+ <pageWords>Q3Semaphore Class Reference</pageWords>
+ <pageTitle>Q3Semaphore Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3semaphore.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="320">
+ <pageWords>Q3SqlForm Class Reference</pageWords>
+ <pageTitle>Q3SqlForm Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3sqlform.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="321">
+ <pageWords>QWebDatabase Class Reference</pageWords>
+ <pageTitle>QWebDatabase Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebdatabase.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="322">
+ <pageWords>Q3ValueStack Class Reference</pageWords>
+ <pageTitle>Q3ValueStack Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3valuestack.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="323">
+ <pageWords>QShortcut Class Reference</pageWords>
+ <pageTitle>QShortcut Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qshortcut.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="324">
+ <pageWords>QTest Namespace Reference</pageWords>
+ <pageTitle>QTest Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtest.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="325">
+ <pageWords>QTouchEventSequence Class Reference</pageWords>
+ <pageTitle>QTouchEventSequence Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtest-qtoucheventsequence.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="326">
+ <pageWords>Q3IconDragItem Class Reference</pageWords>
+ <pageTitle>Q3IconDragItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3icondragitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="327">
+ <pageWords>Q3IconDrag Class Reference</pageWords>
+ <pageTitle>Q3IconDrag Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3icondrag.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="328">
+ <pageWords>Q3IconViewItem Class Reference</pageWords>
+ <pageTitle>Q3IconViewItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3iconviewitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="329">
+ <pageWords>Q3IconView Class Reference</pageWords>
+ <pageTitle>Q3IconView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3iconview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="330">
+ <pageWords>QPaintDevice Class Reference</pageWords>
+ <pageTitle>QPaintDevice Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpaintdevice.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="331">
+ <pageWords>QCDEStyle Class Reference</pageWords>
+ <pageTitle>QCDEStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcdestyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="332">
+ <pageWords>QNetworkRequest Class Reference</pageWords>
+ <pageTitle>QNetworkRequest Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkrequest.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="333">
+ <pageWords>QDeclarativeListReference Class Reference</pageWords>
+ <pageTitle>QDeclarativeListReference Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativelistreference.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="334">
+ <pageWords>Q3RangeControl Class Reference</pageWords>
+ <pageTitle>Q3RangeControl Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3rangecontrol.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="335">
+ <pageWords>QToolBar Class Reference</pageWords>
+ <pageTitle>QToolBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtoolbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="336">
+ <pageWords>Q3TextStream Class Reference</pageWords>
+ <pageTitle>Q3TextStream Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3textstream.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="337">
+ <pageWords>QAbstractTransition Class Reference</pageWords>
+ <pageTitle>QAbstractTransition Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstracttransition.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="338">
+ <pageWords>QAbstractTextDocumentLayout Class Reference</pageWords>
+ <pageTitle>QAbstractTextDocumentLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstracttextdocumentlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="339">
+ <pageWords>Selection Class Reference</pageWords>
+ <pageTitle>Selection Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstracttextdocumentlayout-selection.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="340">
+ <pageWords>PaintContext Class Reference</pageWords>
+ <pageTitle>PaintContext Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstracttextdocumentlayout-paintcontext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="341">
+ <pageWords>QTextObjectInterface Class Reference</pageWords>
+ <pageTitle>QTextObjectInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextobjectinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="342">
+ <pageWords>QComboBox Class Reference</pageWords>
+ <pageTitle>QComboBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcombobox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="343">
+ <pageWords>QToolTip Class Reference</pageWords>
+ <pageTitle>QToolTip Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtooltip.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="344">
+ <pageWords>QWebHistoryInterface Class Reference</pageWords>
+ <pageTitle>QWebHistoryInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebhistoryinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="345">
+ <pageWords>QSequentialAnimationGroup Class Reference</pageWords>
+ <pageTitle>QSequentialAnimationGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsequentialanimationgroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="346">
+ <pageWords>Q3Painter Class Reference</pageWords>
+ <pageTitle>Q3Painter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3painter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="347">
+ <pageWords>QSqlResult Class Reference</pageWords>
+ <pageTitle>QSqlResult Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlresult.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="348">
+ <pageWords>Q3PtrStack Class Reference</pageWords>
+ <pageTitle>Q3PtrStack Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ptrstack.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="349">
+ <pageWords>Q3Button Class Reference</pageWords>
+ <pageTitle>Q3Button Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3button.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="350">
+ <pageWords>QAxBase Class Reference</pageWords>
+ <pageTitle>QAxBase Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxbase.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="351">
+ <pageWords>Q3Action Class Reference</pageWords>
+ <pageTitle>Q3Action Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3action.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="352">
+ <pageWords>Q3ActionGroup Class Reference</pageWords>
+ <pageTitle>Q3ActionGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3actiongroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="353">
+ <pageWords>QSqlRelationalDelegate Class Reference</pageWords>
+ <pageTitle>QSqlRelationalDelegate Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlrelationaldelegate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="354">
+ <pageWords>Q3DataBrowser Class Reference</pageWords>
+ <pageTitle>Q3DataBrowser Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3databrowser.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="355">
+ <pageWords>QDBusServiceWatcher Class Reference</pageWords>
+ <pageTitle>QDBusServiceWatcher Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusservicewatcher.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="356">
+ <pageWords>QSharedPointer Class Reference</pageWords>
+ <pageTitle>QSharedPointer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsharedpointer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="357">
+ <pageWords>QWeakPointer Class Reference</pageWords>
+ <pageTitle>QWeakPointer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qweakpointer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="358">
+ <pageWords>Q3Socket Class Reference</pageWords>
+ <pageTitle>Q3Socket Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3socket.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="359">
+ <pageWords>QNetworkConfigurationManager Class Reference</pageWords>
+ <pageTitle>QNetworkConfigurationManager Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkconfigurationmanager.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="360">
+ <pageWords>QAbstractVideoBuffer Class Reference</pageWords>
+ <pageTitle>QAbstractVideoBuffer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractvideobuffer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="361">
+ <pageWords>QAbstractFileEngine Class Reference</pageWords>
+ <pageTitle>QAbstractFileEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfileengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="362">
+ <pageWords>ExtensionOption Class Reference</pageWords>
+ <pageTitle>ExtensionOption Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfileengine-extensionoption.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="363">
+ <pageWords>ExtensionReturn Class Reference</pageWords>
+ <pageTitle>ExtensionReturn Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfileengine-extensionreturn.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="364">
+ <pageWords>MapExtensionOption Class Reference</pageWords>
+ <pageTitle>MapExtensionOption Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfileengine-mapextensionoption.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="365">
+ <pageWords>MapExtensionReturn Class Reference</pageWords>
+ <pageTitle>MapExtensionReturn Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfileengine-mapextensionreturn.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="366">
+ <pageWords>UnMapExtensionOption Class Reference</pageWords>
+ <pageTitle>UnMapExtensionOption Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfileengine-unmapextensionoption.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="367">
+ <pageWords>QAbstractFileEngineHandler Class Reference</pageWords>
+ <pageTitle>QAbstractFileEngineHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfileenginehandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="368">
+ <pageWords>QAbstractFileEngineIterator Class Reference</pageWords>
+ <pageTitle>QAbstractFileEngineIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractfileengineiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="369">
+ <pageWords>QSessionManager Class Reference</pageWords>
+ <pageTitle>QSessionManager Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsessionmanager.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="370">
+ <pageWords>QExtensionFactory Class Reference</pageWords>
+ <pageTitle>QExtensionFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qextensionfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="371">
+ <pageWords>QDBusPendingReply Class Reference</pageWords>
+ <pageTitle>QDBusPendingReply Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbuspendingreply.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="372">
+ <pageWords>QWSEvent Class Reference</pageWords>
+ <pageTitle>QWSEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="373">
+ <pageWords>QHash Class Reference</pageWords>
+ <pageTitle>QHash Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhash.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="374">
+ <pageWords>iterator Class Reference</pageWords>
+ <pageTitle>iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhash-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="375">
+ <pageWords>const_iterator Class Reference</pageWords>
+ <pageTitle>const_iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhash-const-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="376">
+ <pageWords>QMultiHash Class Reference</pageWords>
+ <pageTitle>QMultiHash Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmultihash.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="377">
+ <pageWords>QWSKeyboardHandler Class Reference</pageWords>
+ <pageTitle>QWSKeyboardHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwskeyboardhandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="378">
+ <pageWords>QtConcurrent Namespace Reference</pageWords>
+ <pageTitle>QtConcurrent Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconcurrent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="379">
+ <pageWords>Exception Class Reference</pageWords>
+ <pageTitle>Exception Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconcurrent-exception.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="380">
+ <pageWords>UnhandledException Class Reference</pageWords>
+ <pageTitle>UnhandledException Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconcurrent-unhandledexception.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="381">
+ <pageWords>QDialogButtonBox Class Reference</pageWords>
+ <pageTitle>QDialogButtonBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdialogbuttonbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="382">
+ <pageWords>QLineEdit Class Reference</pageWords>
+ <pageTitle>QLineEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlineedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="383">
+ <pageWords>QReadWriteLock Class Reference</pageWords>
+ <pageTitle>QReadWriteLock Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qreadwritelock.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="384">
+ <pageWords>QReadLocker Class Reference</pageWords>
+ <pageTitle>QReadLocker Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qreadlocker.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="385">
+ <pageWords>QWriteLocker Class Reference</pageWords>
+ <pageTitle>QWriteLocker Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwritelocker.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="386">
+ <pageWords>QSocketNotifier Class Reference</pageWords>
+ <pageTitle>QSocketNotifier Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsocketnotifier.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="387">
+ <pageWords>QFileSystemModel Class Reference</pageWords>
+ <pageTitle>QFileSystemModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfilesystemmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="388">
+ <pageWords>QContiguousCache Class Reference</pageWords>
+ <pageTitle>QContiguousCache Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcontiguouscache.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="389">
+ <pageWords>QScreenDriverPlugin Class Reference</pageWords>
+ <pageTitle>QScreenDriverPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscreendriverplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="390">
+ <pageWords>QSplitter Class Reference</pageWords>
+ <pageTitle>QSplitter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsplitter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="391">
+ <pageWords>QSplitterHandle Class Reference</pageWords>
+ <pageTitle>QSplitterHandle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsplitterhandle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="392">
+ <pageWords>QTextDocumentWriter Class Reference</pageWords>
+ <pageTitle>QTextDocumentWriter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextdocumentwriter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="393">
+ <pageWords>QBitArray Class Reference</pageWords>
+ <pageTitle>QBitArray Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qbitarray.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="394">
+ <pageWords>QSpinBox Class Reference</pageWords>
+ <pageTitle>QSpinBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qspinbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="395">
+ <pageWords>QDoubleSpinBox Class Reference</pageWords>
+ <pageTitle>QDoubleSpinBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdoublespinbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="396">
+ <pageWords>QAction Class Reference</pageWords>
+ <pageTitle>QAction Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaction.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="397">
+ <pageWords>QLCDNumber Class Reference</pageWords>
+ <pageTitle>QLCDNumber Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlcdnumber.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="398">
+ <pageWords>QGesture Class Reference</pageWords>
+ <pageTitle>QGesture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgesture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="399">
+ <pageWords>QPanGesture Class Reference</pageWords>
+ <pageTitle>QPanGesture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpangesture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="400">
+ <pageWords>QPinchGesture Class Reference</pageWords>
+ <pageTitle>QPinchGesture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpinchgesture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="401">
+ <pageWords>QSwipeGesture Class Reference</pageWords>
+ <pageTitle>QSwipeGesture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qswipegesture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="402">
+ <pageWords>QTapGesture Class Reference</pageWords>
+ <pageTitle>QTapGesture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtapgesture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="403">
+ <pageWords>QTapAndHoldGesture Class Reference</pageWords>
+ <pageTitle>QTapAndHoldGesture Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtapandholdgesture.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="404">
+ <pageWords>QIODevice Class Reference</pageWords>
+ <pageTitle>QIODevice Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qiodevice.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="405">
+ <pageWords>QFutureWatcher Class Reference</pageWords>
+ <pageTitle>QFutureWatcher Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfuturewatcher.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="406">
+ <pageWords>QGraphicsSceneEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicssceneevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="407">
+ <pageWords>QGraphicsSceneMouseEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneMouseEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscenemouseevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="408">
+ <pageWords>QGraphicsSceneWheelEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneWheelEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscenewheelevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="409">
+ <pageWords>QGraphicsSceneContextMenuEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneContextMenuEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscenecontextmenuevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="410">
+ <pageWords>QGraphicsSceneHoverEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneHoverEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscenehoverevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="411">
+ <pageWords>QGraphicsSceneHelpEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneHelpEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscenehelpevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="412">
+ <pageWords>QGraphicsSceneDragDropEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneDragDropEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscenedragdropevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="413">
+ <pageWords>QGraphicsSceneResizeEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneResizeEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicssceneresizeevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="414">
+ <pageWords>QGraphicsSceneMoveEvent Class Reference</pageWords>
+ <pageTitle>QGraphicsSceneMoveEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscenemoveevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="415">
+ <pageWords>Q3ScrollView Class Reference</pageWords>
+ <pageTitle>Q3ScrollView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3scrollview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="416">
+ <pageWords>QAbstractFormBuilder Class Reference</pageWords>
+ <pageTitle>QAbstractFormBuilder Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractformbuilder.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="417">
+ <pageWords>QInputContextPlugin Class Reference</pageWords>
+ <pageTitle>QInputContextPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qinputcontextplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="418">
+ <pageWords>QInputContextFactory Class Reference</pageWords>
+ <pageTitle>QInputContextFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qinputcontextfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="419">
+ <pageWords>Q3CanvasItemList Class Reference</pageWords>
+ <pageTitle>Q3CanvasItemList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvasitemlist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="420">
+ <pageWords>Q3CanvasItem Class Reference</pageWords>
+ <pageTitle>Q3CanvasItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvasitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="421">
+ <pageWords>Q3Canvas Class Reference</pageWords>
+ <pageTitle>Q3Canvas Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvas.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="422">
+ <pageWords>Q3CanvasView Class Reference</pageWords>
+ <pageTitle>Q3CanvasView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvasview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="423">
+ <pageWords>Q3CanvasPixmap Class Reference</pageWords>
+ <pageTitle>Q3CanvasPixmap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvaspixmap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="424">
+ <pageWords>Q3CanvasPixmapArray Class Reference</pageWords>
+ <pageTitle>Q3CanvasPixmapArray Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvaspixmaparray.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="425">
+ <pageWords>Q3CanvasSprite Class Reference</pageWords>
+ <pageTitle>Q3CanvasSprite Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvassprite.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="426">
+ <pageWords>Q3CanvasPolygonalItem Class Reference</pageWords>
+ <pageTitle>Q3CanvasPolygonalItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvaspolygonalitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="427">
+ <pageWords>Q3CanvasRectangle Class Reference</pageWords>
+ <pageTitle>Q3CanvasRectangle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvasrectangle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="428">
+ <pageWords>Q3CanvasPolygon Class Reference</pageWords>
+ <pageTitle>Q3CanvasPolygon Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvaspolygon.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="429">
+ <pageWords>Q3CanvasSpline Class Reference</pageWords>
+ <pageTitle>Q3CanvasSpline Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvasspline.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="430">
+ <pageWords>Q3CanvasLine Class Reference</pageWords>
+ <pageTitle>Q3CanvasLine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvasline.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="431">
+ <pageWords>Q3CanvasEllipse Class Reference</pageWords>
+ <pageTitle>Q3CanvasEllipse Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvasellipse.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="432">
+ <pageWords>Q3CanvasText Class Reference</pageWords>
+ <pageTitle>Q3CanvasText Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3canvastext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="433">
+ <pageWords>QAbstractProxyModel Class Reference</pageWords>
+ <pageTitle>QAbstractProxyModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractproxymodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="434">
+ <pageWords>Q3TextEdit Class Reference</pageWords>
+ <pageTitle>Q3TextEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3textedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="435">
+ <pageWords>QDBusAbstractInterface Class Reference</pageWords>
+ <pageTitle>QDBusAbstractInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusabstractinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="436">
+ <pageWords>QValidator Class Reference</pageWords>
+ <pageTitle>QValidator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvalidator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="437">
+ <pageWords>QIntValidator Class Reference</pageWords>
+ <pageTitle>QIntValidator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qintvalidator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="438">
+ <pageWords>QDoubleValidator Class Reference</pageWords>
+ <pageTitle>QDoubleValidator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdoublevalidator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="439">
+ <pageWords>QRegExpValidator Class Reference</pageWords>
+ <pageTitle>QRegExpValidator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qregexpvalidator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="440">
+ <pageWords>QExtensionManager Class Reference</pageWords>
+ <pageTitle>QExtensionManager Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qextensionmanager.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="441">
+ <pageWords>QTextBrowser Class Reference</pageWords>
+ <pageTitle>QTextBrowser Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextbrowser.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="442">
+ <pageWords>QGLColormap Class Reference</pageWords>
+ <pageTitle>QGLColormap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglcolormap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="443">
+ <pageWords>QMdiArea Class Reference</pageWords>
+ <pageTitle>QMdiArea Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmdiarea.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="444">
+ <pageWords>QPluginLoader Class Reference</pageWords>
+ <pageTitle>QPluginLoader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpluginloader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="445">
+ <pageWords>QSizePolicy Class Reference</pageWords>
+ <pageTitle>QSizePolicy Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsizepolicy.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="446">
+ <pageWords>QImageWriter Class Reference</pageWords>
+ <pageTitle>QImageWriter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qimagewriter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="447">
+ <pageWords>Q3NetworkProtocol Class Reference</pageWords>
+ <pageTitle>Q3NetworkProtocol Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3networkprotocol.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="448">
+ <pageWords>Q3NetworkOperation Class Reference</pageWords>
+ <pageTitle>Q3NetworkOperation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3networkoperation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="449">
+ <pageWords>QScriptContextInfo Class Reference</pageWords>
+ <pageTitle>QScriptContextInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptcontextinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="450">
+ <pageWords>QMatrix4x4 Class Reference</pageWords>
+ <pageTitle>QMatrix4x4 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmatrix4x4.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="451">
+ <pageWords>QWorkspace Class Reference</pageWords>
+ <pageTitle>QWorkspace Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qworkspace.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="452">
+ <pageWords>Q3PtrVector Class Reference</pageWords>
+ <pageTitle>Q3PtrVector Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ptrvector.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="453">
+ <pageWords>QGtkStyle Class Reference</pageWords>
+ <pageTitle>QGtkStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgtkstyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="454">
+ <pageWords>QColor Class Reference</pageWords>
+ <pageTitle>QColor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcolor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="455">
+ <pageWords>QHelpEngineCore Class Reference</pageWords>
+ <pageTitle>QHelpEngineCore Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpenginecore.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="456">
+ <pageWords>QMouseEventTransition Class Reference</pageWords>
+ <pageTitle>QMouseEventTransition Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmouseeventtransition.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="457">
+ <pageWords>QWebPluginFactory Class Reference</pageWords>
+ <pageTitle>QWebPluginFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpluginfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="458">
+ <pageWords>MimeType Class Reference</pageWords>
+ <pageTitle>MimeType Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpluginfactory-mimetype.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="459">
+ <pageWords>Plugin Class Reference</pageWords>
+ <pageTitle>Plugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpluginfactory-plugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="460">
+ <pageWords>QPrintPreviewWidget Class Reference</pageWords>
+ <pageTitle>QPrintPreviewWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprintpreviewwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="461">
+ <pageWords>Q3DataTable Class Reference</pageWords>
+ <pageTitle>Q3DataTable Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3datatable.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="462">
+ <pageWords>QUiLoader Class Reference</pageWords>
+ <pageTitle>QUiLoader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/quiloader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="463">
+ <pageWords>Q3Ftp Class Reference</pageWords>
+ <pageTitle>Q3Ftp Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ftp.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="464">
+ <pageWords>QRegion Class Reference</pageWords>
+ <pageTitle>QRegion Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qregion.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="465">
+ <pageWords>QMargins Class Reference</pageWords>
+ <pageTitle>QMargins Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmargins.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="466">
+ <pageWords>Q3DataView Class Reference</pageWords>
+ <pageTitle>Q3DataView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dataview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="467">
+ <pageWords>QRunnable Class Reference</pageWords>
+ <pageTitle>QRunnable Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qrunnable.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="468">
+ <pageWords>QSslCipher Class Reference</pageWords>
+ <pageTitle>QSslCipher Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsslcipher.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="469">
+ <pageWords>QAxBindable Class Reference</pageWords>
+ <pageTitle>QAxBindable Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxbindable.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="470">
+ <pageWords>QGraphicsItemAnimation Class Reference</pageWords>
+ <pageTitle>QGraphicsItemAnimation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsitemanimation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="471">
+ <pageWords>QPrintDialog Class Reference</pageWords>
+ <pageTitle>QPrintDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprintdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="472">
+ <pageWords>QSharedMemory Class Reference</pageWords>
+ <pageTitle>QSharedMemory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsharedmemory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="473">
+ <pageWords>QListWidgetItem Class Reference</pageWords>
+ <pageTitle>QListWidgetItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlistwidgetitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="474">
+ <pageWords>QListWidget Class Reference</pageWords>
+ <pageTitle>QListWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlistwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="475">
+ <pageWords>QClipboard Class Reference</pageWords>
+ <pageTitle>QClipboard Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qclipboard.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="476">
+ <pageWords>QAbstractXmlReceiver Class Reference</pageWords>
+ <pageTitle>QAbstractXmlReceiver Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractxmlreceiver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="477">
+ <pageWords>QDBusConnectionInterface Class Reference</pageWords>
+ <pageTitle>QDBusConnectionInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusconnectioninterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="478">
+ <pageWords>QStyle Class Reference</pageWords>
+ <pageTitle>QStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="479">
+ <pageWords>QMacStyle Class Reference</pageWords>
+ <pageTitle>QMacStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmacstyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="480">
+ <pageWords>QSqlDriver Class Reference</pageWords>
+ <pageTitle>QSqlDriver Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqldriver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="481">
+ <pageWords>QDockWidget Class Reference</pageWords>
+ <pageTitle>QDockWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdockwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="482">
+ <pageWords>QDataStream Class Reference</pageWords>
+ <pageTitle>QDataStream Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdatastream.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="483">
+ <pageWords>QDomImplementation Class Reference</pageWords>
+ <pageTitle>QDomImplementation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomimplementation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="484">
+ <pageWords>QDomNode Class Reference</pageWords>
+ <pageTitle>QDomNode Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomnode.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="485">
+ <pageWords>QDomNodeList Class Reference</pageWords>
+ <pageTitle>QDomNodeList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomnodelist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="486">
+ <pageWords>QDomDocumentType Class Reference</pageWords>
+ <pageTitle>QDomDocumentType Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomdocumenttype.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="487">
+ <pageWords>QDomDocument Class Reference</pageWords>
+ <pageTitle>QDomDocument Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomdocument.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="488">
+ <pageWords>QDomNamedNodeMap Class Reference</pageWords>
+ <pageTitle>QDomNamedNodeMap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomnamednodemap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="489">
+ <pageWords>QDomDocumentFragment Class Reference</pageWords>
+ <pageTitle>QDomDocumentFragment Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomdocumentfragment.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="490">
+ <pageWords>QDomCharacterData Class Reference</pageWords>
+ <pageTitle>QDomCharacterData Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomcharacterdata.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="491">
+ <pageWords>QDomAttr Class Reference</pageWords>
+ <pageTitle>QDomAttr Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomattr.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="492">
+ <pageWords>QDomElement Class Reference</pageWords>
+ <pageTitle>QDomElement Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomelement.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="493">
+ <pageWords>QDomText Class Reference</pageWords>
+ <pageTitle>QDomText Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomtext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="494">
+ <pageWords>QDomComment Class Reference</pageWords>
+ <pageTitle>QDomComment Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomcomment.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="495">
+ <pageWords>QDomCDATASection Class Reference</pageWords>
+ <pageTitle>QDomCDATASection Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomcdatasection.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="496">
+ <pageWords>QDomNotation Class Reference</pageWords>
+ <pageTitle>QDomNotation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomnotation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="497">
+ <pageWords>QDomEntity Class Reference</pageWords>
+ <pageTitle>QDomEntity Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomentity.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="498">
+ <pageWords>QDomEntityReference Class Reference</pageWords>
+ <pageTitle>QDomEntityReference Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomentityreference.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="499">
+ <pageWords>QDomProcessingInstruction Class Reference</pageWords>
+ <pageTitle>QDomProcessingInstruction Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdomprocessinginstruction.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="500">
+ <pageWords>QTextItem Class Reference</pageWords>
+ <pageTitle>QTextItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="501">
+ <pageWords>QPaintEngine Class Reference</pageWords>
+ <pageTitle>QPaintEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpaintengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="502">
+ <pageWords>QPaintEngineState Class Reference</pageWords>
+ <pageTitle>QPaintEngineState Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpaintenginestate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="503">
+ <pageWords>QScreenCursor Class Reference</pageWords>
+ <pageTitle>QScreenCursor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscreencursor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="504">
+ <pageWords>QScreen Class Reference</pageWords>
+ <pageTitle>QScreen Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscreen.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="505">
+ <pageWords>QDesktopWidget Class Reference</pageWords>
+ <pageTitle>QDesktopWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesktopwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="506">
+ <pageWords>QSimpleXmlNodeModel Class Reference</pageWords>
+ <pageTitle>QSimpleXmlNodeModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsimplexmlnodemodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="507">
+ <pageWords>QListView Class Reference</pageWords>
+ <pageTitle>QListView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlistview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="508">
+ <pageWords>QSet Class Reference</pageWords>
+ <pageTitle>QSet Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qset.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="509">
+ <pageWords>iterator Class Reference</pageWords>
+ <pageTitle>iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qset-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="510">
+ <pageWords>const_iterator Class Reference</pageWords>
+ <pageTitle>const_iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qset-const-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="511">
+ <pageWords>QMutableSetIterator Class Reference</pageWords>
+ <pageTitle>QMutableSetIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmutablesetiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="512">
+ <pageWords>QColormap Class Reference</pageWords>
+ <pageTitle>QColormap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcolormap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="513">
+ <pageWords>QAbstractMessageHandler Class Reference</pageWords>
+ <pageTitle>QAbstractMessageHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractmessagehandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="514">
+ <pageWords>Q3TextBrowser Class Reference</pageWords>
+ <pageTitle>Q3TextBrowser Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3textbrowser.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="515">
+ <pageWords>QObjectCleanupHandler Class Reference</pageWords>
+ <pageTitle>QObjectCleanupHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qobjectcleanuphandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="516">
+ <pageWords>QDirIterator Class Reference</pageWords>
+ <pageTitle>QDirIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdiriterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="517">
+ <pageWords>QMacNativeWidget Class Reference</pageWords>
+ <pageTitle>QMacNativeWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmacnativewidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="518">
+ <pageWords>QHelpEngine Class Reference</pageWords>
+ <pageTitle>QHelpEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="519">
+ <pageWords>Q3GridView Class Reference</pageWords>
+ <pageTitle>Q3GridView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3gridview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="520">
+ <pageWords>QFileSystemWatcher Class Reference</pageWords>
+ <pageTitle>QFileSystemWatcher Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfilesystemwatcher.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="521">
+ <pageWords>QString Class Reference</pageWords>
+ <pageTitle>QString Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstring.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="522">
+ <pageWords>Null Class Reference</pageWords>
+ <pageTitle>Null Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstring-null.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="523">
+ <pageWords>QLatin1String Class Reference</pageWords>
+ <pageTitle>QLatin1String Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlatin1string.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="524">
+ <pageWords>QConstString Class Reference</pageWords>
+ <pageTitle>QConstString Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qconststring.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="525">
+ <pageWords>QStringRef Class Reference</pageWords>
+ <pageTitle>QStringRef Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstringref.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="526">
+ <pageWords>QGLPixelBuffer Class Reference</pageWords>
+ <pageTitle>QGLPixelBuffer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglpixelbuffer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="527">
+ <pageWords>QCheckBox Class Reference</pageWords>
+ <pageTitle>QCheckBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcheckbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="528">
+ <pageWords>QSqlTableModel Class Reference</pageWords>
+ <pageTitle>QSqlTableModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqltablemodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="529">
+ <pageWords>QDBusArgument Class Reference</pageWords>
+ <pageTitle>QDBusArgument Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusargument.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="530">
+ <pageWords>QProxyScreenCursor Class Reference</pageWords>
+ <pageTitle>QProxyScreenCursor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qproxyscreencursor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="531">
+ <pageWords>QProxyScreen Class Reference</pageWords>
+ <pageTitle>QProxyScreen Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qproxyscreen.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="532">
+ <pageWords>QMatrix Class Reference</pageWords>
+ <pageTitle>QMatrix Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmatrix.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="533">
+ <pageWords>QButtonGroup Class Reference</pageWords>
+ <pageTitle>QButtonGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qbuttongroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="534">
+ <pageWords>QSqlQuery Class Reference</pageWords>
+ <pageTitle>QSqlQuery Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlquery.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="535">
+ <pageWords>QMenuBar Class Reference</pageWords>
+ <pageTitle>QMenuBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmenubar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="536">
+ <pageWords>Q3StrListIterator Class Reference</pageWords>
+ <pageTitle>Q3StrListIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3strlistiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="537">
+ <pageWords>Q3StrList Class Reference</pageWords>
+ <pageTitle>Q3StrList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3strlist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="538">
+ <pageWords>Q3StrIList Class Reference</pageWords>
+ <pageTitle>Q3StrIList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3strilist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="539">
+ <pageWords>Q3SqlRecordInfo Class Reference</pageWords>
+ <pageTitle>Q3SqlRecordInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3sqlrecordinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="540">
+ <pageWords>QAbstractScrollArea Class Reference</pageWords>
+ <pageTitle>QAbstractScrollArea Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractscrollarea.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="541">
+ <pageWords>QDBus Namespace Reference</pageWords>
+ <pageTitle>QDBus Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbus.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="542">
+ <pageWords>QDBusConnection Class Reference</pageWords>
+ <pageTitle>QDBusConnection Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusconnection.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="543">
+ <pageWords>QDialog Class Reference</pageWords>
+ <pageTitle>QDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="544">
+ <pageWords>QSqlField Class Reference</pageWords>
+ <pageTitle>QSqlField Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlfield.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="545">
+ <pageWords>QNetworkSession Class Reference</pageWords>
+ <pageTitle>QNetworkSession Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworksession.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="546">
+ <pageWords>QNetworkDiskCache Class Reference</pageWords>
+ <pageTitle>QNetworkDiskCache Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkdiskcache.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="547">
+ <pageWords>Q3TableSelection Class Reference</pageWords>
+ <pageTitle>Q3TableSelection Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3tableselection.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="548">
+ <pageWords>Q3TableItem Class Reference</pageWords>
+ <pageTitle>Q3TableItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3tableitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="549">
+ <pageWords>Q3ComboTableItem Class Reference</pageWords>
+ <pageTitle>Q3ComboTableItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3combotableitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="550">
+ <pageWords>Q3CheckTableItem Class Reference</pageWords>
+ <pageTitle>Q3CheckTableItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3checktableitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="551">
+ <pageWords>Q3Table Class Reference</pageWords>
+ <pageTitle>Q3Table Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3table.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="552">
+ <pageWords>QXmlNamespaceSupport Class Reference</pageWords>
+ <pageTitle>QXmlNamespaceSupport Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlnamespacesupport.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="553">
+ <pageWords>QXmlAttributes Class Reference</pageWords>
+ <pageTitle>QXmlAttributes Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlattributes.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="554">
+ <pageWords>QXmlInputSource Class Reference</pageWords>
+ <pageTitle>QXmlInputSource Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlinputsource.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="555">
+ <pageWords>QXmlParseException Class Reference</pageWords>
+ <pageTitle>QXmlParseException Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlparseexception.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="556">
+ <pageWords>QXmlReader Class Reference</pageWords>
+ <pageTitle>QXmlReader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlreader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="557">
+ <pageWords>QXmlSimpleReader Class Reference</pageWords>
+ <pageTitle>QXmlSimpleReader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlsimplereader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="558">
+ <pageWords>QXmlLocator Class Reference</pageWords>
+ <pageTitle>QXmlLocator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmllocator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="559">
+ <pageWords>QXmlContentHandler Class Reference</pageWords>
+ <pageTitle>QXmlContentHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlcontenthandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="560">
+ <pageWords>QXmlErrorHandler Class Reference</pageWords>
+ <pageTitle>QXmlErrorHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlerrorhandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="561">
+ <pageWords>QXmlDTDHandler Class Reference</pageWords>
+ <pageTitle>QXmlDTDHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmldtdhandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="562">
+ <pageWords>QXmlEntityResolver Class Reference</pageWords>
+ <pageTitle>QXmlEntityResolver Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlentityresolver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="563">
+ <pageWords>QXmlLexicalHandler Class Reference</pageWords>
+ <pageTitle>QXmlLexicalHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmllexicalhandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="564">
+ <pageWords>QXmlDeclHandler Class Reference</pageWords>
+ <pageTitle>QXmlDeclHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmldeclhandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="565">
+ <pageWords>QXmlDefaultHandler Class Reference</pageWords>
+ <pageTitle>QXmlDefaultHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmldefaulthandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="566">
+ <pageWords>QCache Class Reference</pageWords>
+ <pageTitle>QCache Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcache.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="567">
+ <pageWords>QUrlInfo Class Reference</pageWords>
+ <pageTitle>QUrlInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qurlinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="568">
+ <pageWords>QSlider Class Reference</pageWords>
+ <pageTitle>QSlider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qslider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="569">
+ <pageWords>QThreadStorage Class Reference</pageWords>
+ <pageTitle>QThreadStorage Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qthreadstorage.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="570">
+ <pageWords>QImageIOHandler Class Reference</pageWords>
+ <pageTitle>QImageIOHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qimageiohandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="571">
+ <pageWords>QImageIOPlugin Class Reference</pageWords>
+ <pageTitle>QImageIOPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qimageioplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="572">
+ <pageWords>QLibrary Class Reference</pageWords>
+ <pageTitle>QLibrary Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlibrary.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="573">
+ <pageWords>QPen Class Reference</pageWords>
+ <pageTitle>QPen Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpen.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="574">
+ <pageWords>QDesignerActionEditorInterface Class Reference</pageWords>
+ <pageTitle>QDesignerActionEditorInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesigneractioneditorinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="575">
+ <pageWords>QDecorationPlugin Class Reference</pageWords>
+ <pageTitle>QDecorationPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdecorationplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="576">
+ <pageWords>QSourceLocation Class Reference</pageWords>
+ <pageTitle>QSourceLocation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsourcelocation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="577">
+ <pageWords>QDeclarativeExtensionPlugin Class Reference</pageWords>
+ <pageTitle>QDeclarativeExtensionPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeextensionplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="578">
+ <pageWords>QStylePainter Class Reference</pageWords>
+ <pageTitle>QStylePainter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstylepainter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="579">
+ <pageWords>QMotifStyle Class Reference</pageWords>
+ <pageTitle>QMotifStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmotifstyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="580">
+ <pageWords>QBuffer Class Reference</pageWords>
+ <pageTitle>QBuffer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qbuffer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="581">
+ <pageWords>QMimeSource Class Reference</pageWords>
+ <pageTitle>QMimeSource Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmimesource.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="582">
+ <pageWords>QWindowsMime Class Reference</pageWords>
+ <pageTitle>QWindowsMime Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwindowsmime.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="583">
+ <pageWords>QMacPasteboardMime Class Reference</pageWords>
+ <pageTitle>QMacPasteboardMime Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmacpasteboardmime.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="584">
+ <pageWords>QDBusMessage Class Reference</pageWords>
+ <pageTitle>QDBusMessage Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusmessage.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="585">
+ <pageWords>QAxAggregated Class Reference</pageWords>
+ <pageTitle>QAxAggregated Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxaggregated.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="586">
+ <pageWords>QSvgRenderer Class Reference</pageWords>
+ <pageTitle>QSvgRenderer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsvgrenderer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="587">
+ <pageWords>QFont Class Reference</pageWords>
+ <pageTitle>QFont Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfont.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="588">
+ <pageWords>QDeclarativeView Class Reference</pageWords>
+ <pageTitle>QDeclarativeView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="589">
+ <pageWords>Q3DateTimeEditBase Class Reference</pageWords>
+ <pageTitle>Q3DateTimeEditBase Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3datetimeeditbase.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="590">
+ <pageWords>Q3DateEdit Class Reference</pageWords>
+ <pageTitle>Q3DateEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dateedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="591">
+ <pageWords>Q3TimeEdit Class Reference</pageWords>
+ <pageTitle>Q3TimeEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3timeedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="592">
+ <pageWords>Q3DateTimeEdit Class Reference</pageWords>
+ <pageTitle>Q3DateTimeEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3datetimeedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="593">
+ <pageWords>QSyntaxHighlighter Class Reference</pageWords>
+ <pageTitle>QSyntaxHighlighter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsyntaxhighlighter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="594">
+ <pageWords>Q3IntDict Class Reference</pageWords>
+ <pageTitle>Q3IntDict Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3intdict.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="595">
+ <pageWords>Q3IntDictIterator Class Reference</pageWords>
+ <pageTitle>Q3IntDictIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3intdictiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="596">
+ <pageWords>QDesignerTaskMenuExtension Class Reference</pageWords>
+ <pageTitle>QDesignerTaskMenuExtension Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignertaskmenuextension.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="597">
+ <pageWords>QFontMetrics Class Reference</pageWords>
+ <pageTitle>QFontMetrics Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfontmetrics.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="598">
+ <pageWords>QFontMetricsF Class Reference</pageWords>
+ <pageTitle>QFontMetricsF Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfontmetricsf.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="599">
+ <pageWords>QFtp Class Reference</pageWords>
+ <pageTitle>QFtp Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qftp.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="600">
+ <pageWords>QGraphicsLinearLayout Class Reference</pageWords>
+ <pageTitle>QGraphicsLinearLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicslinearlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="601">
+ <pageWords>QDirectPainter Class Reference</pageWords>
+ <pageTitle>QDirectPainter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdirectpainter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="602">
+ <pageWords>QCompleter Class Reference</pageWords>
+ <pageTitle>QCompleter Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcompleter.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="603">
+ <pageWords>QDial Class Reference</pageWords>
+ <pageTitle>QDial Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdial.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="604">
+ <pageWords>QSignalSpy Class Reference</pageWords>
+ <pageTitle>QSignalSpy Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsignalspy.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="605">
+ <pageWords>QRubberBand Class Reference</pageWords>
+ <pageTitle>QRubberBand Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qrubberband.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="606">
+ <pageWords>QMetaType Class Reference</pageWords>
+ <pageTitle>QMetaType Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmetatype.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="607">
+ <pageWords>Q3ComboBox Class Reference</pageWords>
+ <pageTitle>Q3ComboBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3combobox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="608">
+ <pageWords>QVarLengthArray Class Reference</pageWords>
+ <pageTitle>QVarLengthArray Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvarlengtharray.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="609">
+ <pageWords>QXmlName Class Reference</pageWords>
+ <pageTitle>QXmlName Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlname.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="610">
+ <pageWords>QDesignerDynamicPropertySheetExtension Class Reference</pageWords>
+ <pageTitle>QDesignerDynamicPropertySheetExtension Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerdynamicpropertysheetextension.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="611">
+ <pageWords>QDesignerFormWindowCursorInterface Class Reference</pageWords>
+ <pageTitle>QDesignerFormWindowCursorInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerformwindowcursorinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="612">
+ <pageWords>QTileRules Class Reference</pageWords>
+ <pageTitle>QTileRules Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtilerules.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="613">
+ <pageWords>Q3HttpHeader Class Reference</pageWords>
+ <pageTitle>Q3HttpHeader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3httpheader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="614">
+ <pageWords>Q3HttpResponseHeader Class Reference</pageWords>
+ <pageTitle>Q3HttpResponseHeader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3httpresponseheader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="615">
+ <pageWords>Q3HttpRequestHeader Class Reference</pageWords>
+ <pageTitle>Q3HttpRequestHeader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3httprequestheader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="616">
+ <pageWords>Q3Http Class Reference</pageWords>
+ <pageTitle>Q3Http Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3http.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="617">
+ <pageWords>QTestEventList Class Reference</pageWords>
+ <pageTitle>QTestEventList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtesteventlist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="618">
+ <pageWords>QItemSelectionRange Class Reference</pageWords>
+ <pageTitle>QItemSelectionRange Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qitemselectionrange.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="619">
+ <pageWords>QItemSelectionModel Class Reference</pageWords>
+ <pageTitle>QItemSelectionModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qitemselectionmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="620">
+ <pageWords>QItemSelection Class Reference</pageWords>
+ <pageTitle>QItemSelection Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qitemselection.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="621">
+ <pageWords>QCalendarWidget Class Reference</pageWords>
+ <pageTitle>QCalendarWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcalendarwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="622">
+ <pageWords>Q3SqlCursor Class Reference</pageWords>
+ <pageTitle>Q3SqlCursor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3sqlcursor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="623">
+ <pageWords>QWebSettings Class Reference</pageWords>
+ <pageTitle>QWebSettings Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebsettings.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="624">
+ <pageWords>QNetworkCookie Class Reference</pageWords>
+ <pageTitle>QNetworkCookie Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkcookie.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="625">
+ <pageWords>QAxScriptEngine Class Reference</pageWords>
+ <pageTitle>QAxScriptEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxscriptengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="626">
+ <pageWords>QAxScript Class Reference</pageWords>
+ <pageTitle>QAxScript Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxscript.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="627">
+ <pageWords>QAxScriptManager Class Reference</pageWords>
+ <pageTitle>QAxScriptManager Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxscriptmanager.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="628">
+ <pageWords>QFontComboBox Class Reference</pageWords>
+ <pageTitle>QFontComboBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfontcombobox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="629">
+ <pageWords>QErrorMessage Class Reference</pageWords>
+ <pageTitle>QErrorMessage Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qerrormessage.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="630">
+ <pageWords>QDeclarativeParserStatus Class Reference</pageWords>
+ <pageTitle>QDeclarativeParserStatus Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeparserstatus.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="631">
+ <pageWords>QScriptString Class Reference</pageWords>
+ <pageTitle>QScriptString Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptstring.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="632">
+ <pageWords>Q3VBox Class Reference</pageWords>
+ <pageTitle>Q3VBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3vbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="633">
+ <pageWords>Q3MemArray Class Reference</pageWords>
+ <pageTitle>Q3MemArray Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3memarray.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="634">
+ <pageWords>Q3DropSite Class Reference</pageWords>
+ <pageTitle>Q3DropSite Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dropsite.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="635">
+ <pageWords>QVideoFrame Class Reference</pageWords>
+ <pageTitle>QVideoFrame Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvideoframe.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="636">
+ <pageWords>QSslCertificate Class Reference</pageWords>
+ <pageTitle>QSslCertificate Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsslcertificate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="637">
+ <pageWords>QCommonStyle Class Reference</pageWords>
+ <pageTitle>QCommonStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcommonstyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="638">
+ <pageWords>QAccessible Class Reference</pageWords>
+ <pageTitle>QAccessible Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaccessible.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="639">
+ <pageWords>QAccessibleInterface Class Reference</pageWords>
+ <pageTitle>QAccessibleInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaccessibleinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="640">
+ <pageWords>QAccessibleEvent Class Reference</pageWords>
+ <pageTitle>QAccessibleEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaccessibleevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="641">
+ <pageWords>QDesignerFormWindowInterface Class Reference</pageWords>
+ <pageTitle>QDesignerFormWindowInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerformwindowinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="642">
+ <pageWords>QDesignerPropertySheetExtension Class Reference</pageWords>
+ <pageTitle>QDesignerPropertySheetExtension Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerpropertysheetextension.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="643">
+ <pageWords>QFileInfo Class Reference</pageWords>
+ <pageTitle>QFileInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfileinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="644">
+ <pageWords>QEventTransition Class Reference</pageWords>
+ <pageTitle>QEventTransition Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qeventtransition.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="645">
+ <pageWords>QCoreApplication Class Reference</pageWords>
+ <pageTitle>QCoreApplication Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcoreapplication.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="646">
+ <pageWords>QAudioDeviceInfo Class Reference</pageWords>
+ <pageTitle>QAudioDeviceInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaudiodeviceinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="647">
+ <pageWords>QScriptProgram Class Reference</pageWords>
+ <pageTitle>QScriptProgram Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptprogram.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="648">
+ <pageWords>Q3Cache Class Reference</pageWords>
+ <pageTitle>Q3Cache Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3cache.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="649">
+ <pageWords>Q3CacheIterator Class Reference</pageWords>
+ <pageTitle>Q3CacheIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3cacheiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="650">
+ <pageWords>QGLShader Class Reference</pageWords>
+ <pageTitle>QGLShader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglshader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="651">
+ <pageWords>QGLShaderProgram Class Reference</pageWords>
+ <pageTitle>QGLShaderProgram Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglshaderprogram.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="652">
+ <pageWords>QStyledItemDelegate Class Reference</pageWords>
+ <pageTitle>QStyledItemDelegate Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleditemdelegate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="653">
+ <pageWords>QBitmap Class Reference</pageWords>
+ <pageTitle>QBitmap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qbitmap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="654">
+ <pageWords>QColumnView Class Reference</pageWords>
+ <pageTitle>QColumnView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcolumnview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="655">
+ <pageWords>Q3DockArea Class Reference</pageWords>
+ <pageTitle>Q3DockArea Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dockarea.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="656">
+ <pageWords>Q3SqlEditorFactory Class Reference</pageWords>
+ <pageTitle>Q3SqlEditorFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3sqleditorfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="657">
+ <pageWords>QInputDialog Class Reference</pageWords>
+ <pageTitle>QInputDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qinputdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="658">
+ <pageWords>QLabel Class Reference</pageWords>
+ <pageTitle>QLabel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlabel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="659">
+ <pageWords>QDesignerPropertyEditorInterface Class Reference</pageWords>
+ <pageTitle>QDesignerPropertyEditorInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerpropertyeditorinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="660">
+ <pageWords>QTextCursor Class Reference</pageWords>
+ <pageTitle>QTextCursor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextcursor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="661">
+ <pageWords>QS60Style Class Reference</pageWords>
+ <pageTitle>QS60Style Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qs60style.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="662">
+ <pageWords>Q3DeepCopy Class Reference</pageWords>
+ <pageTitle>Q3DeepCopy Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3deepcopy.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="663">
+ <pageWords>QGraphicsItem Class Reference</pageWords>
+ <pageTitle>QGraphicsItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="664">
+ <pageWords>QGraphicsObject Class Reference</pageWords>
+ <pageTitle>QGraphicsObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="665">
+ <pageWords>QAbstractGraphicsShapeItem Class Reference</pageWords>
+ <pageTitle>QAbstractGraphicsShapeItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractgraphicsshapeitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="666">
+ <pageWords>QGraphicsPathItem Class Reference</pageWords>
+ <pageTitle>QGraphicsPathItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicspathitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="667">
+ <pageWords>QGraphicsRectItem Class Reference</pageWords>
+ <pageTitle>QGraphicsRectItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsrectitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="668">
+ <pageWords>QGraphicsEllipseItem Class Reference</pageWords>
+ <pageTitle>QGraphicsEllipseItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsellipseitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="669">
+ <pageWords>QGraphicsPolygonItem Class Reference</pageWords>
+ <pageTitle>QGraphicsPolygonItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicspolygonitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="670">
+ <pageWords>QGraphicsLineItem Class Reference</pageWords>
+ <pageTitle>QGraphicsLineItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicslineitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="671">
+ <pageWords>QGraphicsPixmapItem Class Reference</pageWords>
+ <pageTitle>QGraphicsPixmapItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicspixmapitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="672">
+ <pageWords>QGraphicsTextItem Class Reference</pageWords>
+ <pageTitle>QGraphicsTextItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicstextitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="673">
+ <pageWords>QGraphicsSimpleTextItem Class Reference</pageWords>
+ <pageTitle>QGraphicsSimpleTextItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicssimpletextitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="674">
+ <pageWords>QGraphicsItemGroup Class Reference</pageWords>
+ <pageTitle>QGraphicsItemGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsitemgroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="675">
+ <pageWords>QNetworkCacheMetaData Class Reference</pageWords>
+ <pageTitle>QNetworkCacheMetaData Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkcachemetadata.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="676">
+ <pageWords>QAbstractNetworkCache Class Reference</pageWords>
+ <pageTitle>QAbstractNetworkCache Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractnetworkcache.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="677">
+ <pageWords>QAbstractSocket Class Reference</pageWords>
+ <pageTitle>QAbstractSocket Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractsocket.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="678">
+ <pageWords>QState Class Reference</pageWords>
+ <pageTitle>QState Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="679">
+ <pageWords>QTabWidget Class Reference</pageWords>
+ <pageTitle>QTabWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtabwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="680">
+ <pageWords>QToolBox Class Reference</pageWords>
+ <pageTitle>QToolBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtoolbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="681">
+ <pageWords>QUndoCommand Class Reference</pageWords>
+ <pageTitle>QUndoCommand Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qundocommand.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="682">
+ <pageWords>QUndoStack Class Reference</pageWords>
+ <pageTitle>QUndoStack Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qundostack.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="683">
+ <pageWords>QDBusPendingCall Class Reference</pageWords>
+ <pageTitle>QDBusPendingCall Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbuspendingcall.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="684">
+ <pageWords>QDBusPendingCallWatcher Class Reference</pageWords>
+ <pageTitle>QDBusPendingCallWatcher Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbuspendingcallwatcher.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="685">
+ <pageWords>QSqlDriverCreatorBase Class Reference</pageWords>
+ <pageTitle>QSqlDriverCreatorBase Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqldrivercreatorbase.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="686">
+ <pageWords>QSqlDriverCreator Class Reference</pageWords>
+ <pageTitle>QSqlDriverCreator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqldrivercreator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="687">
+ <pageWords>QSqlDatabase Class Reference</pageWords>
+ <pageTitle>QSqlDatabase Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqldatabase.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="688">
+ <pageWords>QDateTimeEdit Class Reference</pageWords>
+ <pageTitle>QDateTimeEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdatetimeedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="689">
+ <pageWords>QTimeEdit Class Reference</pageWords>
+ <pageTitle>QTimeEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtimeedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="690">
+ <pageWords>QDateEdit Class Reference</pageWords>
+ <pageTitle>QDateEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdateedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="691">
+ <pageWords>Q3ProgressDialog Class Reference</pageWords>
+ <pageTitle>Q3ProgressDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3progressdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="692">
+ <pageWords>QStringList Class Reference</pageWords>
+ <pageTitle>QStringList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstringlist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="693">
+ <pageWords>QNetworkReply Class Reference</pageWords>
+ <pageTitle>QNetworkReply Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkreply.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="694">
+ <pageWords>QTabBar Class Reference</pageWords>
+ <pageTitle>QTabBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtabbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="695">
+ <pageWords>QPlainTextEdit Class Reference</pageWords>
+ <pageTitle>QPlainTextEdit Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qplaintextedit.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="696">
+ <pageWords>QPlainTextDocumentLayout Class Reference</pageWords>
+ <pageTitle>QPlainTextDocumentLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qplaintextdocumentlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="697">
+ <pageWords>QEventLoop Class Reference</pageWords>
+ <pageTitle>QEventLoop Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qeventloop.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="698">
+ <pageWords>QCommandLinkButton Class Reference</pageWords>
+ <pageTitle>QCommandLinkButton Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcommandlinkbutton.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="699">
+ <pageWords>QFinalState Class Reference</pageWords>
+ <pageTitle>QFinalState Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfinalstate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="700">
+ <pageWords>QTextList Class Reference</pageWords>
+ <pageTitle>QTextList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextlist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="701">
+ <pageWords>QPrinterInfo Class Reference</pageWords>
+ <pageTitle>QPrinterInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprinterinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="702">
+ <pageWords>QAccessibleObject Class Reference</pageWords>
+ <pageTitle>QAccessibleObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaccessibleobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="703">
+ <pageWords>QGraphicsScene Class Reference</pageWords>
+ <pageTitle>QGraphicsScene Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscene.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="704">
+ <pageWords>QSplashScreen Class Reference</pageWords>
+ <pageTitle>QSplashScreen Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsplashscreen.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="705">
+ <pageWords>QWebSecurityOrigin Class Reference</pageWords>
+ <pageTitle>QWebSecurityOrigin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebsecurityorigin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="706">
+ <pageWords>QTextLength Class Reference</pageWords>
+ <pageTitle>QTextLength Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextlength.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="707">
+ <pageWords>QTextFormat Class Reference</pageWords>
+ <pageTitle>QTextFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="708">
+ <pageWords>QTextCharFormat Class Reference</pageWords>
+ <pageTitle>QTextCharFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextcharformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="709">
+ <pageWords>QTextBlockFormat Class Reference</pageWords>
+ <pageTitle>QTextBlockFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextblockformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="710">
+ <pageWords>QTextListFormat Class Reference</pageWords>
+ <pageTitle>QTextListFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextlistformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="711">
+ <pageWords>QTextImageFormat Class Reference</pageWords>
+ <pageTitle>QTextImageFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextimageformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="712">
+ <pageWords>QTextFrameFormat Class Reference</pageWords>
+ <pageTitle>QTextFrameFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextframeformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="713">
+ <pageWords>QTextTableFormat Class Reference</pageWords>
+ <pageTitle>QTextTableFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtexttableformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="714">
+ <pageWords>QTextTableCellFormat Class Reference</pageWords>
+ <pageTitle>QTextTableCellFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtexttablecellformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="715">
+ <pageWords>QLayoutItem Class Reference</pageWords>
+ <pageTitle>QLayoutItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlayoutitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="716">
+ <pageWords>QSpacerItem Class Reference</pageWords>
+ <pageTitle>QSpacerItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qspaceritem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="717">
+ <pageWords>QWidgetItem Class Reference</pageWords>
+ <pageTitle>QWidgetItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwidgetitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="718">
+ <pageWords>QUdpSocket Class Reference</pageWords>
+ <pageTitle>QUdpSocket Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qudpsocket.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="719">
+ <pageWords>QStateMachine Class Reference</pageWords>
+ <pageTitle>QStateMachine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstatemachine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="720">
+ <pageWords>SignalEvent Class Reference</pageWords>
+ <pageTitle>SignalEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstatemachine-signalevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="721">
+ <pageWords>WrappedEvent Class Reference</pageWords>
+ <pageTitle>WrappedEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstatemachine-wrappedevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="722">
+ <pageWords>Q3ButtonGroup Class Reference</pageWords>
+ <pageTitle>Q3ButtonGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3buttongroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="723">
+ <pageWords>Q3VButtonGroup Class Reference</pageWords>
+ <pageTitle>Q3VButtonGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3vbuttongroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="724">
+ <pageWords>Q3HButtonGroup Class Reference</pageWords>
+ <pageTitle>Q3HButtonGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3hbuttongroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="725">
+ <pageWords>Q3ValueVector Class Reference</pageWords>
+ <pageTitle>Q3ValueVector Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3valuevector.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="726">
+ <pageWords>QTextCodecPlugin Class Reference</pageWords>
+ <pageTitle>QTextCodecPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextcodecplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="727">
+ <pageWords>Q3PopupMenu Class Reference</pageWords>
+ <pageTitle>Q3PopupMenu Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3popupmenu.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="728">
+ <pageWords>QAbstractAnimation Class Reference</pageWords>
+ <pageTitle>QAbstractAnimation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractanimation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="729">
+ <pageWords>QWebPage Class Reference</pageWords>
+ <pageTitle>QWebPage Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpage.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="730">
+ <pageWords>ExtensionOption Class Reference</pageWords>
+ <pageTitle>ExtensionOption Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpage-extensionoption.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="731">
+ <pageWords>ExtensionReturn Class Reference</pageWords>
+ <pageTitle>ExtensionReturn Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpage-extensionreturn.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="732">
+ <pageWords>ChooseMultipleFilesExtensionOption Class Reference</pageWords>
+ <pageTitle>ChooseMultipleFilesExtensionOption Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpage-choosemultiplefilesextensionoption.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="733">
+ <pageWords>ChooseMultipleFilesExtensionReturn Class Reference</pageWords>
+ <pageTitle>ChooseMultipleFilesExtensionReturn Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpage-choosemultiplefilesextensionreturn.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="734">
+ <pageWords>ErrorPageExtensionOption Class Reference</pageWords>
+ <pageTitle>ErrorPageExtensionOption Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpage-errorpageextensionoption.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="735">
+ <pageWords>ErrorPageExtensionReturn Class Reference</pageWords>
+ <pageTitle>ErrorPageExtensionReturn Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebpage-errorpageextensionreturn.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="736">
+ <pageWords>QTextOption Class Reference</pageWords>
+ <pageTitle>QTextOption Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextoption.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="737">
+ <pageWords>Tab Class Reference</pageWords>
+ <pageTitle>Tab Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextoption-tab.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="738">
+ <pageWords>QTcpSocket Class Reference</pageWords>
+ <pageTitle>QTcpSocket Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtcpsocket.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="739">
+ <pageWords>QMacCocoaViewContainer Class Reference</pageWords>
+ <pageTitle>QMacCocoaViewContainer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmaccocoaviewcontainer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="740">
+ <pageWords>QSqlRelation Class Reference</pageWords>
+ <pageTitle>QSqlRelation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlrelation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="741">
+ <pageWords>QSqlRelationalTableModel Class Reference</pageWords>
+ <pageTitle>QSqlRelationalTableModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlrelationaltablemodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="742">
+ <pageWords>QStyleFactory Class Reference</pageWords>
+ <pageTitle>QStyleFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstylefactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="743">
+ <pageWords>QDecorationFactory Class Reference</pageWords>
+ <pageTitle>QDecorationFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdecorationfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="744">
+ <pageWords>QHttpHeader Class Reference</pageWords>
+ <pageTitle>QHttpHeader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhttpheader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="745">
+ <pageWords>QHttpResponseHeader Class Reference</pageWords>
+ <pageTitle>QHttpResponseHeader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhttpresponseheader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="746">
+ <pageWords>QHttpRequestHeader Class Reference</pageWords>
+ <pageTitle>QHttpRequestHeader Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhttprequestheader.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="747">
+ <pageWords>QHttp Class Reference</pageWords>
+ <pageTitle>QHttp Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhttp.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="748">
+ <pageWords>QSqlRecord Class Reference</pageWords>
+ <pageTitle>QSqlRecord Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlrecord.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="749">
+ <pageWords>QSymbianEvent Class Reference</pageWords>
+ <pageTitle>QSymbianEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsymbianevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="750">
+ <pageWords>QGraphicsView Class Reference</pageWords>
+ <pageTitle>QGraphicsView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="751">
+ <pageWords>QAbstractSpinBox Class Reference</pageWords>
+ <pageTitle>QAbstractSpinBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractspinbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="752">
+ <pageWords>QFormLayout Class Reference</pageWords>
+ <pageTitle>QFormLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qformlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="753">
+ <pageWords>Q3Shared Class Reference</pageWords>
+ <pageTitle>Q3Shared Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3shared.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="754">
+ <pageWords>QDeclarativeError Class Reference</pageWords>
+ <pageTitle>QDeclarativeError Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeerror.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="755">
+ <pageWords>Q3FileIconProvider Class Reference</pageWords>
+ <pageTitle>Q3FileIconProvider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3fileiconprovider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="756">
+ <pageWords>Q3FilePreview Class Reference</pageWords>
+ <pageTitle>Q3FilePreview Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3filepreview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="757">
+ <pageWords>Q3FileDialog Class Reference</pageWords>
+ <pageTitle>Q3FileDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3filedialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="758">
+ <pageWords>QScriptEngineDebugger Class Reference</pageWords>
+ <pageTitle>QScriptEngineDebugger Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptenginedebugger.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="759">
+ <pageWords>QThreadPool Class Reference</pageWords>
+ <pageTitle>QThreadPool Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qthreadpool.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="760">
+ <pageWords>QMetaMethod Class Reference</pageWords>
+ <pageTitle>QMetaMethod Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmetamethod.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="761">
+ <pageWords>QMetaEnum Class Reference</pageWords>
+ <pageTitle>QMetaEnum Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmetaenum.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="762">
+ <pageWords>QMetaProperty Class Reference</pageWords>
+ <pageTitle>QMetaProperty Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmetaproperty.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="763">
+ <pageWords>QMetaClassInfo Class Reference</pageWords>
+ <pageTitle>QMetaClassInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmetaclassinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="764">
+ <pageWords>QDir Class Reference</pageWords>
+ <pageTitle>QDir Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdir.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="765">
+ <pageWords>Q3SqlSelectCursor Class Reference</pageWords>
+ <pageTitle>Q3SqlSelectCursor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3sqlselectcursor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="766">
+ <pageWords>Q3PtrCollection Class Reference</pageWords>
+ <pageTitle>Q3PtrCollection Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ptrcollection.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="767">
+ <pageWords>Q3Frame Class Reference</pageWords>
+ <pageTitle>Q3Frame Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3frame.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="768">
+ <pageWords>QSignalMapper Class Reference</pageWords>
+ <pageTitle>QSignalMapper Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsignalmapper.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="769">
+ <pageWords>QSqlDriverPlugin Class Reference</pageWords>
+ <pageTitle>QSqlDriverPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqldriverplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="770">
+ <pageWords>QDeclarativeExpression Class Reference</pageWords>
+ <pageTitle>QDeclarativeExpression Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeexpression.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="771">
+ <pageWords>QWebHitTestResult Class Reference</pageWords>
+ <pageTitle>QWebHitTestResult Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebhittestresult.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="772">
+ <pageWords>QWebFrame Class Reference</pageWords>
+ <pageTitle>QWebFrame Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwebframe.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="773">
+ <pageWords>QTextStream Class Reference</pageWords>
+ <pageTitle>QTextStream Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextstream.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="774">
+ <pageWords>QTextIStream Class Reference</pageWords>
+ <pageTitle>QTextIStream Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextistream.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="775">
+ <pageWords>QTextOStream Class Reference</pageWords>
+ <pageTitle>QTextOStream Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextostream.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="776">
+ <pageWords>QActionGroup Class Reference</pageWords>
+ <pageTitle>QActionGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qactiongroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="777">
+ <pageWords>QWindowsStyle Class Reference</pageWords>
+ <pageTitle>QWindowsStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwindowsstyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="778">
+ <pageWords>QSsl Namespace Reference</pageWords>
+ <pageTitle>QSsl Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qssl.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="779">
+ <pageWords>Q3PtrDict Class Reference</pageWords>
+ <pageTitle>Q3PtrDict Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ptrdict.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="780">
+ <pageWords>Q3PtrDictIterator Class Reference</pageWords>
+ <pageTitle>Q3PtrDictIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ptrdictiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="781">
+ <pageWords>Q3Header Class Reference</pageWords>
+ <pageTitle>Q3Header Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3header.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="782">
+ <pageWords>QMenu Class Reference</pageWords>
+ <pageTitle>QMenu Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmenu.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="783">
+ <pageWords>QSqlError Class Reference</pageWords>
+ <pageTitle>QSqlError Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlerror.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="784">
+ <pageWords>QPropertyAnimation Class Reference</pageWords>
+ <pageTitle>QPropertyAnimation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpropertyanimation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="785">
+ <pageWords>QPointer Class Reference</pageWords>
+ <pageTitle>QPointer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpointer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="786">
+ <pageWords>QTextDocument Class Reference</pageWords>
+ <pageTitle>QTextDocument Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextdocument.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="787">
+ <pageWords>QDesignerCustomWidgetInterface Class Reference</pageWords>
+ <pageTitle>QDesignerCustomWidgetInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignercustomwidgetinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="788">
+ <pageWords>QDesignerCustomWidgetCollectionInterface Class Reference</pageWords>
+ <pageTitle>QDesignerCustomWidgetCollectionInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignercustomwidgetcollectioninterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="789">
+ <pageWords>QScriptSyntaxCheckResult Class Reference</pageWords>
+ <pageTitle>QScriptSyntaxCheckResult Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptsyntaxcheckresult.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="790">
+ <pageWords>QScriptEngine Class Reference</pageWords>
+ <pageTitle>QScriptEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="791">
+ <pageWords>QFontDialog Class Reference</pageWords>
+ <pageTitle>QFontDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfontdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="792">
+ <pageWords>QGenericArgument Class Reference</pageWords>
+ <pageTitle>QGenericArgument Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgenericargument.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="793">
+ <pageWords>QGenericReturnArgument Class Reference</pageWords>
+ <pageTitle>QGenericReturnArgument Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgenericreturnargument.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="794">
+ <pageWords>QMetaObject Class Reference</pageWords>
+ <pageTitle>QMetaObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmetaobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="795">
+ <pageWords>QDate Class Reference</pageWords>
+ <pageTitle>QDate Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="796">
+ <pageWords>QTime Class Reference</pageWords>
+ <pageTitle>QTime Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtime.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="797">
+ <pageWords>QDateTime Class Reference</pageWords>
+ <pageTitle>QDateTime Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdatetime.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="798">
+ <pageWords>QAxWidget Class Reference</pageWords>
+ <pageTitle>QAxWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="799">
+ <pageWords>QGraphicsProxyWidget Class Reference</pageWords>
+ <pageTitle>QGraphicsProxyWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsproxywidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="800">
+ <pageWords>QAbstractItemDelegate Class Reference</pageWords>
+ <pageTitle>QAbstractItemDelegate Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractitemdelegate.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="801">
+ <pageWords>QSvgWidget Class Reference</pageWords>
+ <pageTitle>QSvgWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsvgwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="802">
+ <pageWords>QTreeWidgetItem Class Reference</pageWords>
+ <pageTitle>QTreeWidgetItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtreewidgetitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="803">
+ <pageWords>QTreeWidget Class Reference</pageWords>
+ <pageTitle>QTreeWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtreewidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="804">
+ <pageWords>QXmlSchema Class Reference</pageWords>
+ <pageTitle>QXmlSchema Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlschema.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="805">
+ <pageWords>QKbdDriverPlugin Class Reference</pageWords>
+ <pageTitle>QKbdDriverPlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qkbddriverplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="806">
+ <pageWords>QProcessEnvironment Class Reference</pageWords>
+ <pageTitle>QProcessEnvironment Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprocessenvironment.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="807">
+ <pageWords>QProcess Class Reference</pageWords>
+ <pageTitle>QProcess Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprocess.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="808">
+ <pageWords>QVideoSurfaceFormat Class Reference</pageWords>
+ <pageTitle>QVideoSurfaceFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvideosurfaceformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="809">
+ <pageWords>QMainWindow Class Reference</pageWords>
+ <pageTitle>QMainWindow Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmainwindow.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="810">
+ <pageWords>QProxyModel Class Reference</pageWords>
+ <pageTitle>QProxyModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qproxymodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="811">
+ <pageWords>Q3AsciiDict Class Reference</pageWords>
+ <pageTitle>Q3AsciiDict Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3asciidict.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="812">
+ <pageWords>Q3AsciiDictIterator Class Reference</pageWords>
+ <pageTitle>Q3AsciiDictIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3asciidictiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="813">
+ <pageWords>QPauseAnimation Class Reference</pageWords>
+ <pageTitle>QPauseAnimation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpauseanimation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="814">
+ <pageWords>Q3ServerSocket Class Reference</pageWords>
+ <pageTitle>Q3ServerSocket Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3serversocket.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="815">
+ <pageWords>QSqlQueryModel Class Reference</pageWords>
+ <pageTitle>QSqlQueryModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsqlquerymodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="816">
+ <pageWords>QDeclarativeItem Class Reference</pageWords>
+ <pageTitle>QDeclarativeItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="817">
+ <pageWords>QXmlNamePool Class Reference</pageWords>
+ <pageTitle>QXmlNamePool Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlnamepool.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="818">
+ <pageWords>QSharedData Class Reference</pageWords>
+ <pageTitle>QSharedData Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qshareddata.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="819">
+ <pageWords>QSharedDataPointer Class Reference</pageWords>
+ <pageTitle>QSharedDataPointer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qshareddatapointer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="820">
+ <pageWords>QExplicitlySharedDataPointer Class Reference</pageWords>
+ <pageTitle>QExplicitlySharedDataPointer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qexplicitlyshareddatapointer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="821">
+ <pageWords>QDeclarativeContext Class Reference</pageWords>
+ <pageTitle>QDeclarativeContext Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativecontext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="822">
+ <pageWords>QGLBuffer Class Reference</pageWords>
+ <pageTitle>QGLBuffer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglbuffer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="823">
+ <pageWords>QDecoration Class Reference</pageWords>
+ <pageTitle>QDecoration Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdecoration.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="824">
+ <pageWords>QSslError Class Reference</pageWords>
+ <pageTitle>QSslError Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsslerror.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="825">
+ <pageWords>QScriptValueIterator Class Reference</pageWords>
+ <pageTitle>QScriptValueIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptvalueiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="826">
+ <pageWords>QApplication Class Reference</pageWords>
+ <pageTitle>QApplication Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qapplication.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="827">
+ <pageWords>QItemEditorCreatorBase Class Reference</pageWords>
+ <pageTitle>QItemEditorCreatorBase Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qitemeditorcreatorbase.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="828">
+ <pageWords>QItemEditorCreator Class Reference</pageWords>
+ <pageTitle>QItemEditorCreator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qitemeditorcreator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="829">
+ <pageWords>QStandardItemEditorCreator Class Reference</pageWords>
+ <pageTitle>QStandardItemEditorCreator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstandarditemeditorcreator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="830">
+ <pageWords>QItemEditorFactory Class Reference</pageWords>
+ <pageTitle>QItemEditorFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qitemeditorfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="831">
+ <pageWords>QGraphicsAnchor Class Reference</pageWords>
+ <pageTitle>QGraphicsAnchor Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsanchor.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="832">
+ <pageWords>QGraphicsAnchorLayout Class Reference</pageWords>
+ <pageTitle>QGraphicsAnchorLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsanchorlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="833">
+ <pageWords>QHostInfo Class Reference</pageWords>
+ <pageTitle>QHostInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhostinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="834">
+ <pageWords>QBrush Class Reference</pageWords>
+ <pageTitle>QBrush Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qbrush.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="835">
+ <pageWords>QGradient Class Reference</pageWords>
+ <pageTitle>QGradient Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgradient.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="836">
+ <pageWords>QLinearGradient Class Reference</pageWords>
+ <pageTitle>QLinearGradient Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlineargradient.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="837">
+ <pageWords>QRadialGradient Class Reference</pageWords>
+ <pageTitle>QRadialGradient Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qradialgradient.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="838">
+ <pageWords>QConicalGradient Class Reference</pageWords>
+ <pageTitle>QConicalGradient Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qconicalgradient.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="839">
+ <pageWords>QScrollArea Class Reference</pageWords>
+ <pageTitle>QScrollArea Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscrollarea.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="840">
+ <pageWords>QHelpIndexModel Class Reference</pageWords>
+ <pageTitle>QHelpIndexModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpindexmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="841">
+ <pageWords>QHelpIndexWidget Class Reference</pageWords>
+ <pageTitle>QHelpIndexWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpindexwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="842">
+ <pageWords>Q3DockWindow Class Reference</pageWords>
+ <pageTitle>Q3DockWindow Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dockwindow.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="843">
+ <pageWords>QSize Class Reference</pageWords>
+ <pageTitle>QSize Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsize.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="844">
+ <pageWords>QSizeF Class Reference</pageWords>
+ <pageTitle>QSizeF Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsizef.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="845">
+ <pageWords>QPalette Class Reference</pageWords>
+ <pageTitle>QPalette Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpalette.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="846">
+ <pageWords>QColorGroup Class Reference</pageWords>
+ <pageTitle>QColorGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcolorgroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="847">
+ <pageWords>QTextDocumentFragment Class Reference</pageWords>
+ <pageTitle>QTextDocumentFragment Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtextdocumentfragment.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="848">
+ <pageWords>Q3Process Class Reference</pageWords>
+ <pageTitle>Q3Process Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3process.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="849">
+ <pageWords>QWhatsThis Class Reference</pageWords>
+ <pageTitle>QWhatsThis Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwhatsthis.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="850">
+ <pageWords>QStringMatcher Class Reference</pageWords>
+ <pageTitle>QStringMatcher Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstringmatcher.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="851">
+ <pageWords>QHelpSearchQueryWidget Class Reference</pageWords>
+ <pageTitle>QHelpSearchQueryWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpsearchquerywidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="852">
+ <pageWords>QTreeView Class Reference</pageWords>
+ <pageTitle>QTreeView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtreeview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="853">
+ <pageWords>QAbstractButton Class Reference</pageWords>
+ <pageTitle>QAbstractButton Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractbutton.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="854">
+ <pageWords>QGLFramebufferObject Class Reference</pageWords>
+ <pageTitle>QGLFramebufferObject Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglframebufferobject.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="855">
+ <pageWords>QGLFramebufferObjectFormat Class Reference</pageWords>
+ <pageTitle>QGLFramebufferObjectFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglframebufferobjectformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="856">
+ <pageWords>QDeclarativeImageProvider Class Reference</pageWords>
+ <pageTitle>QDeclarativeImageProvider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeimageprovider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="857">
+ <pageWords>Q3SocketDevice Class Reference</pageWords>
+ <pageTitle>Q3SocketDevice Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3socketdevice.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="858">
+ <pageWords>QStack Class Reference</pageWords>
+ <pageTitle>QStack Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstack.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="859">
+ <pageWords>QAbstractExtensionFactory Class Reference</pageWords>
+ <pageTitle>QAbstractExtensionFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractextensionfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="860">
+ <pageWords>QAbstractExtensionManager Class Reference</pageWords>
+ <pageTitle>QAbstractExtensionManager Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractextensionmanager.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="861">
+ <pageWords>QGestureRecognizer Class Reference</pageWords>
+ <pageTitle>QGestureRecognizer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgesturerecognizer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="862">
+ <pageWords>QHelpContentItem Class Reference</pageWords>
+ <pageTitle>QHelpContentItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpcontentitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="863">
+ <pageWords>QHelpContentModel Class Reference</pageWords>
+ <pageTitle>QHelpContentModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpcontentmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="864">
+ <pageWords>QHelpContentWidget Class Reference</pageWords>
+ <pageTitle>QHelpContentWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpcontentwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="865">
+ <pageWords>QSql Namespace Reference</pageWords>
+ <pageTitle>QSql Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsql.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="866">
+ <pageWords>QIconEnginePlugin Class Reference</pageWords>
+ <pageTitle>QIconEnginePlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qiconengineplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="867">
+ <pageWords>QIconEnginePluginV2 Class Reference</pageWords>
+ <pageTitle>QIconEnginePluginV2 Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qiconenginepluginv2.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="868">
+ <pageWords>QStatusBar Class Reference</pageWords>
+ <pageTitle>QStatusBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstatusbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="869">
+ <pageWords>QFSFileEngine Class Reference</pageWords>
+ <pageTitle>QFSFileEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfsfileengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="870">
+ <pageWords>QTreeWidgetItemIterator Class Reference</pageWords>
+ <pageTitle>QTreeWidgetItemIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtreewidgetitemiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="871">
+ <pageWords>Q3SqlPropertyMap Class Reference</pageWords>
+ <pageTitle>Q3SqlPropertyMap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3sqlpropertymap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="872">
+ <pageWords>QFormBuilder Class Reference</pageWords>
+ <pageTitle>QFormBuilder Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qformbuilder.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="873">
+ <pageWords>QAbstractItemView Class Reference</pageWords>
+ <pageTitle>QAbstractItemView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractitemview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="874">
+ <pageWords>QVariant Class Reference</pageWords>
+ <pageTitle>QVariant Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvariant.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="875">
+ <pageWords>QGenericMatrix Class Reference</pageWords>
+ <pageTitle>QGenericMatrix Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgenericmatrix.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="876">
+ <pageWords>QNetworkProxyQuery Class Reference</pageWords>
+ <pageTitle>QNetworkProxyQuery Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkproxyquery.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="877">
+ <pageWords>QNetworkProxy Class Reference</pageWords>
+ <pageTitle>QNetworkProxy Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkproxy.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="878">
+ <pageWords>QNetworkProxyFactory Class Reference</pageWords>
+ <pageTitle>QNetworkProxyFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qnetworkproxyfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="879">
+ <pageWords>QModelIndex Class Reference</pageWords>
+ <pageTitle>QModelIndex Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmodelindex.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="880">
+ <pageWords>QPersistentModelIndex Class Reference</pageWords>
+ <pageTitle>QPersistentModelIndex Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpersistentmodelindex.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="881">
+ <pageWords>QAbstractItemModel Class Reference</pageWords>
+ <pageTitle>QAbstractItemModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractitemmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="882">
+ <pageWords>QAbstractTableModel Class Reference</pageWords>
+ <pageTitle>QAbstractTableModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstracttablemodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="883">
+ <pageWords>QAbstractListModel Class Reference</pageWords>
+ <pageTitle>QAbstractListModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractlistmodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="884">
+ <pageWords>Q3ValueListIterator Class Reference</pageWords>
+ <pageTitle>Q3ValueListIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3valuelistiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="885">
+ <pageWords>Q3ValueListConstIterator Class Reference</pageWords>
+ <pageTitle>Q3ValueListConstIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3valuelistconstiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="886">
+ <pageWords>Q3ValueList Class Reference</pageWords>
+ <pageTitle>Q3ValueList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3valuelist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="887">
+ <pageWords>Q3PaintDeviceMetrics Class Reference</pageWords>
+ <pageTitle>Q3PaintDeviceMetrics Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3paintdevicemetrics.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="888">
+ <pageWords>QTableView Class Reference</pageWords>
+ <pageTitle>QTableView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtableview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="889">
+ <pageWords>QParallelAnimationGroup Class Reference</pageWords>
+ <pageTitle>QParallelAnimationGroup Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qparallelanimationgroup.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="890">
+ <pageWords>QFrame Class Reference</pageWords>
+ <pageTitle>QFrame Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qframe.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="891">
+ <pageWords>Q3WidgetStack Class Reference</pageWords>
+ <pageTitle>Q3WidgetStack Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3widgetstack.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="892">
+ <pageWords>QXmlSerializer Class Reference</pageWords>
+ <pageTitle>QXmlSerializer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlserializer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="893">
+ <pageWords>Q3PtrList Class Reference</pageWords>
+ <pageTitle>Q3PtrList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ptrlist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="894">
+ <pageWords>Q3PtrListIterator Class Reference</pageWords>
+ <pageTitle>Q3PtrListIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ptrlistiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="895">
+ <pageWords>QXmlSchemaValidator Class Reference</pageWords>
+ <pageTitle>QXmlSchemaValidator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlschemavalidator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="896">
+ <pageWords>Q3CString Class Reference</pageWords>
+ <pageTitle>Q3CString Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3cstring.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="897">
+ <pageWords>QCryptographicHash Class Reference</pageWords>
+ <pageTitle>QCryptographicHash Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcryptographichash.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="898">
+ <pageWords>Q3VGroupBox Class Reference</pageWords>
+ <pageTitle>Q3VGroupBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3vgroupbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="899">
+ <pageWords>QMap Class Reference</pageWords>
+ <pageTitle>QMap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="900">
+ <pageWords>iterator Class Reference</pageWords>
+ <pageTitle>iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmap-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="901">
+ <pageWords>const_iterator Class Reference</pageWords>
+ <pageTitle>const_iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmap-const-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="902">
+ <pageWords>QMultiMap Class Reference</pageWords>
+ <pageTitle>QMultiMap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmultimap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="903">
+ <pageWords>QFontInfo Class Reference</pageWords>
+ <pageTitle>QFontInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfontinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="904">
+ <pageWords>QGroupBox Class Reference</pageWords>
+ <pageTitle>QGroupBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgroupbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="905">
+ <pageWords>QTimer Class Reference</pageWords>
+ <pageTitle>QTimer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtimer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="906">
+ <pageWords>QUrl Class Reference</pageWords>
+ <pageTitle>QUrl Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qurl.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="907">
+ <pageWords>QGraphicsTransform Class Reference</pageWords>
+ <pageTitle>QGraphicsTransform Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicstransform.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="908">
+ <pageWords>QGraphicsScale Class Reference</pageWords>
+ <pageTitle>QGraphicsScale Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsscale.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="909">
+ <pageWords>QGraphicsRotation Class Reference</pageWords>
+ <pageTitle>QGraphicsRotation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicsrotation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="910">
+ <pageWords>QQuaternion Class Reference</pageWords>
+ <pageTitle>QQuaternion Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qquaternion.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="911">
+ <pageWords>QSslSocket Class Reference</pageWords>
+ <pageTitle>QSslSocket Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsslsocket.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="912">
+ <pageWords>QDeclarativeNetworkAccessManagerFactory Class Reference</pageWords>
+ <pageTitle>QDeclarativeNetworkAccessManagerFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativenetworkaccessmanagerfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="913">
+ <pageWords>QElapsedTimer Class Reference</pageWords>
+ <pageTitle>QElapsedTimer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qelapsedtimer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="914">
+ <pageWords>QDeclarativeScriptString Class Reference</pageWords>
+ <pageTitle>QDeclarativeScriptString Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativescriptstring.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="915">
+ <pageWords>QStaticText Class Reference</pageWords>
+ <pageTitle>QStaticText Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstatictext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="916">
+ <pageWords>QWindowsXPStyle Class Reference</pageWords>
+ <pageTitle>QWindowsXPStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwindowsxpstyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="917">
+ <pageWords>QVariantAnimation Class Reference</pageWords>
+ <pageTitle>QVariantAnimation Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvariantanimation.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="918">
+ <pageWords>QGraphicsLayout Class Reference</pageWords>
+ <pageTitle>QGraphicsLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicslayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="919">
+ <pageWords>QScopedPointer Class Reference</pageWords>
+ <pageTitle>QScopedPointer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscopedpointer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="920">
+ <pageWords>QScopedArrayPointer Class Reference</pageWords>
+ <pageTitle>QScopedArrayPointer Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscopedarraypointer.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="921">
+ <pageWords>QHelpSearchResultWidget Class Reference</pageWords>
+ <pageTitle>QHelpSearchResultWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpsearchresultwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="922">
+ <pageWords>QTextTableCell Class Reference</pageWords>
+ <pageTitle>QTextTableCell Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtexttablecell.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="923">
+ <pageWords>QTextTable Class Reference</pageWords>
+ <pageTitle>QTextTable Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtexttable.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="924">
+ <pageWords>QS60MainApplication Class Reference</pageWords>
+ <pageTitle>QS60MainApplication Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qs60mainapplication.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="925">
+ <pageWords>QInputEvent Class Reference</pageWords>
+ <pageTitle>QInputEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qinputevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="926">
+ <pageWords>QMouseEvent Class Reference</pageWords>
+ <pageTitle>QMouseEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmouseevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="927">
+ <pageWords>QHoverEvent Class Reference</pageWords>
+ <pageTitle>QHoverEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhoverevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="928">
+ <pageWords>QWheelEvent Class Reference</pageWords>
+ <pageTitle>QWheelEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwheelevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="929">
+ <pageWords>QTabletEvent Class Reference</pageWords>
+ <pageTitle>QTabletEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtabletevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="930">
+ <pageWords>QKeyEvent Class Reference</pageWords>
+ <pageTitle>QKeyEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qkeyevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="931">
+ <pageWords>QFocusEvent Class Reference</pageWords>
+ <pageTitle>QFocusEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfocusevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="932">
+ <pageWords>QPaintEvent Class Reference</pageWords>
+ <pageTitle>QPaintEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpaintevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="933">
+ <pageWords>QMoveEvent Class Reference</pageWords>
+ <pageTitle>QMoveEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmoveevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="934">
+ <pageWords>QResizeEvent Class Reference</pageWords>
+ <pageTitle>QResizeEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qresizeevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="935">
+ <pageWords>QCloseEvent Class Reference</pageWords>
+ <pageTitle>QCloseEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcloseevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="936">
+ <pageWords>QIconDragEvent Class Reference</pageWords>
+ <pageTitle>QIconDragEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qicondragevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="937">
+ <pageWords>QShowEvent Class Reference</pageWords>
+ <pageTitle>QShowEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qshowevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="938">
+ <pageWords>QHideEvent Class Reference</pageWords>
+ <pageTitle>QHideEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhideevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="939">
+ <pageWords>QContextMenuEvent Class Reference</pageWords>
+ <pageTitle>QContextMenuEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcontextmenuevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="940">
+ <pageWords>QInputMethodEvent Class Reference</pageWords>
+ <pageTitle>QInputMethodEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qinputmethodevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="941">
+ <pageWords>Attribute Class Reference</pageWords>
+ <pageTitle>Attribute Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qinputmethodevent-attribute.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="942">
+ <pageWords>QDropEvent Class Reference</pageWords>
+ <pageTitle>QDropEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdropevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="943">
+ <pageWords>QDragMoveEvent Class Reference</pageWords>
+ <pageTitle>QDragMoveEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdragmoveevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="944">
+ <pageWords>QDragEnterEvent Class Reference</pageWords>
+ <pageTitle>QDragEnterEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdragenterevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="945">
+ <pageWords>QDragLeaveEvent Class Reference</pageWords>
+ <pageTitle>QDragLeaveEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdragleaveevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="946">
+ <pageWords>QHelpEvent Class Reference</pageWords>
+ <pageTitle>QHelpEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhelpevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="947">
+ <pageWords>QStatusTipEvent Class Reference</pageWords>
+ <pageTitle>QStatusTipEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstatustipevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="948">
+ <pageWords>QWhatsThisClickedEvent Class Reference</pageWords>
+ <pageTitle>QWhatsThisClickedEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwhatsthisclickedevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="949">
+ <pageWords>QActionEvent Class Reference</pageWords>
+ <pageTitle>QActionEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qactionevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="950">
+ <pageWords>QFileOpenEvent Class Reference</pageWords>
+ <pageTitle>QFileOpenEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfileopenevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="951">
+ <pageWords>QShortcutEvent Class Reference</pageWords>
+ <pageTitle>QShortcutEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qshortcutevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="952">
+ <pageWords>QWindowStateChangeEvent Class Reference</pageWords>
+ <pageTitle>QWindowStateChangeEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwindowstatechangeevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="953">
+ <pageWords>QTouchEvent Class Reference</pageWords>
+ <pageTitle>QTouchEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtouchevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="954">
+ <pageWords>TouchPoint Class Reference</pageWords>
+ <pageTitle>TouchPoint Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtouchevent-touchpoint.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="955">
+ <pageWords>QGestureEvent Class Reference</pageWords>
+ <pageTitle>QGestureEvent Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgestureevent.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="956">
+ <pageWords>QLinkedList Class Reference</pageWords>
+ <pageTitle>QLinkedList Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlinkedlist.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="957">
+ <pageWords>iterator Class Reference</pageWords>
+ <pageTitle>iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlinkedlist-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="958">
+ <pageWords>const_iterator Class Reference</pageWords>
+ <pageTitle>const_iterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlinkedlist-const-iterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="959">
+ <pageWords>QXmlNodeModelIndex Class Reference</pageWords>
+ <pageTitle>QXmlNodeModelIndex Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlnodemodelindex.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="960">
+ <pageWords>QAbstractXmlNodeModel Class Reference</pageWords>
+ <pageTitle>QAbstractXmlNodeModel Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstractxmlnodemodel.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="961">
+ <pageWords>QXmlItem Class Reference</pageWords>
+ <pageTitle>QXmlItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qxmlitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="962">
+ <pageWords>QDBusInterface Class Reference</pageWords>
+ <pageTitle>QDBusInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="963">
+ <pageWords>Q3LocalFs Class Reference</pageWords>
+ <pageTitle>Q3LocalFs Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3localfs.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="964">
+ <pageWords>Q3WhatsThis Class Reference</pageWords>
+ <pageTitle>Q3WhatsThis Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3whatsthis.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="965">
+ <pageWords>QDesignerFormEditorInterface Class Reference</pageWords>
+ <pageTitle>QDesignerFormEditorInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerformeditorinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="966">
+ <pageWords>QGridLayout Class Reference</pageWords>
+ <pageTitle>QGridLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgridlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="967">
+ <pageWords>QToolButton Class Reference</pageWords>
+ <pageTitle>QToolButton Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtoolbutton.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="968">
+ <pageWords>QPlastiqueStyle Class Reference</pageWords>
+ <pageTitle>QPlastiqueStyle Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qplastiquestyle.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="969">
+ <pageWords>QRasterPaintEngine Class Reference</pageWords>
+ <pageTitle>QRasterPaintEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qrasterpaintengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="970">
+ <pageWords>QCustomRasterPaintDevice Class Reference</pageWords>
+ <pageTitle>QCustomRasterPaintDevice Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qcustomrasterpaintdevice.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="971">
+ <pageWords>QSslConfiguration Class Reference</pageWords>
+ <pageTitle>QSslConfiguration Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsslconfiguration.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="972">
+ <pageWords>QMouseDriverFactory Class Reference</pageWords>
+ <pageTitle>QMouseDriverFactory Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmousedriverfactory.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="973">
+ <pageWords>QStackedWidget Class Reference</pageWords>
+ <pageTitle>QStackedWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstackedwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="974">
+ <pageWords>QDeclarativeEngine Class Reference</pageWords>
+ <pageTitle>QDeclarativeEngine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeengine.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="975">
+ <pageWords>Q3PtrQueue Class Reference</pageWords>
+ <pageTitle>Q3PtrQueue Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3ptrqueue.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="976">
+ <pageWords>QPoint Class Reference</pageWords>
+ <pageTitle>QPoint Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpoint.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="977">
+ <pageWords>QPointF Class Reference</pageWords>
+ <pageTitle>QPointF Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpointf.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="978">
+ <pageWords>QLibraryInfo Class Reference</pageWords>
+ <pageTitle>QLibraryInfo Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlibraryinfo.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="979">
+ <pageWords>QVector4D Class Reference</pageWords>
+ <pageTitle>QVector4D Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvector4d.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="980">
+ <pageWords>QRect Class Reference</pageWords>
+ <pageTitle>QRect Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qrect.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="981">
+ <pageWords>QRectF Class Reference</pageWords>
+ <pageTitle>QRectF Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qrectf.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="982">
+ <pageWords>Q3Grid Class Reference</pageWords>
+ <pageTitle>Q3Grid Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3grid.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="983">
+ <pageWords>QVector2D Class Reference</pageWords>
+ <pageTitle>QVector2D Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvector2d.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="984">
+ <pageWords>QVector3D Class Reference</pageWords>
+ <pageTitle>QVector3D Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvector3d.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="985">
+ <pageWords>QDesignerObjectInspectorInterface Class Reference</pageWords>
+ <pageTitle>QDesignerObjectInspectorInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerobjectinspectorinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="986">
+ <pageWords>QPixmapCache Class Reference</pageWords>
+ <pageTitle>QPixmapCache Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpixmapcache.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="987">
+ <pageWords>Key Class Reference</pageWords>
+ <pageTitle>Key Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpixmapcache-key.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="988">
+ <pageWords>QFileIconProvider Class Reference</pageWords>
+ <pageTitle>QFileIconProvider Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfileiconprovider.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="989">
+ <pageWords>QAbstractUriResolver Class Reference</pageWords>
+ <pageTitle>QAbstractUriResolver Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qabstracturiresolver.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="990">
+ <pageWords>Q3Dict Class Reference</pageWords>
+ <pageTitle>Q3Dict Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dict.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="991">
+ <pageWords>Q3DictIterator Class Reference</pageWords>
+ <pageTitle>Q3DictIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3dictiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="992">
+ <pageWords>QTimeLine Class Reference</pageWords>
+ <pageTitle>QTimeLine Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtimeline.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="993">
+ <pageWords>Q3ListBox Class Reference</pageWords>
+ <pageTitle>Q3ListBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3listbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="994">
+ <pageWords>Q3ListBoxItem Class Reference</pageWords>
+ <pageTitle>Q3ListBoxItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3listboxitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="995">
+ <pageWords>Q3ListBoxText Class Reference</pageWords>
+ <pageTitle>Q3ListBoxText Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3listboxtext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="996">
+ <pageWords>Q3ListBoxPixmap Class Reference</pageWords>
+ <pageTitle>Q3ListBoxPixmap Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3listboxpixmap.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="997">
+ <pageWords>Q3IntCache Class Reference</pageWords>
+ <pageTitle>Q3IntCache Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3intcache.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="998">
+ <pageWords>Q3IntCacheIterator Class Reference</pageWords>
+ <pageTitle>Q3IntCacheIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3intcacheiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="999">
+ <pageWords>QDesignerMemberSheetExtension Class Reference</pageWords>
+ <pageTitle>QDesignerMemberSheetExtension Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignermembersheetextension.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1000">
+ <pageWords>QSound Class Reference</pageWords>
+ <pageTitle>QSound Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsound.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1001">
+ <pageWords>QGL Namespace Reference</pageWords>
+ <pageTitle>QGL Namespace Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgl.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1002">
+ <pageWords>QGLFormat Class Reference</pageWords>
+ <pageTitle>QGLFormat Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglformat.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1003">
+ <pageWords>QGLContext Class Reference</pageWords>
+ <pageTitle>QGLContext Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglcontext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1004">
+ <pageWords>QGLWidget Class Reference</pageWords>
+ <pageTitle>QGLWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qglwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1005">
+ <pageWords>Q3TabDialog Class Reference</pageWords>
+ <pageTitle>Q3TabDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3tabdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1006">
+ <pageWords>QMenuItem Class Reference</pageWords>
+ <pageTitle>QMenuItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmenuitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1007">
+ <pageWords>QAudioInput Class Reference</pageWords>
+ <pageTitle>QAudioInput Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaudioinput.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1008">
+ <pageWords>Q3StyleSheetItem Class Reference</pageWords>
+ <pageTitle>Q3StyleSheetItem Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3stylesheetitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1009">
+ <pageWords>Q3StyleSheet Class Reference</pageWords>
+ <pageTitle>Q3StyleSheet Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3stylesheet.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1010">
+ <pageWords>Q3HGroupBox Class Reference</pageWords>
+ <pageTitle>Q3HGroupBox Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3hgroupbox.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1011">
+ <pageWords>Q3ToolBar Class Reference</pageWords>
+ <pageTitle>Q3ToolBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3toolbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1012">
+ <pageWords>QGraphicsWidget Class Reference</pageWords>
+ <pageTitle>QGraphicsWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicswidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1013">
+ <pageWords>QDeclarativeListProperty Class Reference</pageWords>
+ <pageTitle>QDeclarativeListProperty Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativelistproperty.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1014">
+ <pageWords>Q3MainWindow Class Reference</pageWords>
+ <pageTitle>Q3MainWindow Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3mainwindow.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1015">
+ <pageWords>QBoxLayout Class Reference</pageWords>
+ <pageTitle>QBoxLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qboxlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1016">
+ <pageWords>QHBoxLayout Class Reference</pageWords>
+ <pageTitle>QHBoxLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhboxlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1017">
+ <pageWords>QVBoxLayout Class Reference</pageWords>
+ <pageTitle>QVBoxLayout Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvboxlayout.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1018">
+ <pageWords>Q3ProgressBar Class Reference</pageWords>
+ <pageTitle>Q3ProgressBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3progressbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1019">
+ <pageWords>QWSPointerCalibrationData Class Reference</pageWords>
+ <pageTitle>QWSPointerCalibrationData Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwspointercalibrationdata.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1020">
+ <pageWords>QWSMouseHandler Class Reference</pageWords>
+ <pageTitle>QWSMouseHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwsmousehandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1021">
+ <pageWords>QWSCalibratedMouseHandler Class Reference</pageWords>
+ <pageTitle>QWSCalibratedMouseHandler Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwscalibratedmousehandler.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1022">
+ <pageWords>QDesktopServices Class Reference</pageWords>
+ <pageTitle>QDesktopServices Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesktopservices.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1023">
+ <pageWords>QStylePlugin Class Reference</pageWords>
+ <pageTitle>QStylePlugin Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qstyleplugin.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1024">
+ <pageWords>Q3SimpleRichText Class Reference</pageWords>
+ <pageTitle>Q3SimpleRichText Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/q3simplerichtext.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1025">
+ <pageWords>QDecorationDefault Class Reference</pageWords>
+ <pageTitle>QDecorationDefault Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdecorationdefault.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1026">
+ <pageWords>QDesignerWidgetBoxInterface Class Reference</pageWords>
+ <pageTitle>QDesignerWidgetBoxInterface Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdesignerwidgetboxinterface.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1027">
+ <pageWords>QScriptClass Class Reference</pageWords>
+ <pageTitle>QScriptClass Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscriptclass.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1028">
+ <pageWords>QGraphicsWebView Class Reference</pageWords>
+ <pageTitle>QGraphicsWebView Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qgraphicswebview.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1029">
+ <pageWords>QPushButton Class Reference</pageWords>
+ <pageTitle>QPushButton Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qpushbutton.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1030">
+ <pageWords>QProgressDialog Class Reference</pageWords>
+ <pageTitle>QProgressDialog Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qprogressdialog.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1031">
+ <pageWords>QSystemTrayIcon Class Reference</pageWords>
+ <pageTitle>QSystemTrayIcon Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsystemtrayicon.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1032">
+ <pageWords>QScrollBar Class Reference</pageWords>
+ <pageTitle>QScrollBar Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qscrollbar.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1033">
+ <pageWords>QWidget Class Reference</pageWords>
+ <pageTitle>QWidget Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qwidget.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1034">
+ <pageWords>QFutureIterator Class Reference</pageWords>
+ <pageTitle>QFutureIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qfutureiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1035">
+ <pageWords>QLinkedListIterator Class Reference</pageWords>
+ <pageTitle>QLinkedListIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlinkedlistiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1036">
+ <pageWords>QListIterator Class Reference</pageWords>
+ <pageTitle>QListIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qlistiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1037">
+ <pageWords>QSetIterator Class Reference</pageWords>
+ <pageTitle>QSetIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qsetiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1038">
+ <pageWords>QVectorIterator Class Reference</pageWords>
+ <pageTitle>QVectorIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvectoriterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1039">
+ <pageWords>QMutableLinkedListIterator Class Reference</pageWords>
+ <pageTitle>QMutableLinkedListIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmutablelinkedlistiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1040">
+ <pageWords>QMutableListIterator Class Reference</pageWords>
+ <pageTitle>QMutableListIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmutablelistiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1041">
+ <pageWords>QMutableVectorIterator Class Reference</pageWords>
+ <pageTitle>QMutableVectorIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmutablevectoriterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1042">
+ <pageWords>QHashIterator Class Reference</pageWords>
+ <pageTitle>QHashIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qhashiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1043">
+ <pageWords>QMapIterator Class Reference</pageWords>
+ <pageTitle>QMapIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmapiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1044">
+ <pageWords>QMutableHashIterator Class Reference</pageWords>
+ <pageTitle>QMutableHashIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmutablehashiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1045">
+ <pageWords>QMutableMapIterator Class Reference</pageWords>
+ <pageTitle>QMutableMapIterator Class Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmutablemapiterator.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1046">
+ <pageWords>Movie Example</pageWords>
+ <pageTitle>Movie Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-movie.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1047">
+ <pageWords>Touch Dials Example</pageWords>
+ <pageTitle>Touch Dials Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/touch-dials.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1048">
+ <pageWords>Google Chat Example</pageWords>
+ <pageTitle>Google Chat Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/webkit-googlechat.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1049">
+ <pageWords>Calculator Example</pageWords>
+ <pageTitle>Calculator Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-calculator.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1050">
+ <pageWords>Table Model Example</pageWords>
+ <pageTitle>Table Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-tablemodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1051">
+ <pageWords>Qt for Embedded Linux Environment Variables</pageWords>
+ <pageTitle>Qt for Embedded Linux Environment Variables</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-envvars.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1052">
+ <pageWords>The Network Module in Qt 4</pageWords>
+ <pageTitle>The Network Module in Qt 4</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-network.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1053">
+ <pageWords>Qt for Windows CE Hardware Accelerated Graphics</pageWords>
+ <pageTitle>Qt for Windows CE Hardware Accelerated Graphics</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embeddedwince-accel.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1054">
+ <pageWords>Completer Example</pageWords>
+ <pageTitle>Completer Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-completer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1055">
+ <pageWords>Graphics View Classes</pageWords>
+ <pageTitle>Graphics View Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-api.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1056">
+ <pageWords>Graphics View Framework</pageWords>
+ <pageTitle>Graphics View Framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1057">
+ <pageWords>QML States</pageWords>
+ <pageTitle>QML States</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativestates.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1058">
+ <pageWords>Bearer Cloud Example</pageWords>
+ <pageTitle>Bearer Cloud Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-bearercloud.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1059">
+ <pageWords>QML Performance</pageWords>
+ <pageTitle>QML Performance</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeperformance.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1060">
+ <pageWords>Form Extractor Example</pageWords>
+ <pageTitle>Form Extractor Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/webkit-formextractor.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1061">
+ <pageWords>Widget Appearance and Style</pageWords>
+ <pageTitle>Widget Appearance and Style</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/appearance.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1062">
+ <pageWords>Styles &amp;amp Style Aware Widgets</pageWords>
+ <pageTitle>Styles &amp;amp Style Aware Widgets</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/style-reference.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1063">
+ <pageWords>Path Stroking</pageWords>
+ <pageTitle>Path Stroking</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-pathstroke.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1064">
+ <pageWords>Qt Designer Manual</pageWords>
+ <pageTitle>Qt Designer Manual</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-manual.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1065">
+ <pageWords>Getting to Know Qt Designer</pageWords>
+ <pageTitle>Getting to Know Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-to-know.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1066">
+ <pageWords>A Quick Start to Qt Designer</pageWords>
+ <pageTitle>A Quick Start to Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-quick-start.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1067">
+ <pageWords>Qt Designer's Editing Modes</pageWords>
+ <pageTitle>Qt Designer's Editing Modes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-editing-mode.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1068">
+ <pageWords>Qt Designer's Widget Editing Mode</pageWords>
+ <pageTitle>Qt Designer's Widget Editing Mode</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-widget-mode.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1069">
+ <pageWords>Using Layouts in Qt Designer</pageWords>
+ <pageTitle>Using Layouts in Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-layouts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1070">
+ <pageWords>Saving, Previewing and Printing Forms in Qt Designer</pageWords>
+ <pageTitle>Saving, Previewing and Printing Forms in Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-preview.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1071">
+ <pageWords>Qt Designer's Signals and Slots Editing Mode</pageWords>
+ <pageTitle>Qt Designer's Signals and Slots Editing Mode</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-connection-mode.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1072">
+ <pageWords>Qt Designer's Buddy Editing Mode</pageWords>
+ <pageTitle>Qt Designer's Buddy Editing Mode</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-buddy-mode.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1073">
+ <pageWords>Qt Designer's Tab Order Editing Mode</pageWords>
+ <pageTitle>Qt Designer's Tab Order Editing Mode</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-tab-order.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1074">
+ <pageWords>Using Containers in Qt Designer</pageWords>
+ <pageTitle>Using Containers in Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-using-containers.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1075">
+ <pageWords>Creating Main Windows in Qt Designer</pageWords>
+ <pageTitle>Creating Main Windows in Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-creating-mainwindows.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1076">
+ <pageWords>Editing Resources with Qt Designer</pageWords>
+ <pageTitle>Editing Resources with Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-resources.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1077">
+ <pageWords>Using Stylesheets with Qt Designer</pageWords>
+ <pageTitle>Using Stylesheets with Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-stylesheet.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1078">
+ <pageWords>Using a Designer UI File in Your Application</pageWords>
+ <pageTitle>Using a Designer UI File in Your Application</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-using-a-ui-file.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1079">
+ <pageWords>Customizing Qt Designer Forms</pageWords>
+ <pageTitle>Customizing Qt Designer Forms</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-customizing-forms.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1080">
+ <pageWords>Using Custom Widgets with Qt Designer</pageWords>
+ <pageTitle>Using Custom Widgets with Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-using-custom-widgets.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1081">
+ <pageWords>Creating Custom Widgets for Qt Designer</pageWords>
+ <pageTitle>Creating Custom Widgets for Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-creating-custom-widgets.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1082">
+ <pageWords>Creating Custom Widget Extensions</pageWords>
+ <pageTitle>Creating Custom Widget Extensions</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-creating-custom-widgets-extensions.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1083">
+ <pageWords>Qt Designer's UI File Format</pageWords>
+ <pageTitle>Qt Designer's UI File Format</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-ui-file-format.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1084">
+ <pageWords>Implementation of the Recursive Shadow Casting Algorithm in Qt Designer</pageWords>
+ <pageTitle>Implementation of the Recursive Shadow Casting Algorithm in Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-recursive-shadow-casting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1085">
+ <pageWords>QML Animation</pageWords>
+ <pageTitle>QML Animation</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeanimation.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1086">
+ <pageWords>SIP Dialog Example</pageWords>
+ <pageTitle>SIP Dialog Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-sipdialog.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1087">
+ <pageWords>Elastic Nodes Example</pageWords>
+ <pageTitle>Elastic Nodes Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-elasticnodes.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1088">
+ <pageWords>Data Models</pageWords>
+ <pageTitle>Data Models</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativemodels.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1089">
+ <pageWords>Known Issues</pageWords>
+ <pageTitle>Known Issues</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/known-issues.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1090">
+ <pageWords>Qt Declarative UI Runtime</pageWords>
+ <pageTitle>Qt Declarative UI Runtime</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmlruntime.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1091">
+ <pageWords>Classes for String Data</pageWords>
+ <pageTitle>Classes for String Data</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/string-processing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1092">
+ <pageWords>Unicode in Qt</pageWords>
+ <pageTitle>Unicode in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/unicode.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1093">
+ <pageWords>Transformations Example</pageWords>
+ <pageTitle>Transformations Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-transformations.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1094">
+ <pageWords>Drag and Drop Robot Example</pageWords>
+ <pageTitle>Drag and Drop Robot Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-dragdroprobot.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1095">
+ <pageWords>Secure Socket Client Example</pageWords>
+ <pageTitle>Secure Socket Client Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-securesocketclient.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1096">
+ <pageWords>States Example</pageWords>
+ <pageTitle>States Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/animation-states.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1097">
+ <pageWords>The Qt 4 Style API</pageWords>
+ <pageTitle>The Qt 4 Style API</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-styles.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1098">
+ <pageWords>Boxes</pageWords>
+ <pageTitle>Boxes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-boxes.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1099">
+ <pageWords>SVG Viewer Example</pageWords>
+ <pageTitle>SVG Viewer Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-svgviewer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1100">
+ <pageWords>Style Sheet Example</pageWords>
+ <pageTitle>Style Sheet Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-stylesheet.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1101">
+ <pageWords>Config Dialog Example</pageWords>
+ <pageTitle>Config Dialog Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-configdialog.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1102">
+ <pageWords>Plugin Classes</pageWords>
+ <pageTitle>Plugin Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/plugins.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1103">
+ <pageWords>How to Create Qt Plugins</pageWords>
+ <pageTitle>How to Create Qt Plugins</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/plugins-howto.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1104">
+ <pageWords>Exception Safety with Symbian</pageWords>
+ <pageTitle>Exception Safety with Symbian</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/symbianexceptionsafety.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1105">
+ <pageWords>Frozen Column Example</pageWords>
+ <pageTitle>Frozen Column Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-frozencolumn.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1106">
+ <pageWords>Menubar Merging</pageWords>
+ <pageTitle>Menubar Merging</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxserver-demo-menus.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1107">
+ <pageWords>Menus Example (ActiveQt)</pageWords>
+ <pageTitle>Menus Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-menus.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1108">
+ <pageWords>Porting Qt Applications to Qt for Embedded Linux</pageWords>
+ <pageTitle>Porting Qt Applications to Qt for Embedded Linux</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-differences.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1109">
+ <pageWords>Google Suggest Example</pageWords>
+ <pageTitle>Google Suggest Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-googlesuggest.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1110">
+ <pageWords>Implementing Atomic Operations</pageWords>
+ <pageTitle>Implementing Atomic Operations</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/atomic-operations.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1111">
+ <pageWords>Qt for Embedded Linux Pointer Handling</pageWords>
+ <pageTitle>Qt for Embedded Linux Pointer Handling</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-pointer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1112">
+ <pageWords>Simple Anchor Layout Example</pageWords>
+ <pageTitle>Simple Anchor Layout Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-simpleanchorlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1113">
+ <pageWords>Screenshot Example</pageWords>
+ <pageTitle>Screenshot Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/desktop-screenshot.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1114">
+ <pageWords>Embedded Dialogs</pageWords>
+ <pageTitle>Embedded Dialogs</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embeddeddialogs.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1115">
+ <pageWords>Codecs Example</pageWords>
+ <pageTitle>Codecs Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-codecs.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1116">
+ <pageWords>Integrating JavaScript</pageWords>
+ <pageTitle>Integrating JavaScript</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativejavascript.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1117">
+ <pageWords>Spreadsheet</pageWords>
+ <pageTitle>Spreadsheet</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-spreadsheet.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1118">
+ <pageWords>Licensing Information</pageWords>
+ <pageTitle>Licensing Information</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/licensing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1119">
+ <pageWords>Other Licenses Used in Qt</pageWords>
+ <pageTitle>Other Licenses Used in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/licenses.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1120">
+ <pageWords>Licenses for Fonts Used in Qt for Embedded Linux</pageWords>
+ <pageTitle>Licenses for Fonts Used in Qt for Embedded Linux</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/licenses-fonts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1121">
+ <pageWords>Phonon multimedia framework</pageWords>
+ <pageTitle>Phonon multimedia framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-overview.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1122">
+ <pageWords>Video Graphics Item Example</pageWords>
+ <pageTitle>Video Graphics Item Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/multimedia-videographicsitem.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1123">
+ <pageWords>MDI Example</pageWords>
+ <pageTitle>MDI Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mainwindows-mdi.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1124">
+ <pageWords>Simple Decoration Example</pageWords>
+ <pageTitle>Simple Decoration Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qws-simpledecoration.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1125">
+ <pageWords>qt3to4 - The Qt 3 to 4 Porting Tool</pageWords>
+ <pageTitle>qt3to4 - The Qt 3 to 4 Porting Tool</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt3to4.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1126">
+ <pageWords>Contributions to the Following qt3to4 Files: treewalker.h, treedump.cpp, treedump.h, treewalker.cpp</pageWords>
+ <pageTitle>Contributions to the Following qt3to4 Files: treewalker.h, treedump.cpp, treedump.h, treewalker.cpp</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt3to4-treewalker.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1127">
+ <pageWords>Calculator</pageWords>
+ <pageTitle>Calculator</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-calculator.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1128">
+ <pageWords>Qt for Embedded Linux Fonts</pageWords>
+ <pageTitle>Qt for Embedded Linux Fonts</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-fonts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1129">
+ <pageWords>HTTP Example</pageWords>
+ <pageTitle>HTTP Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-http.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1130">
+ <pageWords>QML Examples and Demos</pageWords>
+ <pageTitle>QML Examples and Demos</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeexamples.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1131">
+ <pageWords>Hello Script Example</pageWords>
+ <pageTitle>Hello Script Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-helloscript.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1132">
+ <pageWords>Item Views Puzzle Example</pageWords>
+ <pageTitle>Item Views Puzzle Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-puzzle.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1133">
+ <pageWords>Echo Plugin Example</pageWords>
+ <pageTitle>Echo Plugin Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-echoplugin.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1134">
+ <pageWords>Fetch More Example</pageWords>
+ <pageTitle>Fetch More Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-fetchmore.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1135">
+ <pageWords>Photo Viewer</pageWords>
+ <pageTitle>Photo Viewer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-photoviewer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1136">
+ <pageWords>Creating and Using Components for Qt Designer</pageWords>
+ <pageTitle>Creating and Using Components for Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtdesigner-components.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1137">
+ <pageWords>Previewer Example</pageWords>
+ <pageTitle>Previewer Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/webkit-previewer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1138">
+ <pageWords>Qt for Embedded Linux Character Input</pageWords>
+ <pageTitle>Qt for Embedded Linux Character Input</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-charinput.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1139">
+ <pageWords>Calculator Form Example</pageWords>
+ <pageTitle>Calculator Form Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-calculatorform.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1140">
+ <pageWords>Mouse Calibration Example</pageWords>
+ <pageTitle>Mouse Calibration Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qws-mousecalibration.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1141">
+ <pageWords>Books Demonstration</pageWords>
+ <pageTitle>Books Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-books.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1142">
+ <pageWords>Network Transparency</pageWords>
+ <pageTitle>Network Transparency</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativenetwork.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1143">
+ <pageWords>Using QML in C++ Applications</pageWords>
+ <pageTitle>Using QML in C++ Applications</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtbinding.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1144">
+ <pageWords>Printer and Printing APIs</pageWords>
+ <pageTitle>Printer and Printing APIs</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/printing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1145">
+ <pageWords>Printing with Qt</pageWords>
+ <pageTitle>Printing with Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/printing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1146">
+ <pageWords>Notes about PDF Licensing</pageWords>
+ <pageTitle>Notes about PDF Licensing</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/pdf-licensing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1147">
+ <pageWords>Local Fortune Server Example</pageWords>
+ <pageTitle>Local Fortune Server Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/ipc-localfortuneserver.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1148">
+ <pageWords>Painter Paths Example</pageWords>
+ <pageTitle>Painter Paths Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-painterpaths.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1149">
+ <pageWords>Plug &amp; Paint Example</pageWords>
+ <pageTitle>Plug &amp; Paint Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-plugandpaint.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1150">
+ <pageWords>Plug &amp; Paint Basic Tools Example</pageWords>
+ <pageTitle>Plug &amp; Paint Basic Tools Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-plugandpaintplugins-basictools.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1151">
+ <pageWords>Plug &amp; Paint Extra Filters Example</pageWords>
+ <pageTitle>Plug &amp; Paint Extra Filters Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-plugandpaintplugins-extrafilters.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1152">
+ <pageWords>Custom Type Sending Example</pageWords>
+ <pageTitle>Custom Type Sending Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-customtypesending.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1153">
+ <pageWords>Arthur Plugin</pageWords>
+ <pageTitle>Arthur Plugin</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-arthurplugin.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1154">
+ <pageWords>testcon - An ActiveX Test Container (ActiveQt)</pageWords>
+ <pageTitle>testcon - An ActiveX Test Container (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-testcon.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1155">
+ <pageWords>Rich Text Processing APIs</pageWords>
+ <pageTitle>Rich Text Processing APIs</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-processing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1156">
+ <pageWords>Rich Text Processing</pageWords>
+ <pageTitle>Rich Text Processing</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1157">
+ <pageWords>Rich Text Document Structure</pageWords>
+ <pageTitle>Rich Text Document Structure</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-structure.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1158">
+ <pageWords>The QTextCursor Interface</pageWords>
+ <pageTitle>The QTextCursor Interface</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-cursor.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1159">
+ <pageWords>Document Layouts</pageWords>
+ <pageTitle>Document Layouts</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-layouts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1160">
+ <pageWords>Common Rich Text Editing Tasks</pageWords>
+ <pageTitle>Common Rich Text Editing Tasks</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-common-tasks.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1161">
+ <pageWords>Advanced Rich Text Processing</pageWords>
+ <pageTitle>Advanced Rich Text Processing</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-advanced-processing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1162">
+ <pageWords>Supported HTML Subset</pageWords>
+ <pageTitle>Supported HTML Subset</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-html-subset.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1163">
+ <pageWords>Touch Knobs Example</pageWords>
+ <pageTitle>Touch Knobs Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/touch-knobs.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1164">
+ <pageWords>RSS-Listing Example</pageWords>
+ <pageTitle>RSS-Listing Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-rsslisting.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1165">
+ <pageWords>Qt Quick</pageWords>
+ <pageTitle>Qt Quick</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtquick.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1166">
+ <pageWords>The dumpdoc Tool (ActiveQt)</pageWords>
+ <pageTitle>The dumpdoc Tool (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-dumpdoc.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1167">
+ <pageWords>Simple Tree Model Example</pageWords>
+ <pageTitle>Simple Tree Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-simpletreemodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1168">
+ <pageWords>Developing Qt Applications for Mac OS X</pageWords>
+ <pageTitle>Developing Qt Applications for Mac OS X</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/developing-on-mac.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1169">
+ <pageWords>Qt Script Tetrix Example</pageWords>
+ <pageTitle>Qt Script Tetrix Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-qstetrix.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1170">
+ <pageWords>Cached Table Example</pageWords>
+ <pageTitle>Cached Table Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-cachedtable.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1171">
+ <pageWords>SDI Example</pageWords>
+ <pageTitle>SDI Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mainwindows-sdi.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1172">
+ <pageWords>QtDBus XML compiler (qdbusxml2cpp)</pageWords>
+ <pageTitle>QtDBus XML compiler (qdbusxml2cpp)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusxml2cpp.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1173">
+ <pageWords>qmake Manual</pageWords>
+ <pageTitle>qmake Manual</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-manual.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1174">
+ <pageWords>Using qmake</pageWords>
+ <pageTitle>Using qmake</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-using.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1175">
+ <pageWords>qmake Project Files</pageWords>
+ <pageTitle>qmake Project Files</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-project-files.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1176">
+ <pageWords>Running qmake</pageWords>
+ <pageTitle>Running qmake</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-running.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1177">
+ <pageWords>qmake Platform Notes</pageWords>
+ <pageTitle>qmake Platform Notes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-platform-notes.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1178">
+ <pageWords>qmake Reference</pageWords>
+ <pageTitle>qmake Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-reference.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1179">
+ <pageWords>qmake Variable Reference</pageWords>
+ <pageTitle>qmake Variable Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-variable-reference.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1180">
+ <pageWords>qmake Function Reference</pageWords>
+ <pageTitle>qmake Function Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-function-reference.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1181">
+ <pageWords>Configuring qmake's Environment</pageWords>
+ <pageTitle>Configuring qmake's Environment</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-environment-reference.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1182">
+ <pageWords>qmake Advanced Usage</pageWords>
+ <pageTitle>qmake Advanced Usage</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-advanced-usage.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1183">
+ <pageWords>Using Precompiled Headers</pageWords>
+ <pageTitle>Using Precompiled Headers</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-precompiledheaders.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1184">
+ <pageWords>qmake Tutorial</pageWords>
+ <pageTitle>qmake Tutorial</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-tutorial.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1185">
+ <pageWords>qmake Common Projects</pageWords>
+ <pageTitle>qmake Common Projects</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmake-common-projects.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1186">
+ <pageWords>Not Used</pageWords>
+ <pageTitle>Not Used</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-resources.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1187">
+ <pageWords>Bearer Management</pageWords>
+ <pageTitle>Bearer Management</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/bearer-management.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1188">
+ <pageWords>Creating Shared Libraries</pageWords>
+ <pageTitle>Creating Shared Libraries</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sharedlibrary.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1189">
+ <pageWords>RSS News</pageWords>
+ <pageTitle>RSS News</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-rssnews.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1190">
+ <pageWords>Model/View Classes</pageWords>
+ <pageTitle>Model/View Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/model-view.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1191">
+ <pageWords>Model/View Programming</pageWords>
+ <pageTitle>Model/View Programming</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/model-view-programming.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1192">
+ <pageWords>Custom Type Example</pageWords>
+ <pageTitle>Custom Type Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-customtype.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1193">
+ <pageWords>Dynamic Layouts Example</pageWords>
+ <pageTitle>Dynamic Layouts Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/layouts-dynamiclayouts.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1194">
+ <pageWords>Scribble Example</pageWords>
+ <pageTitle>Scribble Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-scribble.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1195">
+ <pageWords>Container Extension Example</pageWords>
+ <pageTitle>Container Extension Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-containerextension.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1196">
+ <pageWords>Implicitly Shared Classes</pageWords>
+ <pageTitle>Implicitly Shared Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/shared.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1197">
+ <pageWords>Implicit Sharing</pageWords>
+ <pageTitle>Implicit Sharing</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/implicit-sharing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1198">
+ <pageWords>Windows CE - Signing</pageWords>
+ <pageTitle>Windows CE - Signing</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/windowsce-signing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1199">
+ <pageWords>Undo Framework</pageWords>
+ <pageTitle>Undo Framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-undo.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1200">
+ <pageWords>Custom Completer Example</pageWords>
+ <pageTitle>Custom Completer Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-customcompleter.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1201">
+ <pageWords>Qt for Windows CE</pageWords>
+ <pageTitle>Qt for Windows CE</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtce.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1202">
+ <pageWords>Windows CE - Introduction to using Qt</pageWords>
+ <pageTitle>Windows CE - Introduction to using Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/wince-with-qt-introduction.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1203">
+ <pageWords>TrafficInfo Example</pageWords>
+ <pageTitle>TrafficInfo Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xmlpatterns-trafficinfo.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1204">
+ <pageWords>Local Fortune Client Example</pageWords>
+ <pageTitle>Local Fortune Client Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/ipc-localfortuneclient.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1205">
+ <pageWords>Draggable Text Example</pageWords>
+ <pageTitle>Draggable Text Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/draganddrop-draggabletext.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1206">
+ <pageWords>Examples and Demos Launcher</pageWords>
+ <pageTitle>Examples and Demos Launcher</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtdemo.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1207">
+ <pageWords>Recipes Example</pageWords>
+ <pageTitle>Recipes Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xmlpatterns-recipes.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1208">
+ <pageWords>Wiggly Example</pageWords>
+ <pageTitle>Wiggly Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-wiggly.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1209">
+ <pageWords>Shaped Clock Example</pageWords>
+ <pageTitle>Shaped Clock Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-shapedclock.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1210">
+ <pageWords>Session Management</pageWords>
+ <pageTitle>Session Management</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/session.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1211">
+ <pageWords>Menus Example</pageWords>
+ <pageTitle>Menus Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mainwindows-menus.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1212">
+ <pageWords>Network Download Example</pageWords>
+ <pageTitle>Network Download Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-download.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1213">
+ <pageWords>XML Classes</pageWords>
+ <pageTitle>XML Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-tools.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1214">
+ <pageWords>XML Processing</pageWords>
+ <pageTitle>XML Processing</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-processing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1215">
+ <pageWords>An Introduction to Namespaces</pageWords>
+ <pageTitle>An Introduction to Namespaces</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-namespaces.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1216">
+ <pageWords>XML Streaming</pageWords>
+ <pageTitle>XML Streaming</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-streaming.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1217">
+ <pageWords>The SAX interface</pageWords>
+ <pageTitle>The SAX interface</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-sax.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1218">
+ <pageWords>Working with the DOM Tree</pageWords>
+ <pageTitle>Working with the DOM Tree</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-dom-tml.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1219">
+ <pageWords>Threaded Fortune Server Example</pageWords>
+ <pageTitle>Threaded Fortune Server Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-threadedfortuneserver.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1220">
+ <pageWords>Twitter Mobile</pageWords>
+ <pageTitle>Twitter Mobile</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-twitter.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1221">
+ <pageWords>QtConcurrent Run Function Example</pageWords>
+ <pageTitle>QtConcurrent Run Function Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconcurrent-runfunction.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1222">
+ <pageWords>Remote Control Example</pageWords>
+ <pageTitle>Remote Control Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/help-remotecontrol.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1223">
+ <pageWords>A standard ActiveX and the &quot;simple&quot; ActiveQt widget</pageWords>
+ <pageTitle>A standard ActiveX and the &quot;simple&quot; ActiveQt widget</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxserver-demo-simple.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1224">
+ <pageWords>Simple Example (ActiveQt)</pageWords>
+ <pageTitle>Simple Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-simple.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1225">
+ <pageWords>Dynamic Object Management in QML</pageWords>
+ <pageTitle>Dynamic Object Management in QML</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativedynamicobjects.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1226">
+ <pageWords>Character Map Example</pageWords>
+ <pageTitle>Character Map Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-charactermap.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1227">
+ <pageWords>QML Scope</pageWords>
+ <pageTitle>QML Scope</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativescope.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1228">
+ <pageWords>Animation: Basics Example</pageWords>
+ <pageTitle>Animation: Basics Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-animation-basics.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1229">
+ <pageWords>Animation: Behavior Examples</pageWords>
+ <pageTitle>Animation: Behavior Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-animation-behaviors.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1230">
+ <pageWords>Animation: Easing Example</pageWords>
+ <pageTitle>Animation: Easing Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-animation-easing.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1231">
+ <pageWords>Animation: States Example</pageWords>
+ <pageTitle>Animation: States Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-animation-states.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1232">
+ <pageWords>Image Elements: Border Image Example</pageWords>
+ <pageTitle>Image Elements: Border Image Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-imageelements-borderimage.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1233">
+ <pageWords>Image Elements: Image Example</pageWords>
+ <pageTitle>Image Elements: Image Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-imageelements-image.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1234">
+ <pageWords>C++ Extensions: Reference examples</pageWords>
+ <pageTitle>C++ Extensions: Reference examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-reference.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1235">
+ <pageWords>C++ Extensions: Plugins Example</pageWords>
+ <pageTitle>C++ Extensions: Plugins Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-plugins.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1236">
+ <pageWords>LayoutItem Example</pageWords>
+ <pageTitle>LayoutItem Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-qgraphicslayouts-layoutitem.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1237">
+ <pageWords>QGraphicsGridLayout Example</pageWords>
+ <pageTitle>QGraphicsGridLayout Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-qgraphicslayouts-qgraphicsgridlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1238">
+ <pageWords>QGraphicsLinearLayout Example</pageWords>
+ <pageTitle>QGraphicsLinearLayout Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-qgraphicslayouts-qgraphicslinearlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1239">
+ <pageWords>C++ Extensions: QGraphicsLayouts examples</pageWords>
+ <pageTitle>C++ Extensions: QGraphicsLayouts examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-qgraphicslayouts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1240">
+ <pageWords>C++ Extensions: QWidgets Example</pageWords>
+ <pageTitle>C++ Extensions: QWidgets Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-qwidgets.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1241">
+ <pageWords>C++ Extensions: Image Provider Example</pageWords>
+ <pageTitle>C++ Extensions: Image Provider Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-imageprovider.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1242">
+ <pageWords>C++ Extensions: Network Access Manager Factory Example</pageWords>
+ <pageTitle>C++ Extensions: Network Access Manager Factory Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-networkaccessmanagerfactory.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1243">
+ <pageWords>Internationlization Example</pageWords>
+ <pageTitle>Internationlization Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-i18n.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1244">
+ <pageWords>Positioners Example</pageWords>
+ <pageTitle>Positioners Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-positioners.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1245">
+ <pageWords>Key Interaction: Focus Example</pageWords>
+ <pageTitle>Key Interaction: Focus Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-keyinteraction-focus.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1246">
+ <pageWords>Models and Views: AbstractItemModel Example</pageWords>
+ <pageTitle>Models and Views: AbstractItemModel Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-abstractitemmodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1247">
+ <pageWords>Models and Views: GridView Example</pageWords>
+ <pageTitle>Models and Views: GridView Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-gridview.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1248">
+ <pageWords>Models and Views: ListView Example</pageWords>
+ <pageTitle>Models and Views: ListView Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-listview.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1249">
+ <pageWords>Models and Views: PathView Example</pageWords>
+ <pageTitle>Models and Views: PathView Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-pathview.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1250">
+ <pageWords>Models and Views: Object ListModel Example</pageWords>
+ <pageTitle>Models and Views: Object ListModel Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-objectlistmodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1251">
+ <pageWords>Models and Views: Package Example</pageWords>
+ <pageTitle>Models and Views: Package Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-package.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1252">
+ <pageWords>Models and Views: Parallax Example</pageWords>
+ <pageTitle>Models and Views: Parallax Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-parallax.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1253">
+ <pageWords>Models and Views: String ListModel Example</pageWords>
+ <pageTitle>Models and Views: String ListModel Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-stringlistmodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1254">
+ <pageWords>Models and Views: VisualItemModel Example</pageWords>
+ <pageTitle>Models and Views: VisualItemModel Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-visualitemmodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1255">
+ <pageWords>Models and Views: WebView Example</pageWords>
+ <pageTitle>Models and Views: WebView Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-modelviews-webview.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1256">
+ <pageWords>Screen orientation</pageWords>
+ <pageTitle>Screen orientation</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-screenorientation.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1257">
+ <pageWords>SQL Local Storage Example</pageWords>
+ <pageTitle>SQL Local Storage Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-sqllocalstorage.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1258">
+ <pageWords>Text: Fonts Example</pageWords>
+ <pageTitle>Text: Fonts Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-text-fonts.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1259">
+ <pageWords>Text: Text Selection Example</pageWords>
+ <pageTitle>Text: Text Selection Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-text-textselection.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1260">
+ <pageWords>Threading: Threaded ListModel Example</pageWords>
+ <pageTitle>Threading: Threaded ListModel Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-threading-threadedlistmodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1261">
+ <pageWords>Threading: WorkerScript Example</pageWords>
+ <pageTitle>Threading: WorkerScript Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-threading-workerscript.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1262">
+ <pageWords>Toys: Clocks Example</pageWords>
+ <pageTitle>Toys: Clocks Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-toys-clocks.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1263">
+ <pageWords>Toys: Corkboards Example</pageWords>
+ <pageTitle>Toys: Corkboards Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-toys-corkboards.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1264">
+ <pageWords>Toys: Dynamic Scene Example</pageWords>
+ <pageTitle>Toys: Dynamic Scene Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-toys-dynamicscene.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1265">
+ <pageWords>Toys: Tic-Tac-Toe Example</pageWords>
+ <pageTitle>Toys: Tic-Tac-Toe Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-toys-tic-tac-toe.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1266">
+ <pageWords>Toys: TV Tennis Example</pageWords>
+ <pageTitle>Toys: TV Tennis Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-toys-tvtennis.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1267">
+ <pageWords>Touch Interaction: Gestures Example</pageWords>
+ <pageTitle>Touch Interaction: Gestures Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-touchinteraction-gestures.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1268">
+ <pageWords>Touch Interaction: MouseArea Example</pageWords>
+ <pageTitle>Touch Interaction: MouseArea Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-touchinteraction-mousearea.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1269">
+ <pageWords>UI Components: Dial Control Example</pageWords>
+ <pageTitle>UI Components: Dial Control Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-ui-components-dialcontrol.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1270">
+ <pageWords>UI Components: Flipable Example</pageWords>
+ <pageTitle>UI Components: Flipable Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-ui-components-flipable.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1271">
+ <pageWords>UI Components: Progress Bars Example</pageWords>
+ <pageTitle>UI Components: Progress Bars Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-ui-components-progressbar.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1272">
+ <pageWords>UI Components: Scroll Bar Example</pageWords>
+ <pageTitle>UI Components: Scroll Bar Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-ui-components-scrollbar.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1273">
+ <pageWords>UI Components: Search Box Example</pageWords>
+ <pageTitle>UI Components: Search Box Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-ui-components-searchbox.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1274">
+ <pageWords>UI Components: Slide Switch Example</pageWords>
+ <pageTitle>UI Components: Slide Switch Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-ui-components-slideswitch.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1275">
+ <pageWords>UI Components: Spinner Example</pageWords>
+ <pageTitle>UI Components: Spinner Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-ui-components-spinner.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1276">
+ <pageWords>UI Components: Tab Widget Example</pageWords>
+ <pageTitle>UI Components: Tab Widget Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-ui-components-tabwidget.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1277">
+ <pageWords>XML: XMLHttpRequest Example</pageWords>
+ <pageTitle>XML: XMLHttpRequest Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-xml-xmlhttprequest.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1278">
+ <pageWords>Cleanlooks Style Widget Gallery</pageWords>
+ <pageTitle>Cleanlooks Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-cleanlooks.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1279">
+ <pageWords>Porting UI Files to Qt 4</pageWords>
+ <pageTitle>Porting UI Files to Qt 4</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/porting4-designer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1280">
+ <pageWords>Coordinate System</pageWords>
+ <pageTitle>Coordinate System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/coordsys.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1281">
+ <pageWords>Qt's Tools</pageWords>
+ <pageTitle>Qt's Tools</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qttools.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1282">
+ <pageWords>Deploying Qt for Embedded Linux Applications</pageWords>
+ <pageTitle>Deploying Qt for Embedded Linux Applications</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-deployment.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1283">
+ <pageWords>QML Internationalization</pageWords>
+ <pageTitle>QML Internationalization</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativei18n.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1284">
+ <pageWords>Windows Style Widget Gallery</pageWords>
+ <pageTitle>Windows Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-windows.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1285">
+ <pageWords>World Time Clock Plugin Example</pageWords>
+ <pageTitle>World Time Clock Plugin Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-worldtimeclockplugin.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1286">
+ <pageWords>Exception Safety</pageWords>
+ <pageTitle>Exception Safety</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/exceptionsafety.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1287">
+ <pageWords>D-Bus Chat Example</pageWords>
+ <pageTitle>D-Bus Chat Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dbus-dbus-chat.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1288">
+ <pageWords>Basic Layouts Example</pageWords>
+ <pageTitle>Basic Layouts Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/layouts-basiclayouts.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1289">
+ <pageWords>Platform-Specific Functions</pageWords>
+ <pageTitle>Platform-Specific Functions</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/exportedfunctions.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1290">
+ <pageWords>The Scribe Classes</pageWords>
+ <pageTitle>The Scribe Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-scribe.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1291">
+ <pageWords>Object Model</pageWords>
+ <pageTitle>Object Model</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/object.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1292">
+ <pageWords>Order Form Example</pageWords>
+ <pageTitle>Order Form Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-orderform.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1293">
+ <pageWords>Qt Commercial Edition</pageWords>
+ <pageTitle>Qt Commercial Edition</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/commercialedition.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1294">
+ <pageWords>Ported Asteroids Example</pageWords>
+ <pageTitle>Ported Asteroids Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-portedasteroids.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1295">
+ <pageWords>Getting Started Programming with QML</pageWords>
+ <pageTitle>Getting Started Programming with QML</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gettingstartedqml.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1296">
+ <pageWords>Tutorial: Writing QML extensions with C++</pageWords>
+ <pageTitle>Tutorial: Writing QML extensions with C++</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-extending-tutorial-index.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1297">
+ <pageWords>Chapter 1: Creating a New Type</pageWords>
+ <pageTitle>Chapter 1: Creating a New Type</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-extending-chapter1-basics.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1298">
+ <pageWords>Chapter 2: Connecting to C++ Methods and Signals</pageWords>
+ <pageTitle>Chapter 2: Connecting to C++ Methods and Signals</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-extending-chapter2-methods.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1299">
+ <pageWords>Chapter 3: Adding Property Bindings</pageWords>
+ <pageTitle>Chapter 3: Adding Property Bindings</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-extending-chapter3-bindings.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1300">
+ <pageWords>Chapter 4: Using Custom Property Types</pageWords>
+ <pageTitle>Chapter 4: Using Custom Property Types</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-extending-chapter4-custompropertytypes.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1301">
+ <pageWords>Chapter 5: Using List Property Types</pageWords>
+ <pageTitle>Chapter 5: Using List Property Types</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-extending-chapter5-listproperties.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1302">
+ <pageWords>Chapter 6: Writing an Extension Plugin</pageWords>
+ <pageTitle>Chapter 6: Writing an Extension Plugin</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-extending-chapter6-plugins.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1303">
+ <pageWords>Chapter 7: In Summary</pageWords>
+ <pageTitle>Chapter 7: In Summary</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-extending-tutorial7.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1304">
+ <pageWords>Class Wizard Example</pageWords>
+ <pageTitle>Class Wizard Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-classwizard.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1305">
+ <pageWords>ECMAScript Reference</pageWords>
+ <pageTitle>ECMAScript Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/ecmascript.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1306">
+ <pageWords>Address Book Tutorial</pageWords>
+ <pageTitle>Address Book Tutorial</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1307">
+ <pageWords>Part 1 - Designing the User Interface</pageWords>
+ <pageTitle>Part 1 - Designing the User Interface</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-part1.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1308">
+ <pageWords>Part 2 - Adding Addresses</pageWords>
+ <pageTitle>Part 2 - Adding Addresses</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-part2.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1309">
+ <pageWords>Part 3 - Navigating between Entries</pageWords>
+ <pageTitle>Part 3 - Navigating between Entries</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-part3.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1310">
+ <pageWords>Part 4 - Editing and Removing Addresses</pageWords>
+ <pageTitle>Part 4 - Editing and Removing Addresses</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-part4.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1311">
+ <pageWords>Part 5 - Adding a Find Function</pageWords>
+ <pageTitle>Part 5 - Adding a Find Function</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-part5.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1312">
+ <pageWords>Part 6 - Loading and Saving</pageWords>
+ <pageTitle>Part 6 - Loading and Saving</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-part6.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1313">
+ <pageWords>Part 7 - Additional Features</pageWords>
+ <pageTitle>Part 7 - Additional Features</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-part7.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1314">
+ <pageWords>Sub-Attaq</pageWords>
+ <pageTitle>Sub-Attaq</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-sub-attaq.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1315">
+ <pageWords>What's New in Qt 4</pageWords>
+ <pageTitle>What's New in Qt 4</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-intro.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1316">
+ <pageWords>What's New in Qt 4.7</pageWords>
+ <pageTitle>What's New in Qt 4.7</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-7-intro.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1317">
+ <pageWords>What's New in Qt 4.6</pageWords>
+ <pageTitle>What's New in Qt 4.6</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-6-intro.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1318">
+ <pageWords>The Property System</pageWords>
+ <pageTitle>The Property System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/properties.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1319">
+ <pageWords>Web Browser Example (ActiveQt)</pageWords>
+ <pageTitle>Web Browser Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-webbrowser.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1320">
+ <pageWords>Qt Examples</pageWords>
+ <pageTitle>Qt Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/all-examples.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1321">
+ <pageWords>Widget Examples</pageWords>
+ <pageTitle>Widget Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-widgets.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1322">
+ <pageWords>Dialog Examples</pageWords>
+ <pageTitle>Dialog Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-dialogs.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1323">
+ <pageWords>Main Window Examples</pageWords>
+ <pageTitle>Main Window Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-mainwindow.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1324">
+ <pageWords>Layout Examples</pageWords>
+ <pageTitle>Layout Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-layouts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1325">
+ <pageWords>Item Views Examples</pageWords>
+ <pageTitle>Item Views Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-itemviews.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1326">
+ <pageWords>Graphics View Examples</pageWords>
+ <pageTitle>Graphics View Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-graphicsview.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1327">
+ <pageWords>Painting Examples</pageWords>
+ <pageTitle>Painting Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-painting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1328">
+ <pageWords>Rich Text Examples</pageWords>
+ <pageTitle>Rich Text Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-richtext.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1329">
+ <pageWords>Desktop Examples</pageWords>
+ <pageTitle>Desktop Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-desktop.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1330">
+ <pageWords>Drag and Drop Examples</pageWords>
+ <pageTitle>Drag and Drop Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-draganddrop.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1331">
+ <pageWords>Threading and Concurrent Programming Examples</pageWords>
+ <pageTitle>Threading and Concurrent Programming Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-threadandconcurrent.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1332">
+ <pageWords>Tools Examples</pageWords>
+ <pageTitle>Tools Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-tools.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1333">
+ <pageWords>Network Examples</pageWords>
+ <pageTitle>Network Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-network.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1334">
+ <pageWords>IPC Examples</pageWords>
+ <pageTitle>IPC Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-ipc.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1335">
+ <pageWords>OpenGL Examples</pageWords>
+ <pageTitle>OpenGL Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-opengl.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1336">
+ <pageWords>OpenVG Examples</pageWords>
+ <pageTitle>OpenVG Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-openvg.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1337">
+ <pageWords>Multimedia Examples</pageWords>
+ <pageTitle>Multimedia Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-multimedia.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1338">
+ <pageWords>SQL Examples</pageWords>
+ <pageTitle>SQL Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-sql.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1339">
+ <pageWords>XML Examples</pageWords>
+ <pageTitle>XML Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-xml.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1340">
+ <pageWords>Qt Designer Examples</pageWords>
+ <pageTitle>Qt Designer Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-designer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1341">
+ <pageWords>UiTools Examples</pageWords>
+ <pageTitle>UiTools Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-uitools.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1342">
+ <pageWords>Qt Linguist Examples</pageWords>
+ <pageTitle>Qt Linguist Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-linguist.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1343">
+ <pageWords>Qt Script Examples</pageWords>
+ <pageTitle>Qt Script Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-script.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1344">
+ <pageWords>WebKit Examples</pageWords>
+ <pageTitle>WebKit Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-webkit.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1345">
+ <pageWords>Help System Examples</pageWords>
+ <pageTitle>Help System Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-helpsystem.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1346">
+ <pageWords>State Machine Examples</pageWords>
+ <pageTitle>State Machine Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-statemachine.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1347">
+ <pageWords>Animation Framework Examples</pageWords>
+ <pageTitle>Animation Framework Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-animation.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1348">
+ <pageWords>Touch Input Examples</pageWords>
+ <pageTitle>Touch Input Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-touch.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1349">
+ <pageWords>Gestures Examples</pageWords>
+ <pageTitle>Gestures Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-gestures.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1350">
+ <pageWords>D-Bus Examples</pageWords>
+ <pageTitle>D-Bus Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-dbus.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1351">
+ <pageWords>Qt for Embedded Linux Examples</pageWords>
+ <pageTitle>Qt for Embedded Linux Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-embeddedlinux.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1352">
+ <pageWords>ActiveQt Examples</pageWords>
+ <pageTitle>ActiveQt Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/examples-activeqt.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1353">
+ <pageWords>Lighting Effect Example</pageWords>
+ <pageTitle>Lighting Effect Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/effects-lighting.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1354">
+ <pageWords>Porting Qt for Embedded Linux to Another Operating System</pageWords>
+ <pageTitle>Porting Qt for Embedded Linux to Another Operating System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-porting-operatingsystem.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1355">
+ <pageWords>Porting Qt for Embedded Linux to a New Architecture</pageWords>
+ <pageTitle>Porting Qt for Embedded Linux to a New Architecture</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-porting-device.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1356">
+ <pageWords>FolderListModel - a C++ model plugin</pageWords>
+ <pageTitle>FolderListModel - a C++ model plugin</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/src-imports-folderlistmodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1357">
+ <pageWords>Input/Output and Networking</pageWords>
+ <pageTitle>Input/Output and Networking</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/io.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1358">
+ <pageWords>The Qt Resource System</pageWords>
+ <pageTitle>The Qt Resource System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/resources.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1359">
+ <pageWords>QML Elements</pageWords>
+ <pageTitle>QML Elements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeelements.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1360">
+ <pageWords>Hello GL Example</pageWords>
+ <pageTitle>Hello GL Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-hellogl.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1361">
+ <pageWords>Draggable Icons Example</pageWords>
+ <pageTitle>Draggable Icons Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/draganddrop-draggableicons.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1362">
+ <pageWords>Using XML Technologies</pageWords>
+ <pageTitle>Using XML Technologies</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xmlprocessing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1363">
+ <pageWords>Music Player Example</pageWords>
+ <pageTitle>Music Player Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-qmusicplayer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1364">
+ <pageWords>Standard Dialogs Example</pageWords>
+ <pageTitle>Standard Dialogs Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-standarddialogs.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1365">
+ <pageWords>Codecs</pageWords>
+ <pageTitle>Codecs</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codecs.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1366">
+ <pageWords>Big5 Text Codec</pageWords>
+ <pageTitle>Big5 Text Codec</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codec-big5.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1367">
+ <pageWords>Big5-HKSCS Text Codec</pageWords>
+ <pageTitle>Big5-HKSCS Text Codec</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codec-big5hkscs.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1368">
+ <pageWords>EUC-JP Text Codec</pageWords>
+ <pageTitle>EUC-JP Text Codec</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codec-eucjp.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1369">
+ <pageWords>EUC-KR Text Codec</pageWords>
+ <pageTitle>EUC-KR Text Codec</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codec-euckr.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1370">
+ <pageWords>GBK Text Codec</pageWords>
+ <pageTitle>GBK Text Codec</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codec-gbk.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1371">
+ <pageWords>ISO 2022-JP (JIS) Text Codec</pageWords>
+ <pageTitle>ISO 2022-JP (JIS) Text Codec</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codecs-jis.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1372">
+ <pageWords>Shift-JIS Text Codec</pageWords>
+ <pageTitle>Shift-JIS Text Codec</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codec-sjis.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1373">
+ <pageWords>TSCII Text Codec</pageWords>
+ <pageTitle>TSCII Text Codec</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codec-tscii.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1374">
+ <pageWords>Broadcast Receiver Example</pageWords>
+ <pageTitle>Broadcast Receiver Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-broadcastreceiver.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1375">
+ <pageWords>Analog Clock Example</pageWords>
+ <pageTitle>Analog Clock Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-analogclock.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1376">
+ <pageWords>Introduction to the QML language</pageWords>
+ <pageTitle>Introduction to the QML language</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeintroduction.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1377">
+ <pageWords>Recent Files Example</pageWords>
+ <pageTitle>Recent Files Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mainwindows-recentfiles.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1378">
+ <pageWords>The Qt 4 Database GUI Layer</pageWords>
+ <pageTitle>The Qt 4 Database GUI Layer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-sql.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1379">
+ <pageWords>Cross-Platform Accessibility Support in Qt 4</pageWords>
+ <pageTitle>Cross-Platform Accessibility Support in Qt 4</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-accessibility.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1380">
+ <pageWords>Master Detail Example</pageWords>
+ <pageTitle>Master Detail Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-masterdetail.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1381">
+ <pageWords>Flow Layout Example</pageWords>
+ <pageTitle>Flow Layout Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/layouts-flowlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1382">
+ <pageWords>World Time Clock Builder Example</pageWords>
+ <pageTitle>World Time Clock Builder Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-worldtimeclockbuilder.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1383">
+ <pageWords>QML Global Object</pageWords>
+ <pageTitle>QML Global Object</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeglobalobject.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1384">
+ <pageWords>Animated Tiles Example</pageWords>
+ <pageTitle>Animated Tiles Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/animation-animatedtiles.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1385">
+ <pageWords>Moving from Qt 3 to Qt 4</pageWords>
+ <pageTitle>Moving from Qt 3 to Qt 4</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/porting4-overview.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1386">
+ <pageWords>Platform-Specific Documentation</pageWords>
+ <pageTitle>Platform-Specific Documentation</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-specific.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1387">
+ <pageWords>Platform Notes</pageWords>
+ <pageTitle>Platform Notes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1388">
+ <pageWords>Platform Notes - X11</pageWords>
+ <pageTitle>Platform Notes - X11</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes-x11.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1389">
+ <pageWords>Platform Notes - Windows</pageWords>
+ <pageTitle>Platform Notes - Windows</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes-windows.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1390">
+ <pageWords>Platform Notes - Mac OS X</pageWords>
+ <pageTitle>Platform Notes - Mac OS X</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes-mac.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1391">
+ <pageWords>Platform Notes - Windows CE</pageWords>
+ <pageTitle>Platform Notes - Windows CE</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes-windows-ce.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1392">
+ <pageWords>Platform Notes - Symbian</pageWords>
+ <pageTitle>Platform Notes - Symbian</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes-symbian.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1393">
+ <pageWords>Platform Notes - Embedded Linux</pageWords>
+ <pageTitle>Platform Notes - Embedded Linux</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes-embedded-linux.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1394">
+ <pageWords>Main Window</pageWords>
+ <pageTitle>Main Window</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-mainwindow.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1395">
+ <pageWords>Fade Message Effect Example</pageWords>
+ <pageTitle>Fade Message Effect Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/effects-fademessage.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1396">
+ <pageWords>Event Classes</pageWords>
+ <pageTitle>Event Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/events.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1397">
+ <pageWords>The Event System</pageWords>
+ <pageTitle>The Event System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/eventsandfilters.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1398">
+ <pageWords>Anomaly Demonstration</pageWords>
+ <pageTitle>Anomaly Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-anomaly.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1399">
+ <pageWords>Qt Script Debugger Manual</pageWords>
+ <pageTitle>Qt Script Debugger Manual</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtscriptdebugger-manual.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1400">
+ <pageWords>Tab Dialog Example</pageWords>
+ <pageTitle>Tab Dialog Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-tabdialog.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1401">
+ <pageWords>All Overviews and HOWTOs</pageWords>
+ <pageTitle>All Overviews and HOWTOs</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/overviews.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1402">
+ <pageWords>Basic Qt Architecture</pageWords>
+ <pageTitle>Basic Qt Architecture</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-basic-concepts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1403">
+ <pageWords>Qt Desktop UI Components</pageWords>
+ <pageTitle>Qt Desktop UI Components</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-gui-concepts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1404">
+ <pageWords>Qt Graphics and Painting</pageWords>
+ <pageTitle>Qt Graphics and Painting</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-graphics.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1405">
+ <pageWords>Network programming with Qt</pageWords>
+ <pageTitle>Network programming with Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-network.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1406">
+ <pageWords>Qt API's for other technologies</pageWords>
+ <pageTitle>Qt API's for other technologies</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/technology-apis.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1407">
+ <pageWords>Qt For ActiveX</pageWords>
+ <pageTitle>Qt For ActiveX</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-activex.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1408">
+ <pageWords>Using SQL in Qt</pageWords>
+ <pageTitle>Using SQL in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-sql.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1409">
+ <pageWords>How-To's and Best Practices</pageWords>
+ <pageTitle>How-To's and Best Practices</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/best-practices.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1410">
+ <pageWords>Queued Custom Type Example</pageWords>
+ <pageTitle>Queued Custom Type Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-queuedcustomtype.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1411">
+ <pageWords>Qt for Embedded Linux Architecture</pageWords>
+ <pageTitle>Qt for Embedded Linux Architecture</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-architecture.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1412">
+ <pageWords>Rogue Example</pageWords>
+ <pageTitle>Rogue Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/statemachine-rogue.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1413">
+ <pageWords>Cross-Compiling Qt for Embedded Linux Applications</pageWords>
+ <pageTitle>Cross-Compiling Qt for Embedded Linux Applications</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-crosscompiling.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1414">
+ <pageWords>Light Maps Demonstration</pageWords>
+ <pageTitle>Light Maps Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-lightmaps.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1415">
+ <pageWords>Qt for Embedded Platforms</pageWords>
+ <pageTitle>Qt for Embedded Platforms</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1416">
+ <pageWords>Qt Script Marshalling Example</pageWords>
+ <pageTitle>Qt Script Marshalling Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-marshal.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1417">
+ <pageWords>Fridge Magnets Example</pageWords>
+ <pageTitle>Fridge Magnets Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/draganddrop-fridgemagnets.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1418">
+ <pageWords>AudioInput Example</pageWords>
+ <pageTitle>AudioInput Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/multimedia-audioinput.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1419">
+ <pageWords>The Qt 4 Main Window Classes</pageWords>
+ <pageTitle>The Qt 4 Main Window Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-mainwindow.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1420">
+ <pageWords>Easing Equations by Robert Penner</pageWords>
+ <pageTitle>Easing Equations by Robert Penner</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/legal-easing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1421">
+ <pageWords>Easing Curves Example</pageWords>
+ <pageTitle>Easing Curves Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/animation-easing.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1422">
+ <pageWords>QML Documents</pageWords>
+ <pageTitle>QML Documents</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativedocuments.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1423">
+ <pageWords>Extending QML - Adding Types Example</pageWords>
+ <pageTitle>Extending QML - Adding Types Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-adding.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1424">
+ <pageWords>Extending QML - Object and List Property Types Example</pageWords>
+ <pageTitle>Extending QML - Object and List Property Types Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-properties.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1425">
+ <pageWords>Extending QML - Inheritance and Coercion Example</pageWords>
+ <pageTitle>Extending QML - Inheritance and Coercion Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-coercion.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1426">
+ <pageWords>Extending QML - Default Property Example</pageWords>
+ <pageTitle>Extending QML - Default Property Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-default.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1427">
+ <pageWords>Extending QML - Grouped Properties Example</pageWords>
+ <pageTitle>Extending QML - Grouped Properties Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-grouped.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1428">
+ <pageWords>Extending QML - Attached Properties Example</pageWords>
+ <pageTitle>Extending QML - Attached Properties Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-attached.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1429">
+ <pageWords>Extending QML - Signal Support Example</pageWords>
+ <pageTitle>Extending QML - Signal Support Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-signal.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1430">
+ <pageWords>Extending QML - Property Value Source Example</pageWords>
+ <pageTitle>Extending QML - Property Value Source Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-valuesource.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1431">
+ <pageWords>Extending QML - Binding Example</pageWords>
+ <pageTitle>Extending QML - Binding Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-cppextensions-referenceexamples-binding.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1432">
+ <pageWords>QtConcurrent Map Example</pageWords>
+ <pageTitle>QtConcurrent Map Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconcurrent-map.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1433">
+ <pageWords>Image Gestures Example</pageWords>
+ <pageTitle>Image Gestures Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gestures-imagegestures.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1434">
+ <pageWords>Icons Example</pageWords>
+ <pageTitle>Icons Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-icons.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1435">
+ <pageWords>Debugging Techniques</pageWords>
+ <pageTitle>Debugging Techniques</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/debug.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1436">
+ <pageWords>Trademarks</pageWords>
+ <pageTitle>Trademarks</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/trademarks.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1437">
+ <pageWords>D-Bus Viewer</pageWords>
+ <pageTitle>D-Bus Viewer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusviewer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1438">
+ <pageWords>GNU General Public License (GPL)</pageWords>
+ <pageTitle>GNU General Public License (GPL)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gpl.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1439">
+ <pageWords>GNU Lesser General Public License (LGPL)</pageWords>
+ <pageTitle>GNU Lesser General Public License (LGPL)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/lgpl.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1440">
+ <pageWords>Custom Widget Plugin Example</pageWords>
+ <pageTitle>Custom Widget Plugin Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-customwidgetplugin.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1441">
+ <pageWords>SQL Database Drivers</pageWords>
+ <pageTitle>SQL Database Drivers</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-driver.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1442">
+ <pageWords>Digiflip Demonstration</pageWords>
+ <pageTitle>Digiflip Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-digiflip.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1443">
+ <pageWords>GTK Style Widget Gallery</pageWords>
+ <pageTitle>GTK Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-gtk.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1444">
+ <pageWords>Object Trees &amp; Ownership</pageWords>
+ <pageTitle>Object Trees &amp; Ownership</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/objecttrees.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1445">
+ <pageWords>Hello tr() Example</pageWords>
+ <pageTitle>Hello tr() Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/linguist-hellotr.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1446">
+ <pageWords>Blur Picker Effect Example</pageWords>
+ <pageTitle>Blur Picker Effect Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/effects-blurpicker.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1447">
+ <pageWords>Overview of Qt's Undo Framework</pageWords>
+ <pageTitle>Overview of Qt's Undo Framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qundo.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1448">
+ <pageWords>OpenVG Rendering in Qt</pageWords>
+ <pageTitle>OpenVG Rendering in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/openvg.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1449">
+ <pageWords>Media Player</pageWords>
+ <pageTitle>Media Player</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-qmediaplayer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1450">
+ <pageWords>Relational Table Model Example</pageWords>
+ <pageTitle>Relational Table Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-relationaltablemodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1451">
+ <pageWords>QML Viewer</pageWords>
+ <pageTitle>QML Viewer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qmlviewer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1452">
+ <pageWords>QXmlStream Bookmarks Example</pageWords>
+ <pageTitle>QXmlStream Bookmarks Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-streambookmarks.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1453">
+ <pageWords>Custom Script Class Example</pageWords>
+ <pageTitle>Custom Script Class Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-customclass.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1454">
+ <pageWords>Non-GUI Classes</pageWords>
+ <pageTitle>Non-GUI Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1455">
+ <pageWords>Generic Containers</pageWords>
+ <pageTitle>Generic Containers</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/containers.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1456">
+ <pageWords>Troll Print Example</pageWords>
+ <pageTitle>Troll Print Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/linguist-trollprint.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1457">
+ <pageWords>Simple Selector Example</pageWords>
+ <pageTitle>Simple Selector Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/webkit-simpleselector.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1458">
+ <pageWords>Graphics View Flow Layout Example</pageWords>
+ <pageTitle>Graphics View Flow Layout Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-flowlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1459">
+ <pageWords>Setting the Application Icon</pageWords>
+ <pageTitle>Setting the Application Icon</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/appicon.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1460">
+ <pageWords>Tool Tips Example</pageWords>
+ <pageTitle>Tool Tips Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-tooltips.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1461">
+ <pageWords>Running Qt for Embedded Linux Applications</pageWords>
+ <pageTitle>Running Qt for Embedded Linux Applications</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-running.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1462">
+ <pageWords>Bearer Monitor Example</pageWords>
+ <pageTitle>Bearer Monitor Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-bearermonitor.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1463">
+ <pageWords>Spectrum Analyzer</pageWords>
+ <pageTitle>Spectrum Analyzer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-spectrum.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1464">
+ <pageWords>QML Coding Conventions</pageWords>
+ <pageTitle>QML Coding Conventions</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/codingconventions.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1465">
+ <pageWords>Why Doesn't Qt Use Templates for Signals and Slots?</pageWords>
+ <pageTitle>Why Doesn't Qt Use Templates for Signals and Slots?</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/templates.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1466">
+ <pageWords>Dock Widgets Example</pageWords>
+ <pageTitle>Dock Widgets Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mainwindows-dockwidgets.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1467">
+ <pageWords>Qt Demonstrations</pageWords>
+ <pageTitle>Qt Demonstrations</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1468">
+ <pageWords>Affine Transformations</pageWords>
+ <pageTitle>Affine Transformations</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-affine.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1469">
+ <pageWords>D-Bus Ping Pong Example</pageWords>
+ <pageTitle>D-Bus Ping Pong Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dbus-pingpong.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1470">
+ <pageWords>Border Layout Example</pageWords>
+ <pageTitle>Border Layout Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/layouts-borderlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1471">
+ <pageWords>Standard Qt widgets in an HTML page</pageWords>
+ <pageTitle>Standard Qt widgets in an HTML page</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxserver-demo-wrapper.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1472">
+ <pageWords>Wrapper Example (ActiveQt)</pageWords>
+ <pageTitle>Wrapper Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-wrapper.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1473">
+ <pageWords>Stickman Example</pageWords>
+ <pageTitle>Stickman Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/animation-stickman.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1474">
+ <pageWords>Qt Classes for Internationalization</pageWords>
+ <pageTitle>Qt Classes for Internationalization</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/i18n.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1475">
+ <pageWords>Internationalization with Qt</pageWords>
+ <pageTitle>Internationalization with Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/internationalization.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1476">
+ <pageWords>Writing Source Code for Translation</pageWords>
+ <pageTitle>Writing Source Code for Translation</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/i18n-source-translation.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1477">
+ <pageWords>Translation Rules for Plurals</pageWords>
+ <pageTitle>Translation Rules for Plurals</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/i18n-plural-rules.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1478">
+ <pageWords>QtScript Calculator Example</pageWords>
+ <pageTitle>QtScript Calculator Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-calculator.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1479">
+ <pageWords>Network Programming API</pageWords>
+ <pageTitle>Network Programming API</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1480">
+ <pageWords>Network Programming</pageWords>
+ <pageTitle>Network Programming</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-programming.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1481">
+ <pageWords>Syntax Highlighter Example</pageWords>
+ <pageTitle>Syntax Highlighter Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-syntaxhighlighter.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1482">
+ <pageWords>Pixel Buffers Example</pageWords>
+ <pageTitle>Pixel Buffers Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-pbuffers.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1483">
+ <pageWords>Pixelator Example</pageWords>
+ <pageTitle>Pixelator Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-pixelator.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1484">
+ <pageWords>Qt Script Debugger Example</pageWords>
+ <pageTitle>Qt Script Debugger Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-qsdbg.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1485">
+ <pageWords>Third-Party Licenses Used in Qt</pageWords>
+ <pageTitle>Third-Party Licenses Used in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/3rdparty.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1486">
+ <pageWords>Application Chooser Example</pageWords>
+ <pageTitle>Application Chooser Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/animation-appchooser.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1487">
+ <pageWords>Threading Classes</pageWords>
+ <pageTitle>Threading Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/thread.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1488">
+ <pageWords>Thread Support in Qt</pageWords>
+ <pageTitle>Thread Support in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1489">
+ <pageWords>Starting Threads with QThread</pageWords>
+ <pageTitle>Starting Threads with QThread</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-starting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1490">
+ <pageWords>Synchronizing Threads</pageWords>
+ <pageTitle>Synchronizing Threads</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-synchronizing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1491">
+ <pageWords>Reentrancy and Thread-Safety</pageWords>
+ <pageTitle>Reentrancy and Thread-Safety</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-reentrancy.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1492">
+ <pageWords>Threads and QObjects</pageWords>
+ <pageTitle>Threads and QObjects</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-qobject.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1493">
+ <pageWords>Concurrent Programming</pageWords>
+ <pageTitle>Concurrent Programming</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-qtconcurrent.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1494">
+ <pageWords>Thread-Support in Qt Modules</pageWords>
+ <pageTitle>Thread-Support in Qt Modules</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-modules.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1495">
+ <pageWords>Plastique Style Widget Gallery</pageWords>
+ <pageTitle>Plastique Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-plastique.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1496">
+ <pageWords>Windows CE - Working with Custom SDKs</pageWords>
+ <pageTitle>Windows CE - Working with Custom SDKs</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/windowsce-customization.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1497">
+ <pageWords>Windows CE - Using shadow builds</pageWords>
+ <pageTitle>Windows CE - Using shadow builds</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/shadow-builds-wince.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1498">
+ <pageWords>Window Flags Example</pageWords>
+ <pageTitle>Window Flags Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-windowflags.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1499">
+ <pageWords>Audio Devices Example</pageWords>
+ <pageTitle>Audio Devices Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/multimedia-audiodevices.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1500">
+ <pageWords>Installation</pageWords>
+ <pageTitle>Installation</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/installation.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1501">
+ <pageWords>Installing Qt on X11 Platforms</pageWords>
+ <pageTitle>Installing Qt on X11 Platforms</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/install-x11.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1502">
+ <pageWords>Installing Qt on Windows</pageWords>
+ <pageTitle>Installing Qt on Windows</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/install-win.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1503">
+ <pageWords>Installing Qt on Mac OS X</pageWords>
+ <pageTitle>Installing Qt on Mac OS X</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/install-mac.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1504">
+ <pageWords>Installing Qt on Windows CE</pageWords>
+ <pageTitle>Installing Qt on Windows CE</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/install-wince.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1505">
+ <pageWords>Installing Qt on the Symbian platform from a Binary Package</pageWords>
+ <pageTitle>Installing Qt on the Symbian platform from a Binary Package</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/install-symbian-installer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1506">
+ <pageWords>Installing Qt on the Symbian platform</pageWords>
+ <pageTitle>Installing Qt on the Symbian platform</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/install-symbian.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1507">
+ <pageWords>Installing Qt on the Symbian platform using Linux (experimental)</pageWords>
+ <pageTitle>Installing Qt on the Symbian platform using Linux (experimental)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/install-symbian-linux.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1508">
+ <pageWords>General Qt Requirements</pageWords>
+ <pageTitle>General Qt Requirements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/requirements.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1509">
+ <pageWords>Qt for Windows Requirements</pageWords>
+ <pageTitle>Qt for Windows Requirements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/requirements-win.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1510">
+ <pageWords>Qt for Mac OS X Requirements</pageWords>
+ <pageTitle>Qt for Mac OS X Requirements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/requirements-mac.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1511">
+ <pageWords>Qt for X11 Requirements</pageWords>
+ <pageTitle>Qt for X11 Requirements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/requirements-x11.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1512">
+ <pageWords>Qt for Windows CE Requirements</pageWords>
+ <pageTitle>Qt for Windows CE Requirements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/requirements-wince.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1513">
+ <pageWords>Qt for Embedded Linux Requirements</pageWords>
+ <pageTitle>Qt for Embedded Linux Requirements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/requirements-embedded-linux.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1514">
+ <pageWords>Qt for the Symbian platform Requirements</pageWords>
+ <pageTitle>Qt for the Symbian platform Requirements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/requirements-symbian.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1515">
+ <pageWords>Anchor-based Layout in QML</pageWords>
+ <pageTitle>Anchor-based Layout in QML</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/anchor-layout.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1516">
+ <pageWords>Colliding Mice Example</pageWords>
+ <pageTitle>Colliding Mice Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-collidingmice.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1517">
+ <pageWords>2D Painting Example</pageWords>
+ <pageTitle>2D Painting Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-2dpainting.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1518">
+ <pageWords>Loopback Example</pageWords>
+ <pageTitle>Loopback Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-loopback.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1519">
+ <pageWords>CDE Style Widget Gallery</pageWords>
+ <pageTitle>CDE Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-cde.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1520">
+ <pageWords>Debugging QML</pageWords>
+ <pageTitle>Debugging QML</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativedebugging.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1521">
+ <pageWords>Group Box Example</pageWords>
+ <pageTitle>Group Box Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-groupbox.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1522">
+ <pageWords>Minehunt</pageWords>
+ <pageTitle>Minehunt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-minehunt.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1523">
+ <pageWords>Widgets Tutorial</pageWords>
+ <pageTitle>Widgets Tutorial</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-tutorial.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1524">
+ <pageWords>Widgets Tutorial - Creating a Window</pageWords>
+ <pageTitle>Widgets Tutorial - Creating a Window</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-widgets-toplevel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1525">
+ <pageWords>Widgets Tutorial - Child Widgets</pageWords>
+ <pageTitle>Widgets Tutorial - Child Widgets</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-widgets-childwidget.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1526">
+ <pageWords>Widgets Tutorial - Using Layouts</pageWords>
+ <pageTitle>Widgets Tutorial - Using Layouts</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-widgets-windowlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1527">
+ <pageWords>Widgets Tutorial - Nested Layouts</pageWords>
+ <pageTitle>Widgets Tutorial - Nested Layouts</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-widgets-nestedlayouts.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1528">
+ <pageWords>Simple Widget Mapper Example</pageWords>
+ <pageTitle>Simple Widget Mapper Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-simplewidgetmapper.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1529">
+ <pageWords>WebKit Frame Capture Example</pageWords>
+ <pageTitle>WebKit Frame Capture Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/webkit-framecapture.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1530">
+ <pageWords>Chart Example</pageWords>
+ <pageTitle>Chart Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-chart.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1531">
+ <pageWords>QtConcurrent Progress Dialog Example</pageWords>
+ <pageTitle>QtConcurrent Progress Dialog Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconcurrent-progressdialog.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1532">
+ <pageWords>Calculator Builder Example</pageWords>
+ <pageTitle>Calculator Builder Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-calculatorbuilder.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1533">
+ <pageWords>Snake</pageWords>
+ <pageTitle>Snake</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-snake.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1534">
+ <pageWords>Basic Graphics Layouts Example</pageWords>
+ <pageTitle>Basic Graphics Layouts Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-basicgraphicslayouts.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1535">
+ <pageWords>Getting Started Programming with Qt</pageWords>
+ <pageTitle>Getting Started Programming with Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gettingstartedqt.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1536">
+ <pageWords>Pinch Zoom Example</pageWords>
+ <pageTitle>Pinch Zoom Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/touch-pinchzoom.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1537">
+ <pageWords>Ported Canvas Example</pageWords>
+ <pageTitle>Ported Canvas Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-portedcanvas.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1538">
+ <pageWords>Star Delegate Example</pageWords>
+ <pageTitle>Star Delegate Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-stardelegate.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1539">
+ <pageWords>Two Simple Qt Widgets</pageWords>
+ <pageTitle>Two Simple Qt Widgets</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxserver-demo-multiple.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1540">
+ <pageWords>Multiple Example (ActiveQt)</pageWords>
+ <pageTitle>Multiple Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-multiple.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1541">
+ <pageWords>Soft Keys Example</pageWords>
+ <pageTitle>Soft Keys Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-softkeys.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1542">
+ <pageWords>QtWebKit Module</pageWords>
+ <pageTitle>QtWebKit Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtwebkit.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1543">
+ <pageWords>How to Use X11 Overlays with Qt</pageWords>
+ <pageTitle>How to Use X11 Overlays with Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/x11overlays.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1544">
+ <pageWords>Event Transitions Example</pageWords>
+ <pageTitle>Event Transitions Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/statemachine-eventtransitions.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1545">
+ <pageWords>Simple DOM Model Example</pageWords>
+ <pageTitle>Simple DOM Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-simpledommodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1546">
+ <pageWords>Move Blocks Example</pageWords>
+ <pageTitle>Move Blocks Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/animation-moveblocks.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1547">
+ <pageWords>Modules</pageWords>
+ <pageTitle>Modules</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativemodules.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1548">
+ <pageWords>Diagram Scene Example</pageWords>
+ <pageTitle>Diagram Scene Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-diagramscene.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1549">
+ <pageWords>QtConcurrent Image Scaling Example</pageWords>
+ <pageTitle>QtConcurrent Image Scaling Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconcurrent-imagescaling.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1550">
+ <pageWords>Qt Performance Tuning</pageWords>
+ <pageTitle>Qt Performance Tuning</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-performance.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1551">
+ <pageWords>Blocking Fortune Client Example</pageWords>
+ <pageTitle>Blocking Fortune Client Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-blockingfortuneclient.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1552">
+ <pageWords>The VNC Protocol and Qt for Embedded Linux</pageWords>
+ <pageTitle>The VNC Protocol and Qt for Embedded Linux</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-vnc.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1553">
+ <pageWords>Tutoriel &quot;Carnet d'adresses&quot;</pageWords>
+ <pageTitle>Tutoriel &quot;Carnet d'adresses&quot;</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-fr.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1554">
+ <pageWords>Carnet d'adresses 1 - Conception de l'interface utilisateur</pageWords>
+ <pageTitle>Carnet d'adresses 1 - Conception de l'interface utilisateur</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-fr-part1.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1555">
+ <pageWords>Carnet d'adresses 2 - Ajouter des adresses</pageWords>
+ <pageTitle>Carnet d'adresses 2 - Ajouter des adresses</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-fr-part2.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1556">
+ <pageWords>Carnet d'adresses 3 - Navigation entre les éléments</pageWords>
+ <pageTitle>Carnet d'adresses 3 - Navigation entre les éléments</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-fr-part3.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1557">
+ <pageWords>Carnet d'Adresses 4 - éditer et supprimer des adresses</pageWords>
+ <pageTitle>Carnet d'Adresses 4 - éditer et supprimer des adresses</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-fr-part4.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1558">
+ <pageWords>Carnet d'adresse 5 - Ajout d'une fonction de recherche</pageWords>
+ <pageTitle>Carnet d'adresse 5 - Ajout d'une fonction de recherche</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-fr-part5.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1559">
+ <pageWords>Carnet d'Adresses 6 - Sauvegarde et chargement</pageWords>
+ <pageTitle>Carnet d'Adresses 6 - Sauvegarde et chargement</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-fr-part6.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1560">
+ <pageWords>Carnet d'adresse 7 - Fonctionnalités avancées</pageWords>
+ <pageTitle>Carnet d'adresse 7 - Fonctionnalités avancées</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials-addressbook-fr-part7.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1561">
+ <pageWords>Layout Classes</pageWords>
+ <pageTitle>Layout Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/geomanagement.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1562">
+ <pageWords>Layout Management</pageWords>
+ <pageTitle>Layout Management</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/layout.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1563">
+ <pageWords>Gestures Programming</pageWords>
+ <pageTitle>Gestures Programming</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gestures-overview.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1564">
+ <pageWords>Shared Memory Example</pageWords>
+ <pageTitle>Shared Memory Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/ipc-sharedmemory.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1565">
+ <pageWords>Qt for Embedded Linux Hardware Accelerated Graphics</pageWords>
+ <pageTitle>Qt for Embedded Linux Hardware Accelerated Graphics</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embeddedlinux-accel.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1566">
+ <pageWords>Custom Sort/Filter Model Example</pageWords>
+ <pageTitle>Custom Sort/Filter Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-customsortfiltermodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1567">
+ <pageWords>Animation Framework</pageWords>
+ <pageTitle>Animation Framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/animation.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1568">
+ <pageWords>The Animation Framework</pageWords>
+ <pageTitle>The Animation Framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/animation-overview.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1569">
+ <pageWords>QML Example - Toggle Switch</pageWords>
+ <pageTitle>QML Example - Toggle Switch</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativeexampletoggleswitch.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1570">
+ <pageWords>All Modules</pageWords>
+ <pageTitle>All Modules</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/modules.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1571">
+ <pageWords>QtCore Module</pageWords>
+ <pageTitle>QtCore Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtcore.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1572">
+ <pageWords>QtGui Module</pageWords>
+ <pageTitle>QtGui Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtgui.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1573">
+ <pageWords>QtMultimedia Module</pageWords>
+ <pageTitle>QtMultimedia Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtmultimedia.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1574">
+ <pageWords>QtNetwork Module</pageWords>
+ <pageTitle>QtNetwork Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtnetwork.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1575">
+ <pageWords>QtOpenGL Module</pageWords>
+ <pageTitle>QtOpenGL Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtopengl.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1576">
+ <pageWords>QtOpenVG Module</pageWords>
+ <pageTitle>QtOpenVG Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtopenvg.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1577">
+ <pageWords>QtScript Module</pageWords>
+ <pageTitle>QtScript Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtscript.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1578">
+ <pageWords>QtScriptTools Module</pageWords>
+ <pageTitle>QtScriptTools Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtscripttools.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1579">
+ <pageWords>QtSql Module</pageWords>
+ <pageTitle>QtSql Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtsql.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1580">
+ <pageWords>QtSvg Module</pageWords>
+ <pageTitle>QtSvg Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtsvg.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1581">
+ <pageWords>QtXml Module</pageWords>
+ <pageTitle>QtXml Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtxml.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1582">
+ <pageWords>QtXmlPatterns Module</pageWords>
+ <pageTitle>QtXmlPatterns Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtxmlpatterns.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1583">
+ <pageWords>Phonon Module</pageWords>
+ <pageTitle>Phonon Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-module.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1584">
+ <pageWords>Qt3Support Module</pageWords>
+ <pageTitle>Qt3Support Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt3support.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1585">
+ <pageWords>QtDesigner Module</pageWords>
+ <pageTitle>QtDesigner Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtdesigner.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1586">
+ <pageWords>QtUiTools Module</pageWords>
+ <pageTitle>QtUiTools Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtuitools.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1587">
+ <pageWords>QtHelp Module</pageWords>
+ <pageTitle>QtHelp Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qthelp.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1588">
+ <pageWords>QtTest Module</pageWords>
+ <pageTitle>QtTest Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qttest.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1589">
+ <pageWords>QAxContainer Module</pageWords>
+ <pageTitle>QAxContainer Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxcontainer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1590">
+ <pageWords>QAxServer Module</pageWords>
+ <pageTitle>QAxServer Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxserver.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1591">
+ <pageWords>QtDBus module</pageWords>
+ <pageTitle>QtDBus module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtdbus.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1592">
+ <pageWords>The qtmain Library</pageWords>
+ <pageTitle>The qtmain Library</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtmain.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1593">
+ <pageWords>Calling Qt Functions From Unix Signal Handlers</pageWords>
+ <pageTitle>Calling Qt Functions From Unix Signal Handlers</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/unix-signals.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1594">
+ <pageWords>SQL Browser</pageWords>
+ <pageTitle>SQL Browser</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-sqlbrowser.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1595">
+ <pageWords>Qt Widget Gallery</pageWords>
+ <pageTitle>Qt Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1596">
+ <pageWords>Moving from QSA to Qt Script</pageWords>
+ <pageTitle>Moving from QSA to Qt Script</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/porting-qsa.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1597">
+ <pageWords>Finger Paint Example</pageWords>
+ <pageTitle>Finger Paint Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/touch-fingerpaint.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1598">
+ <pageWords>Qt for the Symbian platform</pageWords>
+ <pageTitle>Qt for the Symbian platform</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtsymbian.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1599">
+ <pageWords>Symbian Platform Security Requirements</pageWords>
+ <pageTitle>Symbian Platform Security Requirements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/symbian-platform-security-requirements.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1600">
+ <pageWords>The Symbian platform - Introduction to Qt</pageWords>
+ <pageTitle>The Symbian platform - Introduction to Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/symbian-with-qt-introduction.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1601">
+ <pageWords>Digital Clock Example</pageWords>
+ <pageTitle>Digital Clock Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-digitalclock.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1602">
+ <pageWords>Simple Text Viewer Example</pageWords>
+ <pageTitle>Simple Text Viewer Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/help-simpletextviewer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1603">
+ <pageWords>DOM Traversal Example</pageWords>
+ <pageTitle>DOM Traversal Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/webkit-domtraversal.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1604">
+ <pageWords>QtDeclarative Module</pageWords>
+ <pageTitle>QtDeclarative Module</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtdeclarative.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1605">
+ <pageWords>Video Widget Example</pageWords>
+ <pageTitle>Video Widget Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/multimedia-videowidget.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1606">
+ <pageWords>Validators Example</pageWords>
+ <pageTitle>Validators Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-validators.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1607">
+ <pageWords>QML Web Browser</pageWords>
+ <pageTitle>QML Web Browser</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-webbrowser.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1608">
+ <pageWords>Weather Info Demonstration</pageWords>
+ <pageTitle>Weather Info Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-weatherinfo.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1609">
+ <pageWords>Anchor Layout Example</pageWords>
+ <pageTitle>Anchor Layout Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-anchorlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1610">
+ <pageWords>Style Plugin Example</pageWords>
+ <pageTitle>Style Plugin Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-styleplugin.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1611">
+ <pageWords>Flickr Mobile</pageWords>
+ <pageTitle>Flickr Mobile</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-flickr.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1612">
+ <pageWords>Drag and Drop</pageWords>
+ <pageTitle>Drag and Drop</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dnd.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1613">
+ <pageWords>Extending QML in C++</pageWords>
+ <pageTitle>Extending QML in C++</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-extending.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1614">
+ <pageWords>Extending types from QML</pageWords>
+ <pageTitle>Extending types from QML</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-extending-types.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1615">
+ <pageWords>QtConcurrent Word Count Example</pageWords>
+ <pageTitle>QtConcurrent Word Count Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconcurrent-wordcount.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1616">
+ <pageWords>OpenGL in an HTML page</pageWords>
+ <pageTitle>OpenGL in an HTML page</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxserver-demo-opengl.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1617">
+ <pageWords>OpenGL Example (ActiveQt)</pageWords>
+ <pageTitle>OpenGL Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-opengl.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1618">
+ <pageWords>Qt for Mac OS X - Specific Issues</pageWords>
+ <pageTitle>Qt for Mac OS X - Specific Issues</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mac-differences.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1619">
+ <pageWords>Contributions to the Following QtGui Files: qapplication_cocoa_p.h, qapplication_mac.mm, qdesktopwidget_mac.mm qeventdispatcher_mac.mm qeventdispatcher_mac_p.h qmacincludes_mac.h qt_cocoa_helpers.mm qt_cocoa_helpers_p.h qwidget_mac.mm qsystemtrayicon_mac.mm</pageWords>
+ <pageTitle>Contributions to the Following QtGui Files: qapplication_cocoa_p.h, qapplication_mac.mm, qdesktopwidget_mac.mm qeventdispatcher_mac.mm qeventdispatcher_mac_p.h qmacincludes_mac.h qt_cocoa_helpers.mm qt_cocoa_helpers_p.h qwidget_mac.mm qsystemtrayicon_mac.mm</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-mac-cocoa-licensing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1620">
+ <pageWords>Thanks!</pageWords>
+ <pageTitle>Thanks!</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/credits.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1621">
+ <pageWords>Delayed Encoding Example</pageWords>
+ <pageTitle>Delayed Encoding Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/draganddrop-delayedencoding.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1622">
+ <pageWords>40000 Chips</pageWords>
+ <pageTitle>40000 Chips</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-chip.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1623">
+ <pageWords>Gradients</pageWords>
+ <pageTitle>Gradients</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-gradients.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1624">
+ <pageWords>Drill Down Example</pageWords>
+ <pageTitle>Drill Down Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-drilldown.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1625">
+ <pageWords>Restoring a Window's Geometry</pageWords>
+ <pageTitle>Restoring a Window's Geometry</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/restoring-geometry.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1626">
+ <pageWords>Grabber Example</pageWords>
+ <pageTitle>Grabber Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-grabber.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1627">
+ <pageWords>makeqpf</pageWords>
+ <pageTitle>makeqpf</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-makeqpf.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1628">
+ <pageWords>Porting to Qt 4 - Drag and Drop</pageWords>
+ <pageTitle>Porting to Qt 4 - Drag and Drop</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/porting4-dnd.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1629">
+ <pageWords>Traffic Light Example</pageWords>
+ <pageTitle>Traffic Light Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/statemachine-trafficlight.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1630">
+ <pageWords>Text Edit</pageWords>
+ <pageTitle>Text Edit</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-textedit.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1631">
+ <pageWords>Ray Casting Demonstration</pageWords>
+ <pageTitle>Ray Casting Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-raycasting.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1632">
+ <pageWords>Widgets and Layouts</pageWords>
+ <pageTitle>Widgets and Layouts</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-and-layouts.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1633">
+ <pageWords>Advanced Widgets</pageWords>
+ <pageTitle>Advanced Widgets</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/advanced.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1634">
+ <pageWords>Abstract Widget Classes</pageWords>
+ <pageTitle>Abstract Widget Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/abstractwidgets.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1635">
+ <pageWords>Basic Widgets</pageWords>
+ <pageTitle>Basic Widgets</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/basicwidgets.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1636">
+ <pageWords>Organizers</pageWords>
+ <pageTitle>Organizers</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/organizers.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1637">
+ <pageWords>Wait Conditions Example</pageWords>
+ <pageTitle>Wait Conditions Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-waitconditions.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1638">
+ <pageWords>Text Object Example</pageWords>
+ <pageTitle>Text Object Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-textobject.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1639">
+ <pageWords>Two-way Button Example</pageWords>
+ <pageTitle>Two-way Button Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/statemachine-twowaybutton.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1640">
+ <pageWords>Standard Dialog Classes</pageWords>
+ <pageTitle>Standard Dialog Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/standard-dialogs.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1641">
+ <pageWords>Classes for Building Dialogs</pageWords>
+ <pageTitle>Classes for Building Dialogs</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialog-classes.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1642">
+ <pageWords>Dialog Windows</pageWords>
+ <pageTitle>Dialog Windows</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1643">
+ <pageWords>Porting Guides</pageWords>
+ <pageTitle>Porting Guides</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/porting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1644">
+ <pageWords>Porting to Qt 4</pageWords>
+ <pageTitle>Porting to Qt 4</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/porting4.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1645">
+ <pageWords>Porting to Qt 4 - Virtual Functions</pageWords>
+ <pageTitle>Porting to Qt 4 - Virtual Functions</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/porting4-virtual-functions.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1646">
+ <pageWords>Fancy Browser Example</pageWords>
+ <pageTitle>Fancy Browser Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/webkit-fancybrowser.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1647">
+ <pageWords>Accelerated Graphics Driver Example</pageWords>
+ <pageTitle>Accelerated Graphics Driver Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qws-svgalib.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1648">
+ <pageWords>License Wizard Example</pageWords>
+ <pageTitle>License Wizard Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-licensewizard.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1649">
+ <pageWords>Hello GL ES Example</pageWords>
+ <pageTitle>Hello GL ES Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-hellogl-es.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1650">
+ <pageWords>Qt Style Sheets</pageWords>
+ <pageTitle>Qt Style Sheets</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/stylesheet.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1651">
+ <pageWords>The Style Sheet Syntax</pageWords>
+ <pageTitle>The Style Sheet Syntax</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/stylesheet-syntax.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1652">
+ <pageWords>Qt Designer Integration</pageWords>
+ <pageTitle>Qt Designer Integration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/stylesheet-designer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1653">
+ <pageWords>Customizing Qt Widgets Using Style Sheets</pageWords>
+ <pageTitle>Customizing Qt Widgets Using Style Sheets</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/stylesheet-customizing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1654">
+ <pageWords>Qt Style Sheets Reference</pageWords>
+ <pageTitle>Qt Style Sheets Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/stylesheet-reference.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1655">
+ <pageWords>Qt Style Sheets Examples</pageWords>
+ <pageTitle>Qt Style Sheets Examples</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/stylesheet-examples.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1656">
+ <pageWords>Web Browser</pageWords>
+ <pageTitle>Web Browser</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-browser.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1657">
+ <pageWords>Embedded SVG Viewer Demonstration</pageWords>
+ <pageTitle>Embedded SVG Viewer Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-embeddedsvgviewer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1658">
+ <pageWords>Deploying Plugins</pageWords>
+ <pageTitle>Deploying Plugins</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/deployment-plugins.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1659">
+ <pageWords>IDC - The Interface Description Compiler (ActiveQt)</pageWords>
+ <pageTitle>IDC - The Interface Description Compiler (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-idc.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1660">
+ <pageWords>Basic Drawing Example</pageWords>
+ <pageTitle>Basic Drawing Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-basicdrawing.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1661">
+ <pageWords>Accessibility Classes</pageWords>
+ <pageTitle>Accessibility Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/accessibility.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1662">
+ <pageWords>Accessibility</pageWords>
+ <pageTitle>Accessibility</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/accessible.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1663">
+ <pageWords>Context-Sensitive Help Example</pageWords>
+ <pageTitle>Context-Sensitive Help Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/help-contextsensitivehelp.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1664">
+ <pageWords>Qt for Embedded Linux and OpenVG</pageWords>
+ <pageTitle>Qt for Embedded Linux and OpenVG</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embeddedlinux-openvg.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1665">
+ <pageWords>Spin Boxes Example</pageWords>
+ <pageTitle>Spin Boxes Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-spinboxes.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1666">
+ <pageWords>Weather Anchor Layout Example</pageWords>
+ <pageTitle>Weather Anchor Layout Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-weatheranchorlayout.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1667">
+ <pageWords>Using ActiveX controls and COM in Qt</pageWords>
+ <pageTitle>Using ActiveX controls and COM in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-container.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1668">
+ <pageWords>Combo Widget Mapper Example</pageWords>
+ <pageTitle>Combo Widget Mapper Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-combowidgetmapper.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1669">
+ <pageWords>SVG Generator Example</pageWords>
+ <pageTitle>SVG Generator Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-svggenerator.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1670">
+ <pageWords>Textures Example</pageWords>
+ <pageTitle>Textures Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-textures.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1671">
+ <pageWords>Qt is Mac OS X Native</pageWords>
+ <pageTitle>Qt is Mac OS X Native</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtmac-as-native.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1672">
+ <pageWords>Factorial States Example</pageWords>
+ <pageTitle>Factorial States Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/statemachine-factorial.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1673">
+ <pageWords>Broadcast Sender Example</pageWords>
+ <pageTitle>Broadcast Sender Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-broadcastsender.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1674">
+ <pageWords>Windows Vista Style Widget Gallery</pageWords>
+ <pageTitle>Windows Vista Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-windowsvista.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1675">
+ <pageWords>Qt Widget Hierarchy</pageWords>
+ <pageTitle>Qt Widget Hierarchy</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qaxserver-demo-hierarchy.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1676">
+ <pageWords>Hierarchy Example (ActiveQt)</pageWords>
+ <pageTitle>Hierarchy Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-hierarchy.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1677">
+ <pageWords>The Interview Framework</pageWords>
+ <pageTitle>The Interview Framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-interview.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1678">
+ <pageWords>The dumpcpp Tool (ActiveQt)</pageWords>
+ <pageTitle>The dumpcpp Tool (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-dumpcpp.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1679">
+ <pageWords>Serializing Qt Data Types</pageWords>
+ <pageTitle>Serializing Qt Data Types</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/datastreamformat.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1680">
+ <pageWords>QML Basic Types</pageWords>
+ <pageTitle>QML Basic Types</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativebasictypes.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1681">
+ <pageWords>The Virtual Framebuffer</pageWords>
+ <pageTitle>The Virtual Framebuffer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qvfb.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1682">
+ <pageWords>Double Buffered Graphics Driver Example</pageWords>
+ <pageTitle>Double Buffered Graphics Driver Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qws-dbscreen.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1683">
+ <pageWords>Qt Editions</pageWords>
+ <pageTitle>Qt Editions</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/editions.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1684">
+ <pageWords>Tutorials</pageWords>
+ <pageTitle>Tutorials</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tutorials.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1685">
+ <pageWords>Input Panel Example</pageWords>
+ <pageTitle>Input Panel Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-inputpanel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1686">
+ <pageWords>Compiler Notes</pageWords>
+ <pageTitle>Compiler Notes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/compiler-notes.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1687">
+ <pageWords>Class and Function Documentation</pageWords>
+ <pageTitle>Class and Function Documentation</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/classlists.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1688">
+ <pageWords>All Classes</pageWords>
+ <pageTitle>All Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/classes.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1689">
+ <pageWords>Annotated Class List</pageWords>
+ <pageTitle>Annotated Class List</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/annotated.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1690">
+ <pageWords>Groups Of Related Classes</pageWords>
+ <pageTitle>Groups Of Related Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/groups.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1691">
+ <pageWords>Inheritance Hierarchy</pageWords>
+ <pageTitle>Inheritance Hierarchy</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/hierarchy.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1692">
+ <pageWords>Obsolete Classes</pageWords>
+ <pageTitle>Obsolete Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/obsoleteclasses.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1693">
+ <pageWords>Qt3 Support Classes</pageWords>
+ <pageTitle>Qt3 Support Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/compatclasses.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1694">
+ <pageWords>All Functions</pageWords>
+ <pageTitle>All Functions</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/functions.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1695">
+ <pageWords>All Namespaces</pageWords>
+ <pageTitle>All Namespaces</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/namespaces.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1696">
+ <pageWords>Standard Accelerator Keys</pageWords>
+ <pageTitle>Standard Accelerator Keys</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/accelerators.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1697">
+ <pageWords>A Short Path to XQuery</pageWords>
+ <pageTitle>A Short Path to XQuery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xquery-introduction.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1698">
+ <pageWords>Mac Main Window Demo</pageWords>
+ <pageTitle>Mac Main Window Demo</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-macmainwindow.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1699">
+ <pageWords>The New Qt Designer</pageWords>
+ <pageTitle>The New Qt Designer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-designer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1700">
+ <pageWords>Pixel Buffers 2 Example</pageWords>
+ <pageTitle>Pixel Buffers 2 Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-pbuffers2.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1701">
+ <pageWords>D-Bus Remote Controlled Car Example</pageWords>
+ <pageTitle>D-Bus Remote Controlled Car Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dbus-remotecontrolledcar.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1702">
+ <pageWords>Main Window and Related Classes</pageWords>
+ <pageTitle>Main Window and Related Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mainwindow-classes.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1703">
+ <pageWords>Window and Dialog Widgets</pageWords>
+ <pageTitle>Window and Dialog Widgets</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/application-windows.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1704">
+ <pageWords>Application Main Window</pageWords>
+ <pageTitle>Application Main Window</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mainwindow.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1705">
+ <pageWords>Embedded Desktop Services Demonstration</pageWords>
+ <pageTitle>Embedded Desktop Services Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-desktopservices.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1706">
+ <pageWords>Secure Sockets Layer (SSL) Classes</pageWords>
+ <pageTitle>Secure Sockets Layer (SSL) Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/ssl.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1707">
+ <pageWords>Porting to Graphics View</pageWords>
+ <pageTitle>Porting to Graphics View</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-porting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1708">
+ <pageWords>QML Reference</pageWords>
+ <pageTitle>QML Reference</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativereference.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1709">
+ <pageWords>Inter-Process Communication in Qt</pageWords>
+ <pageTitle>Inter-Process Communication in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/ipc.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1710">
+ <pageWords>Composition Modes</pageWords>
+ <pageTitle>Composition Modes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-composition.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1711">
+ <pageWords>XML Stream Lint Example</pageWords>
+ <pageTitle>XML Stream Lint Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-xmlstreamlint.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1712">
+ <pageWords>Mandelbrot Example</pageWords>
+ <pageTitle>Mandelbrot Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-mandelbrot.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1713">
+ <pageWords>Sample Buffers Example</pageWords>
+ <pageTitle>Sample Buffers Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-samplebuffers.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1714">
+ <pageWords>State Machine Classes</pageWords>
+ <pageTitle>State Machine Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/statemachine.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1715">
+ <pageWords>The State Machine Framework</pageWords>
+ <pageTitle>The State Machine Framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/statemachine-api.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1716">
+ <pageWords>Macintosh Style Widget Gallery</pageWords>
+ <pageTitle>Macintosh Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-macintosh.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1717">
+ <pageWords>Getting Started Guides</pageWords>
+ <pageTitle>Getting Started Guides</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gettingstarted.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1718">
+ <pageWords>Font Sampler Example</pageWords>
+ <pageTitle>Font Sampler Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-fontsampler.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1719">
+ <pageWords>Using qt.conf</pageWords>
+ <pageTitle>Using qt.conf</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-conf.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1720">
+ <pageWords>Fortune Client Example</pageWords>
+ <pageTitle>Fortune Client Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-fortuneclient.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1721">
+ <pageWords>Deploying Qt Applications</pageWords>
+ <pageTitle>Deploying Qt Applications</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/deployment.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1722">
+ <pageWords>Deploying an Application on X11 Platforms</pageWords>
+ <pageTitle>Deploying an Application on X11 Platforms</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/deployment-x11.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1723">
+ <pageWords>Deploying an Application on Windows</pageWords>
+ <pageTitle>Deploying an Application on Windows</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/deployment-windows.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1724">
+ <pageWords>Deploying an Application on Mac OS X</pageWords>
+ <pageTitle>Deploying an Application on Mac OS X</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/deployment-mac.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1725">
+ <pageWords>Deploying an Application on the Symbian platform</pageWords>
+ <pageTitle>Deploying an Application on the Symbian platform</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/deployment-symbian.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1726">
+ <pageWords>Windows XP Style Widget Gallery</pageWords>
+ <pageTitle>Windows XP Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-windowsxp.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1727">
+ <pageWords>Image Viewer Example</pageWords>
+ <pageTitle>Image Viewer Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-imageviewer.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1728">
+ <pageWords>Task Menu Extension Example</pageWords>
+ <pageTitle>Task Menu Extension Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/designer-taskmenuextension.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1729">
+ <pageWords>The QtWebKit Bridge</pageWords>
+ <pageTitle>The QtWebKit Bridge</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtwebkit-bridge.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1730">
+ <pageWords>Image Composition Example</pageWords>
+ <pageTitle>Image Composition Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-imagecomposition.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1731">
+ <pageWords>Desktop Integration</pageWords>
+ <pageTitle>Desktop Integration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/desktop-integration.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1732">
+ <pageWords>SAX Bookmarks Example</pageWords>
+ <pageTitle>SAX Bookmarks Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-saxbookmarks.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1733">
+ <pageWords>Overpainting Example</pageWords>
+ <pageTitle>Overpainting Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-overpainting.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1734">
+ <pageWords>Complex Ping Pong Example</pageWords>
+ <pageTitle>Complex Ping Pong Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dbus-complexpingpong.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1735">
+ <pageWords>Database Classes</pageWords>
+ <pageTitle>Database Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/database.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1736">
+ <pageWords>SQL Programming</pageWords>
+ <pageTitle>SQL Programming</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-programming.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1737">
+ <pageWords>Connecting to Databases</pageWords>
+ <pageTitle>Connecting to Databases</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-connecting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1738">
+ <pageWords>Executing SQL Statements</pageWords>
+ <pageTitle>Executing SQL Statements</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-sqlstatements.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1739">
+ <pageWords>Using the SQL Model Classes</pageWords>
+ <pageTitle>Using the SQL Model Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-model.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1740">
+ <pageWords>Presenting Data in a Table View</pageWords>
+ <pageTitle>Presenting Data in a Table View</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-presenting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1741">
+ <pageWords>Creating Data-Aware Forms</pageWords>
+ <pageTitle>Creating Data-Aware Forms</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-forms.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1742">
+ <pageWords>Capabilities Example</pageWords>
+ <pageTitle>Capabilities Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/phonon-capabilities.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1743">
+ <pageWords>The Tulip Container Classes</pageWords>
+ <pageTitle>The Tulip Container Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-tulip.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1744">
+ <pageWords>Audio Output Example</pageWords>
+ <pageTitle>Audio Output Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/multimedia-audiooutput.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1745">
+ <pageWords>XML Schema Validation Example</pageWords>
+ <pageTitle>XML Schema Validation Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xmlpatterns-schema.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1746">
+ <pageWords>Timers</pageWords>
+ <pageTitle>Timers</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/timers.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1747">
+ <pageWords>Tools for ActiveQt</pageWords>
+ <pageTitle>Tools for ActiveQt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-tools.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1748">
+ <pageWords>Qt's ActiveX Framework (ActiveQt)</pageWords>
+ <pageTitle>Qt's ActiveX Framework (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1749">
+ <pageWords>Painting Classes</pageWords>
+ <pageTitle>Painting Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1750">
+ <pageWords>Rendering in 3D</pageWords>
+ <pageTitle>Rendering in 3D</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-3d.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1751">
+ <pageWords>Paint System</pageWords>
+ <pageTitle>Paint System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/paintsystem.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1752">
+ <pageWords>Paint Devices and Backends</pageWords>
+ <pageTitle>Paint Devices and Backends</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/paintsystem-devices.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1753">
+ <pageWords>Drawing and Filling</pageWords>
+ <pageTitle>Drawing and Filling</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/paintsystem-drawing.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1754">
+ <pageWords>Reading and Writing Image Files</pageWords>
+ <pageTitle>Reading and Writing Image Files</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/paintsystem-images.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1755">
+ <pageWords>Styling</pageWords>
+ <pageTitle>Styling</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/paintsystem-styling.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1756">
+ <pageWords>Qt for Embedded Linux Display Management</pageWords>
+ <pageTitle>Qt for Embedded Linux Display Management</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-displaymanagement.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1757">
+ <pageWords>Qt for Windows CE and OpenVG</pageWords>
+ <pageTitle>Qt for Windows CE and OpenVG</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/windowsce-openvg.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1758">
+ <pageWords>QML for Qt Programmers</pageWords>
+ <pageTitle>QML for Qt Programmers</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtprogrammers.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1759">
+ <pageWords>Integrating QML with existing Qt UI code</pageWords>
+ <pageTitle>Integrating QML with existing Qt UI code</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-integration.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1760">
+ <pageWords>QML Tutorial</pageWords>
+ <pageTitle>QML Tutorial</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-tutorial.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1761">
+ <pageWords>QML Tutorial 1 - Basic Types</pageWords>
+ <pageTitle>QML Tutorial 1 - Basic Types</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-tutorial1.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1762">
+ <pageWords>QML Tutorial 2 - QML Components</pageWords>
+ <pageTitle>QML Tutorial 2 - QML Components</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-tutorial2.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1763">
+ <pageWords>QML Tutorial 3 - States and Transitions</pageWords>
+ <pageTitle>QML Tutorial 3 - States and Transitions</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-tutorial3.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1764">
+ <pageWords>Interview</pageWords>
+ <pageTitle>Interview</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-interview.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1765">
+ <pageWords>The Arthur Paint System</pageWords>
+ <pageTitle>The Arthur Paint System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-arthur.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1766">
+ <pageWords>Help System</pageWords>
+ <pageTitle>Help System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/helpsystem.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1767">
+ <pageWords>The Qt Help Framework</pageWords>
+ <pageTitle>The Qt Help Framework</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qthelp-framework.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1768">
+ <pageWords>Qt Help Project</pageWords>
+ <pageTitle>Qt Help Project</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qthelpproject.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1769">
+ <pageWords>Network Chat Example</pageWords>
+ <pageTitle>Network Chat Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-network-chat.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1770">
+ <pageWords>Qt for Embedded Linux Classes</pageWords>
+ <pageTitle>Qt for Embedded Linux Classes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qws.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1771">
+ <pageWords>Qt for Embedded Linux</pageWords>
+ <pageTitle>Qt for Embedded Linux</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-linux.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1772">
+ <pageWords>D-Bus List Names Example</pageWords>
+ <pageTitle>D-Bus List Names Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dbus-listnames.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1773">
+ <pageWords>Framebuffer Object Example</pageWords>
+ <pageTitle>Framebuffer Object Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-framebufferobject.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1774">
+ <pageWords>User Interface Compiler (uic)</pageWords>
+ <pageTitle>User Interface Compiler (uic)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/uic.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1775">
+ <pageWords>Using QtDBus Adaptors</pageWords>
+ <pageTitle>Using QtDBus Adaptors</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/usingadaptors.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1776">
+ <pageWords>D-Bus Adaptor Example</pageWords>
+ <pageTitle>D-Bus Adaptor Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusadaptorexample.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1777">
+ <pageWords>Declaring Slots in D-Bus Adaptors</pageWords>
+ <pageTitle>Declaring Slots in D-Bus Adaptors</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusdeclaringslots.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1778">
+ <pageWords>Declaring Signals in D-Bus Adaptors</pageWords>
+ <pageTitle>Declaring Signals in D-Bus Adaptors</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbusdeclaringsignals.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1779">
+ <pageWords>The QtDBus Type System</pageWords>
+ <pageTitle>The QtDBus Type System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdbustypesystem.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1780">
+ <pageWords>Open Source Versions of Qt</pageWords>
+ <pageTitle>Open Source Versions of Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opensourceedition.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1781">
+ <pageWords>Using the Meta-Object Compiler (moc)</pageWords>
+ <pageTitle>Using the Meta-Object Compiler (moc)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/moc.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1782">
+ <pageWords>SQL Widget Mapper Example</pageWords>
+ <pageTitle>SQL Widget Mapper Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-sqlwidgetmapper.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1783">
+ <pageWords>Arrow Pad Example</pageWords>
+ <pageTitle>Arrow Pad Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/linguist-arrowpad.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1784">
+ <pageWords>Regular Expressions Example</pageWords>
+ <pageTitle>Regular Expressions Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-regexp.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1785">
+ <pageWords>FTP Example</pageWords>
+ <pageTitle>FTP Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-qftp.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1786">
+ <pageWords>Query Model Example</pageWords>
+ <pageTitle>Query Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-querymodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1787">
+ <pageWords>Creating QtScript Extensions</pageWords>
+ <pageTitle>Creating QtScript Extensions</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtscriptextensions.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1788">
+ <pageWords>Thread Support in Qt 4</pageWords>
+ <pageTitle>Thread Support in Qt 4</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt4-threads.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1789">
+ <pageWords>Drag and Drop Puzzle Example</pageWords>
+ <pageTitle>Drag and Drop Puzzle Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/draganddrop-puzzle.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1790">
+ <pageWords>Address Book Example</pageWords>
+ <pageTitle>Address Book Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-addressbook.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1791">
+ <pageWords>Ping Pong States Example</pageWords>
+ <pageTitle>Ping Pong States Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/statemachine-pingpong.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1792">
+ <pageWords>Resource Compiler (rcc)</pageWords>
+ <pageTitle>Resource Compiler (rcc)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/rcc.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1793">
+ <pageWords>Flight Info Demonstration</pageWords>
+ <pageTitle>Flight Info Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-flightinfo.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1794">
+ <pageWords>Motif Style Widget Gallery</pageWords>
+ <pageTitle>Motif Style Widget Gallery</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/gallery-motif.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1795">
+ <pageWords>Dir View Example</pageWords>
+ <pageTitle>Dir View Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-dirview.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1796">
+ <pageWords>Hardware Acceleration &amp;amp Embedded Platforms.</pageWords>
+ <pageTitle>Hardware Acceleration &amp;amp Embedded Platforms.</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/hwacc-rendering.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1797">
+ <pageWords>Vector Deformation</pageWords>
+ <pageTitle>Vector Deformation</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-deform.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1798">
+ <pageWords>Supported Platforms</pageWords>
+ <pageTitle>Supported Platforms</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/supported-platforms.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1799">
+ <pageWords>Default Prototypes Example</pageWords>
+ <pageTitle>Default Prototypes Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-defaultprototypes.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1800">
+ <pageWords>QTestLib Manual</pageWords>
+ <pageTitle>QTestLib Manual</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtestlib-manual.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1801">
+ <pageWords>QTestLib Tutorial</pageWords>
+ <pageTitle>QTestLib Tutorial</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtestlib-tutorial.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1802">
+ <pageWords>Chapter 1: Writing a Unit Test</pageWords>
+ <pageTitle>Chapter 1: Writing a Unit Test</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtestlib-tutorial1.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1803">
+ <pageWords>Chapter 2: Data Driven Testing</pageWords>
+ <pageTitle>Chapter 2: Data Driven Testing</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtestlib-tutorial2.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1804">
+ <pageWords>Chapter 3: Simulating GUI Events</pageWords>
+ <pageTitle>Chapter 3: Simulating GUI Events</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtestlib-tutorial3.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1805">
+ <pageWords>Chapter 4: Replaying GUI Events</pageWords>
+ <pageTitle>Chapter 4: Replaying GUI Events</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtestlib-tutorial4.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1806">
+ <pageWords>Chapter 5: Writing a Benchmark</pageWords>
+ <pageTitle>Chapter 5: Writing a Benchmark</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtestlib-tutorial5.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1807">
+ <pageWords>Framebuffer Object 2 Example</pageWords>
+ <pageTitle>Framebuffer Object 2 Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/opengl-framebufferobject2.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1808">
+ <pageWords>Pad Navigator Example</pageWords>
+ <pageTitle>Pad Navigator Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/graphicsview-padnavigator.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1809">
+ <pageWords>Line Edits Example</pageWords>
+ <pageTitle>Line Edits Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-lineedits.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1810">
+ <pageWords>Same Game</pageWords>
+ <pageTitle>Same Game</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-declarative-samegame.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1811">
+ <pageWords>Books about GUI Design</pageWords>
+ <pageTitle>Books about GUI Design</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/guibooks.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1812">
+ <pageWords>Context2D Example</pageWords>
+ <pageTitle>Context2D Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-context2d.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1813">
+ <pageWords>Beginning Qt Quick</pageWords>
+ <pageTitle>Beginning Qt Quick</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-intro.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1814">
+ <pageWords>Qt Assistant Manual</pageWords>
+ <pageTitle>Qt Assistant Manual</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/assistant-manual.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1815">
+ <pageWords>Qt Assistant in More Detail</pageWords>
+ <pageTitle>Qt Assistant in More Detail</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/assistant-details.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1816">
+ <pageWords>Using Qt Assistant as a Custom Help Viewer</pageWords>
+ <pageTitle>Using Qt Assistant as a Custom Help Viewer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/assistant-custom-help-viewer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1817">
+ <pageWords>Multiple Inheritance Example</pageWords>
+ <pageTitle>Multiple Inheritance Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/uitools-multipleinheritance.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1818">
+ <pageWords>Qt for Embedded Linux and OpenGL</pageWords>
+ <pageTitle>Qt for Embedded Linux and OpenGL</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embeddedlinux-opengl.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1819">
+ <pageWords>Testing the Linux Framebuffer</pageWords>
+ <pageTitle>Testing the Linux Framebuffer</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-testingframebuffer.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1820">
+ <pageWords>I18N Example</pageWords>
+ <pageTitle>I18N Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-i18n.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1821">
+ <pageWords>Embedded Styles Demonstration</pageWords>
+ <pageTitle>Embedded Styles Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-styledemo.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1822">
+ <pageWords>Trivial Wizard Example</pageWords>
+ <pageTitle>Trivial Wizard Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-trivialwizard.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1823">
+ <pageWords>Scripting Classes and Overviews</pageWords>
+ <pageTitle>Scripting Classes and Overviews</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1824">
+ <pageWords>Making Applications Scriptable</pageWords>
+ <pageTitle>Making Applications Scriptable</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/scripting.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1825">
+ <pageWords>Semaphores Example</pageWords>
+ <pageTitle>Semaphores Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/threads-semaphores.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1826">
+ <pageWords>kmap2qmap</pageWords>
+ <pageTitle>kmap2qmap</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-kmap2qmap.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1827">
+ <pageWords>Code Editor Example</pageWords>
+ <pageTitle>Code Editor Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-codeeditor.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1828">
+ <pageWords>Fine-Tuning Features in Qt</pageWords>
+ <pageTitle>Fine-Tuning Features in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/fine-tuning-features.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1829">
+ <pageWords>System Tray Icon Example</pageWords>
+ <pageTitle>System Tray Icon Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/desktop-systray.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1830">
+ <pageWords>DOM Bookmarks Example</pageWords>
+ <pageTitle>DOM Bookmarks Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-dombookmarks.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1831">
+ <pageWords>Adding an Accelerated Graphics Driver to Qt for Embedded Linux</pageWords>
+ <pageTitle>Adding an Accelerated Graphics Driver to Qt for Embedded Linux</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-accel.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1832">
+ <pageWords>Spin Box Delegate Example</pageWords>
+ <pageTitle>Spin Box Delegate Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-spinboxdelegate.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1833">
+ <pageWords>QML Advanced Tutorial</pageWords>
+ <pageTitle>QML Advanced Tutorial</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qml-advtutorial.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1834">
+ <pageWords>QML Advanced Tutorial 1 - Creating the Game Canvas and Blocks</pageWords>
+ <pageTitle>QML Advanced Tutorial 1 - Creating the Game Canvas and Blocks</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-samegame-samegame1.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1835">
+ <pageWords>QML Advanced Tutorial 2 - Populating the Game Canvas</pageWords>
+ <pageTitle>QML Advanced Tutorial 2 - Populating the Game Canvas</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-samegame-samegame2.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1836">
+ <pageWords>QML Advanced Tutorial 3 - Implementing the Game Logic</pageWords>
+ <pageTitle>QML Advanced Tutorial 3 - Implementing the Game Logic</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-samegame-samegame3.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1837">
+ <pageWords>QML Advanced Tutorial 4 - Finishing Touches</pageWords>
+ <pageTitle>QML Advanced Tutorial 4 - Finishing Touches</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/declarative-tutorials-samegame-samegame4.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1838">
+ <pageWords>Fluid Launcher Demonstration</pageWords>
+ <pageTitle>Fluid Launcher Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-fluidlauncher.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1839">
+ <pageWords>Basic Sort/Filter Model Example</pageWords>
+ <pageTitle>Basic Sort/Filter Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-basicsortfiltermodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1840">
+ <pageWords>Keyboard Focus in QML</pageWords>
+ <pageTitle>Keyboard Focus in QML</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativefocus.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1841">
+ <pageWords>Creating Custom Qt Types</pageWords>
+ <pageTitle>Creating Custom Qt Types</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/custom-types.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1842">
+ <pageWords>Fortune Server Example</pageWords>
+ <pageTitle>Fortune Server Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-fortuneserver.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1843">
+ <pageWords>Calendar Example</pageWords>
+ <pageTitle>Calendar Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/richtext-calendar.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1844">
+ <pageWords>Torrent Example</pageWords>
+ <pageTitle>Torrent Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-torrent.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1845">
+ <pageWords>Building ActiveX servers in Qt</pageWords>
+ <pageTitle>Building ActiveX servers in Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-server.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1846">
+ <pageWords>Color Editor Factory Example</pageWords>
+ <pageTitle>Color Editor Factory Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-coloreditorfactory.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1847">
+ <pageWords>Tablet Example</pageWords>
+ <pageTitle>Tablet Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-tablet.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1848">
+ <pageWords>Editable Tree Model Example</pageWords>
+ <pageTitle>Editable Tree Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/itemviews-editabletreemodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1849">
+ <pageWords>Cross Platform Development with Qt</pageWords>
+ <pageTitle>Cross Platform Development with Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/developing-with-qt.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1850">
+ <pageWords>Text Finder Example</pageWords>
+ <pageTitle>Text Finder Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/uitools-textfinder.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1851">
+ <pageWords>XML HTML Info Example</pageWords>
+ <pageTitle>XML HTML Info Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xml-htmlinfo.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1852">
+ <pageWords>COM App Example (ActiveQt)</pageWords>
+ <pageTitle>COM App Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-comapp.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1853">
+ <pageWords>Dot Net Example (ActiveQt)</pageWords>
+ <pageTitle>Dot Net Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-dotnet.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1854">
+ <pageWords>Tree Model Completer Example</pageWords>
+ <pageTitle>Tree Model Completer Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-treemodelcompleter.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1855">
+ <pageWords>Find Files Example</pageWords>
+ <pageTitle>Find Files Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-findfiles.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1856">
+ <pageWords>Sliders Example</pageWords>
+ <pageTitle>Sliders Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-sliders.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1857">
+ <pageWords>Window System Specific Notes</pageWords>
+ <pageTitle>Window System Specific Notes</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/winsystem.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1858">
+ <pageWords>Concentric Circles Example</pageWords>
+ <pageTitle>Concentric Circles Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/painting-concentriccircles.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1859">
+ <pageWords>Extension Example</pageWords>
+ <pageTitle>Extension Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/dialogs-extension.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1860">
+ <pageWords>How to Learn Qt</pageWords>
+ <pageTitle>How to Learn Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/how-to-learn-qt.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1861">
+ <pageWords>Installing Qt on Embedded Linux</pageWords>
+ <pageTitle>Installing Qt on Embedded Linux</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embedded-install.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1862">
+ <pageWords>Undo Framework Example</pageWords>
+ <pageTitle>Undo Framework Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-undoframework.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1863">
+ <pageWords>C++ Source Code Analyzer Example</pageWords>
+ <pageTitle>C++ Source Code Analyzer Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xmlpatterns-xquery-globalvariables.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1864">
+ <pageWords>Keyboard Focus</pageWords>
+ <pageTitle>Keyboard Focus</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/focus.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1865">
+ <pageWords>QObject XML Model Example</pageWords>
+ <pageTitle>QObject XML Model Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xmlpatterns-qobjectxmlmodel.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1866">
+ <pageWords>The Meta-Object System</pageWords>
+ <pageTitle>The Meta-Object System</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/metaobjects.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1867">
+ <pageWords>Signals &amp; Slots</pageWords>
+ <pageTitle>Signals &amp; Slots</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/signalsandslots.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1868">
+ <pageWords>Platform Notes - VxWorks</pageWords>
+ <pageTitle>Platform Notes - VxWorks</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes-vxworks.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1869">
+ <pageWords>Platform Notes - QNX</pageWords>
+ <pageTitle>Platform Notes - QNX</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/platform-notes-qnx.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1870">
+ <pageWords>How to Report a Bug</pageWords>
+ <pageTitle>How to Report a Bug</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/bughowto.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1871">
+ <pageWords>Configuring Qt</pageWords>
+ <pageTitle>Configuring Qt</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qtconfig.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1872">
+ <pageWords>Qt for Windows CE and OpenGL ES</pageWords>
+ <pageTitle>Qt for Windows CE and OpenGL ES</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/windowsce-opengl.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1873">
+ <pageWords>Settings Editor Example</pageWords>
+ <pageTitle>Settings Editor Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-settingseditor.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1874">
+ <pageWords>File System Example</pageWords>
+ <pageTitle>File System Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/xmlpatterns-filetree.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1875">
+ <pageWords>Qt Linguist Manual</pageWords>
+ <pageTitle>Qt Linguist Manual</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/linguist-manual.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1876">
+ <pageWords>Qt Linguist Manual: Release Manager</pageWords>
+ <pageTitle>Qt Linguist Manual: Release Manager</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/linguist-manager.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1877">
+ <pageWords>Qt Linguist Manual: Translators</pageWords>
+ <pageTitle>Qt Linguist Manual: Translators</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/linguist-translators.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1878">
+ <pageWords>Qt Linguist Manual: Programmers</pageWords>
+ <pageTitle>Qt Linguist Manual: Programmers</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/linguist-programmers.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1879">
+ <pageWords>Qt Linguist Manual: TS File Format</pageWords>
+ <pageTitle>Qt Linguist Manual: TS File Format</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/linguist-ts-file-format.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1880">
+ <pageWords>OpenVG Star Example</pageWords>
+ <pageTitle>OpenVG Star Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/openvg-star.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1881">
+ <pageWords></pageWords>
+ <pageTitle></pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/index.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1882">
+ <pageWords>Application Example</pageWords>
+ <pageTitle>Application Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/mainwindows-application.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1883">
+ <pageWords>Contiguous Cache Example</pageWords>
+ <pageTitle>Contiguous Cache Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/tools-contiguouscache.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1884">
+ <pageWords>Drop Site Example</pageWords>
+ <pageTitle>Drop Site Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/draganddrop-dropsite.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1885">
+ <pageWords>Calendar Widget Example</pageWords>
+ <pageTitle>Calendar Widget Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-calendarwidget.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1886">
+ <pageWords>Styles Example</pageWords>
+ <pageTitle>Styles Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-styles.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1887">
+ <pageWords>Qt for Embedded Linux and DirectFB</pageWords>
+ <pageTitle>Qt for Embedded Linux and DirectFB</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qt-embeddedlinux-directfb.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1888">
+ <pageWords>Network Download Manager Example</pageWords>
+ <pageTitle>Network Download Manager Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/network-downloadmanager.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1889">
+ <pageWords>Data Types for Qt-supported Database Systems</pageWords>
+ <pageTitle>Data Types for Qt-supported Database Systems</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/sql-types.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1890">
+ <pageWords>QML Security</pageWords>
+ <pageTitle>QML Security</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/qdeclarativesecurity.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1891">
+ <pageWords>Introduction to D-Bus</pageWords>
+ <pageTitle>Introduction to D-Bus</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/intro-to-dbus.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1892">
+ <pageWords>Qutlook Example (ActiveQt)</pageWords>
+ <pageTitle>Qutlook Example (ActiveQt)</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/activeqt-qutlook.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1893">
+ <pageWords>Tetrix Example</pageWords>
+ <pageTitle>Tetrix Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/widgets-tetrix.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1894">
+ <pageWords>Flickable List Demonstration</pageWords>
+ <pageTitle>Flickable List Demonstration</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/demos-embedded-flickable.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1895">
+ <pageWords>Property Binding</pageWords>
+ <pageTitle>Property Binding</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/propertybinding.html</pageUrl>
+ <pageType>Article</pageType>
+ </page>
+ <page id="1896">
+ <pageWords>Qt Script Interpreter Example</pageWords>
+ <pageTitle>Qt Script Interpreter Example</pageTitle>
+ <pageUrl>http://qt.nokia.com/doc/4.7/script-qscript.html</pageUrl>
+ <pageType>Example</pageType>
+ </page>
+ <page id="1897">
+ <pageWords>QML ShaderEffectSource Element</pageWords>
+ <pageTitle>QML ShaderEffectSource Element</pageTitle>
+ <pageUrl>qml-shadereffectsource.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+ <page id="1898">
+ <pageWords>QML ShaderEffectItem Element</pageWords>
+ <pageTitle>QML ShaderEffectItem Element</pageTitle>
+ <pageUrl>qml-shadereffectitem.html</pageUrl>
+ <pageType>APIPage</pageType>
+ </page>
+</qtPageIndex>
diff --git a/doc/html/scripts/functions.js b/doc/html/scripts/functions.js
new file mode 100755
index 0000000..faa4ca4
--- /dev/null
+++ b/doc/html/scripts/functions.js
@@ -0,0 +1,194 @@
+/* START non link areas where cursor should change to pointing hand */
+$('.t_button').mouseover(function() {
+ $('.t_button').css('cursor','pointer');
+ /*document.getElementById(this.id).style.cursor='pointer';*/
+});
+/* END non link areas */
+$('#smallA').click(function() {
+ $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('font-size','smaller');
+ $('.t_button').removeClass('active')
+ $(this).addClass('active')
+});
+
+$('#medA').click(function() {
+ $('.content .heading').css('font','600 16px/1 Arial');
+ $('.content h1').css('font','600 18px/1.2 Arial');
+ $('.content h2').css('font','600 16px/1.2 Arial');
+ $('.content h3').css('font','600 14px/1.2 Arial');
+ $('.content p').css('font','13px/20px Verdana');
+ $('.content li').css('font','400 13px/1 Verdana');
+ $('.content li').css('line-height','14px');
+ $('.content .toc li').css('font', 'normal 10px/1.2 Verdana');
+ $('.content table').css('font','13px/1.2 Verdana');
+ $('.content .heading').css('font','600 16px/1 Arial');
+ $('.content .indexboxcont li').css('font','600 13px/1 Verdana');
+ $('.t_button').removeClass('active')
+ $(this).addClass('active')
+});
+
+$('#bigA').click(function() {
+ $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('font-size','large');
+ $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('line-height','25px');
+ $('.t_button').removeClass('active')
+ $(this).addClass('active')
+});
+
+$('.feedclose').click(function() {
+ $('.bd').show();
+ $('.hd').show();
+ $('.footer').show();
+ $('#feedbackBox').hide();
+ $('#blurpage').hide();
+});
+
+$('.feedback').click(function() {
+ $('.bd').hide();
+ $('.hd').hide();
+ $('.footer').hide();
+ $('#feedbackBox').show();
+ $('#blurpage').show();
+});
+var lookupCount = 0;
+var articleCount = 0;
+var exampleCount = 0;
+var qturl = ""; // change from "http://doc.qt.nokia.com/4.6/" to 0 so we can have relative links
+
+function processNokiaData(response){
+ var propertyTags = response.getElementsByTagName('page');
+
+ for (var i=0; i< propertyTags.length; i++) {
+ var linkStart = "<li class=\"liveResult\"><a href='"+qturl+"";
+ var linkEnd = "</a></li>";
+
+ if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'APIPage'){
+ lookupCount++;
+
+ for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){
+ full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue;
+ full_li_element = full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd;
+ $('#ul001').append(full_li_element);
+ $('#ul001 .defaultLink').css('display','none');
+
+ }
+ }
+
+ if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Article'){
+ articleCount++;
+
+ for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){
+ full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue;
+ full_li_element =full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd ;
+
+ $('#ul002').append(full_li_element);
+ $('#ul002 .defaultLink').css('display','none');
+
+ }
+ }
+ if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Example'){
+ exampleCount++;
+
+
+ for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){
+ full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue;
+ full_li_element =full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd ;
+
+ $('#ul003').append(full_li_element);
+ $('#ul003 .defaultLink').css('display','none');
+
+ }
+ }
+ if(i==propertyTags.length){$('#pageType').removeClass('loading');}
+
+ }
+ if(lookupCount > 0){$('#ul001 .menuAlert').remove();$('#ul001').prepend('<li class=\"menuAlert liveResult hit\">Found ' + lookupCount + ' hits</li>');$('#ul001 li').css('display','block');$('.sidebar .search form input').removeClass('loading');}
+ if(articleCount > 0){$('#ul002 .menuAlert').remove();$('#ul002').prepend('<li class=\"menuAlert liveResult hit\">Found ' + articleCount + ' hits</li>');$('#ul002 li').css('display','block');}
+ if(exampleCount > 0){$('#ul003 .menuAlert').remove();$('#ul003').prepend('<li class=\"menuAlert liveResult hit\">Found ' + articleCount + ' hits</li>');$('#ul003 li').css('display','block');}
+
+ if(lookupCount == 0){$('#ul001 .menuAlert').remove();$('#ul001').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul001 li').css('display','block');$('.sidebar .search form input').removeClass('loading');}
+ if(articleCount == 0){$('#ul002 .menuAlert').remove();$('#ul002').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul002 li').css('display','block');}
+ if(exampleCount == 0){$('#ul003 .menuAlert').remove();$('#ul003').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul003 li').css('display','block');}
+ // reset count variables;
+ lookupCount=0;
+ articleCount = 0;
+ exampleCount = 0;
+
+}
+//build regular expression object to find empty string or any number of blank
+var blankRE=/^\s*$/;
+function CheckEmptyAndLoadList()
+{
+ var pageUrl = window.location.href;
+ var pageVal = $('title').html();
+ $('#feedUrl').remove();
+ $('#pageVal').remove();
+ $('.menuAlert').remove();
+ $('#feedform').append('<input id="feedUrl" name="feedUrl" value="'+pageUrl+'" style="display:none;">');
+ $('#feedform').append('<input id="pageVal" name="pageVal" value="'+pageVal+'" style="display:none;">');
+ $('.liveResult').remove();
+ $('.defaultLink').css('display','block');
+ var value = document.getElementById('pageType').value;
+ if((blankRE.test(value)) || (value.length < 3))
+ {
+ //empty inputbox
+ // load default li elements into the ul if empty
+ // loadAllList(); // replaced
+ $('.defaultLink').css('display','block');
+ // $('.liveResult').css('display','none');
+ }else{
+ $('.defaultLink').css('display','none');
+ }
+}
+/*
+$(window).resize(function(){
+if($(window).width()<400)
+ $('body').addClass('offline');
+else
+ $('body').removeClass('offline');
+ });
+ */
+// Loads on doc ready
+ $(document).ready(function () {
+ //alert(pageUrl);
+ //$('#pageUrl').attr('foo',pageUrl);
+ var pageTitle = $('title').html();
+ var currentString = $('#pageType').val() ;
+ if(currentString.length < 1){
+ $('.defaultLink').css('display','block');
+ CheckEmptyAndLoadList();
+ }
+
+ $('#pageType').keyup(function () {
+ var searchString = $('#pageType').val() ;
+ if ((searchString == null) || (searchString.length < 3)) {
+ $('#pageType').removeClass('loading');
+ $('.liveResult').remove();
+ $('.searching').remove();
+ CheckEmptyAndLoadList();
+ $('.report').remove();
+ // debug$('.content').prepend('<li>too short or blank</li>'); // debug
+ return;
+ }
+ if (this.timer) clearTimeout(this.timer);
+ this.timer = setTimeout(function () {
+ $('#pageType').addClass('loading');
+ $('.searching').remove();
+ $('.list ul').prepend('<li class="menuAlert searching">Searching...</li>');
+ $.ajax({
+ contentType: "application/x-www-form-urlencoded",
+ url: 'http://' + location.host + '/nokiasearch/GetDataServlet',
+ data: 'searchString='+searchString,
+ dataType:'xml',
+ type: 'post',
+ success: function (response, textStatus) {
+
+ $('.liveResult').remove();
+ $('.searching').remove();
+ $('#pageType').removeClass('loading');
+ $('.list ul').prepend('<li class="menuAlert searching">Searching...</li>');
+ processNokiaData(response);
+
+ }
+ });
+ }, 500);
+ });
+ });
diff --git a/doc/html/scripts/jquery.js b/doc/html/scripts/jquery.js
new file mode 100755
index 0000000..0c7294c
--- /dev/null
+++ b/doc/html/scripts/jquery.js
@@ -0,0 +1,152 @@
+/*!
+ * jQuery JavaScript Library v1.4.1
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Jan 25 19:43:33 2010 -0500
+ */
+(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j?
+e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f,
+a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType===
+11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment();
+c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent,
+va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]],
+[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,
+this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this,
+a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};
+c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$=
+Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload",
+c.ready);var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;
+return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]||
+r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=
+a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==
+v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},
+uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded",
+L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/https/code.qt.io/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support=
+{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};
+b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild);
+c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props=
+{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true,
+{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,
+a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);
+return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||
+a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=
+c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,n=b.length;j<n;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=c(this);m.removeClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string"||a===v)for(var b=(a||"").split(ca),
+d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(ya," "),j=0,n=b.length;j<n;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),n=b,o=
+a.split(ca);e=o[i++];){n=f?n:!j.hasClass(e);j[n?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(ya," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||
+{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(za.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Wa,"")}return v}var n=c.isFunction(a);return this.each(function(o){var m=c(this),s=a;if(this.nodeType===1){if(n)s=a.call(this,o,m.val());
+if(typeof s==="number")s+="";if(c.isArray(s)&&za.test(this.type))this.checked=c.inArray(m.val(),s)>=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d);
+f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=
+""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j=
+function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a,
+d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+
+s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a,
+"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,
+b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b,
+d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b=
+0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};
+c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b=
+a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!==
+"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this,
+"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"||
+d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a=
+a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,
+f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a,
+b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+
+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e){var i,j=0;if(c.isFunction(f)){e=f;f=v}for(d=(d||"").split(/\s+/);(i=d[j++])!=null;){i=i==="focus"?"focusin":i==="blur"?"focusout":i==="hover"?d.push("mouseleave")&&"mouseenter":i;b==="live"?c(this.context).bind(oa(i,this.selector),{data:f,selector:this.selector,
+live:i},e):c(this.context).unbind(oa(i,this.selector),e?{guid:e.guid+this.selector+i}:null)}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});z.attachEvent&&!z.addEventListener&&z.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
+(function(){function a(g){for(var h="",k,l=0;g[l];l++){k=g[l];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===k){y=l[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=k;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}l[q]=y}}}function d(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===
+k){y=l[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=k;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(o.filter(h,[t]).length>0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||
+typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u=
+l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&
+y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};o.matches=function(g,h){return o(g,null,null,h)};o.find=function(g,h,k){var l,q;if(!g)return[];for(var p=0,u=m.order.length;p<u;p++){var t=m.order[p];if(q=m.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");l=m.find[t](q,
+h,k);if(l!=null){g=g.replace(m.match[t],"");break}}}}l||(l=h.getElementsByTagName("*"));return{set:l,expr:g}};o.filter=function(g,h,k,l){for(var q=g,p=[],u=h,t,y,R=h&&h[0]&&w(h[0]);g&&h.length;){for(var H in m.filter)if((t=m.leftMatch[H].exec(g))!=null&&t[2]){var M=m.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(u===p)p=[];if(m.preFilter[H])if(t=m.preFilter[H](t,u,k,p,l,R)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=u[U])!=null;U++)if(D){I=M(D,t,U,u);var Da=
+l^!!I;if(k&&I!=null)if(Da)y=true;else u[U]=false;else if(Da){p.push(D);y=true}}if(I!==v){k||(u=p);g=g.replace(m.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)o.error(g);else break;q=g}return u};o.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var m=o.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,h){var k=typeof h==="string",l=k&&!/\W/.test(h);k=k&&!l;if(l)h=h.toLowerCase();l=0;for(var q=g.length,
+p;l<q;l++)if(p=g[l]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[l]=k||p&&p.nodeName.toLowerCase()===h?p||false:p===h}k&&o.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l<q;l++){var p=g[l];if(p){k=p.parentNode;g[l]=k.nodeName.toLowerCase()===h?k:false}}}else{l=0;for(q=g.length;l<q;l++)if(p=g[l])g[l]=k?p.parentNode:p.parentNode===h;k&&o.filter(h,g,true)}},"":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=
+h=h.toLowerCase();q=b}q("parentNode",h,l,g,p,k)},"~":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,l,g,p,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];h=h.getElementsByName(g[1]);for(var l=0,q=h.length;l<q;l++)h[l].getAttribute("name")===g[1]&&k.push(h[l]);return k.length===0?null:k}},
+TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,l,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var u;(u=h[p])!=null;p++)if(u)if(q^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&
+"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);
+return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===
+g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2===
+0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k<l;k++)if(h[k]===g)return false;return true}else o.error("Syntax error, unrecognized expression: "+
+q)},CHILD:function(g,h){var k=h[1],l=g;switch(k){case "only":case "first":for(;l=l.previousSibling;)if(l.nodeType===1)return false;if(k==="first")return true;l=g;case "last":for(;l=l.nextSibling;)if(l.nodeType===1)return false;return true;case "nth":k=h[2];var q=h[3];if(k===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var u=0;for(l=p.firstChild;l;l=l.nextSibling)if(l.nodeType===1)l.nodeIndex=++u;p.sizcache=h}g=g.nodeIndex-q;return k===0?g===0:g%k===0&&g/k>=
+0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="?
+k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};
+try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k<l;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var C;if(r.documentElement.compareDocumentPosition)C=function(g,h){if(!g.compareDocumentPosition||!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===
+h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in r.documentElement)C=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(r.createRange)C=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),l=h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);l.setStart(h,0);l.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END,
+l);if(g===0)j=true;return g};(function(){var g=r.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id");
+return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href",
+2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===
+0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[],
+l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)o(g,h[q],k);return o.filter(l,k)};c.find=o;c.expr=o.selectors;c.expr[":"]=c.expr.filters;c.unique=o.uniqueSort;c.getText=a;c.isXMLDoc=w;c.contains=E})();var bb=/Until$/,cb=/^(?:parents|prevUntil|prevAll)/,db=/,/;Q=Array.prototype.slice;var Ea=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a,
+function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Qa.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=
+0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ea(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ea(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e<n;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)>
+-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),
+a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},
+nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):
+e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==
+b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,sa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ia=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],
+col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)},
+wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?
+d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,
+false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&
+!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(Ha.exec(a)||
+["",""])[1].toLowerCase()]){a=a.replace(Ga,Ia);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,
+b,f))});else a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(s){return c.nodeName(s,"table")?s.getElementsByTagName("tbody")[0]||s.appendChild(s.ownerDocument.createElement("tbody")):s}var e,i,j=a[0],n=[];if(!c.support.checkClone&&arguments.length===3&&typeof j===
+"string"&&sa.test(j))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(j))return this.each(function(s){var x=c(this);a[0]=j.call(this,s,b?x.html():v);x.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ra(a,this,n);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var o=0,m=this.length;o<m;o++)d.call(b?f(this[o],i):this[o],e.cacheable||this.length>1||o>0?e.fragment.cloneNode(true):e.fragment)}n&&c.each(n,
+Ma)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){c.cleanData(this.getElementsByTagName("*"));c.cleanData([this])}this.parentNode&&
+this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&c.cleanData(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||r;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||r;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j===
+"string"){j=j.replace(Ga,Ia);var n=(Ha.exec(j)||["",""])[1].toLowerCase(),o=F[n]||F._default,m=o[0];i=b.createElement("div");for(i.innerHTML=o[1]+j+o[2];m--;)i=i.lastChild;if(!c.support.tbody){m=fb.test(j);n=n==="table"&&!m?i.firstChild&&i.firstChild.childNodes:o[1]==="<table>"&&!m?i.childNodes:[];for(o=n.length-1;o>=0;--o)c.nodeName(n[o],"tbody")&&!n[o].childNodes.length&&n[o].parentNode.removeChild(n[o])}!c.support.leadingWhitespace&&V.test(j)&&i.insertBefore(b.createTextNode(V.exec(j)[0]),i.firstChild);
+j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()==="text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e},cleanData:function(a){for(var b=0,d;(d=a[b])!=null;b++){c.event.remove(d);c.removeData(d)}}});var hb=/z-?index|font-?weight|opacity|zoom|line-?height/i,
+Ja=/alpha\([^)]*\)/,Ka=/opacity=([^)]*)/,ga=/float/i,ha=/-([a-z])/ig,ib=/([A-Z])/g,jb=/^-?\d+(?:px)?$/i,kb=/^-?\d/,lb={position:"absolute",visibility:"hidden",display:"block"},mb=["Left","Right"],nb=["Top","Bottom"],ob=r.defaultView&&r.defaultView.getComputedStyle,La=c.support.cssFloat?"cssFloat":"styleFloat",ia=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===v)return c.curCSS(d,f);if(typeof e==="number"&&!hb.test(f))e+="px";c.style(d,f,e)})};
+c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return v;if((b==="width"||b==="height")&&parseFloat(d)<0)d=v;var f=a.style||a,e=d!==v;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ja.test(a)?a.replace(Ja,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ka.exec(f.filter)[1])/100+"":""}if(ga.test(b))b=La;b=b.replace(ha,ia);if(e)f[b]=d;return f[b]},css:function(a,
+b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?mb:nb;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,lb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&
+a.currentStyle){f=Ka.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ga.test(b))b=La;if(!d&&e&&e[b])f=e[b];else if(ob){if(ga.test(b))b="float";b=b.replace(ib,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ha,ia);f=a.currentStyle[b]||a.currentStyle[d];if(!jb.test(f)&&kb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left=
+a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var pb=
+J(),qb=/<script(.|\s)*?\/script>/gi,rb=/select|textarea/i,sb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ja=/\?/,tb=/(\?|&)_=.*?(&|$)/,ub=/^(\w+:)?\/\/([^\/?#]+)/,vb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=
+c.param(b,c.ajaxSettings.traditional);f="POST"}var i=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(j,n){if(n==="success"||n==="notmodified")i.html(e?c("<div />").append(j.responseText.replace(qb,"")).find(e):j.responseText);d&&i.each(d,[j.responseText,n,j])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&
+(this.checked||rb.test(this.nodeName)||sb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,
+b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:z.XMLHttpRequest&&(z.location.protocol!=="file:"||!z.ActiveXObject)?function(){return new z.XMLHttpRequest}:
+function(){try{return new z.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(o,n,j,w);e.global&&f("ajaxSuccess",[w,e])}function d(){e.complete&&e.complete.call(o,w,j);e.global&&f("ajaxComplete",[w,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}
+function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,n,o=a&&a.context||e,m=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(m==="GET")N.test(e.url)||(e.url+=(ja.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||
+N.test(e.url))){i=e.jsonpCallback||"jsonp"+pb++;if(e.data)e.data=(e.data+"").replace(N,"="+i+"$1");e.url=e.url.replace(N,"="+i+"$1");e.dataType="script";z[i]=z[i]||function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&m==="GET"){var s=J(),x=e.url.replace(tb,"$1_="+s+"$2");e.url=x+(x===e.url?(ja.test(e.url)?"&":"?")+"_="+s:"")}if(e.data&&m==="GET")e.url+=(ja.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&
+c.event.trigger("ajaxStart");s=(s=ub.exec(e.url))&&(s[1]&&s[1]!==location.protocol||s[2]!==location.host);if(e.dataType==="script"&&m==="GET"&&s){var A=r.getElementsByTagName("head")[0]||r.documentElement,B=r.createElement("script");B.src=e.url;if(e.scriptCharset)B.charset=e.scriptCharset;if(!i){var C=false;B.onload=B.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;b();d();B.onload=B.onreadystatechange=null;A&&B.parentNode&&
+A.removeChild(B)}}}A.insertBefore(B,A.firstChild);return v}var E=false,w=e.xhr();if(w){e.username?w.open(m,e.url,e.async,e.username,e.password):w.open(m,e.url,e.async);try{if(e.data||a&&a.contentType)w.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&w.setRequestHeader("If-None-Match",c.etag[e.url])}s||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",
+e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(fa){}if(e.beforeSend&&e.beforeSend.call(o,w,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");w.abort();return false}e.global&&f("ajaxSend",[w,e]);var g=w.onreadystatechange=function(q){if(!w||w.readyState===0||q==="abort"){E||d();E=true;if(w)w.onreadystatechange=c.noop}else if(!E&&w&&(w.readyState===4||q==="timeout")){E=true;w.onreadystatechange=c.noop;j=q==="timeout"?"timeout":!c.httpSuccess(w)?
+"error":e.ifModified&&c.httpNotModified(w,e.url)?"notmodified":"success";var p;if(j==="success")try{n=c.httpData(w,e.dataType,e)}catch(u){j="parsererror";p=u}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,w,j,p);d();q==="timeout"&&w.abort();if(e.async)w=null}};try{var h=w.abort;w.abort=function(){w&&h.call(w);g("abort")}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){w&&!E&&g("timeout")},e.timeout);try{w.send(m==="POST"||m==="PUT"||m==="DELETE"?e.data:null)}catch(l){c.handleError(e,
+w,null,l);d()}e.async||g();return w}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=
+f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(j,n){if(c.isArray(n))c.each(n,
+function(o,m){b?f(j,m):d(j+"["+(typeof m==="object"||c.isArray(m)?o:"")+"]",m)});else!b&&n!=null&&typeof n==="object"?c.each(n,function(o,m){d(j+"["+o+"]",m)}):f(j,n)}function f(j,n){n=c.isFunction(n)?n():n;e[e.length]=encodeURIComponent(j)+"="+encodeURIComponent(n)}var e=[];if(b===v)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var i in a)d(i,a[i]);return e.join("&").replace(vb,"+")}});var ka={},wb=/toggle|show|hide/,xb=/^([+-]=)?([\d+-.]+)(.*)$/,
+W,ta=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(ka[d])f=ka[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();
+ka[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&
+c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,n=this.nodeType===1&&c(this).is(":hidden"),
+o=this;for(j in a){var m=j.replace(ha,ia);if(j!==m){a[m]=a[j];delete a[j];j=m}if(a[j]==="hide"&&n||a[j]==="show"&&!n)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(s,x){var A=new c.fx(o,i,s);if(wb.test(x))A[x==="toggle"?n?"show":"hide":x](a);
+else{var B=xb.exec(x),C=A.cur(true)||0;if(B){x=parseFloat(B[2]);var E=B[3]||"px";if(E!=="px"){o.style[s]=(x||1)+E;C=(x||1)/A.cur(true)*C;o.style[s]=C+E}if(B[1])x=(B[1]==="-="?-1:1)*x+C;A.custom(C,x,E)}else A.custom(C,x,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",
+1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,
+b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==
+null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===
+"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=
+this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=
+c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=
+null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in r.documentElement?function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),
+f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=
+b,e=b.ownerDocument,i,j=e.documentElement,n=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var o=b.offsetTop,m=b.offsetLeft;(b=b.parentNode)&&b!==n&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;o-=b.scrollTop;m-=b.scrollLeft;if(b===d){o+=b.offsetTop;m+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){o+=parseFloat(i.borderTopWidth)||
+0;m+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){o+=parseFloat(i.borderTopWidth)||0;m+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){o+=n.offsetTop;m+=n.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){o+=Math.max(j.scrollTop,n.scrollTop);m+=Math.max(j.scrollLeft,n.scrollLeft)}return{top:o,left:m}};c.offset={initialize:function(){var a=r.body,b=r.createElement("div"),
+d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);
+d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop},
+bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left-
+e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=
+this.offsetParent||r.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==v)return this.each(function(){if(i=ua(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=ua(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}});
+c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(i){var j=c(this);j[d](f.call(this,i,j[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||
+e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===v?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});z.jQuery=z.$=c})(window);
diff --git a/doc/html/scripts/narrow.js b/doc/html/scripts/narrow.js
new file mode 100755
index 0000000..35c81bf
--- /dev/null
+++ b/doc/html/scripts/narrow.js
@@ -0,0 +1,89 @@
+var narrowInit = function() {
+ /* TODO:
+ Could probably be more efficient, not hardcoding each element to be created
+ */
+ // 1: Create search form
+ var narrowSearch = $('<div id="narrowsearch"></div>');
+ var searchform = $("#qtdocsearch");
+ narrowSearch.append(searchform);
+ $("#qtdocheader .content .qtref").after(narrowSearch);
+
+ // 2: Create dropdowns
+ var narrowmenu = $('<ul id="narrowmenu" class="sf-menu"></ul>');
+
+ // Lookup
+ var lookuptext = $("#lookup h2").attr("title");
+ $("#lookup ul").removeAttr("id");
+ $("#lookup ul li").removeAttr("class");
+ $("#lookup ul li").removeAttr("style");
+ var lookupul = $("#lookup ul");
+ var lookuplist = $('<li></li>');
+ var lookuplink = $('<a href="#"></a>');
+ lookuplink.append(lookuptext);
+ lookuplist.append(lookuplink);
+ lookuplist.append(lookupul);
+ narrowmenu.append(lookuplist);
+
+ // Topics
+ var topicstext = $("#topics h2").attr("title");
+ $("#topics ul").removeAttr("id");
+ $("#topics ul li").removeAttr("class");
+ $("#topics ul li").removeAttr("style");
+ var topicsul = $("#topics ul");
+ var topicslist = $('<li></li>');
+ var topicslink = $('<a href="#"></a>');
+ topicslink.append(topicstext);
+ topicslist.append(topicslink);
+ topicslist.append(topicsul);
+ narrowmenu.append(topicslist);
+
+ // Examples
+ var examplestext = $("#examples h2").attr("title");
+ $("#examples ul").removeAttr("id");
+ $("#examples ul li").removeAttr("class");
+ $("#examples ul li").removeAttr("style");
+ var examplesul = $("#examples ul");
+ var exampleslist = $('<li></li>');
+ var exampleslink = $('<a href="#"></a>');
+ exampleslink.append(examplestext);
+ exampleslist.append(exampleslink);
+ exampleslist.append(examplesul);
+ narrowmenu.append(exampleslist);
+
+ $("#shortCut").after(narrowmenu);
+ $('ul#narrowmenu').superfish({
+ delay: 100,
+ autoArrows: false,
+ disableHI: true
+ });
+}
+
+$(document).ready(function(){
+/* if ($('body').hasClass('narrow')) {
+ narrowInit();
+ }
+ */
+ if($(window).width()<600) {
+ $('body').addClass('narrow');
+
+ if ($("#narrowsearch").length == 0) {
+ narrowInit();
+ }
+ }
+ else {
+ $('body').removeClass('narrow');
+ }
+});
+
+$(window).bind('resize', function () {
+ if($(window).width()<600) {
+ $('body').addClass('narrow');
+
+ if ($("#narrowsearch").length == 0) {
+ narrowInit();
+ }
+ }
+ else {
+ $('body').removeClass('narrow');
+ }
+}); \ No newline at end of file
diff --git a/doc/html/scripts/superfish.js b/doc/html/scripts/superfish.js
new file mode 100755
index 0000000..c6a9c7d
--- /dev/null
+++ b/doc/html/scripts/superfish.js
@@ -0,0 +1,121 @@
+
+/*
+ * Superfish v1.4.8 - jQuery menu widget
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
+ */
+
+;(function($){
+ $.fn.superfish = function(op){
+
+ var sf = $.fn.superfish,
+ c = sf.c,
+ $arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
+ over = function(){
+ var $$ = $(this), menu = getMenu($$);
+ clearTimeout(menu.sfTimer);
+ $$.showSuperfishUl().siblings().hideSuperfishUl();
+ },
+ out = function(){
+ var $$ = $(this), menu = getMenu($$), o = sf.op;
+ clearTimeout(menu.sfTimer);
+ menu.sfTimer=setTimeout(function(){
+ o.retainPath=($.inArray($$[0],o.$path)>-1);
+ $$.hideSuperfishUl();
+ if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
+ },o.delay);
+ },
+ getMenu = function($menu){
+ var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+ sf.op = sf.o[menu.serial];
+ return menu;
+ },
+ addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
+
+ return this.each(function() {
+ var s = this.serial = sf.o.length;
+ var o = $.extend({},sf.defaults,op);
+ o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
+ $(this).addClass([o.hoverClass,c.bcClass].join(' '))
+ .filter('li:has(ul)').removeClass(o.pathClass);
+ });
+ sf.o[s] = sf.op = o;
+
+ $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
+ if (o.autoArrows) addArrow( $('>a:first-child',this) );
+ })
+ .not('.'+c.bcClass)
+ .hideSuperfishUl();
+
+ var $a = $('a',this);
+ $a.each(function(i){
+ var $li = $a.eq(i).parents('li');
+ $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
+ });
+ o.onInit.call(this);
+
+ }).each(function() {
+ var menuClasses = [c.menuClass];
+ if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
+ $(this).addClass(menuClasses.join(' '));
+ });
+ };
+
+ var sf = $.fn.superfish;
+ sf.o = [];
+ sf.op = {};
+ sf.IE7fix = function(){
+ var o = sf.op;
+ if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
+ this.toggleClass(sf.c.shadowClass+'-off');
+ };
+ sf.c = {
+ bcClass : 'sf-breadcrumb',
+ menuClass : 'sf-js-enabled',
+ anchorClass : 'sf-with-ul',
+ arrowClass : 'sf-sub-indicator',
+ shadowClass : 'sf-shadow'
+ };
+ sf.defaults = {
+ hoverClass : 'sfHover',
+ pathClass : 'overideThisToUse',
+ pathLevels : 1,
+ delay : 800,
+ animation : {opacity:'show'},
+ speed : 'normal',
+ autoArrows : true,
+ dropShadows : true,
+ disableHI : false, // true disables hoverIntent detection
+ onInit : function(){}, // callback functions
+ onBeforeShow: function(){},
+ onShow : function(){},
+ onHide : function(){}
+ };
+ $.fn.extend({
+ hideSuperfishUl : function(){
+ var o = sf.op,
+ not = (o.retainPath===true) ? o.$path : '';
+ o.retainPath = false;
+ var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+ .find('>ul').hide().css('visibility','hidden');
+ o.onHide.call($ul);
+ return this;
+ },
+ showSuperfishUl : function(){
+ var o = sf.op,
+ sh = sf.c.shadowClass+'-off',
+ $ul = this.addClass(o.hoverClass)
+ .find('>ul:hidden').css('visibility','visible');
+ sf.IE7fix.call($ul);
+ o.onBeforeShow.call($ul);
+ $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
+ return this;
+ }
+ });
+
+})(jQuery);
diff --git a/doc/html/style/narrow.css b/doc/html/style/narrow.css
new file mode 100755
index 0000000..de5b0a0
--- /dev/null
+++ b/doc/html/style/narrow.css
@@ -0,0 +1,270 @@
+ /* start narrow mode */
+
+ body.narrow
+ {
+ background-image: none;
+ }
+
+ .narrow a {
+ color: #44a51c;
+ }
+
+ .narrow .header, .narrow .header .content, .narrow .footer, .narrow .wrapper {
+ margin: 0 7px;
+ min-width: 300px;
+ }
+
+ .narrow .footer {
+ margin: 0px;
+ }
+
+ .creator .header, .creator .header .content, .creator .footer, .creator .wrapper {
+ margin: 0px;
+ min-width: 300px;
+ }
+ .narrow .header
+ {
+ width: 100%;
+ margin: 0;
+ height: auto;
+ background: #fff url(../images/header_bg.png) repeat-x 0 100%;
+ padding: 10px 0 5px 0;
+ overflow: visible;
+ }
+
+ .narrow .header .content
+ {
+ }
+
+ .narrow .header #nav-logo
+ {
+ display: none;
+ }
+
+ .narrow .header .qtref
+ {
+ width: auto;
+ height: auto;
+ color: #363534;
+ position: static;
+ float: left;
+ margin-left: 25px;
+ font: bold 18px/1 Arial;
+ }
+
+ .narrow .header .qtref a
+ {
+ color: #00732F;
+ }
+
+ .narrow .header .qtref span
+ {
+ background-image: none;
+ text-indent: 0;
+ }
+
+ .narrow .header #nav-topright
+ {
+ display: none;
+ }
+
+ .narrow .header #shortCut
+ {
+ clear: both;
+ font-weight: normal;
+ position: static;
+ float: left;
+ margin: 15px 0 0 25px;
+ overflow: hidden;
+ padding: 0;
+ height: auto;
+ }
+
+ .narrow .header #shortCut ul
+ {
+ float: none;
+ margin: 0;
+ width: auto;
+ font-size: 11px;
+ }
+
+ .narrow .header #shortCut ul li
+ {
+ background-image: none;
+ }
+
+ .narrow .header #shortCut ul .shortCut-topleft-active,
+ .narrow .header #shortCut ul .shortCut-topleft-inactive
+ {
+ background-image: none;
+ height: auto;
+ padding: 0;
+ width: auto;
+ }
+ .narrow .header #shortCut ul li a
+ {
+ color: #00732F;
+ }
+
+ .narrow .wrapper .hd
+ {
+ background: url(../images/bg_ul_blank.png) no-repeat 0 0;
+ }
+
+ .narrow .wrapper .bd
+ {
+ background: url(../images/bg_l_blank.png) repeat-y 0 0;
+ }
+
+ .narrow .wrapper .ft
+ {
+ background: url(../images/bg_ll_blank.png) no-repeat 0 0;
+ }
+
+ .narrow .sidebar
+ {
+ display: none;
+ }
+
+ .narrow .wrap
+ {
+ margin: 0 5px 0 5px;
+ }
+
+ .creator .wrap
+ {
+ margin: 0px;
+ background:#FFFFFF;
+ }
+ .narrow .wrap .toolbar
+ {
+ border-bottom: none;
+ }
+
+ .narrow .wrap .content
+ {
+ padding-top: 15px;
+ }
+ .creator .wrap .content
+ {
+ padding-top: 10px;
+ }
+ .creator .wrap .content .guide
+ {
+ padding-top: 15px;
+ }
+ .narrow .wrap .feedback
+ {
+ display: none;
+ }
+
+ .narrow .wrap .breadcrumb ul li {
+ font-weight: normal;
+ }
+
+ .narrow .wrap .breadcrumb ul li a {
+ color: #44a51c;
+ }
+
+ .narrow .wrap .breadcrumb ul li.last a {
+ color: #363534;
+ }
+
+ #narrowsearch {
+ display: none;
+ }
+
+ .narrow #narrowsearch {
+ display: block;
+ float: right;
+ margin-right: 25px;
+ _position: relative;
+ }
+
+ .narrow #narrowsearch fieldset {
+ _position: absolute;
+ _margin-top: -1px;
+ }
+
+ .narrow #narrowsearch {
+ background: url("http://doc.qt.nokia.com/prototype/html/images/sprites-combined.png") no-repeat scroll -6px -348px transparent;
+ height: 21px;
+ padding: 2px 0 0 5px;
+ width: 167px;
+ }
+
+ .narrow #narrowsearch input {
+ border: none;
+ font: 13px/1.2 Verdana;
+ height: 19px;
+ outline: none;
+ padding: 0;
+ width: 158px;
+ *border: 1px solid #fff;
+ *height: 17px;
+ _height: 18px;
+ /* to be fixed */
+ display: none;
+ /* to be fixed */
+ }
+
+ .narrow .indexbox .indexIcon {
+ display: none;
+ }
+
+ .narrow .indexboxcont .section {
+ width: 64%;
+ padding-left: 0;
+ }
+
+ .narrow .indexboxcont .sectionlist {
+ width: 32.5%;
+ }
+
+ #narrowmenu {
+ display: none;
+ float: right;
+ margin: 15px 40px 0 0;
+ font-size: 11px;
+ }
+
+ .narrow #narrowmenu {
+ display: block;
+ }
+
+ #narrowmenu a {
+ line-height: 1.1;
+ background: url(../images/arrow_down.png) no-repeat 100% 50%;
+ white-space: nowrap;
+ padding: 0 16px 0 5px;
+ }
+
+ #narrowmenu li {
+ margin-left: 20px;
+ }
+
+ #narrowmenu li li {
+ margin: 0 0 5px 0;
+ }
+
+ #narrowmenu li li a {
+ padding: 0;
+ background-image: none;
+ }
+
+ #narrowmenu li,
+ #narrowmenu li ul {
+ background-color: #fff;
+ margin-top:-1px;
+ }
+
+ #narrowmenu li ul {
+ width: auto;
+ padding: 5px;
+ }
+
+ .sf-menu li:hover ul, .sf-menu li.sfHover ul {
+ top: 1.2em;
+ }
+
+ /* end narrow mode */
diff --git a/doc/html/style/style.css b/doc/html/style/style.css
new file mode 100755
index 0000000..b60aa41
--- /dev/null
+++ b/doc/html/style/style.css
@@ -0,0 +1,1588 @@
+@media screen
+{
+
+/* basic elements */
+ html
+ {
+ color: #000000;
+ background: #FFFFFF;
+ }
+ body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td
+ {
+ margin: 0;
+ padding: 0;
+ }
+ table
+ {
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
+ fieldset, img
+ {
+ border: 0;
+ max-width:100%;
+ }
+ address, caption, cite, code, dfn, em, strong, th, var, optgroup
+ {
+ font-style: inherit;
+ font-weight: inherit;
+ }
+ del, ins
+ {
+ text-decoration: none;
+ }
+ li
+ {
+ list-style: none;
+ }
+ ol li
+ {
+ list-style: decimal;
+ }
+ caption, th
+ {
+ text-align: left;
+ }
+ h1, h2, h3, h4, h5, h6
+ {
+ font-size: 100%;
+ }
+ q:before, q:after
+ {
+ content: '';
+ }
+ abbr, acronym
+ {
+ border: 0;
+ font-variant: normal;
+ }
+ sup, sub
+ {
+ vertical-align: baseline;
+ }
+ tt, .qmlreadonly span, .qmldefault span
+ {
+ word-spacing:5px;
+ }
+ legend
+ {
+ color: #000000;
+ }
+ input, button, textarea, select, optgroup, option
+ {
+ font-family: inherit;
+ font-size: inherit;
+ font-style: inherit;
+ font-weight: inherit;
+ }
+ input, button, textarea, select
+ {
+ font-size: 100%;
+ }
+ strong
+ {
+ font-weight: bold;
+ }
+ em
+ {
+ font-style: italic;
+ }
+
+ /* adding Qt theme */
+ html
+ {
+ /* background-color: #e5e5e5;*/
+ }
+ body
+ {
+ background: #e6e7e8 url(../images/page_bg.png) repeat-x 0 0;
+ font: normal 13px/1.2 Verdana;
+ color: #363534;
+ }
+ a
+ {
+ color: #00732f;
+ text-decoration: none;
+ }
+ hr
+ {
+ background-color: #E6E6E6;
+ border: 1px solid #E6E6E6;
+ height: 1px;
+ width: 100%;
+ text-align: left;
+ margin: 15px 0px 15px 0px;
+ }
+
+ pre
+ {
+ border: 1px solid #DDDDDD;
+ -moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ margin: 0 20px 10px 10px;
+ padding: 20px 15px 20px 20px;
+ overflow-x: auto;
+ }
+ 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: 11px;
+ margin-bottom: 25px;
+ }
+ pre.highlightedCode {
+ display: block;
+ overflow:hidden;
+ }
+ thead
+ {
+ margin-top: 5px;
+ font:600 12px/1.2 Arial;
+ }
+ th
+ {
+ padding: 5px 15px 5px 15px;
+ background-color: #E1E1E1;
+ border-left: 1px solid #E6E6E6;
+ }
+ td
+ {
+ padding: 3px 15px 3px 20px;
+ }
+ tr.odd td:hover, tr.even td:hover {}
+
+ td.rightAlign
+ {
+ padding: 3px 5px 3px 10px;
+ }
+ table tr.odd
+ {
+ border-left: 1px solid #E6E6E6;
+ background-color: #F6F6F6;
+ color: #66666E;
+ }
+ table tr.even
+ {
+ border-left: 1px solid #E6E6E6;
+ background-color: #ffffff;
+ color: #66666E;
+ }
+ table tr.odd td:hover, table tr.even td:hover
+ {
+ /* background-color: #E6E6E6;*/ /* disabled until further notice */
+ }
+
+ span.comment
+ {
+ color: #8B0000;
+ font-style: italic;
+ }
+ span.string, span.char
+ {
+ color: #254117;
+ }
+
+
+/* end basic elements */
+
+/* font style elements */
+ .heading
+ {
+ font: normal bold 16px/1.2 Arial;
+ padding-bottom: 15px;
+ }
+ .subtitle
+ {
+ font-size: 13px;
+ }
+ .small-subtitle
+ {
+ font-size: 13px;
+ }
+/* end font style elements */
+
+/* global settings*/
+ .header, .footer, .wrapper
+ {
+ min-width: 600px;
+ max-width: 1500px;
+ margin: 0 30px;
+ }
+ .header, .footer
+ {
+ display: block;
+ clear: both;
+ overflow: hidden;
+ }
+ .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after
+ {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+ }
+
+/* end global settings*/
+/* header elements */
+ .header
+ {
+ height: 115px;
+ position: relative;
+ }
+ .header .icon
+ {
+ position: absolute;
+ top: 13px;
+ left: 0;
+ }
+ .header .qtref
+ {
+ position: absolute;
+ top: 28px;
+ left: 88px;
+ width: 302px;
+ height: 22px;
+ }
+ .header .qtref span
+ {
+ display: block;
+ width: 302px;
+ height: 22px;
+ text-indent: -999em;
+ background: url(../images/sprites-combined.png) no-repeat -78px -235px;
+ }
+ .content a:visited
+ {
+ color: #4c0033;
+ text-decoration: none;
+ }
+ .content a:visited:hover
+ {
+ color: #4c0033;
+ text-decoration: underline;
+ }
+
+ #nav-topright
+ {
+ height: 70px;
+ }
+
+ #nav-topright ul
+ {
+ list-style-type: none;
+ float: right;
+ width: 370px;
+ margin-top: 11px;
+ }
+
+ #nav-topright li
+ {
+ display: inline-block;
+ margin-right: 20px;
+ float: left;
+ }
+
+ #nav-topright li.nav-topright-last
+ {
+ margin-right: 0;
+ }
+
+ #nav-topright li a
+ {
+ background: transparent url(../images/sprites-combined.png) no-repeat;
+ height: 18px;
+ display: block;
+ overflow: hidden;
+ text-indent: -9999px;
+ }
+
+ #nav-topright li.nav-topright-home a
+ {
+ width: 65px;
+ background-position: -2px -91px;
+ }
+
+ #nav-topright li.nav-topright-home a:hover
+ {
+ background-position: -2px -117px;
+ }
+
+
+ #nav-topright li.nav-topright-dev a
+ {
+ width: 30px;
+ background-position: -76px -91px;
+ }
+
+ #nav-topright li.nav-topright-dev a:hover
+ {
+ background-position: -76px -117px;
+ }
+
+
+ #nav-topright li.nav-topright-labs a
+ {
+ width: 40px;
+ background-position: -114px -91px;
+ }
+
+ #nav-topright li.nav-topright-labs a:hover
+ {
+ background-position: -114px -117px;
+ }
+
+ #nav-topright li.nav-topright-doc a
+ {
+ width: 32px;
+ background-position: -162px -91px;
+ }
+
+ #nav-topright li.nav-topright-doc a:hover, #nav-topright li.nav-topright-doc-active a
+ {
+ background-position: -162px -117px;
+ }
+
+ #nav-topright li.nav-topright-blog a
+ {
+ width: 40px;
+ background-position: -203px -91px;
+ }
+
+ #nav-topright li.nav-topright-blog a:hover, #nav-topright li.nav-topright-blog-active a
+ {
+ background-position: -203px -117px;
+ }
+
+ #nav-topright li.nav-topright-shop a
+ {
+ width: 40px;
+ background-position: -252px -91px;
+ }
+
+ #nav-topright li.nav-topright-shop a:hover, #nav-topright li.nav-topright-shop-active a
+ {
+ background-position: -252px -117px;
+ }
+
+ #nav-logo
+ {
+ background: transparent url(../images/sprites-combined.png ) no-repeat 0 -225px;
+ left: -3px;
+ position: absolute;
+ width: 75px;
+ height: 75px;
+ top: 13px;
+ }
+ #nav-logo a
+ {
+ width: 75px;
+ height: 75px;
+ display: block;
+ text-indent: -9999px;
+ overflow: hidden;
+ }
+
+
+ .shortCut-topleft-inactive
+ {
+ padding-left: 3px;
+ padding-right: 3px;
+ background: transparent url( ../images/sprites-combined.png) no-repeat 0px -58px;
+ height: 20px;
+ }
+ .shortCut-topleft-inactive span
+ {
+ font-variant: normal;
+ }
+ .shortCut-topleft-inactive span a:hover, .shortCut-topleft-active a:hover
+ {
+ text-decoration:none;
+ }
+ #shortCut
+ {
+ padding-top: 10px;
+ font-weight: bolder;
+ color: #b0adab;
+ }
+ #shortCut ul
+ {
+ list-style-type: none;
+ float: left;
+ width: 347px;
+ margin-left: 100px;
+ }
+ #shortCut li
+ {
+ display: inline-block;
+ margin-right: 25px;
+ float: left;
+ white-space: nowrap;
+ }
+ #shortCut li a
+ {
+ color: #b0adab;
+ }
+ #shortCut li a:hover
+ {
+ color: #44a51c;
+ }
+
+
+
+/* end header elements */
+/* content and sidebar elements */
+ .wrapper
+ {
+ background: url(../images/bg_r.png) repeat-y 100% 0;
+ }
+ .wrapper .hd
+ {
+ padding-left: 216px;
+ height: 15px;
+ background: url(../images/page.png) no-repeat 0 0;
+ overflow: hidden;
+ }
+
+
+
+
+ .wrapper .hd span
+ {
+ height: 15px;
+ display: block;
+ overflow: hidden;
+ background: url(../images/page.png) no-repeat 100% -30px;
+ }
+ .wrapper .bd
+ {
+ background: url(../images/bg_l.png) repeat-y 0 0;
+ position: relative;
+ }
+
+
+
+
+ .wrapper .ft
+ {
+ padding-left: 216px;
+ height: 15px;
+ background: url(../images/page.png) no-repeat 0 -75px;
+ overflow: hidden;
+ }
+
+
+
+
+ .wrapper .ft span
+ {
+ height: 15px;
+ display: block;
+ background: url(../images/page.png) no-repeat 100% -60px;
+ overflow: hidden;
+ }
+ .navTop{
+ float:right;
+ display:block;
+ padding-right:15px;
+
+
+ }
+
+
+
+/* end content and sidebar elements */
+/* sidebar elements */
+ .sidebar
+ {
+ float: left;
+ margin-left: 5px;
+ width: 200px;
+ font-size: 11px;
+ }
+
+
+
+
+
+
+ .sidebar .searchlabel
+ {
+ padding: 0 0 2px 17px;
+ font: normal bold 11px/1.2 Verdana;
+ }
+
+ .sidebar .search
+ {
+ padding: 0 15px 0 16px;
+ }
+
+ .sidebar .search form
+ {
+ background: url(../images/sprites-combined.png) no-repeat -6px -348px;
+ height:21px;
+ padding:2px 0 0 5px;
+ width:167px;
+ }
+
+ .sidebar .search form input#pageType
+ {
+ width: 158px;
+ height: 19px;
+ padding: 0;
+ border: 0px;
+ outline: none;
+ font: 13px/1.2 Verdana;
+ }
+
+ .sidebar .box
+ {
+ padding: 17px 15px 5px 16px;
+ }
+
+ .sidebar .box .first
+ {
+ background-image: none;
+ }
+
+ .sidebar .box h2
+ {
+ font: bold 16px/1.2 Arial;
+ padding: 0;
+ }
+ .sidebar .box h2 span
+ {
+ overflow: hidden;
+ display: inline-block;
+ }
+ .sidebar .box#lookup h2
+ {
+ background-image: none;
+ }
+ .sidebar #lookup.box h2 span
+ {
+ }
+ .sidebar .box#topics h2
+ {
+ background-image: none;
+ }
+ .sidebar #topics.box h2 span
+ {
+ }
+ .sidebar .box#examples h2
+ {
+ background-image: none;
+ }
+ .sidebar #examples.box h2 span
+ {
+ }
+
+ .sidebar .box .list
+ {
+ display: block;
+ max-height:200px;
+ min-height:120px;
+ overflow-y:auto;
+ overflow-x:none;
+ }
+ .list li a:hover
+ {
+ text-decoration: underline;
+ }
+ .sidebar .box ul
+ {
+ padding-bottom:5px;
+ padding-left:10px;
+ padding-top:5px;
+ }
+ .sidebar .box ul li
+ {
+ padding-left: 12px;
+ background: url(../images/bullet_gt.png) no-repeat 0 5px;
+ margin-bottom: 5px;
+ }
+ .sidebar .bottombar
+ {
+ background: url(../images/box_bg.png) repeat-x 0 bottom;
+ }
+ .sidebar .box ul li.noMatch
+ {
+ background: none;
+ color:#FF2A00;
+ font-style:italic;
+ }
+ .sidebar .box ul li.hit
+ {
+ background: none;
+ color:#AAD2F0;
+ font-style:italic;
+ }
+ .sidebar .search form input.loading
+ {
+ background:url("../images/spinner.gif") no-repeat scroll right center transparent;
+ }
+
+.floatingResult{
+ z-index:1;
+ position:relative;
+ padding-top:0px;
+ background-color:white;
+ border:solid 1px black;
+ height:250px;
+ width:600px;
+ overflow-x:hidden;
+ overflow-y:auto;
+}
+
+ .floatingResult:hover{
+ display:block;
+ }
+ .floatingResult:hover{
+ }
+
+/* end sidebar elements */
+/* content elements */
+ .wrap
+ {
+ margin: 0 5px 0 208px;
+ overflow: visible;
+ }
+
+
+
+
+ .wrap .toolbar
+ {
+ background-color: #fafafa;
+ border-bottom: 1px solid #d1d1d1;
+ height: 20px;
+ position: relative;
+ }
+ .wrap .toolbar .toolblock
+ {
+ position: absolute;
+ }
+ .wrap .toolbar .breadcrumb
+ {
+ font-size: 11px;
+ line-height: 1.2;
+ padding: 0 0 10px 21px;
+ height: 10px;
+ }
+ .wrap .toolbar .toolbuttons
+ {
+ padding: 0 0 10px 21px;
+ right: 5px;
+ vertical-align: middle;
+ overflow: hidden;
+ }
+ .wrap .toolbar .toolbuttons .active
+ {
+ color: #00732F;
+ }
+ .wrap .toolbar .toolbuttons ul
+ {
+ float: right;
+ }
+ .wrap .toolbar .toolbuttons li
+ {
+ float: left;
+ text-indent: -10px;
+ margin-top: -5px;
+ margin-right: 15px;
+ font-weight: bold;
+ color: #B0ADAB;
+ }
+
+ .toolbuttons #print
+ {
+ border-left: 1px solid #c5c4c4;
+ margin-top: 0;
+ padding-left: 7px;
+ text-indent: 0;
+ }
+ .toolbuttons #print a
+ {
+ width: 16px;
+ height: 16px;
+ }
+
+ .toolbuttons #print a span
+ {
+ width: 16px;
+ height: 16px;
+ text-indent: -999em;
+ display: block;
+ overflow: hidden;
+ background: url(../images/sprites-combined.png) no-repeat -137px -311px;
+ }
+
+ .toolbuttons #smallA
+ {
+ font-size: 10pt;
+ }
+ .toolbuttons #medA
+ {
+ font-size: 12pt;
+ }
+ .toolbuttons #bigA
+ {
+ font-size: 14pt;
+ margin-right: 7px;
+ }
+
+ #smallA:hover, #medA:hover, #bigA:hover
+ {
+ color: #00732F;
+ }
+
+
+ .wrap .content
+ {
+ padding: 30px;
+ word-wrap:break-word;
+ }
+
+ .wrap .breadcrumb ul
+ {
+ }
+ .wrap .breadcrumb ul li
+ {
+ float: left;
+ background: url(../images/breadcrumb.png) no-repeat 0 3px;
+ padding-left: 15px;
+ margin-left: 15px;
+ font-weight: bold;
+ }
+ .wrap .breadcrumb ul li.last
+ {
+ font-weight: normal;
+ }
+ .wrap .breadcrumb ul li a
+ {
+ color: #363534;
+ }
+ .wrap .breadcrumb ul li.first
+ {
+ background-image: none;
+ padding-left: 0;
+ margin-left: 0;
+ }
+
+
+
+
+ .wrap .content ol li {
+ background:none;
+ font:normal 10pt/1.2 Verdana;
+
+ margin-bottom:10px;
+ margin-left:12px;
+ /*list-style-type:disc;*/
+ }
+
+ .wrap .content ol li
+ {
+ background:none;
+ margin-bottom: 10px;
+ padding-left:0px;
+ margin-left:52px;
+ }
+
+ .wrap .content li
+ {
+ background: url(../images/bullet_sq.png) no-repeat 0 5px;
+ font: normal 400 10pt/1.2 Verdana;
+ margin-bottom: 10px;
+ padding-left:12px;
+ }
+
+ .content li:hover {}
+
+ .wrap .content h1
+ {
+ font: bold 18px/1.2 Arial;
+ }
+ .wrap .content h2
+ {
+ border-bottom:1px solid #DDDDDD;
+ font:600 16px/1.2 Arial;
+ margin-top:15px;
+ width:100%;
+ }
+ .wrap .content h3
+ {
+ font: bold 14px/1.2 Arial;
+ font:600 16px/1.2 Arial;
+ margin-top:15px;
+ width:100%;
+ }
+ .wrap .content p
+ {
+ line-height: 20px;
+ padding: 5px;
+ }
+ .wrap .content table p
+ {
+ line-height: 20px;
+ /* padding: 0px;*/
+ }
+ .wrap .content ul
+ {
+ padding-left: 25px;
+ padding-top: 10px;
+ }
+ a:hover
+ {
+ color: #4c0033;
+ text-decoration: underline;
+ }
+ .feedback
+ {
+ float: none;
+ position: absolute;
+ right: 15px;
+ bottom: 10px;
+ font: normal 8px/1 Verdana;
+ color: #B0ADAB;
+ }
+ .feedback:hover
+ {
+ float: right;
+ font: normal 8px/1 Verdana;
+ color: #00732F;
+ text-decoration: underline;
+ }
+ .alphaChar{
+ width:95%;
+ background-color:#F6F6F6;
+ border:1px solid #E6E6E6;
+ -moz-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ font-size:12pt;
+ padding-left:10px;
+ margin-top:10px;
+ margin-bottom:10px;
+ }
+ .flowList{
+ /*vertical-align:top;*/
+ /*margin:20px auto;*/
+
+ column-count:3;
+ -webkit-column-count:3;
+ -moz-column-count:3;
+/*
+ column-width:100%;
+ -webkit-column-width:200px;
+ -col-column-width:200px;
+*/
+ column-gap:41px;
+ -webkit-column-gap:41px;
+ -moz-column-gap:41px;
+
+ column-rule: 1px dashed #ccc;
+ -webkit-column-rule: 1px dashed #ccc;
+ -moz-column-rule: 1px dashed #ccc;
+ }
+
+ .flowList dl{
+ }
+ .flowList dd{
+ /*display:inline-block;*/
+ margin-left:10px;
+ min-width:250px;
+ line-height: 1.2;
+
+ }
+
+ .flowList dd a{
+ }
+
+ .wrap .content .flowList p{
+ padding:0px;
+ }
+
+ .content .alignedsummary
+ {
+ margin: 15px;
+ }
+
+
+ .qmltype
+ {
+ text-align: center;
+ font-size: 160%;
+ }
+ .qmlreadonly
+ {
+ padding-left: 5px;
+ float: right;
+ color: #254117;
+ }
+
+ .qmldefault
+ {
+ padding-left: 5px;
+ float: right;
+ color: red;
+ }
+
+ .qmldoc
+ {
+ }
+
+ *.qmlitem p
+ {
+ }
+ #feedbackBox
+ {
+ display: none;
+ -moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ border: 1px solid #DDDDDD;
+ position: fixed;
+ top: 100px;
+ left: 33%;
+ height: 230px;
+ width: 400px;
+ padding: 5px;
+ background-color: #e6e7e8;
+ z-index: 4;
+ }
+ #feedcloseX
+ {
+ display: inline;
+ padding: 5px 5px 0 0;
+ margin-bottom: 3px;
+ color: #363534;
+ font-weight:bold;
+ float: right;
+ text-decoration: none;
+ }
+
+ #feedbox
+ {
+ display: inline;
+ width: 370px;
+ height: 120px;
+ margin: 0px 25px 10px 15px;
+ }
+ #noteHead
+ {
+ font-weight:bold;
+ padding:10px 10px 10px 20px;
+ }
+ #feedsubmit
+ {
+ display: inline;
+ float: right;
+ margin: 4px 32px 0 0;
+ }
+
+ .note
+ {
+ font-size:7pt;
+ padding-bottom:3px;
+ padding-left:20px;
+ }
+
+ #blurpage
+ {
+ display: none;
+ position: fixed;
+ float: none;
+ top: 0px;
+ left: 0px;
+ right: 0px;
+ bottom: 0px;
+ background: transparent url(../images/feedbackground.png) 0 0;
+ z-index: 3;
+ }
+ .toc
+ {
+ float: right;
+ -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 #DDDDDD;
+ margin: 0 20px 10px 10px;
+ padding: 20px 15px 20px 20px;
+ height: auto;
+ width: 200px;
+ }
+
+ .toc h3, .generic a
+ {
+ font: bold 12px/1.2 Arial;
+ }
+
+ .generic{
+ }
+ .generic td{
+ /* padding:5px;*/
+ }
+ .generic .alphaChar{
+ margin-top:5px;
+ }
+
+ .generic .odd .alphaChar{
+ background-color: #F6F6F6;
+ }
+
+ .generic .even .alphaChar{
+ background-color: #FFFFFF;
+ }
+
+ .alignedsummary{}
+ .propsummary{}
+ .memItemLeft{}
+ .memItemRight{
+ padding:3px 15px 3px 0;
+ }
+ .bottomAlign{}
+ .highlightedCode
+ {
+ margin:10px;
+ }
+ .LegaleseLeft{}
+ .valuelist{}
+ .annotated td{
+ padding: 3px 5px 3px 5px;
+ }
+ .obsolete{}
+ .compat{}
+ .flags{}
+ .qmlsummary{}
+ .qmlitem{}
+ .qmlproto{}
+ .qmlname{}
+ .qmlreadonly{}
+ .qmldefault{}
+ .qmldoc{}
+ .qt-style{}
+ .redFont{}
+ code{}
+
+ .wrap .content .toc ul
+ {
+ padding-left: 0px;
+ }
+
+ .wrap .content .toc h3{
+ border-bottom:0px;
+ margin-top:0px;
+ }
+
+ .wrap .content .toc h3 a:hover{
+ color:#00732F;
+ text-decoration:none;
+ }
+
+
+ .wrap .content .toc .level2
+ {
+ margin-left: 15px;
+ }
+
+ .wrap .content .toc .level3
+ {
+ margin-left: 30px;
+ }
+
+ .content .toc li
+ {
+ font: normal 10px/1.2 Verdana;
+ background: url(../images/bullet_dn.png) no-repeat 0 5px;
+ }
+ .relpage
+ {
+ -moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ border: 1px solid #DDDDDD;
+ padding: 25px 25px;
+ clear: both;
+ }
+ .relpage ul
+ {
+ float: none;
+ padding: 15px;
+ }
+ .content .relpage li
+ {
+ font: normal 11px/1.2 Verdana;
+ }
+ h3.fn, span.fn
+ {
+ -moz-border-radius:7px 7px 7px 7px;
+ -webkit-border-radius:7px 7px 7px 7px;
+ border-radius:7px 7px 7px 7px;
+ background-color: #F6F6F6;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #E6E6E6;
+ font-weight: bold;
+ word-spacing:3px;
+ padding:3px 5px;
+ }
+
+ .functionIndex {
+ font-size:12pt;
+ word-spacing:10px;
+ margin-bottom:10px;
+ background-color: #F6F6F6;
+ 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;
+ width:100%;
+ }
+
+ .centerAlign
+ {
+ text-align:center;
+ }
+
+ .rightAlign
+ {
+ text-align:right;
+ }
+
+
+ .leftAlign
+ {
+ text-align:left;
+ }
+
+ .topAlign{
+ vertical-align:top
+ }
+
+ .functionIndex a{
+ display:inline-block;
+ }
+
+/* end content elements */
+/* footer elements */
+
+ .footer
+ {
+ min-height: 100px;
+ color: #797775;
+ font: normal 9px/1 Verdana;
+ text-align: center;
+ padding-top: 40px;
+ background-color: #E6E7E8;
+ margin: 0;
+ }
+/* end footer elements */
+
+
+
+
+ /* start index box */
+ .indexbox
+ {
+ width: 100%;
+ display:inline-block;
+ }
+
+ .indexboxcont
+ {
+ display: block;
+
+ }
+
+ .indexboxbar
+ {
+ background: transparent url(../images/horBar.png ) repeat-x left bottom;
+ margin-bottom: 25px;
+
+
+ }
+
+ .indexboxcont .section
+ {
+ display: inline-block;
+ width: 49%;
+ *width:42%;
+ _width:42%;
+ padding:0 2% 0 1%;
+ vertical-align:top;
+
+}
+
+ .indexboxcont .indexIcon
+ {
+ width: 11%;
+ *width:18%;
+ _width:18%;
+ overflow:hidden;
+
+}
+
+.indexboxcont .section {
+ float: left;
+}
+
+ .indexboxcont .section p
+ {
+ padding-top: 20px;
+ padding-bottom: 20px;
+ }
+ .indexboxcont .sectionlist
+ {
+ display: inline-block;
+ vertical-align:top;
+ width: 32.5%;
+ padding: 0;
+ }
+ .indexboxcont .sectionlist ul
+ {
+ margin-bottom: 20px;
+ }
+
+ .indexboxcont .sectionlist ul li
+ {
+ line-height: 12px;
+ }
+
+ .content .indexboxcont li
+ {
+ font: normal bold 13px/1 Verdana;
+ }
+
+ .indexbox a:hover, .indexbox a:visited:hover
+ {
+ color: #4c0033;
+ text-decoration: underline;
+ }
+
+ .indexbox a:visited
+ {
+ color: #00732f;
+ text-decoration: none;
+ }
+
+ .indexbox .indexIcon {
+ width: 11%;
+ }
+
+
+ .indexbox .indexIcon span
+ {
+ display: block;
+ }
+
+ .indexbox.guide .indexIcon span
+ {
+ width: 96px;
+ height: 137px;
+ background: url(../images/sprites-combined.png) no-repeat -5px -376px;
+ padding: 0;
+ }
+
+ .indexbox.tools .indexIcon span
+ {
+ width: 115px;
+ height: 137px;
+ background: url(../images/sprites-combined.png) no-repeat -111px -376px;
+ padding: 0;
+ }
+ .indexboxcont:after
+ {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+ }
+
+
+
+/* start of creator spec*/
+ .creator
+ {
+ margin-left:0px;
+ margin-right:0px;
+ padding-left:0px;
+ padding-right:0px;
+ }
+ .creator .wrap .content ol li {
+ list-style-type:decimal;
+
+ }
+ .creator .header .icon,
+ .creator .feedback,
+ .creator .t_button,
+ .creator .feedback,
+ .creator #feedbackBox,
+ .creator #feedback,
+ .creator #blurpage,
+ /*.creator .indexbox .indexIcon span,*/
+ .creator .wrapper .hd,
+/* .creator .indexbox .indexIcon,*/
+ .creator .header #nav-logo,
+ .creator #offlinemenu,
+ .creator #offlinesearch,
+ .creator .header #nav-topright,
+ .creator .header #shortCut ,
+ .creator .wrapper .hd,
+ .creator .wrapper .ft,
+ .creator .sidebar,
+ .creator .wrap .feedback
+ {
+ display:none;
+ }
+
+ body.creator
+ {
+ background: none;
+
+ font: normal 13px/1.2 Verdana;
+ color: #363534;
+ background-color: #FAFAFA;
+ }
+
+ .wrap .content ol li {
+
+ }
+
+
+ .creator .header, .footer, .wrapper
+ {
+ max-width: 1500px;
+ margin: 0px;
+ }
+
+ .creator .wrapper
+ {
+ position:relative;
+ top:5px;
+ }
+ .creator .wrapper .bd
+ {
+
+ background:#FFFFFF;
+ }
+
+
+ .creator .header, .footer
+ {
+ display: block;
+ clear: both;
+ overflow: hidden;
+ }
+ .creator .wrap .content p
+
+ {
+ line-height: 20px;
+ padding: 5px;
+ }
+
+ .creator .header .qtref span
+ {
+ background:none;
+ }
+
+
+
+ .creator .footer
+ {
+ border-top:1px solid #E5E5E5;
+ height: 50px;
+ margin:0px;
+ padding:10px;
+ }
+
+ .creator .footer p
+ {
+ text-align:justify;
+ max-width:900px;
+ }
+
+ .creator .wrap
+ {
+
+ padding:0 5px 0 5px;
+ margin: 0px;
+ }
+ .creator .wrap .toolbar
+ {
+
+
+ border-bottom:1px solid #E5E5E5;
+ /*width:100%;*/
+ margin-left:-5px;
+ margin-right:-5px;
+ }
+ .creator .wrap .breadcrumb ul li a
+ {
+ /* color: #363534;*/
+ color: #00732F;
+ }
+
+ .creator .wrap .content
+ {
+ padding: 0px;
+ word-wrap:break-word;
+ }
+
+ .creator .wrap .content ol li {
+ background:none;
+ font: inherit;
+ padding-left: 0px;
+ }
+
+ .creator .wrap .content .descr ol li {
+ margin-left: 45px;
+
+ }
+ .creator .content .alignedsummary
+ {
+ margin: 5px;
+ width:100%;
+ }
+ .creator .generic{
+ max-width:75%;
+ }
+ .creator .generic td{
+ /*padding:0;*/
+ }
+ .creator .indexboxbar
+ {
+ border-bottom:1px solid #E5E5E5;
+ margin-bottom: 25px;
+ background: none;
+ }
+
+
+
+ .creator .header
+ {
+ width: 100%;
+ margin: 0;
+ height: auto;
+ background-color: #ffffff;
+ padding: 10px 0 5px 0;
+ overflow: visible;
+ border-bottom: solid #E5E5E5 1px;
+ z-index:1;
+
+
+
+
+
+
+
+
+ /* position:fixed;*/
+ }
+
+
+ .creator .header .content
+ {
+ }
+ .creator .header .qtref
+ {
+ color: #00732F;
+ position: static;
+ float: left;
+ margin-left: 5px;
+ font: bold 18px/1 Arial;
+ }
+
+ .creator .header .qtref:visited
+ {
+ color: #00732F;
+ }
+ .creator .header .qtref:hover
+ {
+ color: #00732F;
+ text-decoration:none;
+ }
+ .creator .header .qtref span
+ {
+ background-image: none;
+ text-indent: 0;
+ text-decoration:none;
+ }
+
+
+
+
+
+
+ .creator .wrap .toolbar
+ {
+ display:block;
+ padding-top:0px;
+ }
+
+
+
+ .creator .wrap .breadcrumb ul li {
+ font-weight: normal;
+ }
+
+ .creator .wrap .breadcrumb ul li a {
+ /*color: #44a51c;*/
+ }
+
+ .creator .wrap .breadcrumb ul li.last a {
+ /*color: #363534;*/
+ }
+
+ .creator #narrowmenu ul
+ {
+ border-bottom:solid 1px #E5E5E5;
+ border-left:solid 1px #E5E5E5;
+ border-right:solid 1px #E5E5E5;
+ }
+
+ .creator #narrowmenu li ul {
+ margin-top:-15px;
+ }
+
+
+ .creator .toc {
+ margin:10px 20px 10px 10px;
+ }
+
+ .creator #narrowsearch, .creator #narrowmenu{
+ display:none;
+ }
+/* end of creator spec*/
+
+}
+
+/* end of screen media */
+
+/* start of print media */
+
+@media print
+{
+ input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft, #feedbackBox, #blurpage, .toc, .breadcrumb, .toolbar, .floatingResult
+ {
+ display: none;
+ background: none;
+ }
+ .content
+ {
+ background: none;
+ display: block;
+ width: 100%; margin: 0; float: none;
+
+ }
+}
+/* end of print media */
diff --git a/doc/html/style/style_ie6.css b/doc/html/style/style_ie6.css
new file mode 100755
index 0000000..16fb850
--- /dev/null
+++ b/doc/html/style/style_ie6.css
@@ -0,0 +1,54 @@
+.indexbox, .indexboxcont, .group {
+ zoom: 1;
+ height: 1%;
+}
+
+.sidebar {
+ margin-left: 3px;
+ width: 199px;
+ overflow: hidden;
+}
+
+.sidebar .search form {
+ position: relative;
+}
+
+.sidebar .search form fieldset {
+ position: absolute;
+ margin-top: -1px;
+}
+
+.sidebar .search form input#searchstring {
+ border: 1px solid #fff;
+ height: 18px;
+}
+
+.wrap {
+ zoom: 1;
+}
+
+.content,
+.toolbar {
+ zoom: 1;
+ margin-left: -3px;
+ position: relative;
+}
+
+.indexbox {
+ clear: both;
+}
+
+.indexboxcont .section {
+ zoom: 1;
+ float: left;
+}
+
+.indexboxcont .sectionlist {
+ zoom: 1;
+ float: left;
+}
+
+.wrap .toolbar .toolbuttons li {
+ text-indent: 0;
+ margin-right: 8px;
+} \ No newline at end of file
diff --git a/doc/html/style/style_ie7.css b/doc/html/style/style_ie7.css
new file mode 100755
index 0000000..afbff5f
--- /dev/null
+++ b/doc/html/style/style_ie7.css
@@ -0,0 +1,19 @@
+.indexbox, .indexboxcont, .group {
+ min-height: 1px;
+}
+
+.sidebar .search form input#searchstring {
+ border: 1px solid #fff;
+ height: 17px;
+}
+
+
+.indexboxcont .section {
+ zoom: 1;
+ float: left;
+}
+
+.indexboxcont .sectionlist {
+ zoom: 1;
+ float: left;
+}
diff --git a/doc/html/style/style_ie8.css b/doc/html/style/style_ie8.css
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/doc/html/style/style_ie8.css
diff --git a/doc/html/style/superfish.css b/doc/html/style/superfish.css
new file mode 100755
index 0000000..0cf0f7d
--- /dev/null
+++ b/doc/html/style/superfish.css
@@ -0,0 +1,51 @@
+.sf-menu, .sf-menu * {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+.sf-menu {
+ line-height: 1.0;
+}
+.sf-menu ul {
+ position: absolute;
+ top: -999em;
+ width: 10em; /* left offset of submenus need to match (see below) */
+}
+.sf-menu ul li {
+ width: 100%;
+}
+.sf-menu li:hover {
+ visibility: inherit; /* fixes IE7 'sticky bug' */
+}
+.sf-menu li {
+ float: left;
+ position: relative;
+}
+.sf-menu a {
+ display: block;
+ position: relative;
+}
+.sf-menu li:hover ul,
+.sf-menu li.sfHover ul {
+ left: 0;
+ top: 2.5em; /* match top ul list item height */
+ z-index: 99;
+}
+ul.sf-menu li:hover li ul,
+ul.sf-menu li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li:hover ul,
+ul.sf-menu li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+ul.sf-menu li li:hover li ul,
+ul.sf-menu li li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li li:hover ul,
+ul.sf-menu li li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
diff --git a/doc/src/images/Example1.png b/doc/src/images/Example1.png
new file mode 100644
index 0000000..dbc7291
--- /dev/null
+++ b/doc/src/images/Example1.png
Binary files differ
diff --git a/doc/src/images/arrow_down.png b/doc/src/images/arrow_down.png
new file mode 100755
index 0000000..9d01e97
--- /dev/null
+++ b/doc/src/images/arrow_down.png
Binary files differ
diff --git a/doc/src/images/bg_l.png b/doc/src/images/bg_l.png
new file mode 100755
index 0000000..90b1da1
--- /dev/null
+++ b/doc/src/images/bg_l.png
Binary files differ
diff --git a/doc/src/images/bg_l_blank.png b/doc/src/images/bg_l_blank.png
new file mode 100755
index 0000000..5a9673d
--- /dev/null
+++ b/doc/src/images/bg_l_blank.png
Binary files differ
diff --git a/doc/src/images/bg_ll_blank.png b/doc/src/images/bg_ll_blank.png
new file mode 100755
index 0000000..95a1c45
--- /dev/null
+++ b/doc/src/images/bg_ll_blank.png
Binary files differ
diff --git a/doc/src/images/bg_r.png b/doc/src/images/bg_r.png
new file mode 100755
index 0000000..f0fb121
--- /dev/null
+++ b/doc/src/images/bg_r.png
Binary files differ
diff --git a/doc/src/images/bg_ul_blank.png b/doc/src/images/bg_ul_blank.png
new file mode 100755
index 0000000..7051261
--- /dev/null
+++ b/doc/src/images/bg_ul_blank.png
Binary files differ
diff --git a/doc/src/images/box_bg.png b/doc/src/images/box_bg.png
new file mode 100755
index 0000000..3322f92
--- /dev/null
+++ b/doc/src/images/box_bg.png
Binary files differ
diff --git a/doc/src/images/breadcrumb.png b/doc/src/images/breadcrumb.png
new file mode 100755
index 0000000..0ded551
--- /dev/null
+++ b/doc/src/images/breadcrumb.png
Binary files differ
diff --git a/doc/src/images/bullet_dn.png b/doc/src/images/bullet_dn.png
new file mode 100755
index 0000000..f776247
--- /dev/null
+++ b/doc/src/images/bullet_dn.png
Binary files differ
diff --git a/doc/src/images/bullet_gt.png b/doc/src/images/bullet_gt.png
new file mode 100755
index 0000000..7561b4e
--- /dev/null
+++ b/doc/src/images/bullet_gt.png
Binary files differ
diff --git a/doc/src/images/bullet_sq.png b/doc/src/images/bullet_sq.png
new file mode 100755
index 0000000..a84845e
--- /dev/null
+++ b/doc/src/images/bullet_sq.png
Binary files differ
diff --git a/doc/src/images/bullet_up.png b/doc/src/images/bullet_up.png
new file mode 100755
index 0000000..7de2f06
--- /dev/null
+++ b/doc/src/images/bullet_up.png
Binary files differ
diff --git a/doc/src/images/feedbackground.png b/doc/src/images/feedbackground.png
new file mode 100755
index 0000000..3a38d99
--- /dev/null
+++ b/doc/src/images/feedbackground.png
Binary files differ
diff --git a/doc/src/images/header_bg.png b/doc/src/images/header_bg.png
new file mode 100755
index 0000000..a436aa6
--- /dev/null
+++ b/doc/src/images/header_bg.png
Binary files differ
diff --git a/doc/src/images/horBar.png b/doc/src/images/horBar.png
new file mode 100755
index 0000000..100fe91
--- /dev/null
+++ b/doc/src/images/horBar.png
Binary files differ
diff --git a/doc/src/images/page.png b/doc/src/images/page.png
new file mode 100755
index 0000000..1db151b
--- /dev/null
+++ b/doc/src/images/page.png
Binary files differ
diff --git a/doc/src/images/page_bg.png b/doc/src/images/page_bg.png
new file mode 100755
index 0000000..9b3bd99
--- /dev/null
+++ b/doc/src/images/page_bg.png
Binary files differ
diff --git a/doc/src/images/spinner.gif b/doc/src/images/spinner.gif
new file mode 100755
index 0000000..1ed786f
--- /dev/null
+++ b/doc/src/images/spinner.gif
Binary files differ
diff --git a/doc/src/images/sprites-combined.png b/doc/src/images/sprites-combined.png
new file mode 100755
index 0000000..3a48b21
--- /dev/null
+++ b/doc/src/images/sprites-combined.png
Binary files differ
diff --git a/doc/src/qmlshadersplugin.qdocconf b/doc/src/qmlshadersplugin.qdocconf
new file mode 100644
index 0000000..d75e79a
--- /dev/null
+++ b/doc/src/qmlshadersplugin.qdocconf
@@ -0,0 +1,412 @@
+project = qmlshadersplugin
+description = "Qt.labs.shaders Documentation"
+
+headers = $QMLSHADERSPLUGINDIR/src/shadereffectitem.h \
+ $QMLSHADERSPLUGINDIR/src/shadereffectsource.h
+
+sources = $QMLSHADERSPLUGINDIR/src/shadereffectitem.cpp \
+ $QMLSHADERSPLUGINDIR/src/shadereffectsource.cpp \
+
+outputdir = $QMLSHADERSPLUGINDIR/doc/html
+outputformats = HTML
+sources.fileextensions = "*.cpp *.doc *.qdoc *.h *.qml"
+exampledirs = $QMLSHADERSPLUGINDIR/doc
+imagedirs = $QMLSHADERSPLUGINDIR/doc/src/images
+
+indexes = $QTDIR/doc/html/qt.index
+
+#from macros.qdocconf
+
+macro.aacute.HTML = "&aacute;"
+macro.Aring.HTML = "&Aring;"
+macro.aring.HTML = "&aring;"
+macro.Auml.HTML = "&Auml;"
+macro.author = "\\bold{Author:}"
+macro.br.HTML = "<br />"
+macro.BR.HTML = "<br />"
+macro.copyright.HTML = "&copy;"
+macro.eacute.HTML = "&eacute;"
+macro.gui = "\\bold"
+macro.hr.HTML = "<hr />"
+macro.iacute.HTML = "&iacute;"
+macro.key = "\\bold"
+macro.menu = "\\bold"
+macro.note = "\\bold{Note:}"
+macro.oslash.HTML = "&oslash;"
+macro.ouml.HTML = "&ouml;"
+macro.QA = "\\e{Qt Assistant}"
+macro.QD = "\\e{Qt Designer}"
+macro.QL = "\\e{Qt Linguist}"
+macro.QQV = "\\e{Qt QML Viewer}"
+macro.param = "\\e"
+macro.raisedaster.HTML = "<sup>*</sup>"
+macro.rarrow.HTML = "&rarr;"
+macro.reg.HTML = "<sup>&reg;</sup>"
+macro.return = "Returns"
+macro.starslash = "\\c{*/}"
+macro.begincomment = "\\c{/*}"
+macro.endcomment = "\\c{*/}"
+macro.uuml.HTML = "&uuml;"
+macro.mdash.HTML = "&mdash;"
+
+macro.beginfloatleft.HTML = "<div style=\"float: left; margin-right: 2em\">"
+macro.beginfloatright.HTML = "<div style=\"float: right; margin-left: 2em\">"
+macro.endfloat.HTML = "</div>"
+macro.clearfloat.HTML = "<br style=\"clear: both\" />"
+
+#from compat.qdocconf
+
+alias.i = e
+alias.include = input
+
+macro.0 = "\\\\0"
+macro.b = "\\\\b"
+macro.n = "\\\\n"
+macro.r = "\\\\r"
+macro.i = "\\o"
+macro.i11 = "\\o{1,1}"
+macro.i12 = "\\o{1,2}"
+macro.i13 = "\\o{1,3}"
+macro.i14 = "\\o{1,4}"
+macro.i15 = "\\o{1,5}"
+macro.i16 = "\\o{1,6}"
+macro.i17 = "\\o{1,7}"
+macro.i18 = "\\o{1,8}"
+macro.i19 = "\\o{1,9}"
+macro.i21 = "\\o{2,1}"
+macro.i31 = "\\o{3,1}"
+macro.i41 = "\\o{4,1}"
+macro.i51 = "\\o{5,1}"
+macro.i61 = "\\o{6,1}"
+macro.i71 = "\\o{7,1}"
+macro.i81 = "\\o{8,1}"
+macro.i91 = "\\o{9,1}"
+macro.img = "\\image"
+macro.endquote = "\\endquotation"
+macro.relatesto = "\\relates"
+
+spurious = "Missing comma in .*" \
+ "Missing pattern .*"
+
+#from qt-cpp-ignore.qdocconf
+
+Cpp.ignoretokens = QAXFACTORY_EXPORT \
+ QDESIGNER_COMPONENTS_LIBRARY \
+ QDESIGNER_EXTENSION_LIBRARY \
+ QDESIGNER_SDK_LIBRARY \
+ QDESIGNER_SHARED_LIBRARY \
+ QDESIGNER_UILIB_LIBRARY \
+ QM_EXPORT_CANVAS \
+ QM_EXPORT_DNS \
+ QM_EXPORT_DOM \
+ QM_EXPORT_FTP \
+ QM_EXPORT_HTTP \
+ QM_EXPORT_ICONVIEW \
+ QM_EXPORT_NETWORK \
+ QM_EXPORT_OPENGL \
+ QM_EXPORT_OPENVG \
+ QM_EXPORT_SQL \
+ QM_EXPORT_TABLE \
+ QM_EXPORT_WORKSPACE \
+ QM_EXPORT_XML \
+ QT_ASCII_CAST_WARN \
+ QT_ASCII_CAST_WARN_CONSTRUCTOR \
+ QT_BEGIN_HEADER \
+ QT_DESIGNER_STATIC \
+ QT_END_HEADER \
+ QT_FASTCALL \
+ QT_WIDGET_PLUGIN_EXPORT \
+ Q_COMPAT_EXPORT \
+ Q_CORE_EXPORT \
+ Q_CORE_EXPORT_INLINE \
+ Q_EXPLICIT \
+ Q_EXPORT \
+ Q_EXPORT_CODECS_CN \
+ Q_EXPORT_CODECS_JP \
+ Q_EXPORT_CODECS_KR \
+ Q_EXPORT_PLUGIN \
+ Q_GFX_INLINE \
+ Q_AUTOTEST_EXPORT \
+ Q_GUI_EXPORT \
+ Q_GUI_EXPORT_INLINE \
+ Q_GUI_EXPORT_STYLE_CDE \
+ Q_GUI_EXPORT_STYLE_COMPACT \
+ Q_GUI_EXPORT_STYLE_MAC \
+ Q_GUI_EXPORT_STYLE_MOTIF \
+ Q_GUI_EXPORT_STYLE_MOTIFPLUS \
+ Q_GUI_EXPORT_STYLE_PLATINUM \
+ Q_GUI_EXPORT_STYLE_POCKETPC \
+ Q_GUI_EXPORT_STYLE_SGI \
+ Q_GUI_EXPORT_STYLE_WINDOWS \
+ Q_GUI_EXPORT_STYLE_WINDOWSXP \
+ QHELP_EXPORT \
+ Q_INLINE_TEMPLATE \
+ Q_INTERNAL_WIN_NO_THROW \
+ Q_NETWORK_EXPORT \
+ Q_OPENGL_EXPORT \
+ Q_OPENVG_EXPORT \
+ Q_OUTOFLINE_TEMPLATE \
+ Q_SQL_EXPORT \
+ Q_SVG_EXPORT \
+ Q_SCRIPT_EXPORT \
+ Q_SCRIPTTOOLS_EXPORT \
+ Q_TESTLIB_EXPORT \
+ Q_TYPENAME \
+ Q_XML_EXPORT \
+ Q_XMLSTREAM_EXPORT \
+ Q_XMLPATTERNS_EXPORT \
+ QDBUS_EXPORT \
+ Q_DBUS_EXPORT \
+ QT_BEGIN_NAMESPACE \
+ QT_BEGIN_INCLUDE_NAMESPACE \
+ QT_END_NAMESPACE \
+ QT_END_INCLUDE_NAMESPACE \
+ PHONON_EXPORT \
+ Q_DECLARATIVE_EXPORT \
+ Q_GADGET \
+ QWEBKIT_EXPORT \
+ Q_INVOKABLE
+Cpp.ignoredirectives = Q_DECLARE_HANDLE \
+ Q_DECLARE_INTERFACE \
+ Q_DECLARE_METATYPE \
+ Q_DECLARE_OPERATORS_FOR_FLAGS \
+ Q_DECLARE_PRIVATE \
+ Q_DECLARE_PUBLIC \
+ Q_DECLARE_SHARED \
+ Q_DECLARE_TR_FUNCTIONS \
+ Q_DECLARE_TYPEINFO \
+ Q_DISABLE_COPY \
+ QT_FORWARD_DECLARE_CLASS \
+ Q_DUMMY_COMPARISON_OPERATOR \
+ Q_ENUMS \
+ Q_FLAGS \
+ Q_INTERFACES \
+ __attribute__ \
+ K_DECLARE_PRIVATE \
+ PHONON_OBJECT \
+ PHONON_HEIR \
+ Q_PRIVATE_PROPERTY \
+ Q_DECLARE_PRIVATE_D \
+ Q_CLASSINFO
+
+#from qt-defines.qdocconf
+
+defines = Q_QDOC \
+ QT_.*_SUPPORT \
+ QT_.*_LIB \
+ QT_COMPAT \
+ QT_KEYPAD_NAVIGATION \
+ QT_NO_EGL \
+ QT3_SUPPORT \
+ Q_WS_.* \
+ Q_OS_.* \
+ Q_BYTE_ORDER \
+ QT_DEPRECATED \
+ Q_NO_USING_KEYWORD \
+ __cplusplus
+
+versionsym = QT_VERSION_STR
+
+codeindent = 1
+
+# Files not referenced in any qdoc file (last four needed by qtdemo)
+# See also qhp.Qt.extraFiles
+extraimages.HTML = qt-logo \
+ trolltech-logo \
+ bg_l.png \
+ bg_l_blank.png \
+ bg_ll_blank.png \
+ bg_ul_blank.png \
+ header_bg.png \
+ bg_r.png \
+ box_bg.png \
+ breadcrumb.png \
+ bullet_gt.png \
+ bullet_dn.png \
+ bullet_sq.png \
+ bullet_up.png \
+ arrow_down.png \
+ feedbackground.png \
+ horBar.png \
+ page.png \
+ page_bg.png \
+ sprites-combined.png \
+ spinner.gif \
+ stylesheet-coffee-plastique.png \
+ taskmenuextension-example.png \
+ coloreditorfactoryimage.png \
+ dynamiclayouts-example.png
+
+# This stuff is used by the new doc format.
+scriptdirs = $QT_SOURCE_TREE/doc/src/template/scripts
+styledirs = $QT_SOURCE_TREE/doc/src/template/style
+
+scripts.HTML = functions.js \
+ narrow.js \
+ superfish.js \
+ jquery.js
+
+styles.HTML = style.css \
+ narrow.css \
+ superfish.css \
+ superfish_skin.css \
+ style_ie6.css \
+ style_ie7.css \
+ style_ie8.css
+
+#from qt-html-templates.qdocconf
+
+HTML.stylesheets = style/style.css \
+ style/OfflineStyle.css \
+ style/style_ie7.css \
+ style/style_ie8.css \
+ style/style_ie6.css
+
+HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \
+ " <div class=\"content\"> \n" \
+ " <div id=\"nav-logo\">\n" \
+ " <a href=\"index.html\">Home</a></div>\n" \
+ " <a href=\"index.html\" class=\"qtref\"><span>Qt Reference Documentation</span></a>\n" \
+ " <div id=\"nav-topright\">\n" \
+ " <ul>\n" \
+ " <li class=\"nav-topright-home\"><a href=\"http://qt.nokia.com/\">Qt HOME</a></li>\n" \
+ " <li class=\"nav-topright-dev\"><a href=\"http://developer.qt.nokia.com/\">DEV</a></li>\n" \
+ " <li class=\"nav-topright-labs\"><a href=\"http://labs.qt.nokia.com/blogs/\">LABS</a></li>\n" \
+ " <li class=\"nav-topright-doc nav-topright-doc-active\"><a href=\"http://doc.qt.nokia.com/\">\n" \
+ " DOC</a></li>\n" \
+ " <li class=\"nav-topright-blog\"><a href=\"http://blog.qt.nokia.com/\">BLOG</a></li>\n" \
+ " </ul>\n" \
+ " </div>\n" \
+ " <div id=\"shortCut\">\n" \
+ " <ul>\n" \
+ " <li class=\"shortCut-topleft-inactive\"><span><a href=\"index.html\">Qt 4.7</a></span></li>\n" \
+ " <li class=\"shortCut-topleft-active\"><a href=\"http://doc.qt.nokia.com\">ALL VERSIONS" \
+ " </a></li>\n" \
+ " </ul>\n" \
+ " </div>\n" \
+ " </div>\n" \
+ " </div>\n" \
+ " <div class=\"wrapper\">\n" \
+ " <div class=\"hd\">\n" \
+ " <span></span>\n" \
+ " </div>\n" \
+ " <div class=\"bd group\">\n" \
+ " <div class=\"sidebar\">\n" \
+ " <div class=\"searchlabel\">\n" \
+ " Search index:</div>\n" \
+ " <div class=\"search\">\n" \
+ " <form id=\"qtdocsearch\" action=\"\" onsubmit=\"return false;\">\n" \
+ " <fieldset>\n" \
+ " <input type=\"text\" name=\"searchstring\" id=\"pageType\" value=\"\" />\n" \
+ " <div id=\"resultdialog\"> \n" \
+ " <a href=\"#\" id=\"resultclose\">Close</a> \n" \
+ " <p id=\"resultlinks\" class=\"all\"><a href=\"#\" id=\"showallresults\">All</a> | <a href=\"#\" id=\"showapiresults\">API</a> | <a href=\"#\" id=\"showarticleresults\">Articles</a> | <a href=\"#\" id=\"showexampleresults\">Examples</a></p> \n" \
+ " <p id=\"searchcount\" class=\"all\"><span id=\"resultcount\"></span><span id=\"apicount\"></span><span id=\"articlecount\"></span><span id=\"examplecount\"></span>&nbsp;results:</p> \n" \
+ " <ul id=\"resultlist\" class=\"all\"> \n" \
+ " </ul> \n" \
+ " </div> \n" \
+ " </fieldset>\n" \
+ " </form>\n" \
+ " </div>\n" \
+ " <div class=\"box first bottombar\" id=\"lookup\">\n" \
+ " <h2 title=\"API Lookup\"><span></span>\n" \
+ " API Lookup</h2>\n" \
+ " <div id=\"list001\" class=\"list\">\n" \
+ " <ul id=\"ul001\" >\n" \
+ " <li class=\"defaultLink\"><a href=\"classes.html\">Class index</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"functions.html\">Function index</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"modules.html\">Modules</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"namespaces.html\">Namespaces</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"qtglobal.html\">Global Declarations</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"qdeclarativeelements.html\">QML elements</a></li>\n" \
+ " </ul> \n" \
+ " </div>\n" \
+ " </div>\n" \
+ " <div class=\"box bottombar\" id=\"topics\">\n" \
+ " <h2 title=\"Qt Topics\"><span></span>\n" \
+ " Qt Topics</h2>\n" \
+ " <div id=\"list002\" class=\"list\">\n" \
+ " <ul id=\"ul002\" >\n" \
+ " <li class=\"defaultLink\"><a href=\"qt-basic-concepts.html\">Programming with Qt</a></li> \n" \
+ " <li class=\"defaultLink\"><a href=\"qtquick.html\">Device UIs &amp; Qt Quick</a></li> \n" \
+ " <li class=\"defaultLink\"><a href=\"qt-gui-concepts.html\">UI Design with Qt</a></li> \n" \
+ " <li class=\"defaultLink\"><a href=\"developing-with-qt.html\">Cross-platform and Platform-specific</a></li> \n" \
+ " <li class=\"defaultLink\"><a href=\"platform-specific.html\">Platform-specific info</a></li> \n" \
+ " <li class=\"defaultLink\"><a href=\"technology-apis.html\">Qt and Key Technologies</a></li> \n" \
+ " <li class=\"defaultLink\"><a href=\"best-practices.html\">How-To's and Best Practices</a></li> \n" \
+ " </ul> \n" \
+ " </div>\n" \
+ " </div>\n" \
+ " <div class=\"box\" id=\"examples\">\n" \
+ " <h2 title=\"Examples\"><span></span>\n" \
+ " Examples</h2>\n" \
+ " <div id=\"list003\" class=\"list\">\n" \
+ " <ul id=\"ul003\">\n" \
+ " <li class=\"defaultLink\"><a href=\"all-examples.html\">Examples</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"tutorials.html\">Tutorials</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"demos.html\">Demos</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"qdeclarativeexamples.html\">QML Examples</a></li>\n" \
+ " </ul> \n" \
+ " </div>\n" \
+ " </div>\n" \
+ " </div>\n" \
+ " <div class=\"wrap\">\n" \
+ " <div class=\"toolbar\">\n" \
+ " <div class=\"breadcrumb toolblock\">\n" \
+ " <ul>\n" \
+ " <li class=\"first\"><a href=\"index.html\">Home</a></li>\n" \
+ " <!-- Bread crumbs goes here -->\n"
+
+HTML.postpostheader = " </ul>\n" \
+ " </div>\n" \
+ " <div class=\"toolbuttons toolblock\">\n" \
+ " <ul>\n" \
+ " <li id=\"smallA\" class=\"t_button\">A</li>\n" \
+ " <li id=\"medA\" class=\"t_button active\">A</li>\n" \
+ " <li id=\"bigA\" class=\"t_button\">A</li>\n" \
+ " <li id=\"print\" class=\"t_button\"><a href=\"javascript:this.print();\">\n" \
+ " <span>Print</span></a></li>\n" \
+ " </ul>\n" \
+ " </div>\n" \
+ " </div>\n" \
+ " <div class=\"content mainContent\">\n"
+
+HTML.footer = "" \
+ " <div class=\"feedback t_button\">\n" \
+ " [+] Documentation Feedback</div>\n" \
+ " </div>\n" \
+ " </div>\n" \
+ " </div> \n" \
+ " <div class=\"ft\">\n" \
+ " <span></span>\n" \
+ " </div>\n" \
+ " </div> \n" \
+ " <div class=\"footer\">\n" \
+ " <p>\n" \
+ " <acronym title=\"Copyright\">&copy;</acronym> 2008-2010 Nokia Corporation and/or its\n" \
+ " subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation \n" \
+ " in Finland and/or other countries worldwide.</p>\n" \
+ " <p>\n" \
+ " All other trademarks are property of their respective owners. <a title=\"Privacy Policy\"\n" \
+ " href=\"http://qt.nokia.com/about/privacy-policy\">Privacy Policy</a></p>\n" \
+ " <br />\n" \
+ " <p>\n" \
+ " Licensees holding valid Qt Commercial licenses may use this document 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 Nokia.</p>\n" \
+ " <p>\n" \
+ " Alternatively, this document may be used under the terms of the <a href=\"http://www.gnu.org/licenses/fdl.html\">GNU\n" \
+ " Free Documentation License version 1.3</a>\n" \
+ " as published by the Free Software Foundation.</p>\n" \
+ " </div>\n" \
+ " <div id=\"feedbackBox\">\n" \
+ " <div id=\"feedcloseX\" class=\"feedclose t_button\">X</div>\n" \
+ " <form id=\"feedform\" action=\"http://doc.qt.nokia.com/docFeedbck/feedback.php\" method=\"get\">\n" \
+ " <p id=\"noteHead\">Thank you for giving your feedback.</p> <p class=\"note\">Make sure it is related to this specific page. For more general bugs and \n" \
+ " requests, please use the <a href=\"http://bugreports.qt.nokia.com/secure/Dashboard.jspa\">Qt Bug Tracker</a>.</p>\n" \
+ " <p><textarea id=\"feedbox\" name=\"feedText\" rows=\"5\" cols=\"40\"></textarea></p>\n" \
+ " <p><input id=\"feedsubmit\" class=\"feedclose\" type=\"submit\" name=\"feedback\" /></p>\n" \
+ " </form>\n" \
+ " </div>\n" \
+ " <div id=\"blurpage\">\n" \
+ " </div>\n"
diff --git a/doc/src/scripts/functions.js b/doc/src/scripts/functions.js
new file mode 100755
index 0000000..faa4ca4
--- /dev/null
+++ b/doc/src/scripts/functions.js
@@ -0,0 +1,194 @@
+/* START non link areas where cursor should change to pointing hand */
+$('.t_button').mouseover(function() {
+ $('.t_button').css('cursor','pointer');
+ /*document.getElementById(this.id).style.cursor='pointer';*/
+});
+/* END non link areas */
+$('#smallA').click(function() {
+ $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('font-size','smaller');
+ $('.t_button').removeClass('active')
+ $(this).addClass('active')
+});
+
+$('#medA').click(function() {
+ $('.content .heading').css('font','600 16px/1 Arial');
+ $('.content h1').css('font','600 18px/1.2 Arial');
+ $('.content h2').css('font','600 16px/1.2 Arial');
+ $('.content h3').css('font','600 14px/1.2 Arial');
+ $('.content p').css('font','13px/20px Verdana');
+ $('.content li').css('font','400 13px/1 Verdana');
+ $('.content li').css('line-height','14px');
+ $('.content .toc li').css('font', 'normal 10px/1.2 Verdana');
+ $('.content table').css('font','13px/1.2 Verdana');
+ $('.content .heading').css('font','600 16px/1 Arial');
+ $('.content .indexboxcont li').css('font','600 13px/1 Verdana');
+ $('.t_button').removeClass('active')
+ $(this).addClass('active')
+});
+
+$('#bigA').click(function() {
+ $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('font-size','large');
+ $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('line-height','25px');
+ $('.t_button').removeClass('active')
+ $(this).addClass('active')
+});
+
+$('.feedclose').click(function() {
+ $('.bd').show();
+ $('.hd').show();
+ $('.footer').show();
+ $('#feedbackBox').hide();
+ $('#blurpage').hide();
+});
+
+$('.feedback').click(function() {
+ $('.bd').hide();
+ $('.hd').hide();
+ $('.footer').hide();
+ $('#feedbackBox').show();
+ $('#blurpage').show();
+});
+var lookupCount = 0;
+var articleCount = 0;
+var exampleCount = 0;
+var qturl = ""; // change from "http://doc.qt.nokia.com/4.6/" to 0 so we can have relative links
+
+function processNokiaData(response){
+ var propertyTags = response.getElementsByTagName('page');
+
+ for (var i=0; i< propertyTags.length; i++) {
+ var linkStart = "<li class=\"liveResult\"><a href='"+qturl+"";
+ var linkEnd = "</a></li>";
+
+ if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'APIPage'){
+ lookupCount++;
+
+ for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){
+ full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue;
+ full_li_element = full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd;
+ $('#ul001').append(full_li_element);
+ $('#ul001 .defaultLink').css('display','none');
+
+ }
+ }
+
+ if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Article'){
+ articleCount++;
+
+ for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){
+ full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue;
+ full_li_element =full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd ;
+
+ $('#ul002').append(full_li_element);
+ $('#ul002 .defaultLink').css('display','none');
+
+ }
+ }
+ if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Example'){
+ exampleCount++;
+
+
+ for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){
+ full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue;
+ full_li_element =full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd ;
+
+ $('#ul003').append(full_li_element);
+ $('#ul003 .defaultLink').css('display','none');
+
+ }
+ }
+ if(i==propertyTags.length){$('#pageType').removeClass('loading');}
+
+ }
+ if(lookupCount > 0){$('#ul001 .menuAlert').remove();$('#ul001').prepend('<li class=\"menuAlert liveResult hit\">Found ' + lookupCount + ' hits</li>');$('#ul001 li').css('display','block');$('.sidebar .search form input').removeClass('loading');}
+ if(articleCount > 0){$('#ul002 .menuAlert').remove();$('#ul002').prepend('<li class=\"menuAlert liveResult hit\">Found ' + articleCount + ' hits</li>');$('#ul002 li').css('display','block');}
+ if(exampleCount > 0){$('#ul003 .menuAlert').remove();$('#ul003').prepend('<li class=\"menuAlert liveResult hit\">Found ' + articleCount + ' hits</li>');$('#ul003 li').css('display','block');}
+
+ if(lookupCount == 0){$('#ul001 .menuAlert').remove();$('#ul001').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul001 li').css('display','block');$('.sidebar .search form input').removeClass('loading');}
+ if(articleCount == 0){$('#ul002 .menuAlert').remove();$('#ul002').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul002 li').css('display','block');}
+ if(exampleCount == 0){$('#ul003 .menuAlert').remove();$('#ul003').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul003 li').css('display','block');}
+ // reset count variables;
+ lookupCount=0;
+ articleCount = 0;
+ exampleCount = 0;
+
+}
+//build regular expression object to find empty string or any number of blank
+var blankRE=/^\s*$/;
+function CheckEmptyAndLoadList()
+{
+ var pageUrl = window.location.href;
+ var pageVal = $('title').html();
+ $('#feedUrl').remove();
+ $('#pageVal').remove();
+ $('.menuAlert').remove();
+ $('#feedform').append('<input id="feedUrl" name="feedUrl" value="'+pageUrl+'" style="display:none;">');
+ $('#feedform').append('<input id="pageVal" name="pageVal" value="'+pageVal+'" style="display:none;">');
+ $('.liveResult').remove();
+ $('.defaultLink').css('display','block');
+ var value = document.getElementById('pageType').value;
+ if((blankRE.test(value)) || (value.length < 3))
+ {
+ //empty inputbox
+ // load default li elements into the ul if empty
+ // loadAllList(); // replaced
+ $('.defaultLink').css('display','block');
+ // $('.liveResult').css('display','none');
+ }else{
+ $('.defaultLink').css('display','none');
+ }
+}
+/*
+$(window).resize(function(){
+if($(window).width()<400)
+ $('body').addClass('offline');
+else
+ $('body').removeClass('offline');
+ });
+ */
+// Loads on doc ready
+ $(document).ready(function () {
+ //alert(pageUrl);
+ //$('#pageUrl').attr('foo',pageUrl);
+ var pageTitle = $('title').html();
+ var currentString = $('#pageType').val() ;
+ if(currentString.length < 1){
+ $('.defaultLink').css('display','block');
+ CheckEmptyAndLoadList();
+ }
+
+ $('#pageType').keyup(function () {
+ var searchString = $('#pageType').val() ;
+ if ((searchString == null) || (searchString.length < 3)) {
+ $('#pageType').removeClass('loading');
+ $('.liveResult').remove();
+ $('.searching').remove();
+ CheckEmptyAndLoadList();
+ $('.report').remove();
+ // debug$('.content').prepend('<li>too short or blank</li>'); // debug
+ return;
+ }
+ if (this.timer) clearTimeout(this.timer);
+ this.timer = setTimeout(function () {
+ $('#pageType').addClass('loading');
+ $('.searching').remove();
+ $('.list ul').prepend('<li class="menuAlert searching">Searching...</li>');
+ $.ajax({
+ contentType: "application/x-www-form-urlencoded",
+ url: 'http://' + location.host + '/nokiasearch/GetDataServlet',
+ data: 'searchString='+searchString,
+ dataType:'xml',
+ type: 'post',
+ success: function (response, textStatus) {
+
+ $('.liveResult').remove();
+ $('.searching').remove();
+ $('#pageType').removeClass('loading');
+ $('.list ul').prepend('<li class="menuAlert searching">Searching...</li>');
+ processNokiaData(response);
+
+ }
+ });
+ }, 500);
+ });
+ });
diff --git a/doc/src/scripts/jquery.js b/doc/src/scripts/jquery.js
new file mode 100755
index 0000000..0c7294c
--- /dev/null
+++ b/doc/src/scripts/jquery.js
@@ -0,0 +1,152 @@
+/*!
+ * jQuery JavaScript Library v1.4.1
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Jan 25 19:43:33 2010 -0500
+ */
+(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j?
+e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f,
+a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType===
+11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment();
+c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent,
+va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]],
+[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,
+this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this,
+a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};
+c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$=
+Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload",
+c.ready);var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;
+return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]||
+r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=
+a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==
+v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},
+uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded",
+L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/https/code.qt.io/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support=
+{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};
+b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild);
+c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props=
+{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true,
+{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,
+a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);
+return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||
+a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=
+c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,n=b.length;j<n;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=c(this);m.removeClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string"||a===v)for(var b=(a||"").split(ca),
+d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(ya," "),j=0,n=b.length;j<n;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),n=b,o=
+a.split(ca);e=o[i++];){n=f?n:!j.hasClass(e);j[n?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(ya," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||
+{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(za.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Wa,"")}return v}var n=c.isFunction(a);return this.each(function(o){var m=c(this),s=a;if(this.nodeType===1){if(n)s=a.call(this,o,m.val());
+if(typeof s==="number")s+="";if(c.isArray(s)&&za.test(this.type))this.checked=c.inArray(m.val(),s)>=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d);
+f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=
+""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j=
+function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a,
+d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+
+s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a,
+"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,
+b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b,
+d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b=
+0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};
+c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b=
+a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!==
+"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this,
+"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"||
+d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a=
+a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,
+f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a,
+b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+
+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e){var i,j=0;if(c.isFunction(f)){e=f;f=v}for(d=(d||"").split(/\s+/);(i=d[j++])!=null;){i=i==="focus"?"focusin":i==="blur"?"focusout":i==="hover"?d.push("mouseleave")&&"mouseenter":i;b==="live"?c(this.context).bind(oa(i,this.selector),{data:f,selector:this.selector,
+live:i},e):c(this.context).unbind(oa(i,this.selector),e?{guid:e.guid+this.selector+i}:null)}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});z.attachEvent&&!z.addEventListener&&z.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
+(function(){function a(g){for(var h="",k,l=0;g[l];l++){k=g[l];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===k){y=l[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=k;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}l[q]=y}}}function d(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===
+k){y=l[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=k;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(o.filter(h,[t]).length>0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||
+typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u=
+l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&
+y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};o.matches=function(g,h){return o(g,null,null,h)};o.find=function(g,h,k){var l,q;if(!g)return[];for(var p=0,u=m.order.length;p<u;p++){var t=m.order[p];if(q=m.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");l=m.find[t](q,
+h,k);if(l!=null){g=g.replace(m.match[t],"");break}}}}l||(l=h.getElementsByTagName("*"));return{set:l,expr:g}};o.filter=function(g,h,k,l){for(var q=g,p=[],u=h,t,y,R=h&&h[0]&&w(h[0]);g&&h.length;){for(var H in m.filter)if((t=m.leftMatch[H].exec(g))!=null&&t[2]){var M=m.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(u===p)p=[];if(m.preFilter[H])if(t=m.preFilter[H](t,u,k,p,l,R)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=u[U])!=null;U++)if(D){I=M(D,t,U,u);var Da=
+l^!!I;if(k&&I!=null)if(Da)y=true;else u[U]=false;else if(Da){p.push(D);y=true}}if(I!==v){k||(u=p);g=g.replace(m.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)o.error(g);else break;q=g}return u};o.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var m=o.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,h){var k=typeof h==="string",l=k&&!/\W/.test(h);k=k&&!l;if(l)h=h.toLowerCase();l=0;for(var q=g.length,
+p;l<q;l++)if(p=g[l]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[l]=k||p&&p.nodeName.toLowerCase()===h?p||false:p===h}k&&o.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l<q;l++){var p=g[l];if(p){k=p.parentNode;g[l]=k.nodeName.toLowerCase()===h?k:false}}}else{l=0;for(q=g.length;l<q;l++)if(p=g[l])g[l]=k?p.parentNode:p.parentNode===h;k&&o.filter(h,g,true)}},"":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=
+h=h.toLowerCase();q=b}q("parentNode",h,l,g,p,k)},"~":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,l,g,p,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];h=h.getElementsByName(g[1]);for(var l=0,q=h.length;l<q;l++)h[l].getAttribute("name")===g[1]&&k.push(h[l]);return k.length===0?null:k}},
+TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,l,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var u;(u=h[p])!=null;p++)if(u)if(q^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&
+"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);
+return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===
+g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2===
+0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k<l;k++)if(h[k]===g)return false;return true}else o.error("Syntax error, unrecognized expression: "+
+q)},CHILD:function(g,h){var k=h[1],l=g;switch(k){case "only":case "first":for(;l=l.previousSibling;)if(l.nodeType===1)return false;if(k==="first")return true;l=g;case "last":for(;l=l.nextSibling;)if(l.nodeType===1)return false;return true;case "nth":k=h[2];var q=h[3];if(k===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var u=0;for(l=p.firstChild;l;l=l.nextSibling)if(l.nodeType===1)l.nodeIndex=++u;p.sizcache=h}g=g.nodeIndex-q;return k===0?g===0:g%k===0&&g/k>=
+0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="?
+k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};
+try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k<l;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var C;if(r.documentElement.compareDocumentPosition)C=function(g,h){if(!g.compareDocumentPosition||!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===
+h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in r.documentElement)C=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(r.createRange)C=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),l=h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);l.setStart(h,0);l.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END,
+l);if(g===0)j=true;return g};(function(){var g=r.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id");
+return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href",
+2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===
+0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[],
+l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)o(g,h[q],k);return o.filter(l,k)};c.find=o;c.expr=o.selectors;c.expr[":"]=c.expr.filters;c.unique=o.uniqueSort;c.getText=a;c.isXMLDoc=w;c.contains=E})();var bb=/Until$/,cb=/^(?:parents|prevUntil|prevAll)/,db=/,/;Q=Array.prototype.slice;var Ea=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a,
+function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Qa.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=
+0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ea(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ea(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e<n;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)>
+-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),
+a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},
+nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):
+e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==
+b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,sa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ia=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],
+col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)},
+wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?
+d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,
+false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&
+!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(Ha.exec(a)||
+["",""])[1].toLowerCase()]){a=a.replace(Ga,Ia);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,
+b,f))});else a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(s){return c.nodeName(s,"table")?s.getElementsByTagName("tbody")[0]||s.appendChild(s.ownerDocument.createElement("tbody")):s}var e,i,j=a[0],n=[];if(!c.support.checkClone&&arguments.length===3&&typeof j===
+"string"&&sa.test(j))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(j))return this.each(function(s){var x=c(this);a[0]=j.call(this,s,b?x.html():v);x.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ra(a,this,n);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var o=0,m=this.length;o<m;o++)d.call(b?f(this[o],i):this[o],e.cacheable||this.length>1||o>0?e.fragment.cloneNode(true):e.fragment)}n&&c.each(n,
+Ma)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){c.cleanData(this.getElementsByTagName("*"));c.cleanData([this])}this.parentNode&&
+this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&c.cleanData(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||r;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||r;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j===
+"string"){j=j.replace(Ga,Ia);var n=(Ha.exec(j)||["",""])[1].toLowerCase(),o=F[n]||F._default,m=o[0];i=b.createElement("div");for(i.innerHTML=o[1]+j+o[2];m--;)i=i.lastChild;if(!c.support.tbody){m=fb.test(j);n=n==="table"&&!m?i.firstChild&&i.firstChild.childNodes:o[1]==="<table>"&&!m?i.childNodes:[];for(o=n.length-1;o>=0;--o)c.nodeName(n[o],"tbody")&&!n[o].childNodes.length&&n[o].parentNode.removeChild(n[o])}!c.support.leadingWhitespace&&V.test(j)&&i.insertBefore(b.createTextNode(V.exec(j)[0]),i.firstChild);
+j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()==="text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e},cleanData:function(a){for(var b=0,d;(d=a[b])!=null;b++){c.event.remove(d);c.removeData(d)}}});var hb=/z-?index|font-?weight|opacity|zoom|line-?height/i,
+Ja=/alpha\([^)]*\)/,Ka=/opacity=([^)]*)/,ga=/float/i,ha=/-([a-z])/ig,ib=/([A-Z])/g,jb=/^-?\d+(?:px)?$/i,kb=/^-?\d/,lb={position:"absolute",visibility:"hidden",display:"block"},mb=["Left","Right"],nb=["Top","Bottom"],ob=r.defaultView&&r.defaultView.getComputedStyle,La=c.support.cssFloat?"cssFloat":"styleFloat",ia=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===v)return c.curCSS(d,f);if(typeof e==="number"&&!hb.test(f))e+="px";c.style(d,f,e)})};
+c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return v;if((b==="width"||b==="height")&&parseFloat(d)<0)d=v;var f=a.style||a,e=d!==v;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ja.test(a)?a.replace(Ja,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ka.exec(f.filter)[1])/100+"":""}if(ga.test(b))b=La;b=b.replace(ha,ia);if(e)f[b]=d;return f[b]},css:function(a,
+b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?mb:nb;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,lb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&
+a.currentStyle){f=Ka.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ga.test(b))b=La;if(!d&&e&&e[b])f=e[b];else if(ob){if(ga.test(b))b="float";b=b.replace(ib,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ha,ia);f=a.currentStyle[b]||a.currentStyle[d];if(!jb.test(f)&&kb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left=
+a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var pb=
+J(),qb=/<script(.|\s)*?\/script>/gi,rb=/select|textarea/i,sb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ja=/\?/,tb=/(\?|&)_=.*?(&|$)/,ub=/^(\w+:)?\/\/([^\/?#]+)/,vb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=
+c.param(b,c.ajaxSettings.traditional);f="POST"}var i=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(j,n){if(n==="success"||n==="notmodified")i.html(e?c("<div />").append(j.responseText.replace(qb,"")).find(e):j.responseText);d&&i.each(d,[j.responseText,n,j])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&
+(this.checked||rb.test(this.nodeName)||sb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,
+b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:z.XMLHttpRequest&&(z.location.protocol!=="file:"||!z.ActiveXObject)?function(){return new z.XMLHttpRequest}:
+function(){try{return new z.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(o,n,j,w);e.global&&f("ajaxSuccess",[w,e])}function d(){e.complete&&e.complete.call(o,w,j);e.global&&f("ajaxComplete",[w,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}
+function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,n,o=a&&a.context||e,m=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(m==="GET")N.test(e.url)||(e.url+=(ja.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||
+N.test(e.url))){i=e.jsonpCallback||"jsonp"+pb++;if(e.data)e.data=(e.data+"").replace(N,"="+i+"$1");e.url=e.url.replace(N,"="+i+"$1");e.dataType="script";z[i]=z[i]||function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&m==="GET"){var s=J(),x=e.url.replace(tb,"$1_="+s+"$2");e.url=x+(x===e.url?(ja.test(e.url)?"&":"?")+"_="+s:"")}if(e.data&&m==="GET")e.url+=(ja.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&
+c.event.trigger("ajaxStart");s=(s=ub.exec(e.url))&&(s[1]&&s[1]!==location.protocol||s[2]!==location.host);if(e.dataType==="script"&&m==="GET"&&s){var A=r.getElementsByTagName("head")[0]||r.documentElement,B=r.createElement("script");B.src=e.url;if(e.scriptCharset)B.charset=e.scriptCharset;if(!i){var C=false;B.onload=B.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;b();d();B.onload=B.onreadystatechange=null;A&&B.parentNode&&
+A.removeChild(B)}}}A.insertBefore(B,A.firstChild);return v}var E=false,w=e.xhr();if(w){e.username?w.open(m,e.url,e.async,e.username,e.password):w.open(m,e.url,e.async);try{if(e.data||a&&a.contentType)w.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&w.setRequestHeader("If-None-Match",c.etag[e.url])}s||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",
+e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(fa){}if(e.beforeSend&&e.beforeSend.call(o,w,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");w.abort();return false}e.global&&f("ajaxSend",[w,e]);var g=w.onreadystatechange=function(q){if(!w||w.readyState===0||q==="abort"){E||d();E=true;if(w)w.onreadystatechange=c.noop}else if(!E&&w&&(w.readyState===4||q==="timeout")){E=true;w.onreadystatechange=c.noop;j=q==="timeout"?"timeout":!c.httpSuccess(w)?
+"error":e.ifModified&&c.httpNotModified(w,e.url)?"notmodified":"success";var p;if(j==="success")try{n=c.httpData(w,e.dataType,e)}catch(u){j="parsererror";p=u}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,w,j,p);d();q==="timeout"&&w.abort();if(e.async)w=null}};try{var h=w.abort;w.abort=function(){w&&h.call(w);g("abort")}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){w&&!E&&g("timeout")},e.timeout);try{w.send(m==="POST"||m==="PUT"||m==="DELETE"?e.data:null)}catch(l){c.handleError(e,
+w,null,l);d()}e.async||g();return w}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=
+f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(j,n){if(c.isArray(n))c.each(n,
+function(o,m){b?f(j,m):d(j+"["+(typeof m==="object"||c.isArray(m)?o:"")+"]",m)});else!b&&n!=null&&typeof n==="object"?c.each(n,function(o,m){d(j+"["+o+"]",m)}):f(j,n)}function f(j,n){n=c.isFunction(n)?n():n;e[e.length]=encodeURIComponent(j)+"="+encodeURIComponent(n)}var e=[];if(b===v)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var i in a)d(i,a[i]);return e.join("&").replace(vb,"+")}});var ka={},wb=/toggle|show|hide/,xb=/^([+-]=)?([\d+-.]+)(.*)$/,
+W,ta=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(ka[d])f=ka[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();
+ka[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&
+c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,n=this.nodeType===1&&c(this).is(":hidden"),
+o=this;for(j in a){var m=j.replace(ha,ia);if(j!==m){a[m]=a[j];delete a[j];j=m}if(a[j]==="hide"&&n||a[j]==="show"&&!n)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(s,x){var A=new c.fx(o,i,s);if(wb.test(x))A[x==="toggle"?n?"show":"hide":x](a);
+else{var B=xb.exec(x),C=A.cur(true)||0;if(B){x=parseFloat(B[2]);var E=B[3]||"px";if(E!=="px"){o.style[s]=(x||1)+E;C=(x||1)/A.cur(true)*C;o.style[s]=C+E}if(B[1])x=(B[1]==="-="?-1:1)*x+C;A.custom(C,x,E)}else A.custom(C,x,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",
+1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,
+b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==
+null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===
+"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=
+this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=
+c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=
+null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in r.documentElement?function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),
+f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=
+b,e=b.ownerDocument,i,j=e.documentElement,n=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var o=b.offsetTop,m=b.offsetLeft;(b=b.parentNode)&&b!==n&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;o-=b.scrollTop;m-=b.scrollLeft;if(b===d){o+=b.offsetTop;m+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){o+=parseFloat(i.borderTopWidth)||
+0;m+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){o+=parseFloat(i.borderTopWidth)||0;m+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){o+=n.offsetTop;m+=n.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){o+=Math.max(j.scrollTop,n.scrollTop);m+=Math.max(j.scrollLeft,n.scrollLeft)}return{top:o,left:m}};c.offset={initialize:function(){var a=r.body,b=r.createElement("div"),
+d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);
+d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop},
+bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left-
+e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=
+this.offsetParent||r.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==v)return this.each(function(){if(i=ua(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=ua(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}});
+c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(i){var j=c(this);j[d](f.call(this,i,j[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||
+e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===v?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});z.jQuery=z.$=c})(window);
diff --git a/doc/src/scripts/narrow.js b/doc/src/scripts/narrow.js
new file mode 100755
index 0000000..35c81bf
--- /dev/null
+++ b/doc/src/scripts/narrow.js
@@ -0,0 +1,89 @@
+var narrowInit = function() {
+ /* TODO:
+ Could probably be more efficient, not hardcoding each element to be created
+ */
+ // 1: Create search form
+ var narrowSearch = $('<div id="narrowsearch"></div>');
+ var searchform = $("#qtdocsearch");
+ narrowSearch.append(searchform);
+ $("#qtdocheader .content .qtref").after(narrowSearch);
+
+ // 2: Create dropdowns
+ var narrowmenu = $('<ul id="narrowmenu" class="sf-menu"></ul>');
+
+ // Lookup
+ var lookuptext = $("#lookup h2").attr("title");
+ $("#lookup ul").removeAttr("id");
+ $("#lookup ul li").removeAttr("class");
+ $("#lookup ul li").removeAttr("style");
+ var lookupul = $("#lookup ul");
+ var lookuplist = $('<li></li>');
+ var lookuplink = $('<a href="#"></a>');
+ lookuplink.append(lookuptext);
+ lookuplist.append(lookuplink);
+ lookuplist.append(lookupul);
+ narrowmenu.append(lookuplist);
+
+ // Topics
+ var topicstext = $("#topics h2").attr("title");
+ $("#topics ul").removeAttr("id");
+ $("#topics ul li").removeAttr("class");
+ $("#topics ul li").removeAttr("style");
+ var topicsul = $("#topics ul");
+ var topicslist = $('<li></li>');
+ var topicslink = $('<a href="#"></a>');
+ topicslink.append(topicstext);
+ topicslist.append(topicslink);
+ topicslist.append(topicsul);
+ narrowmenu.append(topicslist);
+
+ // Examples
+ var examplestext = $("#examples h2").attr("title");
+ $("#examples ul").removeAttr("id");
+ $("#examples ul li").removeAttr("class");
+ $("#examples ul li").removeAttr("style");
+ var examplesul = $("#examples ul");
+ var exampleslist = $('<li></li>');
+ var exampleslink = $('<a href="#"></a>');
+ exampleslink.append(examplestext);
+ exampleslist.append(exampleslink);
+ exampleslist.append(examplesul);
+ narrowmenu.append(exampleslist);
+
+ $("#shortCut").after(narrowmenu);
+ $('ul#narrowmenu').superfish({
+ delay: 100,
+ autoArrows: false,
+ disableHI: true
+ });
+}
+
+$(document).ready(function(){
+/* if ($('body').hasClass('narrow')) {
+ narrowInit();
+ }
+ */
+ if($(window).width()<600) {
+ $('body').addClass('narrow');
+
+ if ($("#narrowsearch").length == 0) {
+ narrowInit();
+ }
+ }
+ else {
+ $('body').removeClass('narrow');
+ }
+});
+
+$(window).bind('resize', function () {
+ if($(window).width()<600) {
+ $('body').addClass('narrow');
+
+ if ($("#narrowsearch").length == 0) {
+ narrowInit();
+ }
+ }
+ else {
+ $('body').removeClass('narrow');
+ }
+}); \ No newline at end of file
diff --git a/doc/src/scripts/superfish.js b/doc/src/scripts/superfish.js
new file mode 100755
index 0000000..c6a9c7d
--- /dev/null
+++ b/doc/src/scripts/superfish.js
@@ -0,0 +1,121 @@
+
+/*
+ * Superfish v1.4.8 - jQuery menu widget
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
+ */
+
+;(function($){
+ $.fn.superfish = function(op){
+
+ var sf = $.fn.superfish,
+ c = sf.c,
+ $arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
+ over = function(){
+ var $$ = $(this), menu = getMenu($$);
+ clearTimeout(menu.sfTimer);
+ $$.showSuperfishUl().siblings().hideSuperfishUl();
+ },
+ out = function(){
+ var $$ = $(this), menu = getMenu($$), o = sf.op;
+ clearTimeout(menu.sfTimer);
+ menu.sfTimer=setTimeout(function(){
+ o.retainPath=($.inArray($$[0],o.$path)>-1);
+ $$.hideSuperfishUl();
+ if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
+ },o.delay);
+ },
+ getMenu = function($menu){
+ var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+ sf.op = sf.o[menu.serial];
+ return menu;
+ },
+ addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
+
+ return this.each(function() {
+ var s = this.serial = sf.o.length;
+ var o = $.extend({},sf.defaults,op);
+ o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
+ $(this).addClass([o.hoverClass,c.bcClass].join(' '))
+ .filter('li:has(ul)').removeClass(o.pathClass);
+ });
+ sf.o[s] = sf.op = o;
+
+ $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
+ if (o.autoArrows) addArrow( $('>a:first-child',this) );
+ })
+ .not('.'+c.bcClass)
+ .hideSuperfishUl();
+
+ var $a = $('a',this);
+ $a.each(function(i){
+ var $li = $a.eq(i).parents('li');
+ $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
+ });
+ o.onInit.call(this);
+
+ }).each(function() {
+ var menuClasses = [c.menuClass];
+ if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
+ $(this).addClass(menuClasses.join(' '));
+ });
+ };
+
+ var sf = $.fn.superfish;
+ sf.o = [];
+ sf.op = {};
+ sf.IE7fix = function(){
+ var o = sf.op;
+ if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
+ this.toggleClass(sf.c.shadowClass+'-off');
+ };
+ sf.c = {
+ bcClass : 'sf-breadcrumb',
+ menuClass : 'sf-js-enabled',
+ anchorClass : 'sf-with-ul',
+ arrowClass : 'sf-sub-indicator',
+ shadowClass : 'sf-shadow'
+ };
+ sf.defaults = {
+ hoverClass : 'sfHover',
+ pathClass : 'overideThisToUse',
+ pathLevels : 1,
+ delay : 800,
+ animation : {opacity:'show'},
+ speed : 'normal',
+ autoArrows : true,
+ dropShadows : true,
+ disableHI : false, // true disables hoverIntent detection
+ onInit : function(){}, // callback functions
+ onBeforeShow: function(){},
+ onShow : function(){},
+ onHide : function(){}
+ };
+ $.fn.extend({
+ hideSuperfishUl : function(){
+ var o = sf.op,
+ not = (o.retainPath===true) ? o.$path : '';
+ o.retainPath = false;
+ var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+ .find('>ul').hide().css('visibility','hidden');
+ o.onHide.call($ul);
+ return this;
+ },
+ showSuperfishUl : function(){
+ var o = sf.op,
+ sh = sf.c.shadowClass+'-off',
+ $ul = this.addClass(o.hoverClass)
+ .find('>ul:hidden').css('visibility','visible');
+ sf.IE7fix.call($ul);
+ o.onBeforeShow.call($ul);
+ $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
+ return this;
+ }
+ });
+
+})(jQuery);
diff --git a/doc/src/style/narrow.css b/doc/src/style/narrow.css
new file mode 100755
index 0000000..de5b0a0
--- /dev/null
+++ b/doc/src/style/narrow.css
@@ -0,0 +1,270 @@
+ /* start narrow mode */
+
+ body.narrow
+ {
+ background-image: none;
+ }
+
+ .narrow a {
+ color: #44a51c;
+ }
+
+ .narrow .header, .narrow .header .content, .narrow .footer, .narrow .wrapper {
+ margin: 0 7px;
+ min-width: 300px;
+ }
+
+ .narrow .footer {
+ margin: 0px;
+ }
+
+ .creator .header, .creator .header .content, .creator .footer, .creator .wrapper {
+ margin: 0px;
+ min-width: 300px;
+ }
+ .narrow .header
+ {
+ width: 100%;
+ margin: 0;
+ height: auto;
+ background: #fff url(../images/header_bg.png) repeat-x 0 100%;
+ padding: 10px 0 5px 0;
+ overflow: visible;
+ }
+
+ .narrow .header .content
+ {
+ }
+
+ .narrow .header #nav-logo
+ {
+ display: none;
+ }
+
+ .narrow .header .qtref
+ {
+ width: auto;
+ height: auto;
+ color: #363534;
+ position: static;
+ float: left;
+ margin-left: 25px;
+ font: bold 18px/1 Arial;
+ }
+
+ .narrow .header .qtref a
+ {
+ color: #00732F;
+ }
+
+ .narrow .header .qtref span
+ {
+ background-image: none;
+ text-indent: 0;
+ }
+
+ .narrow .header #nav-topright
+ {
+ display: none;
+ }
+
+ .narrow .header #shortCut
+ {
+ clear: both;
+ font-weight: normal;
+ position: static;
+ float: left;
+ margin: 15px 0 0 25px;
+ overflow: hidden;
+ padding: 0;
+ height: auto;
+ }
+
+ .narrow .header #shortCut ul
+ {
+ float: none;
+ margin: 0;
+ width: auto;
+ font-size: 11px;
+ }
+
+ .narrow .header #shortCut ul li
+ {
+ background-image: none;
+ }
+
+ .narrow .header #shortCut ul .shortCut-topleft-active,
+ .narrow .header #shortCut ul .shortCut-topleft-inactive
+ {
+ background-image: none;
+ height: auto;
+ padding: 0;
+ width: auto;
+ }
+ .narrow .header #shortCut ul li a
+ {
+ color: #00732F;
+ }
+
+ .narrow .wrapper .hd
+ {
+ background: url(../images/bg_ul_blank.png) no-repeat 0 0;
+ }
+
+ .narrow .wrapper .bd
+ {
+ background: url(../images/bg_l_blank.png) repeat-y 0 0;
+ }
+
+ .narrow .wrapper .ft
+ {
+ background: url(../images/bg_ll_blank.png) no-repeat 0 0;
+ }
+
+ .narrow .sidebar
+ {
+ display: none;
+ }
+
+ .narrow .wrap
+ {
+ margin: 0 5px 0 5px;
+ }
+
+ .creator .wrap
+ {
+ margin: 0px;
+ background:#FFFFFF;
+ }
+ .narrow .wrap .toolbar
+ {
+ border-bottom: none;
+ }
+
+ .narrow .wrap .content
+ {
+ padding-top: 15px;
+ }
+ .creator .wrap .content
+ {
+ padding-top: 10px;
+ }
+ .creator .wrap .content .guide
+ {
+ padding-top: 15px;
+ }
+ .narrow .wrap .feedback
+ {
+ display: none;
+ }
+
+ .narrow .wrap .breadcrumb ul li {
+ font-weight: normal;
+ }
+
+ .narrow .wrap .breadcrumb ul li a {
+ color: #44a51c;
+ }
+
+ .narrow .wrap .breadcrumb ul li.last a {
+ color: #363534;
+ }
+
+ #narrowsearch {
+ display: none;
+ }
+
+ .narrow #narrowsearch {
+ display: block;
+ float: right;
+ margin-right: 25px;
+ _position: relative;
+ }
+
+ .narrow #narrowsearch fieldset {
+ _position: absolute;
+ _margin-top: -1px;
+ }
+
+ .narrow #narrowsearch {
+ background: url("http://doc.qt.nokia.com/prototype/html/images/sprites-combined.png") no-repeat scroll -6px -348px transparent;
+ height: 21px;
+ padding: 2px 0 0 5px;
+ width: 167px;
+ }
+
+ .narrow #narrowsearch input {
+ border: none;
+ font: 13px/1.2 Verdana;
+ height: 19px;
+ outline: none;
+ padding: 0;
+ width: 158px;
+ *border: 1px solid #fff;
+ *height: 17px;
+ _height: 18px;
+ /* to be fixed */
+ display: none;
+ /* to be fixed */
+ }
+
+ .narrow .indexbox .indexIcon {
+ display: none;
+ }
+
+ .narrow .indexboxcont .section {
+ width: 64%;
+ padding-left: 0;
+ }
+
+ .narrow .indexboxcont .sectionlist {
+ width: 32.5%;
+ }
+
+ #narrowmenu {
+ display: none;
+ float: right;
+ margin: 15px 40px 0 0;
+ font-size: 11px;
+ }
+
+ .narrow #narrowmenu {
+ display: block;
+ }
+
+ #narrowmenu a {
+ line-height: 1.1;
+ background: url(../images/arrow_down.png) no-repeat 100% 50%;
+ white-space: nowrap;
+ padding: 0 16px 0 5px;
+ }
+
+ #narrowmenu li {
+ margin-left: 20px;
+ }
+
+ #narrowmenu li li {
+ margin: 0 0 5px 0;
+ }
+
+ #narrowmenu li li a {
+ padding: 0;
+ background-image: none;
+ }
+
+ #narrowmenu li,
+ #narrowmenu li ul {
+ background-color: #fff;
+ margin-top:-1px;
+ }
+
+ #narrowmenu li ul {
+ width: auto;
+ padding: 5px;
+ }
+
+ .sf-menu li:hover ul, .sf-menu li.sfHover ul {
+ top: 1.2em;
+ }
+
+ /* end narrow mode */
diff --git a/doc/src/style/style.css b/doc/src/style/style.css
new file mode 100755
index 0000000..b60aa41
--- /dev/null
+++ b/doc/src/style/style.css
@@ -0,0 +1,1588 @@
+@media screen
+{
+
+/* basic elements */
+ html
+ {
+ color: #000000;
+ background: #FFFFFF;
+ }
+ body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td
+ {
+ margin: 0;
+ padding: 0;
+ }
+ table
+ {
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
+ fieldset, img
+ {
+ border: 0;
+ max-width:100%;
+ }
+ address, caption, cite, code, dfn, em, strong, th, var, optgroup
+ {
+ font-style: inherit;
+ font-weight: inherit;
+ }
+ del, ins
+ {
+ text-decoration: none;
+ }
+ li
+ {
+ list-style: none;
+ }
+ ol li
+ {
+ list-style: decimal;
+ }
+ caption, th
+ {
+ text-align: left;
+ }
+ h1, h2, h3, h4, h5, h6
+ {
+ font-size: 100%;
+ }
+ q:before, q:after
+ {
+ content: '';
+ }
+ abbr, acronym
+ {
+ border: 0;
+ font-variant: normal;
+ }
+ sup, sub
+ {
+ vertical-align: baseline;
+ }
+ tt, .qmlreadonly span, .qmldefault span
+ {
+ word-spacing:5px;
+ }
+ legend
+ {
+ color: #000000;
+ }
+ input, button, textarea, select, optgroup, option
+ {
+ font-family: inherit;
+ font-size: inherit;
+ font-style: inherit;
+ font-weight: inherit;
+ }
+ input, button, textarea, select
+ {
+ font-size: 100%;
+ }
+ strong
+ {
+ font-weight: bold;
+ }
+ em
+ {
+ font-style: italic;
+ }
+
+ /* adding Qt theme */
+ html
+ {
+ /* background-color: #e5e5e5;*/
+ }
+ body
+ {
+ background: #e6e7e8 url(../images/page_bg.png) repeat-x 0 0;
+ font: normal 13px/1.2 Verdana;
+ color: #363534;
+ }
+ a
+ {
+ color: #00732f;
+ text-decoration: none;
+ }
+ hr
+ {
+ background-color: #E6E6E6;
+ border: 1px solid #E6E6E6;
+ height: 1px;
+ width: 100%;
+ text-align: left;
+ margin: 15px 0px 15px 0px;
+ }
+
+ pre
+ {
+ border: 1px solid #DDDDDD;
+ -moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ margin: 0 20px 10px 10px;
+ padding: 20px 15px 20px 20px;
+ overflow-x: auto;
+ }
+ 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: 11px;
+ margin-bottom: 25px;
+ }
+ pre.highlightedCode {
+ display: block;
+ overflow:hidden;
+ }
+ thead
+ {
+ margin-top: 5px;
+ font:600 12px/1.2 Arial;
+ }
+ th
+ {
+ padding: 5px 15px 5px 15px;
+ background-color: #E1E1E1;
+ border-left: 1px solid #E6E6E6;
+ }
+ td
+ {
+ padding: 3px 15px 3px 20px;
+ }
+ tr.odd td:hover, tr.even td:hover {}
+
+ td.rightAlign
+ {
+ padding: 3px 5px 3px 10px;
+ }
+ table tr.odd
+ {
+ border-left: 1px solid #E6E6E6;
+ background-color: #F6F6F6;
+ color: #66666E;
+ }
+ table tr.even
+ {
+ border-left: 1px solid #E6E6E6;
+ background-color: #ffffff;
+ color: #66666E;
+ }
+ table tr.odd td:hover, table tr.even td:hover
+ {
+ /* background-color: #E6E6E6;*/ /* disabled until further notice */
+ }
+
+ span.comment
+ {
+ color: #8B0000;
+ font-style: italic;
+ }
+ span.string, span.char
+ {
+ color: #254117;
+ }
+
+
+/* end basic elements */
+
+/* font style elements */
+ .heading
+ {
+ font: normal bold 16px/1.2 Arial;
+ padding-bottom: 15px;
+ }
+ .subtitle
+ {
+ font-size: 13px;
+ }
+ .small-subtitle
+ {
+ font-size: 13px;
+ }
+/* end font style elements */
+
+/* global settings*/
+ .header, .footer, .wrapper
+ {
+ min-width: 600px;
+ max-width: 1500px;
+ margin: 0 30px;
+ }
+ .header, .footer
+ {
+ display: block;
+ clear: both;
+ overflow: hidden;
+ }
+ .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after
+ {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+ }
+
+/* end global settings*/
+/* header elements */
+ .header
+ {
+ height: 115px;
+ position: relative;
+ }
+ .header .icon
+ {
+ position: absolute;
+ top: 13px;
+ left: 0;
+ }
+ .header .qtref
+ {
+ position: absolute;
+ top: 28px;
+ left: 88px;
+ width: 302px;
+ height: 22px;
+ }
+ .header .qtref span
+ {
+ display: block;
+ width: 302px;
+ height: 22px;
+ text-indent: -999em;
+ background: url(../images/sprites-combined.png) no-repeat -78px -235px;
+ }
+ .content a:visited
+ {
+ color: #4c0033;
+ text-decoration: none;
+ }
+ .content a:visited:hover
+ {
+ color: #4c0033;
+ text-decoration: underline;
+ }
+
+ #nav-topright
+ {
+ height: 70px;
+ }
+
+ #nav-topright ul
+ {
+ list-style-type: none;
+ float: right;
+ width: 370px;
+ margin-top: 11px;
+ }
+
+ #nav-topright li
+ {
+ display: inline-block;
+ margin-right: 20px;
+ float: left;
+ }
+
+ #nav-topright li.nav-topright-last
+ {
+ margin-right: 0;
+ }
+
+ #nav-topright li a
+ {
+ background: transparent url(../images/sprites-combined.png) no-repeat;
+ height: 18px;
+ display: block;
+ overflow: hidden;
+ text-indent: -9999px;
+ }
+
+ #nav-topright li.nav-topright-home a
+ {
+ width: 65px;
+ background-position: -2px -91px;
+ }
+
+ #nav-topright li.nav-topright-home a:hover
+ {
+ background-position: -2px -117px;
+ }
+
+
+ #nav-topright li.nav-topright-dev a
+ {
+ width: 30px;
+ background-position: -76px -91px;
+ }
+
+ #nav-topright li.nav-topright-dev a:hover
+ {
+ background-position: -76px -117px;
+ }
+
+
+ #nav-topright li.nav-topright-labs a
+ {
+ width: 40px;
+ background-position: -114px -91px;
+ }
+
+ #nav-topright li.nav-topright-labs a:hover
+ {
+ background-position: -114px -117px;
+ }
+
+ #nav-topright li.nav-topright-doc a
+ {
+ width: 32px;
+ background-position: -162px -91px;
+ }
+
+ #nav-topright li.nav-topright-doc a:hover, #nav-topright li.nav-topright-doc-active a
+ {
+ background-position: -162px -117px;
+ }
+
+ #nav-topright li.nav-topright-blog a
+ {
+ width: 40px;
+ background-position: -203px -91px;
+ }
+
+ #nav-topright li.nav-topright-blog a:hover, #nav-topright li.nav-topright-blog-active a
+ {
+ background-position: -203px -117px;
+ }
+
+ #nav-topright li.nav-topright-shop a
+ {
+ width: 40px;
+ background-position: -252px -91px;
+ }
+
+ #nav-topright li.nav-topright-shop a:hover, #nav-topright li.nav-topright-shop-active a
+ {
+ background-position: -252px -117px;
+ }
+
+ #nav-logo
+ {
+ background: transparent url(../images/sprites-combined.png ) no-repeat 0 -225px;
+ left: -3px;
+ position: absolute;
+ width: 75px;
+ height: 75px;
+ top: 13px;
+ }
+ #nav-logo a
+ {
+ width: 75px;
+ height: 75px;
+ display: block;
+ text-indent: -9999px;
+ overflow: hidden;
+ }
+
+
+ .shortCut-topleft-inactive
+ {
+ padding-left: 3px;
+ padding-right: 3px;
+ background: transparent url( ../images/sprites-combined.png) no-repeat 0px -58px;
+ height: 20px;
+ }
+ .shortCut-topleft-inactive span
+ {
+ font-variant: normal;
+ }
+ .shortCut-topleft-inactive span a:hover, .shortCut-topleft-active a:hover
+ {
+ text-decoration:none;
+ }
+ #shortCut
+ {
+ padding-top: 10px;
+ font-weight: bolder;
+ color: #b0adab;
+ }
+ #shortCut ul
+ {
+ list-style-type: none;
+ float: left;
+ width: 347px;
+ margin-left: 100px;
+ }
+ #shortCut li
+ {
+ display: inline-block;
+ margin-right: 25px;
+ float: left;
+ white-space: nowrap;
+ }
+ #shortCut li a
+ {
+ color: #b0adab;
+ }
+ #shortCut li a:hover
+ {
+ color: #44a51c;
+ }
+
+
+
+/* end header elements */
+/* content and sidebar elements */
+ .wrapper
+ {
+ background: url(../images/bg_r.png) repeat-y 100% 0;
+ }
+ .wrapper .hd
+ {
+ padding-left: 216px;
+ height: 15px;
+ background: url(../images/page.png) no-repeat 0 0;
+ overflow: hidden;
+ }
+
+
+
+
+ .wrapper .hd span
+ {
+ height: 15px;
+ display: block;
+ overflow: hidden;
+ background: url(../images/page.png) no-repeat 100% -30px;
+ }
+ .wrapper .bd
+ {
+ background: url(../images/bg_l.png) repeat-y 0 0;
+ position: relative;
+ }
+
+
+
+
+ .wrapper .ft
+ {
+ padding-left: 216px;
+ height: 15px;
+ background: url(../images/page.png) no-repeat 0 -75px;
+ overflow: hidden;
+ }
+
+
+
+
+ .wrapper .ft span
+ {
+ height: 15px;
+ display: block;
+ background: url(../images/page.png) no-repeat 100% -60px;
+ overflow: hidden;
+ }
+ .navTop{
+ float:right;
+ display:block;
+ padding-right:15px;
+
+
+ }
+
+
+
+/* end content and sidebar elements */
+/* sidebar elements */
+ .sidebar
+ {
+ float: left;
+ margin-left: 5px;
+ width: 200px;
+ font-size: 11px;
+ }
+
+
+
+
+
+
+ .sidebar .searchlabel
+ {
+ padding: 0 0 2px 17px;
+ font: normal bold 11px/1.2 Verdana;
+ }
+
+ .sidebar .search
+ {
+ padding: 0 15px 0 16px;
+ }
+
+ .sidebar .search form
+ {
+ background: url(../images/sprites-combined.png) no-repeat -6px -348px;
+ height:21px;
+ padding:2px 0 0 5px;
+ width:167px;
+ }
+
+ .sidebar .search form input#pageType
+ {
+ width: 158px;
+ height: 19px;
+ padding: 0;
+ border: 0px;
+ outline: none;
+ font: 13px/1.2 Verdana;
+ }
+
+ .sidebar .box
+ {
+ padding: 17px 15px 5px 16px;
+ }
+
+ .sidebar .box .first
+ {
+ background-image: none;
+ }
+
+ .sidebar .box h2
+ {
+ font: bold 16px/1.2 Arial;
+ padding: 0;
+ }
+ .sidebar .box h2 span
+ {
+ overflow: hidden;
+ display: inline-block;
+ }
+ .sidebar .box#lookup h2
+ {
+ background-image: none;
+ }
+ .sidebar #lookup.box h2 span
+ {
+ }
+ .sidebar .box#topics h2
+ {
+ background-image: none;
+ }
+ .sidebar #topics.box h2 span
+ {
+ }
+ .sidebar .box#examples h2
+ {
+ background-image: none;
+ }
+ .sidebar #examples.box h2 span
+ {
+ }
+
+ .sidebar .box .list
+ {
+ display: block;
+ max-height:200px;
+ min-height:120px;
+ overflow-y:auto;
+ overflow-x:none;
+ }
+ .list li a:hover
+ {
+ text-decoration: underline;
+ }
+ .sidebar .box ul
+ {
+ padding-bottom:5px;
+ padding-left:10px;
+ padding-top:5px;
+ }
+ .sidebar .box ul li
+ {
+ padding-left: 12px;
+ background: url(../images/bullet_gt.png) no-repeat 0 5px;
+ margin-bottom: 5px;
+ }
+ .sidebar .bottombar
+ {
+ background: url(../images/box_bg.png) repeat-x 0 bottom;
+ }
+ .sidebar .box ul li.noMatch
+ {
+ background: none;
+ color:#FF2A00;
+ font-style:italic;
+ }
+ .sidebar .box ul li.hit
+ {
+ background: none;
+ color:#AAD2F0;
+ font-style:italic;
+ }
+ .sidebar .search form input.loading
+ {
+ background:url("../images/spinner.gif") no-repeat scroll right center transparent;
+ }
+
+.floatingResult{
+ z-index:1;
+ position:relative;
+ padding-top:0px;
+ background-color:white;
+ border:solid 1px black;
+ height:250px;
+ width:600px;
+ overflow-x:hidden;
+ overflow-y:auto;
+}
+
+ .floatingResult:hover{
+ display:block;
+ }
+ .floatingResult:hover{
+ }
+
+/* end sidebar elements */
+/* content elements */
+ .wrap
+ {
+ margin: 0 5px 0 208px;
+ overflow: visible;
+ }
+
+
+
+
+ .wrap .toolbar
+ {
+ background-color: #fafafa;
+ border-bottom: 1px solid #d1d1d1;
+ height: 20px;
+ position: relative;
+ }
+ .wrap .toolbar .toolblock
+ {
+ position: absolute;
+ }
+ .wrap .toolbar .breadcrumb
+ {
+ font-size: 11px;
+ line-height: 1.2;
+ padding: 0 0 10px 21px;
+ height: 10px;
+ }
+ .wrap .toolbar .toolbuttons
+ {
+ padding: 0 0 10px 21px;
+ right: 5px;
+ vertical-align: middle;
+ overflow: hidden;
+ }
+ .wrap .toolbar .toolbuttons .active
+ {
+ color: #00732F;
+ }
+ .wrap .toolbar .toolbuttons ul
+ {
+ float: right;
+ }
+ .wrap .toolbar .toolbuttons li
+ {
+ float: left;
+ text-indent: -10px;
+ margin-top: -5px;
+ margin-right: 15px;
+ font-weight: bold;
+ color: #B0ADAB;
+ }
+
+ .toolbuttons #print
+ {
+ border-left: 1px solid #c5c4c4;
+ margin-top: 0;
+ padding-left: 7px;
+ text-indent: 0;
+ }
+ .toolbuttons #print a
+ {
+ width: 16px;
+ height: 16px;
+ }
+
+ .toolbuttons #print a span
+ {
+ width: 16px;
+ height: 16px;
+ text-indent: -999em;
+ display: block;
+ overflow: hidden;
+ background: url(../images/sprites-combined.png) no-repeat -137px -311px;
+ }
+
+ .toolbuttons #smallA
+ {
+ font-size: 10pt;
+ }
+ .toolbuttons #medA
+ {
+ font-size: 12pt;
+ }
+ .toolbuttons #bigA
+ {
+ font-size: 14pt;
+ margin-right: 7px;
+ }
+
+ #smallA:hover, #medA:hover, #bigA:hover
+ {
+ color: #00732F;
+ }
+
+
+ .wrap .content
+ {
+ padding: 30px;
+ word-wrap:break-word;
+ }
+
+ .wrap .breadcrumb ul
+ {
+ }
+ .wrap .breadcrumb ul li
+ {
+ float: left;
+ background: url(../images/breadcrumb.png) no-repeat 0 3px;
+ padding-left: 15px;
+ margin-left: 15px;
+ font-weight: bold;
+ }
+ .wrap .breadcrumb ul li.last
+ {
+ font-weight: normal;
+ }
+ .wrap .breadcrumb ul li a
+ {
+ color: #363534;
+ }
+ .wrap .breadcrumb ul li.first
+ {
+ background-image: none;
+ padding-left: 0;
+ margin-left: 0;
+ }
+
+
+
+
+ .wrap .content ol li {
+ background:none;
+ font:normal 10pt/1.2 Verdana;
+
+ margin-bottom:10px;
+ margin-left:12px;
+ /*list-style-type:disc;*/
+ }
+
+ .wrap .content ol li
+ {
+ background:none;
+ margin-bottom: 10px;
+ padding-left:0px;
+ margin-left:52px;
+ }
+
+ .wrap .content li
+ {
+ background: url(../images/bullet_sq.png) no-repeat 0 5px;
+ font: normal 400 10pt/1.2 Verdana;
+ margin-bottom: 10px;
+ padding-left:12px;
+ }
+
+ .content li:hover {}
+
+ .wrap .content h1
+ {
+ font: bold 18px/1.2 Arial;
+ }
+ .wrap .content h2
+ {
+ border-bottom:1px solid #DDDDDD;
+ font:600 16px/1.2 Arial;
+ margin-top:15px;
+ width:100%;
+ }
+ .wrap .content h3
+ {
+ font: bold 14px/1.2 Arial;
+ font:600 16px/1.2 Arial;
+ margin-top:15px;
+ width:100%;
+ }
+ .wrap .content p
+ {
+ line-height: 20px;
+ padding: 5px;
+ }
+ .wrap .content table p
+ {
+ line-height: 20px;
+ /* padding: 0px;*/
+ }
+ .wrap .content ul
+ {
+ padding-left: 25px;
+ padding-top: 10px;
+ }
+ a:hover
+ {
+ color: #4c0033;
+ text-decoration: underline;
+ }
+ .feedback
+ {
+ float: none;
+ position: absolute;
+ right: 15px;
+ bottom: 10px;
+ font: normal 8px/1 Verdana;
+ color: #B0ADAB;
+ }
+ .feedback:hover
+ {
+ float: right;
+ font: normal 8px/1 Verdana;
+ color: #00732F;
+ text-decoration: underline;
+ }
+ .alphaChar{
+ width:95%;
+ background-color:#F6F6F6;
+ border:1px solid #E6E6E6;
+ -moz-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ font-size:12pt;
+ padding-left:10px;
+ margin-top:10px;
+ margin-bottom:10px;
+ }
+ .flowList{
+ /*vertical-align:top;*/
+ /*margin:20px auto;*/
+
+ column-count:3;
+ -webkit-column-count:3;
+ -moz-column-count:3;
+/*
+ column-width:100%;
+ -webkit-column-width:200px;
+ -col-column-width:200px;
+*/
+ column-gap:41px;
+ -webkit-column-gap:41px;
+ -moz-column-gap:41px;
+
+ column-rule: 1px dashed #ccc;
+ -webkit-column-rule: 1px dashed #ccc;
+ -moz-column-rule: 1px dashed #ccc;
+ }
+
+ .flowList dl{
+ }
+ .flowList dd{
+ /*display:inline-block;*/
+ margin-left:10px;
+ min-width:250px;
+ line-height: 1.2;
+
+ }
+
+ .flowList dd a{
+ }
+
+ .wrap .content .flowList p{
+ padding:0px;
+ }
+
+ .content .alignedsummary
+ {
+ margin: 15px;
+ }
+
+
+ .qmltype
+ {
+ text-align: center;
+ font-size: 160%;
+ }
+ .qmlreadonly
+ {
+ padding-left: 5px;
+ float: right;
+ color: #254117;
+ }
+
+ .qmldefault
+ {
+ padding-left: 5px;
+ float: right;
+ color: red;
+ }
+
+ .qmldoc
+ {
+ }
+
+ *.qmlitem p
+ {
+ }
+ #feedbackBox
+ {
+ display: none;
+ -moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ border: 1px solid #DDDDDD;
+ position: fixed;
+ top: 100px;
+ left: 33%;
+ height: 230px;
+ width: 400px;
+ padding: 5px;
+ background-color: #e6e7e8;
+ z-index: 4;
+ }
+ #feedcloseX
+ {
+ display: inline;
+ padding: 5px 5px 0 0;
+ margin-bottom: 3px;
+ color: #363534;
+ font-weight:bold;
+ float: right;
+ text-decoration: none;
+ }
+
+ #feedbox
+ {
+ display: inline;
+ width: 370px;
+ height: 120px;
+ margin: 0px 25px 10px 15px;
+ }
+ #noteHead
+ {
+ font-weight:bold;
+ padding:10px 10px 10px 20px;
+ }
+ #feedsubmit
+ {
+ display: inline;
+ float: right;
+ margin: 4px 32px 0 0;
+ }
+
+ .note
+ {
+ font-size:7pt;
+ padding-bottom:3px;
+ padding-left:20px;
+ }
+
+ #blurpage
+ {
+ display: none;
+ position: fixed;
+ float: none;
+ top: 0px;
+ left: 0px;
+ right: 0px;
+ bottom: 0px;
+ background: transparent url(../images/feedbackground.png) 0 0;
+ z-index: 3;
+ }
+ .toc
+ {
+ float: right;
+ -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 #DDDDDD;
+ margin: 0 20px 10px 10px;
+ padding: 20px 15px 20px 20px;
+ height: auto;
+ width: 200px;
+ }
+
+ .toc h3, .generic a
+ {
+ font: bold 12px/1.2 Arial;
+ }
+
+ .generic{
+ }
+ .generic td{
+ /* padding:5px;*/
+ }
+ .generic .alphaChar{
+ margin-top:5px;
+ }
+
+ .generic .odd .alphaChar{
+ background-color: #F6F6F6;
+ }
+
+ .generic .even .alphaChar{
+ background-color: #FFFFFF;
+ }
+
+ .alignedsummary{}
+ .propsummary{}
+ .memItemLeft{}
+ .memItemRight{
+ padding:3px 15px 3px 0;
+ }
+ .bottomAlign{}
+ .highlightedCode
+ {
+ margin:10px;
+ }
+ .LegaleseLeft{}
+ .valuelist{}
+ .annotated td{
+ padding: 3px 5px 3px 5px;
+ }
+ .obsolete{}
+ .compat{}
+ .flags{}
+ .qmlsummary{}
+ .qmlitem{}
+ .qmlproto{}
+ .qmlname{}
+ .qmlreadonly{}
+ .qmldefault{}
+ .qmldoc{}
+ .qt-style{}
+ .redFont{}
+ code{}
+
+ .wrap .content .toc ul
+ {
+ padding-left: 0px;
+ }
+
+ .wrap .content .toc h3{
+ border-bottom:0px;
+ margin-top:0px;
+ }
+
+ .wrap .content .toc h3 a:hover{
+ color:#00732F;
+ text-decoration:none;
+ }
+
+
+ .wrap .content .toc .level2
+ {
+ margin-left: 15px;
+ }
+
+ .wrap .content .toc .level3
+ {
+ margin-left: 30px;
+ }
+
+ .content .toc li
+ {
+ font: normal 10px/1.2 Verdana;
+ background: url(../images/bullet_dn.png) no-repeat 0 5px;
+ }
+ .relpage
+ {
+ -moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ border: 1px solid #DDDDDD;
+ padding: 25px 25px;
+ clear: both;
+ }
+ .relpage ul
+ {
+ float: none;
+ padding: 15px;
+ }
+ .content .relpage li
+ {
+ font: normal 11px/1.2 Verdana;
+ }
+ h3.fn, span.fn
+ {
+ -moz-border-radius:7px 7px 7px 7px;
+ -webkit-border-radius:7px 7px 7px 7px;
+ border-radius:7px 7px 7px 7px;
+ background-color: #F6F6F6;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #E6E6E6;
+ font-weight: bold;
+ word-spacing:3px;
+ padding:3px 5px;
+ }
+
+ .functionIndex {
+ font-size:12pt;
+ word-spacing:10px;
+ margin-bottom:10px;
+ background-color: #F6F6F6;
+ 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;
+ width:100%;
+ }
+
+ .centerAlign
+ {
+ text-align:center;
+ }
+
+ .rightAlign
+ {
+ text-align:right;
+ }
+
+
+ .leftAlign
+ {
+ text-align:left;
+ }
+
+ .topAlign{
+ vertical-align:top
+ }
+
+ .functionIndex a{
+ display:inline-block;
+ }
+
+/* end content elements */
+/* footer elements */
+
+ .footer
+ {
+ min-height: 100px;
+ color: #797775;
+ font: normal 9px/1 Verdana;
+ text-align: center;
+ padding-top: 40px;
+ background-color: #E6E7E8;
+ margin: 0;
+ }
+/* end footer elements */
+
+
+
+
+ /* start index box */
+ .indexbox
+ {
+ width: 100%;
+ display:inline-block;
+ }
+
+ .indexboxcont
+ {
+ display: block;
+
+ }
+
+ .indexboxbar
+ {
+ background: transparent url(../images/horBar.png ) repeat-x left bottom;
+ margin-bottom: 25px;
+
+
+ }
+
+ .indexboxcont .section
+ {
+ display: inline-block;
+ width: 49%;
+ *width:42%;
+ _width:42%;
+ padding:0 2% 0 1%;
+ vertical-align:top;
+
+}
+
+ .indexboxcont .indexIcon
+ {
+ width: 11%;
+ *width:18%;
+ _width:18%;
+ overflow:hidden;
+
+}
+
+.indexboxcont .section {
+ float: left;
+}
+
+ .indexboxcont .section p
+ {
+ padding-top: 20px;
+ padding-bottom: 20px;
+ }
+ .indexboxcont .sectionlist
+ {
+ display: inline-block;
+ vertical-align:top;
+ width: 32.5%;
+ padding: 0;
+ }
+ .indexboxcont .sectionlist ul
+ {
+ margin-bottom: 20px;
+ }
+
+ .indexboxcont .sectionlist ul li
+ {
+ line-height: 12px;
+ }
+
+ .content .indexboxcont li
+ {
+ font: normal bold 13px/1 Verdana;
+ }
+
+ .indexbox a:hover, .indexbox a:visited:hover
+ {
+ color: #4c0033;
+ text-decoration: underline;
+ }
+
+ .indexbox a:visited
+ {
+ color: #00732f;
+ text-decoration: none;
+ }
+
+ .indexbox .indexIcon {
+ width: 11%;
+ }
+
+
+ .indexbox .indexIcon span
+ {
+ display: block;
+ }
+
+ .indexbox.guide .indexIcon span
+ {
+ width: 96px;
+ height: 137px;
+ background: url(../images/sprites-combined.png) no-repeat -5px -376px;
+ padding: 0;
+ }
+
+ .indexbox.tools .indexIcon span
+ {
+ width: 115px;
+ height: 137px;
+ background: url(../images/sprites-combined.png) no-repeat -111px -376px;
+ padding: 0;
+ }
+ .indexboxcont:after
+ {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+ }
+
+
+
+/* start of creator spec*/
+ .creator
+ {
+ margin-left:0px;
+ margin-right:0px;
+ padding-left:0px;
+ padding-right:0px;
+ }
+ .creator .wrap .content ol li {
+ list-style-type:decimal;
+
+ }
+ .creator .header .icon,
+ .creator .feedback,
+ .creator .t_button,
+ .creator .feedback,
+ .creator #feedbackBox,
+ .creator #feedback,
+ .creator #blurpage,
+ /*.creator .indexbox .indexIcon span,*/
+ .creator .wrapper .hd,
+/* .creator .indexbox .indexIcon,*/
+ .creator .header #nav-logo,
+ .creator #offlinemenu,
+ .creator #offlinesearch,
+ .creator .header #nav-topright,
+ .creator .header #shortCut ,
+ .creator .wrapper .hd,
+ .creator .wrapper .ft,
+ .creator .sidebar,
+ .creator .wrap .feedback
+ {
+ display:none;
+ }
+
+ body.creator
+ {
+ background: none;
+
+ font: normal 13px/1.2 Verdana;
+ color: #363534;
+ background-color: #FAFAFA;
+ }
+
+ .wrap .content ol li {
+
+ }
+
+
+ .creator .header, .footer, .wrapper
+ {
+ max-width: 1500px;
+ margin: 0px;
+ }
+
+ .creator .wrapper
+ {
+ position:relative;
+ top:5px;
+ }
+ .creator .wrapper .bd
+ {
+
+ background:#FFFFFF;
+ }
+
+
+ .creator .header, .footer
+ {
+ display: block;
+ clear: both;
+ overflow: hidden;
+ }
+ .creator .wrap .content p
+
+ {
+ line-height: 20px;
+ padding: 5px;
+ }
+
+ .creator .header .qtref span
+ {
+ background:none;
+ }
+
+
+
+ .creator .footer
+ {
+ border-top:1px solid #E5E5E5;
+ height: 50px;
+ margin:0px;
+ padding:10px;
+ }
+
+ .creator .footer p
+ {
+ text-align:justify;
+ max-width:900px;
+ }
+
+ .creator .wrap
+ {
+
+ padding:0 5px 0 5px;
+ margin: 0px;
+ }
+ .creator .wrap .toolbar
+ {
+
+
+ border-bottom:1px solid #E5E5E5;
+ /*width:100%;*/
+ margin-left:-5px;
+ margin-right:-5px;
+ }
+ .creator .wrap .breadcrumb ul li a
+ {
+ /* color: #363534;*/
+ color: #00732F;
+ }
+
+ .creator .wrap .content
+ {
+ padding: 0px;
+ word-wrap:break-word;
+ }
+
+ .creator .wrap .content ol li {
+ background:none;
+ font: inherit;
+ padding-left: 0px;
+ }
+
+ .creator .wrap .content .descr ol li {
+ margin-left: 45px;
+
+ }
+ .creator .content .alignedsummary
+ {
+ margin: 5px;
+ width:100%;
+ }
+ .creator .generic{
+ max-width:75%;
+ }
+ .creator .generic td{
+ /*padding:0;*/
+ }
+ .creator .indexboxbar
+ {
+ border-bottom:1px solid #E5E5E5;
+ margin-bottom: 25px;
+ background: none;
+ }
+
+
+
+ .creator .header
+ {
+ width: 100%;
+ margin: 0;
+ height: auto;
+ background-color: #ffffff;
+ padding: 10px 0 5px 0;
+ overflow: visible;
+ border-bottom: solid #E5E5E5 1px;
+ z-index:1;
+
+
+
+
+
+
+
+
+ /* position:fixed;*/
+ }
+
+
+ .creator .header .content
+ {
+ }
+ .creator .header .qtref
+ {
+ color: #00732F;
+ position: static;
+ float: left;
+ margin-left: 5px;
+ font: bold 18px/1 Arial;
+ }
+
+ .creator .header .qtref:visited
+ {
+ color: #00732F;
+ }
+ .creator .header .qtref:hover
+ {
+ color: #00732F;
+ text-decoration:none;
+ }
+ .creator .header .qtref span
+ {
+ background-image: none;
+ text-indent: 0;
+ text-decoration:none;
+ }
+
+
+
+
+
+
+ .creator .wrap .toolbar
+ {
+ display:block;
+ padding-top:0px;
+ }
+
+
+
+ .creator .wrap .breadcrumb ul li {
+ font-weight: normal;
+ }
+
+ .creator .wrap .breadcrumb ul li a {
+ /*color: #44a51c;*/
+ }
+
+ .creator .wrap .breadcrumb ul li.last a {
+ /*color: #363534;*/
+ }
+
+ .creator #narrowmenu ul
+ {
+ border-bottom:solid 1px #E5E5E5;
+ border-left:solid 1px #E5E5E5;
+ border-right:solid 1px #E5E5E5;
+ }
+
+ .creator #narrowmenu li ul {
+ margin-top:-15px;
+ }
+
+
+ .creator .toc {
+ margin:10px 20px 10px 10px;
+ }
+
+ .creator #narrowsearch, .creator #narrowmenu{
+ display:none;
+ }
+/* end of creator spec*/
+
+}
+
+/* end of screen media */
+
+/* start of print media */
+
+@media print
+{
+ input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft, #feedbackBox, #blurpage, .toc, .breadcrumb, .toolbar, .floatingResult
+ {
+ display: none;
+ background: none;
+ }
+ .content
+ {
+ background: none;
+ display: block;
+ width: 100%; margin: 0; float: none;
+
+ }
+}
+/* end of print media */
diff --git a/doc/src/style/style_ie6.css b/doc/src/style/style_ie6.css
new file mode 100755
index 0000000..16fb850
--- /dev/null
+++ b/doc/src/style/style_ie6.css
@@ -0,0 +1,54 @@
+.indexbox, .indexboxcont, .group {
+ zoom: 1;
+ height: 1%;
+}
+
+.sidebar {
+ margin-left: 3px;
+ width: 199px;
+ overflow: hidden;
+}
+
+.sidebar .search form {
+ position: relative;
+}
+
+.sidebar .search form fieldset {
+ position: absolute;
+ margin-top: -1px;
+}
+
+.sidebar .search form input#searchstring {
+ border: 1px solid #fff;
+ height: 18px;
+}
+
+.wrap {
+ zoom: 1;
+}
+
+.content,
+.toolbar {
+ zoom: 1;
+ margin-left: -3px;
+ position: relative;
+}
+
+.indexbox {
+ clear: both;
+}
+
+.indexboxcont .section {
+ zoom: 1;
+ float: left;
+}
+
+.indexboxcont .sectionlist {
+ zoom: 1;
+ float: left;
+}
+
+.wrap .toolbar .toolbuttons li {
+ text-indent: 0;
+ margin-right: 8px;
+} \ No newline at end of file
diff --git a/doc/src/style/style_ie7.css b/doc/src/style/style_ie7.css
new file mode 100755
index 0000000..afbff5f
--- /dev/null
+++ b/doc/src/style/style_ie7.css
@@ -0,0 +1,19 @@
+.indexbox, .indexboxcont, .group {
+ min-height: 1px;
+}
+
+.sidebar .search form input#searchstring {
+ border: 1px solid #fff;
+ height: 17px;
+}
+
+
+.indexboxcont .section {
+ zoom: 1;
+ float: left;
+}
+
+.indexboxcont .sectionlist {
+ zoom: 1;
+ float: left;
+}
diff --git a/doc/src/style/style_ie8.css b/doc/src/style/style_ie8.css
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/doc/src/style/style_ie8.css
diff --git a/doc/src/style/superfish.css b/doc/src/style/superfish.css
new file mode 100755
index 0000000..0cf0f7d
--- /dev/null
+++ b/doc/src/style/superfish.css
@@ -0,0 +1,51 @@
+.sf-menu, .sf-menu * {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+.sf-menu {
+ line-height: 1.0;
+}
+.sf-menu ul {
+ position: absolute;
+ top: -999em;
+ width: 10em; /* left offset of submenus need to match (see below) */
+}
+.sf-menu ul li {
+ width: 100%;
+}
+.sf-menu li:hover {
+ visibility: inherit; /* fixes IE7 'sticky bug' */
+}
+.sf-menu li {
+ float: left;
+ position: relative;
+}
+.sf-menu a {
+ display: block;
+ position: relative;
+}
+.sf-menu li:hover ul,
+.sf-menu li.sfHover ul {
+ left: 0;
+ top: 2.5em; /* match top ul list item height */
+ z-index: 99;
+}
+ul.sf-menu li:hover li ul,
+ul.sf-menu li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li:hover ul,
+ul.sf-menu li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+ul.sf-menu li li:hover li ul,
+ul.sf-menu li li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li li:hover ul,
+ul.sf-menu li li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
diff --git a/examples/helloworld/helloworld.desktop b/examples/helloworld/helloworld.desktop
new file mode 100644
index 0000000..42717d4
--- /dev/null
+++ b/examples/helloworld/helloworld.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=helloworld
+Exec=/usr/bin/helloworld
+Icon=/usr/share/icons/hicolor/64x64/apps/helloworld.png
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/examples/helloworld/helloworld.png b/examples/helloworld/helloworld.png
new file mode 100644
index 0000000..707d5c4
--- /dev/null
+++ b/examples/helloworld/helloworld.png
Binary files differ
diff --git a/examples/helloworld/helloworld.pro b/examples/helloworld/helloworld.pro
new file mode 100644
index 0000000..8e8423d
--- /dev/null
+++ b/examples/helloworld/helloworld.pro
@@ -0,0 +1,48 @@
+QT += declarative opengl
+
+# Add more folders to ship with the application, here
+folder_01.source = qml/helloworld
+folder_01.target = qml
+DEPLOYMENTFOLDERS = folder_01
+
+# Additional import path used to resolve Qml modules in Creator's code model
+QML_IMPORT_PATH =
+
+# Avoid auto screen rotation
+#DEFINES += ORIENTATIONLOCK
+
+# Needs to be defined for Symbian
+#DEFINES += NETWORKACCESS
+
+symbian:TARGET.UID3 = 0xE5022B60
+
+# Define QMLJSDEBUGGER to enable basic debugging (setting breakpoints etc)
+# Define QMLOBSERVER for advanced features (requires experimental QmlInspector plugin!)
+#DEFINES += QMLJSDEBUGGER
+#DEFINES += QMLOBSERVER
+
+# The .cpp file which was generated for your project. Feel free to hack it.
+SOURCES += main.cpp
+
+unix:!macx {
+ SOURCES += qmlapplicationviewer/qmlapplicationviewer.cpp
+ HEADERS += qmlapplicationviewer/qmlapplicationviewer.h
+ INCLUDEPATH += qmlapplicationviewer
+ maemo5 {
+ desktop.path = /usr/share/applications/hildon
+ } else {
+ desktop.path = /usr/share/applications
+ }
+ desktop.files = $${TARGET}.desktop
+ icon.files = $${TARGET}.png
+ icon.path = /usr/share/icons/hicolor/64x64/apps
+ target.path = /usr/bin
+ resourcefiles.files = qml/$${TARGET}/*
+ resourcefiles.path = /usr/share/$${TARGET}/qml/$${TARGET}
+
+ INSTALLS += target desktop icon resourcefiles
+} else {
+# Please do not modify the following two lines. Required for deployment.
+include(qmlapplicationviewer/qmlapplicationviewer.pri)
+qtcAddDeployment()
+}
diff --git a/examples/helloworld/helloworld.svg b/examples/helloworld/helloworld.svg
new file mode 100644
index 0000000..566acfa
--- /dev/null
+++ b/examples/helloworld/helloworld.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ height="44px"
+ version="1.1"
+ viewBox="0 0 44 44"
+ width="44px"
+ x="0px"
+ y="0px"
+ id="svg2"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="qt.svg">
+ <metadata
+ id="metadata18">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs16">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 22 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="44 : 22 : 1"
+ inkscape:persp3d-origin="22 : 14.666667 : 1"
+ id="perspective2836" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1020"
+ id="namedview14"
+ showgrid="false"
+ inkscape:zoom="21.454545"
+ inkscape:cx="49.412871"
+ inkscape:cy="21.894358"
+ inkscape:window-x="-4"
+ inkscape:window-y="-4"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g3" />
+ <g
+ transform="matrix(0.18308778,0,0,0.18308778,6.6100946,3.2385199)"
+ id="g3">
+ <path
+ d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
+ style="fill:#006225"
+ id="path5"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
+ style="fill:#80c342"
+ id="path7" />
+ <path
+ d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
+ style="fill:#006225"
+ id="path11" />
+ <path
+ d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
+ style="fill:#006225"
+ id="path13" />
+ <path
+ id="path17"
+ style="fill:#ffffff"
+ d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z" />
+ <path
+ d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
+ style="fill:#006225"
+ id="path19" />
+ <path
+ id="path21"
+ style="fill:#006225"
+ d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z" />
+ </g>
+</svg>
diff --git a/examples/helloworld/main.cpp b/examples/helloworld/main.cpp
new file mode 100644
index 0000000..efb396c
--- /dev/null
+++ b/examples/helloworld/main.cpp
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/QApplication>
+#include <QtOpenGL>
+#include "qmlapplicationviewer.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ QGLFormat format = QGLFormat::defaultFormat();
+ format.setSampleBuffers(false);
+ format.setSwapInterval(1);
+
+ QGLWidget* glWidget = new QGLWidget(format);
+ glWidget->setAutoFillBackground(false);
+
+ QmlApplicationViewer viewer;
+ viewer.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
+ viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
+ viewer.setAttribute(Qt::WA_OpaquePaintEvent);
+ viewer.setAttribute(Qt::WA_NoSystemBackground);
+ viewer.setViewport(glWidget);
+
+ qDebug()<<"Starting helloworld, used QGLformat = " << glWidget->format();
+
+ viewer.setMainQmlFile(QLatin1String("qml/helloworld/main.qml"));
+ viewer.showExpanded();
+
+ return app.exec();
+}
diff --git a/examples/helloworld/qml/helloworld/main.qml b/examples/helloworld/qml/helloworld/main.qml
new file mode 100644
index 0000000..95eff6a
--- /dev/null
+++ b/examples/helloworld/qml/helloworld/main.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+ Rectangle {
+ width: 300
+ height: 300
+
+ Text {
+ id: textLabel
+ text: "Hello World"
+ anchors.centerIn: parent
+ font.pixelSize: 48
+ }
+
+ ShaderEffectItem {
+ property variant source: ShaderEffectSource { sourceItem: textLabel; hideSource: true }
+ property real wiggleAmount: 0.01
+ anchors.fill: textLabel
+
+ SequentialAnimation on wiggleAmount {
+ loops: Animation.Infinite
+ NumberAnimation { to: -0.01; duration: 500 }
+ NumberAnimation { to: 0.01; duration: 500 }
+ }
+
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform highp float wiggleAmount;
+ void main(void)
+ {
+ highp vec2 wiggledTexCoord = qt_TexCoord0;
+ wiggledTexCoord.s += sin(4.0 * 3.141592653589 * wiggledTexCoord.t) * wiggleAmount;
+ gl_FragColor = texture2D(source, wiggledTexCoord.st);
+ }
+ "
+ }
+ }
diff --git a/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.cpp
new file mode 100644
index 0000000..76b069e
--- /dev/null
+++ b/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.cpp
@@ -0,0 +1,155 @@
+// checksum 0x17fa version 0x3000a
+/*
+ This file was generated by the Qt Quick Application wizard of Qt Creator.
+ QmlApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#include "qmlapplicationviewer.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
+#include <QtDeclarative/QDeclarativeComponent>
+#include <QtDeclarative/QDeclarativeEngine>
+#include <QtDeclarative/QDeclarativeContext>
+
+#if defined(QMLJSDEBUGGER)
+#include <qt_private/qdeclarativedebughelper_p.h>
+#endif
+
+#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
+#include <jsdebuggeragent.h>
+#endif
+#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
+#include <qdeclarativeviewobserver.h>
+#endif
+
+#if defined(QMLJSDEBUGGER)
+
+// Enable debugging before any QDeclarativeEngine is created
+struct QmlJsDebuggingEnabler
+{
+ QmlJsDebuggingEnabler()
+ {
+ QDeclarativeDebugHelper::enableDebugging();
+ }
+};
+
+// Execute code in constructor before first QDeclarativeEngine is instantiated
+static QmlJsDebuggingEnabler enableDebuggingHelper;
+
+#endif // QMLJSDEBUGGER
+
+class QmlApplicationViewerPrivate
+{
+ QString mainQmlFile;
+ friend class QmlApplicationViewer;
+ static QString adjustPath(const QString &path);
+};
+
+QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
+{
+#ifdef Q_OS_UNIX
+#ifdef Q_OS_MAC
+ if (!QDir::isAbsolutePath(path))
+ return QCoreApplication::applicationDirPath()
+ + QLatin1String("/../Resources/") + path;
+#else
+ const QString pathInShareDir = QCoreApplication::applicationDirPath()
+ + QLatin1String("/../share/")
+ + QFileInfo(QCoreApplication::applicationFilePath()).fileName()
+ + QLatin1Char('/') + path;
+ if (QFileInfo(pathInShareDir).exists())
+ return pathInShareDir;
+#endif
+#endif
+ return path;
+}
+
+QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :
+ QDeclarativeView(parent),
+ m_d(new QmlApplicationViewerPrivate)
+{
+ connect(engine(), SIGNAL(quit()), SLOT(close()));
+ setResizeMode(QDeclarativeView::SizeRootObjectToView);
+#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
+ new QmlJSDebugger::JSDebuggerAgent(engine());
+#endif
+#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
+ new QmlJSDebugger::QDeclarativeViewObserver(this, parent);
+#endif
+}
+
+QmlApplicationViewer::~QmlApplicationViewer()
+{
+ delete m_d;
+}
+
+void QmlApplicationViewer::setMainQmlFile(const QString &file)
+{
+ m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
+ setSource(QUrl::fromLocalFile(m_d->mainQmlFile));
+}
+
+void QmlApplicationViewer::addImportPath(const QString &path)
+{
+ engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
+}
+
+void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
+{
+#if defined(Q_OS_SYMBIAN)
+ // If the version of Qt on the device is < 4.7.2, that attribute won't work
+ if (orientation != ScreenOrientationAuto) {
+ const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
+ if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
+ qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
+ return;
+ }
+ }
+#endif // Q_OS_SYMBIAN
+
+ Qt::WidgetAttribute attribute;
+ switch (orientation) {
+#if QT_VERSION < 0x040702
+ // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
+ case ScreenOrientationLockPortrait:
+ attribute = static_cast<Qt::WidgetAttribute>(128);
+ break;
+ case ScreenOrientationLockLandscape:
+ attribute = static_cast<Qt::WidgetAttribute>(129);
+ break;
+ default:
+ case ScreenOrientationAuto:
+ attribute = static_cast<Qt::WidgetAttribute>(130);
+ break;
+#else // QT_VERSION < 0x040702
+ case ScreenOrientationLockPortrait:
+ attribute = Qt::WA_LockPortraitOrientation;
+ break;
+ case ScreenOrientationLockLandscape:
+ attribute = Qt::WA_LockLandscapeOrientation;
+ break;
+ default:
+ case ScreenOrientationAuto:
+ attribute = Qt::WA_AutoOrientation;
+ break;
+#endif // QT_VERSION < 0x040702
+ };
+ setAttribute(attribute, true);
+}
+
+void QmlApplicationViewer::showExpanded()
+{
+#ifdef Q_OS_SYMBIAN
+ showFullScreen();
+#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
+ showMaximized();
+#else
+ show();
+#endif
+}
diff --git a/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.h b/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.h
new file mode 100644
index 0000000..0e4de04
--- /dev/null
+++ b/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.h
@@ -0,0 +1,39 @@
+// checksum 0x5a59 version 0x3000a
+/*
+ This file was generated by the Qt Quick Application wizard of Qt Creator.
+ QmlApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#ifndef QMLAPPLICATIONVIEWER_H
+#define QMLAPPLICATIONVIEWER_H
+
+#include <QtDeclarative/QDeclarativeView>
+
+class QmlApplicationViewer : public QDeclarativeView
+{
+ Q_OBJECT
+
+public:
+ enum ScreenOrientation {
+ ScreenOrientationLockPortrait,
+ ScreenOrientationLockLandscape,
+ ScreenOrientationAuto
+ };
+
+ explicit QmlApplicationViewer(QWidget *parent = 0);
+ virtual ~QmlApplicationViewer();
+
+ void setMainQmlFile(const QString &file);
+ void addImportPath(const QString &path);
+ void setOrientation(ScreenOrientation orientation);
+ void showExpanded();
+
+private:
+ class QmlApplicationViewerPrivate *m_d;
+};
+
+#endif // QMLAPPLICATIONVIEWER_H
diff --git a/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.pri b/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.pri
new file mode 100644
index 0000000..8d0e801
--- /dev/null
+++ b/examples/helloworld/qmlapplicationviewer/qmlapplicationviewer.pri
@@ -0,0 +1,167 @@
+# checksum 0x8396 version 0x3000a
+# This file was generated by the Qt Quick Application wizard of Qt Creator.
+# The code below adds the QmlApplicationViewer to the project and handles the
+# activation of QML debugging.
+# It is recommended not to modify this file, since newer versions of Qt Creator
+# may offer an updated version of it.
+
+QT += declarative
+
+SOURCES += $$PWD/qmlapplicationviewer.cpp
+HEADERS += $$PWD/qmlapplicationviewer.h
+INCLUDEPATH += $$PWD
+
+defineTest(minQtVersion) {
+ maj = $$1
+ min = $$2
+ patch = $$3
+ isEqual(QT_MAJOR_VERSION, $$maj) {
+ isEqual(QT_MINOR_VERSION, $$min) {
+ isEqual(QT_PATCH_VERSION, $$patch) {
+ return(true)
+ }
+ greaterThan(QT_PATCH_VERSION, $$patch) {
+ return(true)
+ }
+ }
+ greaterThan(QT_MINOR_VERSION, $$min) {
+ return(true)
+ }
+ }
+ return(false)
+}
+
+contains(DEFINES, QMLJSDEBUGGER) {
+ CONFIG(debug, debug|release) {
+ !minQtVersion(4, 7, 1) {
+ warning()
+ warning("Disabling QML debugging:")
+ warning()
+ warning("Debugging QML requires the qmljsdebugger library that ships with Qt Creator.")
+ warning("This library requires Qt 4.7.1 or newer.")
+ warning()
+ DEFINES -= QMLJSDEBUGGER
+ } else:isEmpty(QMLJSDEBUGGER_PATH) {
+ warning()
+ warning("Disabling QML debugging:")
+ warning()
+ warning("Debugging QML requires the qmljsdebugger library that ships with Qt Creator.")
+ warning("Please specify its location on the qmake command line, eg")
+ warning(" qmake -r QMLJSDEBUGGER_PATH=$CREATORDIR/share/qtcreator/qmljsdebugger")
+ warning()
+ DEFINES -= QMLJSDEBUGGER
+ } else {
+ include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri)
+ }
+ } else {
+ DEFINES -= QMLJSDEBUGGER
+ }
+}
+# This file was generated by an application wizard of Qt Creator.
+# The code below handles deployment to Symbian and Maemo, aswell as copying
+# of the application data to shadow build directories on desktop.
+# It is recommended not to modify this file, since newer versions of Qt Creator
+# may offer an updated version of it.
+
+defineTest(qtcAddDeployment) {
+for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemsources = $${item}.sources
+ $$itemsources = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath= $$eval($${deploymentfolder}.target)
+ export($$itemsources)
+ export($$itempath)
+ DEPLOYMENT += $$item
+}
+
+MAINPROFILEPWD = $$PWD
+
+symbian {
+ isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg
+ isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+} else:win32 {
+ copyCommand =
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, /, \\)
+ sourcePathSegments = $$split(source, \\)
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
+ target = $$replace(target, /, \\)
+ !isEqual(source,$$target) {
+ !isEmpty(copyCommand):copyCommand += &&
+ copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
+ }
+ }
+ !isEmpty(copyCommand) {
+ copyCommand = @echo Copying application data... && $$copyCommand
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+} else:unix {
+ maemo5 {
+ installPrefix = /opt/usr
+ desktopfile.path = /usr/share/applications/hildon
+ } else {
+ installPrefix = /usr/local
+ desktopfile.path = /usr/share/applications
+ copyCommand =
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, \\, /)
+ macx {
+ target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
+ } else {
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+ }
+ target = $$replace(target, \\, /)
+ sourcePathSegments = $$split(source, /)
+ targetFullPath = $$target/$$last(sourcePathSegments)
+ !isEqual(source,$$targetFullPath) {
+ !isEmpty(copyCommand):copyCommand += &&
+ copyCommand += $(MKDIR) \"$$target\"
+ copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
+ }
+ }
+ !isEmpty(copyCommand) {
+ copyCommand = @echo Copying application data... && $$copyCommand
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+ }
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemfiles = $${item}.files
+ $$itemfiles = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath = $${installPrefix}/share/$${TARGET}/$$eval($${deploymentfolder}.target)
+ export($$itemfiles)
+ export($$itempath)
+ INSTALLS += $$item
+ }
+ icon.files = $${TARGET}.png
+ icon.path = /usr/share/icons/hicolor/64x64/apps
+ desktopfile.files = $${TARGET}.desktop
+ target.path = $${installPrefix}/bin
+ export(icon.files)
+ export(icon.path)
+ export(desktopfile.files)
+ export(desktopfile.path)
+ export(target.path)
+ INSTALLS += desktopfile icon target
+}
+
+export (ICON)
+export (INSTALLS)
+export (DEPLOYMENT)
+export (TARGET.EPOCHEAPSIZE)
+export (TARGET.CAPABILITY)
+export (LIBS)
+export (QMAKE_EXTRA_TARGETS)
+}
diff --git a/examples/shadereffects/main.cpp b/examples/shadereffects/main.cpp
new file mode 100644
index 0000000..c05572a
--- /dev/null
+++ b/examples/shadereffects/main.cpp
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/QApplication>
+#include <QtOpenGL>
+#include "qmlapplicationviewer.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ QGLFormat format = QGLFormat::defaultFormat();
+ format.setSampleBuffers(false);
+ format.setSwapInterval(1);
+
+ QGLWidget* glWidget = new QGLWidget(format);
+ glWidget->setAutoFillBackground(false);
+
+ QmlApplicationViewer viewer;
+ viewer.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
+ viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockPortrait);
+ viewer.setAttribute(Qt::WA_OpaquePaintEvent);
+ viewer.setAttribute(Qt::WA_NoSystemBackground);
+ viewer.setViewport(glWidget);
+ viewer.setMainQmlFile(QLatin1String("qml/shadereffects/main.qml"));
+ viewer.showExpanded();
+
+ return app.exec();
+}
diff --git a/examples/shadereffects/qml/shadereffects/Curtain.qml b/examples/shadereffects/qml/shadereffects/Curtain.qml
new file mode 100644
index 0000000..8697951
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/Curtain.qml
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Item {
+ id: main
+ anchors.fill: parent
+
+ Rectangle{
+ id: bg
+ anchors.fill: parent
+ color: "black"
+ }
+
+ Image {
+ source: "images/qt-logo.png"
+ anchors.centerIn: parent
+ }
+
+ Image {
+ id: fabric
+ anchors.fill: parent
+ source: "images/fabric.jpg"
+ fillMode: Image.Tile
+ }
+
+ CurtainEffect {
+ id: curtain
+ anchors.fill: fabric
+ bottomWidth: topWidth
+ source: ShaderEffectSource { sourceItem: fabric; hideSource: true }
+
+ Behavior on bottomWidth {
+ SpringAnimation { easing.type: Easing.OutElastic; velocity: 250; mass: 1.5; spring: 0.5; damping: 0.05}
+ }
+
+ SequentialAnimation on topWidth {
+ id: topWidthAnim
+ loops: Animation.Infinite
+
+ NumberAnimation { to: 360; duration: 1000 }
+ PauseAnimation { duration: 2000 }
+ NumberAnimation { to: 180; duration: 1000 }
+ PauseAnimation { duration: 2000 }
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ topWidthAnim.stop()
+ curtain.topWidth = mouseX;
+ }
+
+ onReleased: {
+ topWidthAnim.restart()
+ }
+
+ onPositionChanged: {
+ if (pressed) {
+ curtain.topWidth = mouseX;
+ }
+ }
+ }
+}
diff --git a/examples/shadereffects/qml/shadereffects/CurtainEffect.qml b/examples/shadereffects/qml/shadereffects/CurtainEffect.qml
new file mode 100644
index 0000000..7834a1a
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/CurtainEffect.qml
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+ShaderEffectItem {
+ anchors.fill: parent
+ property variant source
+ meshResolution: Qt.size(50, 50)
+
+ property real topWidth: width / 2
+ property real bottomWidth: width / 2
+ property real originalWidth: width
+ property real originalHeight: height
+ property real amplitude: 0.1
+
+ vertexShader: "
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ uniform highp mat4 qt_ModelViewProjectionMatrix;
+ varying highp vec2 qt_TexCoord0;
+ varying lowp float shade;
+
+ uniform highp float topWidth;
+ uniform highp float bottomWidth;
+ uniform highp float originalWidth;
+ uniform highp float originalHeight;
+ uniform highp float amplitude;
+
+ void main() {
+ qt_TexCoord0 = qt_MultiTexCoord0;
+
+ highp vec4 shift = vec4(0, 0, 0, 0);
+ shift.x = qt_Vertex.x * ((originalWidth - topWidth) + (topWidth - bottomWidth) * (qt_Vertex.y / originalHeight)) / originalWidth;
+
+ shade = sin(21.9911486 * qt_Vertex.x / originalWidth);
+ shift.y = amplitude * (originalWidth - topWidth + (topWidth - bottomWidth) * (qt_Vertex.y / originalHeight)) * shade;
+
+ gl_Position = qt_ModelViewProjectionMatrix * (qt_Vertex - shift);
+
+ shade = 0.2 * (2.0 - shade ) * (1.0 - (bottomWidth + (topWidth - bottomWidth) * (1.0 - qt_Vertex.y / originalHeight)) / originalWidth);
+ }
+ "
+
+ fragmentShader: "
+ uniform sampler2D source;
+ varying highp vec2 qt_TexCoord0;
+ varying lowp float shade;
+ void main() {
+ highp vec4 color = texture2D(source, qt_TexCoord0);
+ color.rgb *= 1.0 - shade;
+ gl_FragColor = color;
+ }
+ "
+}
+
+
+
diff --git a/examples/shadereffects/qml/shadereffects/DropShadow.qml b/examples/shadereffects/qml/shadereffects/DropShadow.qml
new file mode 100644
index 0000000..054f193
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/DropShadow.qml
@@ -0,0 +1,117 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+
+Item {
+ id: main
+ anchors.fill: parent
+
+ Image {
+ id: background
+ anchors.fill: parent
+ source: "images/bg.jpg"
+ }
+
+ DropShadowEffect {
+ id: layer
+
+ property real distance: 0.0
+
+ width: photo.width
+ height: photo.height
+ sourceItem: photo
+ color: "black"
+ blur: distance / 10.0
+ opacity: 1 - distance / 50.0
+
+ Binding {
+ target: layer
+ property: "x"
+ value: -0.4 * layer.distance
+ when: !dragArea.pressed
+ }
+ Binding {
+ target: layer
+ property: "y"
+ value: 0.9 * layer.distance
+ when: !dragArea.pressed
+ }
+
+ SequentialAnimation on distance {
+ id: animation
+ running: true
+ loops: Animation.Infinite
+
+ NumberAnimation { to: 30; duration: 2000 }
+ PauseAnimation { duration: 500 }
+ NumberAnimation { to: 0; duration: 2000 }
+ PauseAnimation { duration: 500 }
+ }
+ }
+
+ Image {
+ id: photo
+ anchors.fill: parent
+ source: "images/drop_shadow.png"
+ smooth: true
+ }
+
+ MouseArea {
+ id: dragArea
+ anchors.fill: parent
+
+ property int startX
+ property int startY
+
+ onPressed: {
+ startX = mouseX
+ startY = mouseY
+ }
+
+ onPositionChanged: {
+ layer.x += mouseX - startX
+ layer.y += mouseY - startY
+ startX = mouseX
+ startY = mouseY
+ }
+ }
+}
diff --git a/examples/shadereffects/qml/shadereffects/DropShadowEffect.qml b/examples/shadereffects/qml/shadereffects/DropShadowEffect.qml
new file mode 100644
index 0000000..b9903a3
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/DropShadowEffect.qml
@@ -0,0 +1,174 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Item {
+ id: main
+ property real blur: 0.0
+ property alias color: shadowEffectWithHBlur.color
+ property alias sourceItem: source.sourceItem
+
+ ShaderEffectSource {
+ id: source
+ smooth: true
+ hideSource: false
+ }
+
+ ShaderEffectItem {
+ id: shadowEffectWithHBlur
+ anchors.fill: parent
+
+ property color color: "grey"
+ property variant sourceTexture: source;
+ property real xStep: main.blur / main.width
+
+ vertexShader:"
+ uniform highp mat4 qt_ModelViewProjectionMatrix;
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ uniform highp float xStep;
+ varying highp vec2 qt_TexCoord0;
+ varying highp vec2 qt_TexCoord1;
+ varying highp vec2 qt_TexCoord2;
+ varying highp vec2 qt_TexCoord4;
+ varying highp vec2 qt_TexCoord5;
+ varying highp vec2 qt_TexCoord6;
+
+ void main(void)
+ {
+ highp vec2 shift = vec2(xStep, 0.);
+ qt_TexCoord0 = qt_MultiTexCoord0 - 2.5 * shift;
+ qt_TexCoord1 = qt_MultiTexCoord0 - 1.5 * shift;
+ qt_TexCoord2 = qt_MultiTexCoord0 - 0.5 * shift;
+ qt_TexCoord4 = qt_MultiTexCoord0 + 0.5 * shift;
+ qt_TexCoord5 = qt_MultiTexCoord0 + 1.5 * shift;
+ qt_TexCoord6 = qt_MultiTexCoord0 + 2.5 * shift;
+ gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;
+ }
+ "
+
+ fragmentShader:"
+ uniform highp vec4 color;
+ uniform lowp sampler2D sourceTexture;
+ varying highp vec2 qt_TexCoord0;
+ varying highp vec2 qt_TexCoord1;
+ varying highp vec2 qt_TexCoord2;
+ varying highp vec2 qt_TexCoord4;
+ varying highp vec2 qt_TexCoord5;
+ varying highp vec2 qt_TexCoord6;
+
+ void main() {
+ highp vec4 sourceColor = (texture2D(sourceTexture, qt_TexCoord0) * 0.1
+ + texture2D(sourceTexture, qt_TexCoord1) * 0.15
+ + texture2D(sourceTexture, qt_TexCoord2) * 0.25
+ + texture2D(sourceTexture, qt_TexCoord4) * 0.25
+ + texture2D(sourceTexture, qt_TexCoord5) * 0.15
+ + texture2D(sourceTexture, qt_TexCoord6) * 0.1);
+ gl_FragColor = mix(vec4(0), color, sourceColor.a);
+ }
+ "
+ }
+
+ ShaderEffectSource {
+ id: hBlurredShadow
+ smooth: true
+ sourceItem: shadowEffectWithHBlur
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: finalEffect
+ anchors.fill: parent
+
+ property color color: "grey"
+ property variant sourceTexture: hBlurredShadow;
+ property real yStep: main.blur / main.height
+
+ vertexShader:"
+ uniform highp mat4 qt_ModelViewProjectionMatrix;
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ uniform highp float yStep;
+ varying highp vec2 qt_TexCoord0;
+ varying highp vec2 qt_TexCoord1;
+ varying highp vec2 qt_TexCoord2;
+ varying highp vec2 qt_TexCoord4;
+ varying highp vec2 qt_TexCoord5;
+ varying highp vec2 qt_TexCoord6;
+
+ void main(void)
+ {
+ highp vec2 shift = vec2(0., yStep);
+ qt_TexCoord0 = qt_MultiTexCoord0 - 2.5 * shift;
+ qt_TexCoord1 = qt_MultiTexCoord0 - 1.5 * shift;
+ qt_TexCoord2 = qt_MultiTexCoord0 - 0.5 * shift;
+ qt_TexCoord4 = qt_MultiTexCoord0 + 0.5 * shift;
+ qt_TexCoord5 = qt_MultiTexCoord0 + 1.5 * shift;
+ qt_TexCoord6 = qt_MultiTexCoord0 + 2.5 * shift;
+ gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;
+ }
+ "
+
+ fragmentShader:"
+ uniform highp vec4 color;
+ uniform lowp sampler2D sourceTexture;
+ uniform highp float qt_Opacity;
+ varying highp vec2 qt_TexCoord0;
+ varying highp vec2 qt_TexCoord1;
+ varying highp vec2 qt_TexCoord2;
+ varying highp vec2 qt_TexCoord4;
+ varying highp vec2 qt_TexCoord5;
+ varying highp vec2 qt_TexCoord6;
+
+ void main() {
+ highp vec4 sourceColor = (texture2D(sourceTexture, qt_TexCoord0) * 0.1
+ + texture2D(sourceTexture, qt_TexCoord1) * 0.15
+ + texture2D(sourceTexture, qt_TexCoord2) * 0.25
+ + texture2D(sourceTexture, qt_TexCoord4) * 0.25
+ + texture2D(sourceTexture, qt_TexCoord5) * 0.15
+ + texture2D(sourceTexture, qt_TexCoord6) * 0.1);
+ gl_FragColor = sourceColor * qt_Opacity;
+ }
+ "
+ }
+}
diff --git a/examples/shadereffects/qml/shadereffects/Grayscale.qml b/examples/shadereffects/qml/shadereffects/Grayscale.qml
new file mode 100644
index 0000000..e0e348f
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/Grayscale.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Item {
+ id: main
+ anchors.fill: parent
+
+ GrayscaleEffect {
+ id: layer
+ anchors.fill: parent
+
+ source: ShaderEffectSource {
+ sourceItem: Image { source: "images/desaturate.jpg" }
+ live: false
+ hideSource: true
+ }
+
+ SequentialAnimation on ratio {
+ id: ratioAnimation
+ running: true
+ loops: Animation.Infinite
+ NumberAnimation {
+ easing.type: Easing.Linear
+ to: 0.0
+ duration: 1500
+ }
+ PauseAnimation { duration: 1000 }
+ NumberAnimation {
+ easing.type: Easing.Linear
+ to: 1.0
+ duration: 1500
+ }
+ PauseAnimation { duration: 1000 }
+ }
+ }
+}
diff --git a/examples/shadereffects/qml/shadereffects/GrayscaleEffect.qml b/examples/shadereffects/qml/shadereffects/GrayscaleEffect.qml
new file mode 100644
index 0000000..34505ff
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/GrayscaleEffect.qml
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+ShaderEffectItem {
+ id: effect
+ property real ratio: 1.0
+ property variant source: 0
+
+ fragmentShader:
+ "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform highp float ratio;
+ void main(void)
+ {
+ lowp vec4 textureColor = texture2D(source, qt_TexCoord0.st);
+ lowp float gray = dot(textureColor, vec4(0.299, 0.587, 0.114, 0.0));
+ gl_FragColor = vec4(gray * ratio + textureColor.r * (1.0 - ratio), gray * ratio + textureColor.g * (1.0 - ratio), gray * ratio + textureColor.b * (1.0 - ratio), textureColor.a);
+ }
+ "
+}
diff --git a/examples/shadereffects/qml/shadereffects/ImageMask.qml b/examples/shadereffects/qml/shadereffects/ImageMask.qml
new file mode 100644
index 0000000..ea9fa0a
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/ImageMask.qml
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Item {
+ anchors.fill: parent
+
+ Image {
+ id: bg
+ anchors.fill: parent
+ source: "images/image2.jpg"
+ }
+
+ Item {
+ id: mask
+ anchors.fill: parent
+
+ Text {
+ text: "Mask text"
+ font.pixelSize: 50
+ font.bold: true
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ NumberAnimation on rotation {
+ running: true
+ loops: Animation.Infinite
+ from: 0
+ to: 360
+ duration: 3000
+ }
+
+ SequentialAnimation on y {
+ running: true
+ loops: Animation.Infinite
+ NumberAnimation {
+ to: main.height
+ duration: 3000
+ }
+ NumberAnimation {
+ to: 0
+ duration: 3000
+ }
+ }
+ }
+
+ Rectangle {
+ id: opaqueBox
+ width: 60
+ height: parent.height
+ SequentialAnimation on x {
+ running: true
+ loops: Animation.Infinite
+ NumberAnimation {
+ to: main.width
+ duration: 2000
+ easing.type: Easing.InOutCubic
+ }
+ NumberAnimation {
+ to: 0
+ duration: 2000
+ easing.type: Easing.InOutCubic
+ }
+ }
+ }
+
+ Rectangle {
+ width: 100
+ opacity: 0.5
+ height: parent.height
+ SequentialAnimation on x {
+ PauseAnimation { duration: 100 }
+
+ SequentialAnimation {
+ loops: Animation.Infinite
+ NumberAnimation {
+ to: main.width
+ duration: 2000
+ easing.type: Easing.InOutCubic
+ }
+ NumberAnimation {
+ to: 0
+ duration: 2000
+ easing.type: Easing.InOutCubic
+ }
+ }
+ }
+ }
+ }
+
+ ImageMaskEffect {
+ anchors.fill: parent
+ image: ShaderEffectSource {
+ sourceItem: Image { source: "images/image1.jpg" }
+ live: false
+ hideSource: true
+ }
+ mask: ShaderEffectSource {
+ sourceItem: mask
+ live: true
+ hideSource: true
+ }
+ }
+}
diff --git a/examples/shadereffects/qml/shadereffects/ImageMaskEffect.qml b/examples/shadereffects/qml/shadereffects/ImageMaskEffect.qml
new file mode 100644
index 0000000..2dc0e75
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/ImageMaskEffect.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+ShaderEffectItem {
+ id: effect
+ property variant image: 0
+ property variant mask: 0
+
+ fragmentShader:
+ "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D image;
+ uniform sampler2D mask;
+ void main(void)
+ {
+ gl_FragColor = texture2D(image, qt_TexCoord0.st) * (texture2D(mask, qt_TexCoord0.st).a);
+ }
+ "
+}
diff --git a/examples/shadereffects/qml/shadereffects/RadialWave.qml b/examples/shadereffects/qml/shadereffects/RadialWave.qml
new file mode 100644
index 0000000..4487293
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/RadialWave.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Item {
+ id: main
+ anchors.fill: parent
+
+ ShaderEffectSource {
+ id: thesource
+ sourceItem: Image { source: "images/wave.jpg" }
+ live: false
+ hideSource: true
+ }
+
+ RadialWaveEffect {
+ id: layer
+ anchors.fill: parent;
+ source: thesource
+
+ wave: 0.0
+ waveOriginX: 0.5
+ waveOriginY: 0.5
+ waveWidth: 0.01
+
+ NumberAnimation on wave {
+ id: waveAnim
+ running: true
+ loops: Animation.Infinite
+ easing.type: "Linear"
+ from: 0.0000; to: 2.0000;
+ duration: 2500
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ waveAnim.stop()
+ layer.waveOriginX = mouseX / main.width
+ layer.waveOriginY = mouseY / main.height
+ waveAnim.start()
+ }
+ }
+}
diff --git a/examples/shadereffects/qml/shadereffects/RadialWaveEffect.qml b/examples/shadereffects/qml/shadereffects/RadialWaveEffect.qml
new file mode 100644
index 0000000..c415f69
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/RadialWaveEffect.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+ShaderEffectItem {
+ id: effect
+
+ property real wave: 0.3
+ property real waveOriginX: 0.5
+ property real waveOriginY: 0.5
+ property real waveWidth: 0.01
+ property real aspectRatio: width/height
+ property variant source: 0
+
+ fragmentShader:
+ "
+ varying mediump vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform highp float wave;
+ uniform highp float waveWidth;
+ uniform highp float waveOriginX;
+ uniform highp float waveOriginY;
+ uniform highp float aspectRatio;
+
+ void main(void)
+ {
+ mediump vec2 texCoord2 = qt_TexCoord0;
+ mediump vec2 origin = vec2(waveOriginX, (1.0 - waveOriginY) / aspectRatio);
+
+ highp float fragmentDistance = distance(vec2(texCoord2.s, texCoord2.t / aspectRatio), origin);
+ highp float waveLength = waveWidth + fragmentDistance * 0.25;
+
+ if ( fragmentDistance > wave && fragmentDistance < wave + waveLength) {
+ highp float distanceFromWaveEdge = min(abs(wave - fragmentDistance), abs(wave + waveLength - fragmentDistance));
+ texCoord2 += sin(1.57075 * distanceFromWaveEdge / waveLength) * distanceFromWaveEdge * 0.08 / fragmentDistance;
+ }
+
+ gl_FragColor = texture2D(source, texCoord2.st);
+ }
+ "
+}
diff --git a/examples/shadereffects/qml/shadereffects/Water.qml b/examples/shadereffects/qml/shadereffects/Water.qml
new file mode 100755
index 0000000..8ad6c6a
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/Water.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Item {
+ anchors.fill: parent
+
+ Image {
+ id: image
+ width: parent.width
+ height: parent.height * 0.65
+ source: "images/sky.jpg"
+ smooth: true
+ }
+ WaterEffect {
+ sourceItem: image
+ intensity: 5
+ height: parent.height - image.height
+ }
+}
diff --git a/examples/shadereffects/qml/shadereffects/WaterEffect.qml b/examples/shadereffects/qml/shadereffects/WaterEffect.qml
new file mode 100644
index 0000000..84989eb
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/WaterEffect.qml
@@ -0,0 +1,126 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Item {
+ id: root
+ property alias sourceItem: effectsource.sourceItem
+ property real intensity: 1
+ property bool waving: true
+ anchors.top: sourceItem.bottom
+ width: sourceItem.width
+ height: sourceItem.height
+
+ ShaderEffectItem {
+ anchors.fill: parent
+ property variant source: effectsource
+ property real f: 0
+ property real f2: 0
+ property alias intensity: root.intensity
+ smooth: true
+
+ ShaderEffectSource {
+ id: effectsource
+ hideSource: false
+ smooth: true
+ }
+
+ fragmentShader:
+ "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform lowp float qt_Opacity;
+ uniform highp float f;
+ uniform highp float f2;
+ uniform highp float intensity;
+
+ void main() {
+ const highp float twopi = 3.141592653589 * 2.0;
+
+ highp float distanceFactorToPhase = pow(qt_TexCoord0.y + 0.5, 8.0) * 5.0;
+ highp float ofx = sin(f * twopi + distanceFactorToPhase) / 100.0;
+ highp float ofy = sin(f2 * twopi + distanceFactorToPhase * qt_TexCoord0.x) / 60.0;
+
+ highp float intensityDampingFactor = (qt_TexCoord0.x + 0.1) * (qt_TexCoord0.y + 0.2);
+ highp float distanceFactor = (1.0 - qt_TexCoord0.y) * 4.0 * intensity * intensityDampingFactor;
+
+ ofx *= distanceFactor;
+ ofy *= distanceFactor;
+
+ highp float x = qt_TexCoord0.x + ofx;
+ highp float y = 1.0 - qt_TexCoord0.y + ofy;
+
+ highp float fake = (sin((ofy + ofx) * twopi) + 0.5) * 0.05 * (1.2 - qt_TexCoord0.y) * intensity * intensityDampingFactor;
+
+ highp vec4 pix =
+ texture2D(source, vec2(x, y)) * 0.6 +
+ texture2D(source, vec2(x-fake, y)) * 0.15 +
+ texture2D(source, vec2(x, y-fake)) * 0.15 +
+ texture2D(source, vec2(x+fake, y)) * 0.15 +
+ texture2D(source, vec2(x, y+fake)) * 0.15;
+
+ highp float darken = 0.6 - (ofx - ofy) / 2.0;
+ pix.b *= 1.2 * darken;
+ pix.r *= 0.9 * darken;
+ pix.g *= darken;
+
+ gl_FragColor = qt_Opacity * vec4(pix.r, pix.g, pix.b, 1.0);
+ }
+ "
+
+ NumberAnimation on f {
+ running: root.waving
+ loops: Animation.Infinite
+ from: 0
+ to: 1
+ duration: 2410
+ }
+ NumberAnimation on f2 {
+ running: root.waving
+ loops: Animation.Infinite
+ from: 0
+ to: 1
+ duration: 1754
+ }
+ }
+}
diff --git a/examples/shadereffects/qml/shadereffects/images/Curtain.jpg b/examples/shadereffects/qml/shadereffects/images/Curtain.jpg
new file mode 100644
index 0000000..40003cb
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/Curtain.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/DropShadow.jpg b/examples/shadereffects/qml/shadereffects/images/DropShadow.jpg
new file mode 100644
index 0000000..c1e693a
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/DropShadow.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/Grayscale.jpg b/examples/shadereffects/qml/shadereffects/images/Grayscale.jpg
new file mode 100644
index 0000000..c95cab4
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/Grayscale.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/ImageMask.jpg b/examples/shadereffects/qml/shadereffects/images/ImageMask.jpg
new file mode 100644
index 0000000..0da4c0d
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/ImageMask.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/RadialWave.jpg b/examples/shadereffects/qml/shadereffects/images/RadialWave.jpg
new file mode 100644
index 0000000..fc51efc
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/RadialWave.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/Water.jpg b/examples/shadereffects/qml/shadereffects/images/Water.jpg
new file mode 100644
index 0000000..38615c1
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/Water.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/back.png b/examples/shadereffects/qml/shadereffects/images/back.png
new file mode 100644
index 0000000..5dd3d22
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/back.png
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/bg.jpg b/examples/shadereffects/qml/shadereffects/images/bg.jpg
new file mode 100644
index 0000000..4d22143
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/bg.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/desaturate.jpg b/examples/shadereffects/qml/shadereffects/images/desaturate.jpg
new file mode 100644
index 0000000..e5e99bb
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/desaturate.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/drop_shadow.png b/examples/shadereffects/qml/shadereffects/images/drop_shadow.png
new file mode 100644
index 0000000..144c02d
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/drop_shadow.png
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/fabric.jpg b/examples/shadereffects/qml/shadereffects/images/fabric.jpg
new file mode 100644
index 0000000..ab65409
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/fabric.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/flower.png b/examples/shadereffects/qml/shadereffects/images/flower.png
new file mode 100755
index 0000000..144c02d
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/flower.png
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/image1.jpg b/examples/shadereffects/qml/shadereffects/images/image1.jpg
new file mode 100644
index 0000000..3442e77
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/image1.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/image2.jpg b/examples/shadereffects/qml/shadereffects/images/image2.jpg
new file mode 100644
index 0000000..23e5c5c
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/image2.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/qt-logo.png b/examples/shadereffects/qml/shadereffects/images/qt-logo.png
new file mode 100644
index 0000000..41a304b
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/qt-logo.png
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/shader_effects.jpg b/examples/shadereffects/qml/shadereffects/images/shader_effects.jpg
new file mode 100644
index 0000000..19e8a39
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/shader_effects.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/sky.jpg b/examples/shadereffects/qml/shadereffects/images/sky.jpg
new file mode 100644
index 0000000..8fc19ed
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/sky.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/toolbar.png b/examples/shadereffects/qml/shadereffects/images/toolbar.png
new file mode 100644
index 0000000..773e3ea
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/toolbar.png
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/images/wave.jpg b/examples/shadereffects/qml/shadereffects/images/wave.jpg
new file mode 100644
index 0000000..c8083bb
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/images/wave.jpg
Binary files differ
diff --git a/examples/shadereffects/qml/shadereffects/main.qml b/examples/shadereffects/qml/shadereffects/main.qml
new file mode 100644
index 0000000..ee85570
--- /dev/null
+++ b/examples/shadereffects/qml/shadereffects/main.qml
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Item {
+ id: main
+ width: 360
+ height: 640
+
+ Rectangle {
+ anchors.fill: parent
+ color: "black"
+ }
+
+ Image {
+ id: header
+ source: "images/shader_effects.jpg"
+ }
+
+ ListModel {
+ id: demoModel
+ ListElement { name: "ImageMask" }
+ ListElement { name: "RadialWave" }
+ ListElement { name: "Water" }
+ ListElement { name: "Grayscale" }
+ ListElement { name: "DropShadow" }
+ ListElement { name: "Curtain" }
+ }
+
+ Grid {
+ id: menuGrid
+ anchors.top: header.bottom
+ anchors.bottom: toolbar.top
+ width: parent.width
+ columns: 2
+ Repeater {
+ model: demoModel
+ Item {
+ width: main.width / 2
+ height: menuGrid.height / 3
+ clip: true
+ Image {
+ width: parent.width
+ height: width
+ source: "images/" + name + ".jpg"
+ opacity: mouseArea.pressed ? 0.6 : 1.0
+ }
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ onClicked: {
+ demoLoader.source = name + ".qml"
+ main.state = "showDemo"
+ }
+ }
+ }
+ }
+ }
+
+ Loader {
+ anchors.fill: parent
+ id: demoLoader
+ visible: false
+ Behavior on opacity {
+ NumberAnimation { duration: 300 }
+ }
+ }
+
+ Image {
+ id: toolbar
+ source: "images/toolbar.png"
+ width: parent.width
+ anchors.bottom: parent.bottom
+ }
+
+ Rectangle {
+ id: translucentToolbar
+ color: "black"
+ opacity: 0.3
+ anchors.fill: toolbar
+ visible: !toolbar.visible
+ }
+
+ Item {
+ height: toolbar.height
+ width: height
+ anchors.bottom: parent.bottom
+
+ Image {
+ source: "images/back.png"
+ anchors.centerIn: parent
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ if (main.state == "") Qt.quit(); else {
+ main.state = ""
+ demoLoader.source = ""
+ }
+ }
+ }
+ }
+
+ states: State {
+ name: "showDemo"
+ PropertyChanges {
+ target: menuGrid
+ visible: false
+ }
+ PropertyChanges {
+ target: demoLoader
+ visible: true
+ }
+ PropertyChanges {
+ target: toolbar
+ visible: false
+ }
+ }
+}
diff --git a/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.cpp
new file mode 100644
index 0000000..76b069e
--- /dev/null
+++ b/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.cpp
@@ -0,0 +1,155 @@
+// checksum 0x17fa version 0x3000a
+/*
+ This file was generated by the Qt Quick Application wizard of Qt Creator.
+ QmlApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#include "qmlapplicationviewer.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
+#include <QtDeclarative/QDeclarativeComponent>
+#include <QtDeclarative/QDeclarativeEngine>
+#include <QtDeclarative/QDeclarativeContext>
+
+#if defined(QMLJSDEBUGGER)
+#include <qt_private/qdeclarativedebughelper_p.h>
+#endif
+
+#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
+#include <jsdebuggeragent.h>
+#endif
+#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
+#include <qdeclarativeviewobserver.h>
+#endif
+
+#if defined(QMLJSDEBUGGER)
+
+// Enable debugging before any QDeclarativeEngine is created
+struct QmlJsDebuggingEnabler
+{
+ QmlJsDebuggingEnabler()
+ {
+ QDeclarativeDebugHelper::enableDebugging();
+ }
+};
+
+// Execute code in constructor before first QDeclarativeEngine is instantiated
+static QmlJsDebuggingEnabler enableDebuggingHelper;
+
+#endif // QMLJSDEBUGGER
+
+class QmlApplicationViewerPrivate
+{
+ QString mainQmlFile;
+ friend class QmlApplicationViewer;
+ static QString adjustPath(const QString &path);
+};
+
+QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
+{
+#ifdef Q_OS_UNIX
+#ifdef Q_OS_MAC
+ if (!QDir::isAbsolutePath(path))
+ return QCoreApplication::applicationDirPath()
+ + QLatin1String("/../Resources/") + path;
+#else
+ const QString pathInShareDir = QCoreApplication::applicationDirPath()
+ + QLatin1String("/../share/")
+ + QFileInfo(QCoreApplication::applicationFilePath()).fileName()
+ + QLatin1Char('/') + path;
+ if (QFileInfo(pathInShareDir).exists())
+ return pathInShareDir;
+#endif
+#endif
+ return path;
+}
+
+QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :
+ QDeclarativeView(parent),
+ m_d(new QmlApplicationViewerPrivate)
+{
+ connect(engine(), SIGNAL(quit()), SLOT(close()));
+ setResizeMode(QDeclarativeView::SizeRootObjectToView);
+#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
+ new QmlJSDebugger::JSDebuggerAgent(engine());
+#endif
+#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
+ new QmlJSDebugger::QDeclarativeViewObserver(this, parent);
+#endif
+}
+
+QmlApplicationViewer::~QmlApplicationViewer()
+{
+ delete m_d;
+}
+
+void QmlApplicationViewer::setMainQmlFile(const QString &file)
+{
+ m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
+ setSource(QUrl::fromLocalFile(m_d->mainQmlFile));
+}
+
+void QmlApplicationViewer::addImportPath(const QString &path)
+{
+ engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
+}
+
+void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
+{
+#if defined(Q_OS_SYMBIAN)
+ // If the version of Qt on the device is < 4.7.2, that attribute won't work
+ if (orientation != ScreenOrientationAuto) {
+ const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
+ if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
+ qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
+ return;
+ }
+ }
+#endif // Q_OS_SYMBIAN
+
+ Qt::WidgetAttribute attribute;
+ switch (orientation) {
+#if QT_VERSION < 0x040702
+ // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
+ case ScreenOrientationLockPortrait:
+ attribute = static_cast<Qt::WidgetAttribute>(128);
+ break;
+ case ScreenOrientationLockLandscape:
+ attribute = static_cast<Qt::WidgetAttribute>(129);
+ break;
+ default:
+ case ScreenOrientationAuto:
+ attribute = static_cast<Qt::WidgetAttribute>(130);
+ break;
+#else // QT_VERSION < 0x040702
+ case ScreenOrientationLockPortrait:
+ attribute = Qt::WA_LockPortraitOrientation;
+ break;
+ case ScreenOrientationLockLandscape:
+ attribute = Qt::WA_LockLandscapeOrientation;
+ break;
+ default:
+ case ScreenOrientationAuto:
+ attribute = Qt::WA_AutoOrientation;
+ break;
+#endif // QT_VERSION < 0x040702
+ };
+ setAttribute(attribute, true);
+}
+
+void QmlApplicationViewer::showExpanded()
+{
+#ifdef Q_OS_SYMBIAN
+ showFullScreen();
+#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
+ showMaximized();
+#else
+ show();
+#endif
+}
diff --git a/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.h b/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.h
new file mode 100644
index 0000000..0e4de04
--- /dev/null
+++ b/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.h
@@ -0,0 +1,39 @@
+// checksum 0x5a59 version 0x3000a
+/*
+ This file was generated by the Qt Quick Application wizard of Qt Creator.
+ QmlApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#ifndef QMLAPPLICATIONVIEWER_H
+#define QMLAPPLICATIONVIEWER_H
+
+#include <QtDeclarative/QDeclarativeView>
+
+class QmlApplicationViewer : public QDeclarativeView
+{
+ Q_OBJECT
+
+public:
+ enum ScreenOrientation {
+ ScreenOrientationLockPortrait,
+ ScreenOrientationLockLandscape,
+ ScreenOrientationAuto
+ };
+
+ explicit QmlApplicationViewer(QWidget *parent = 0);
+ virtual ~QmlApplicationViewer();
+
+ void setMainQmlFile(const QString &file);
+ void addImportPath(const QString &path);
+ void setOrientation(ScreenOrientation orientation);
+ void showExpanded();
+
+private:
+ class QmlApplicationViewerPrivate *m_d;
+};
+
+#endif // QMLAPPLICATIONVIEWER_H
diff --git a/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.pri b/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.pri
new file mode 100644
index 0000000..8d0e801
--- /dev/null
+++ b/examples/shadereffects/qmlapplicationviewer/qmlapplicationviewer.pri
@@ -0,0 +1,167 @@
+# checksum 0x8396 version 0x3000a
+# This file was generated by the Qt Quick Application wizard of Qt Creator.
+# The code below adds the QmlApplicationViewer to the project and handles the
+# activation of QML debugging.
+# It is recommended not to modify this file, since newer versions of Qt Creator
+# may offer an updated version of it.
+
+QT += declarative
+
+SOURCES += $$PWD/qmlapplicationviewer.cpp
+HEADERS += $$PWD/qmlapplicationviewer.h
+INCLUDEPATH += $$PWD
+
+defineTest(minQtVersion) {
+ maj = $$1
+ min = $$2
+ patch = $$3
+ isEqual(QT_MAJOR_VERSION, $$maj) {
+ isEqual(QT_MINOR_VERSION, $$min) {
+ isEqual(QT_PATCH_VERSION, $$patch) {
+ return(true)
+ }
+ greaterThan(QT_PATCH_VERSION, $$patch) {
+ return(true)
+ }
+ }
+ greaterThan(QT_MINOR_VERSION, $$min) {
+ return(true)
+ }
+ }
+ return(false)
+}
+
+contains(DEFINES, QMLJSDEBUGGER) {
+ CONFIG(debug, debug|release) {
+ !minQtVersion(4, 7, 1) {
+ warning()
+ warning("Disabling QML debugging:")
+ warning()
+ warning("Debugging QML requires the qmljsdebugger library that ships with Qt Creator.")
+ warning("This library requires Qt 4.7.1 or newer.")
+ warning()
+ DEFINES -= QMLJSDEBUGGER
+ } else:isEmpty(QMLJSDEBUGGER_PATH) {
+ warning()
+ warning("Disabling QML debugging:")
+ warning()
+ warning("Debugging QML requires the qmljsdebugger library that ships with Qt Creator.")
+ warning("Please specify its location on the qmake command line, eg")
+ warning(" qmake -r QMLJSDEBUGGER_PATH=$CREATORDIR/share/qtcreator/qmljsdebugger")
+ warning()
+ DEFINES -= QMLJSDEBUGGER
+ } else {
+ include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri)
+ }
+ } else {
+ DEFINES -= QMLJSDEBUGGER
+ }
+}
+# This file was generated by an application wizard of Qt Creator.
+# The code below handles deployment to Symbian and Maemo, aswell as copying
+# of the application data to shadow build directories on desktop.
+# It is recommended not to modify this file, since newer versions of Qt Creator
+# may offer an updated version of it.
+
+defineTest(qtcAddDeployment) {
+for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemsources = $${item}.sources
+ $$itemsources = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath= $$eval($${deploymentfolder}.target)
+ export($$itemsources)
+ export($$itempath)
+ DEPLOYMENT += $$item
+}
+
+MAINPROFILEPWD = $$PWD
+
+symbian {
+ isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg
+ isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+} else:win32 {
+ copyCommand =
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, /, \\)
+ sourcePathSegments = $$split(source, \\)
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
+ target = $$replace(target, /, \\)
+ !isEqual(source,$$target) {
+ !isEmpty(copyCommand):copyCommand += &&
+ copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
+ }
+ }
+ !isEmpty(copyCommand) {
+ copyCommand = @echo Copying application data... && $$copyCommand
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+} else:unix {
+ maemo5 {
+ installPrefix = /opt/usr
+ desktopfile.path = /usr/share/applications/hildon
+ } else {
+ installPrefix = /usr/local
+ desktopfile.path = /usr/share/applications
+ copyCommand =
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, \\, /)
+ macx {
+ target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
+ } else {
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+ }
+ target = $$replace(target, \\, /)
+ sourcePathSegments = $$split(source, /)
+ targetFullPath = $$target/$$last(sourcePathSegments)
+ !isEqual(source,$$targetFullPath) {
+ !isEmpty(copyCommand):copyCommand += &&
+ copyCommand += $(MKDIR) \"$$target\"
+ copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
+ }
+ }
+ !isEmpty(copyCommand) {
+ copyCommand = @echo Copying application data... && $$copyCommand
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+ }
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemfiles = $${item}.files
+ $$itemfiles = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath = $${installPrefix}/share/$${TARGET}/$$eval($${deploymentfolder}.target)
+ export($$itemfiles)
+ export($$itempath)
+ INSTALLS += $$item
+ }
+ icon.files = $${TARGET}.png
+ icon.path = /usr/share/icons/hicolor/64x64/apps
+ desktopfile.files = $${TARGET}.desktop
+ target.path = $${installPrefix}/bin
+ export(icon.files)
+ export(icon.path)
+ export(desktopfile.files)
+ export(desktopfile.path)
+ export(target.path)
+ INSTALLS += desktopfile icon target
+}
+
+export (ICON)
+export (INSTALLS)
+export (DEPLOYMENT)
+export (TARGET.EPOCHEAPSIZE)
+export (TARGET.CAPABILITY)
+export (LIBS)
+export (QMAKE_EXTRA_TARGETS)
+}
diff --git a/examples/shadereffects/shadereffects.desktop b/examples/shadereffects/shadereffects.desktop
new file mode 100644
index 0000000..e4de8ee
--- /dev/null
+++ b/examples/shadereffects/shadereffects.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=demo
+Exec=/usr/bin/demo
+Icon=/usr/share/icons/hicolor/64x64/apps/demo.png
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/examples/shadereffects/shadereffects.png b/examples/shadereffects/shadereffects.png
new file mode 100644
index 0000000..707d5c4
--- /dev/null
+++ b/examples/shadereffects/shadereffects.png
Binary files differ
diff --git a/examples/shadereffects/shadereffects.pro b/examples/shadereffects/shadereffects.pro
new file mode 100644
index 0000000..219310e
--- /dev/null
+++ b/examples/shadereffects/shadereffects.pro
@@ -0,0 +1,49 @@
+QT += declarative opengl
+
+# Add more folders to ship with the application, here
+folder_01.source = qml/shadereffects
+folder_01.target = qml
+DEPLOYMENTFOLDERS = folder_01
+
+# Additional import path used to resolve Qml modules in Creator's code model
+QML_IMPORT_PATH =
+
+# Avoid auto screen rotation
+DEFINES += ORIENTATIONLOCK
+
+# Needs to be defined for Symbian
+#DEFINES += NETWORKACCESS
+
+symbian:TARGET.UID3 = 0xE1E0F350
+
+# Define QMLJSDEBUGGER to enable basic debugging (setting breakpoints etc)
+# Define QMLOBSERVER for advanced features (requires experimental QmlInspector plugin!)
+#DEFINES += QMLJSDEBUGGER
+#DEFINES += QMLOBSERVER
+
+# The .cpp file which was generated for your project. Feel free to hack it.
+SOURCES += main.cpp
+
+unix:!macx {
+ SOURCES += qmlapplicationviewer/qmlapplicationviewer.cpp
+ HEADERS += qmlapplicationviewer/qmlapplicationviewer.h
+ INCLUDEPATH += qmlapplicationviewer
+ maemo5 {
+ desktop.path = /usr/share/applications/hildon
+ } else {
+ desktop.path = /usr/share/applications
+ }
+ desktop.files = $${TARGET}.desktop
+ icon.files = $${TARGET}.png
+ icon.path = /usr/share/icons/hicolor/64x64/apps
+ target.path = /usr/bin
+ resourcefiles.files = qml/$${TARGET}/*
+ resourcefiles.path = /usr/share/$${TARGET}/qml/$${TARGET}
+
+ INSTALLS += target desktop icon resourcefiles
+} else {
+# Please do not modify the following two lines. Required for deployment.
+include(qmlapplicationviewer/qmlapplicationviewer.pri)
+qtcAddDeployment()
+}
+
diff --git a/examples/shadereffects/shadereffects.svg b/examples/shadereffects/shadereffects.svg
new file mode 100644
index 0000000..566acfa
--- /dev/null
+++ b/examples/shadereffects/shadereffects.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ height="44px"
+ version="1.1"
+ viewBox="0 0 44 44"
+ width="44px"
+ x="0px"
+ y="0px"
+ id="svg2"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="qt.svg">
+ <metadata
+ id="metadata18">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs16">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 22 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="44 : 22 : 1"
+ inkscape:persp3d-origin="22 : 14.666667 : 1"
+ id="perspective2836" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1020"
+ id="namedview14"
+ showgrid="false"
+ inkscape:zoom="21.454545"
+ inkscape:cx="49.412871"
+ inkscape:cy="21.894358"
+ inkscape:window-x="-4"
+ inkscape:window-y="-4"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g3" />
+ <g
+ transform="matrix(0.18308778,0,0,0.18308778,6.6100946,3.2385199)"
+ id="g3">
+ <path
+ d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
+ style="fill:#006225"
+ id="path5"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
+ style="fill:#80c342"
+ id="path7" />
+ <path
+ d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
+ style="fill:#006225"
+ id="path11" />
+ <path
+ d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
+ style="fill:#006225"
+ id="path13" />
+ <path
+ id="path17"
+ style="fill:#ffffff"
+ d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z" />
+ <path
+ d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
+ style="fill:#006225"
+ id="path19" />
+ <path
+ id="path21"
+ style="fill:#006225"
+ d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z" />
+ </g>
+</svg>
diff --git a/qmlshadersplugin.pro b/qmlshadersplugin.pro
new file mode 100644
index 0000000..3330bde
--- /dev/null
+++ b/qmlshadersplugin.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS += src
diff --git a/src/glfunctions.h b/src/glfunctions.h
new file mode 100755
index 0000000..5c8d8a6
--- /dev/null
+++ b/src/glfunctions.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GLFUNCTIONS_H
+#define GLFUNCTIONS_H
+
+#ifndef QT_OPENGL_ES
+
+#ifndef Q_WS_MAC
+# ifndef QGLF_APIENTRYP
+# ifdef QGLF_APIENTRY
+# define QGLF_APIENTRYP QGLF_APIENTRY *
+# else
+# define QGLF_APIENTRY
+# define QGLF_APIENTRYP *
+# endif
+# endif
+#else
+# define QGLF_APIENTRY
+# define QGLF_APIENTRYP *
+#endif
+
+#define GL_TEXTURE0 0x84C0
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_BGRA 0x80E1
+
+typedef void (QGLF_APIENTRYP type_glActiveTexture)(GLenum texture);
+typedef void (QGLF_APIENTRYP type_glGenerateMipmap)(GLenum target);
+typedef void (QGLF_APIENTRYP type_glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
+
+#define glActiveTexture ((type_glActiveTexture)QGLContext::currentContext()->getProcAddress(QLatin1String("glActiveTexture")))
+#define glGenerateMipmap ((type_glGenerateMipmap)QGLContext::currentContext()->getProcAddress(QLatin1String("glGenerateMipmap")))
+#define glVertexAttribPointer ((type_glVertexAttribPointer)QGLContext::currentContext()->getProcAddress(QLatin1String("glVertexAttribPointer")))
+
+#endif
+
+#endif // GLFUNCTIONS_H
diff --git a/src/qmldir b/src/qmldir
new file mode 100644
index 0000000..b2a9de2
--- /dev/null
+++ b/src/qmldir
@@ -0,0 +1,2 @@
+plugin qmlshadersplugin
+
diff --git a/src/qmlshadersplugin_plugin.cpp b/src/qmlshadersplugin_plugin.cpp
new file mode 100644
index 0000000..c03ef2c
--- /dev/null
+++ b/src/qmlshadersplugin_plugin.cpp
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmlshadersplugin_plugin.h"
+#include "shadereffectitem.h"
+#include "shadereffectsource.h"
+
+#include <QtDeclarative/qdeclarative.h>
+
+void qmlshaderspluginPlugin::registerTypes(const char *uri)
+{
+ qmlRegisterType<ShaderEffectItem>(uri, 1, 0, "ShaderEffectItem");
+ qmlRegisterType<ShaderEffectSource>(uri, 1, 0, "ShaderEffectSource");
+}
+
+Q_EXPORT_PLUGIN2(qmlshadersplugin, qmlshaderspluginPlugin)
+
diff --git a/src/qmlshadersplugin_plugin.h b/src/qmlshadersplugin_plugin.h
new file mode 100644
index 0000000..2614a44
--- /dev/null
+++ b/src/qmlshadersplugin_plugin.h
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QMLSHADERSPLUGIN_PLUGIN_H
+#define QMLSHADERSPLUGIN_PLUGIN_H
+
+#include <QtDeclarative/QDeclarativeExtensionPlugin>
+
+class qmlshaderspluginPlugin : public QDeclarativeExtensionPlugin
+{
+ Q_OBJECT
+
+public:
+ void registerTypes(const char *uri);
+};
+
+#endif // QMLSHADERSPLUGIN_PLUGIN_H
+
diff --git a/src/scenegraph/qsggeometry.cpp b/src/scenegraph/qsggeometry.cpp
new file mode 100644
index 0000000..14ee4db
--- /dev/null
+++ b/src/scenegraph/qsggeometry.cpp
@@ -0,0 +1,310 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt scene graph research project.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qsggeometry.h"
+
+QT_BEGIN_NAMESPACE
+
+
+/*!
+ Convenience function which returns attributes to be used for 2D solid
+ color drawing.
+ */
+
+const QSGGeometry::AttributeSet &QSGGeometry::defaultAttributes_Point2D()
+{
+ static Attribute data[] = {
+ { 0, 2, GL_FLOAT }
+ };
+ static AttributeSet attrs = { 1, sizeof(float) * 2, data };
+ return attrs;
+}
+
+/*!
+ Convenience function which returns attributes to be used for textured 2D drawing.
+ */
+
+const QSGGeometry::AttributeSet &QSGGeometry::defaultAttributes_TexturedPoint2D()
+{
+ static Attribute data[] = {
+ { 0, 2, GL_FLOAT },
+ { 1, 2, GL_FLOAT }
+ };
+ static AttributeSet attrs = { 2, sizeof(float) * 4, data };
+ return attrs;
+}
+
+/*!
+ Convenience function which returns attributes to be used for per vertex colored 2D drawing.
+ */
+
+const QSGGeometry::AttributeSet &QSGGeometry::defaultAttributes_ColoredPoint2D()
+{
+ static Attribute data[] = {
+ { 0, 2, GL_FLOAT },
+ { 1, 4, GL_UNSIGNED_BYTE }
+ };
+ static AttributeSet attrs = { 2, 2 * sizeof(float) + 4 * sizeof(char), data };
+ return attrs;
+}
+
+
+/*!
+ \class QSGGeometry
+ \brief The QSGGeometry class provides low-level storage for graphics primitives
+ in the QML Scene Graph.
+
+ The QSGGeometry class provides a few convenience attributes and attribute accessors
+ by default. The defaultAttributes_Point2D() function returns attributes to be used
+ in normal solid color rectangles, while the defaultAttributes_TexturedPoint2D function
+ returns attributes to be used for the common pixmap usecase.
+ */
+
+
+/*!
+ Constructs a geometry object based on \a attributes.
+
+ The object allocate space for \a vertexCount vertices based on the accumulated
+ size in \a attributes and for \a indexCount.
+
+ Geometry objects are constructed with GL_TRIANGLE_STRIP as default drawing mode.
+
+ The attribute structure is assumed to be POD and the geometry object
+ assumes this will not go away. There is no memory management involved.
+ */
+
+QSGGeometry::QSGGeometry(const QSGGeometry::AttributeSet &attributes,
+ int vertexCount,
+ int indexCount,
+ int indexType)
+ : m_drawing_mode(GL_TRIANGLE_STRIP)
+ , m_vertex_count(0)
+ , m_index_count(0)
+ , m_index_type(indexType)
+ , m_attributes(attributes)
+ , m_data(0)
+ , m_index_data_offset(-1)
+ , m_owns_data(false)
+{
+ Q_ASSERT(m_attributes.count > 0);
+ Q_ASSERT(m_attributes.stride > 0);
+
+ // Because allocate reads m_vertex_count, m_index_count and m_owns_data, these
+ // need to be set before calling allocate...
+ allocate(vertexCount, indexCount);
+}
+
+QSGGeometry::~QSGGeometry()
+{
+ if (m_owns_data)
+ qFree(m_data);
+}
+
+/*!
+ \fn int QSGGeometry::vertexCount() const
+
+ Returns the number of vertices in this geometry object.
+ */
+
+/*!
+ \fn int QSGGeometry::indexCount() const
+
+ Returns the number of indices in this geometry object.
+ */
+
+
+
+/*!
+ \fn void *QSGGeometry::vertexData()
+
+ Returns a pointer to the raw vertex data of this geometry object.
+
+ \sa vertexDataAsPoint2D(), vertexDataAsTexturedPoint2D
+ */
+
+/*!
+ \fn const void *QSGGeometry::vertexData() const
+
+ Returns a pointer to the raw vertex data of this geometry object.
+
+ \sa vertexDataAsPoint2D(), vertexDataAsTexturedPoint2D
+ */
+
+/*!
+ Returns a pointer to the raw index data of this geometry object.
+
+ \sa indexDataAsUShort(), indexDataAsUInt()
+ */
+void *QSGGeometry::indexData()
+{
+ return m_index_data_offset < 0
+ ? 0
+ : ((char *) m_data + m_index_data_offset);
+}
+
+/*!
+ Returns a pointer to the raw index data of this geometry object.
+
+ \sa indexDataAsUShort(), indexDataAsUInt()
+ */
+const void *QSGGeometry::indexData() const
+{
+ return m_index_data_offset < 0
+ ? 0
+ : ((char *) m_data + m_index_data_offset);
+}
+
+/*!
+ Sets the drawing mode to be used for this geometry.
+
+ The default value is GL_TRIANGLE_STRIP.
+ */
+void QSGGeometry::setDrawingMode(GLenum mode)
+{
+ m_drawing_mode = mode;
+}
+
+/*!
+ \fn int QSGGeometry::drawingMode() const
+
+ Returns the drawing mode of this geometry.
+
+ The default value is GL_TRIANGLE_STRIP.
+ */
+
+/*!
+ \fn int QSGGeometry::indexType() const
+
+ Returns the primitive type used for indices in this
+ geometry object.
+ */
+
+
+/*!
+ Resizes the vertex and index data of this geometry object to fit \a vertexCount
+ vertices and \a indexCount indices.
+
+ Vertex and index data will be invalidated after this call and the caller must
+ */
+void QSGGeometry::allocate(int vertexCount, int indexCount)
+{
+ if (vertexCount == m_vertex_count && indexCount == m_index_count)
+ return;
+
+ m_vertex_count = vertexCount;
+ m_index_count = indexCount;
+
+ bool canUsePrealloc = m_index_count <= 0;
+ int vertexByteSize = m_attributes.stride * m_vertex_count;
+
+ if (m_owns_data)
+ qFree(m_data);
+
+ if (canUsePrealloc && vertexByteSize <= (int) sizeof(m_prealloc)) {
+ m_data = (void *) &m_prealloc[0];
+ m_index_data_offset = -1;
+ m_owns_data = false;
+ } else {
+ Q_ASSERT(m_index_type == GL_UNSIGNED_INT || m_index_type == GL_UNSIGNED_SHORT);
+ int indexByteSize = indexCount * (m_index_type == GL_UNSIGNED_SHORT ? sizeof(quint16) : sizeof(quint32));
+ m_data = (void *) qMalloc(vertexByteSize + indexByteSize);
+ m_index_data_offset = vertexByteSize;
+ m_owns_data = true;
+ }
+
+}
+
+/*!
+ Updates the geometry \a g with the coordinates in \a rect.
+
+ The function assumes the geometry object contains a single triangle strip
+ of QSGGeometry::Point2D vertices
+ */
+void QSGGeometry::updateRectGeometry(QSGGeometry *g, const QRectF &rect)
+{
+ Point2D *v = g->vertexDataAsPoint2D();
+ v[0].x = rect.left();
+ v[0].y = rect.top();
+
+ v[1].x = rect.right();
+ v[1].y = rect.top();
+
+ v[2].x = rect.left();
+ v[2].y = rect.bottom();
+
+ v[3].x = rect.right();
+ v[3].y = rect.bottom();
+}
+
+/*!
+ Updates the geometry \a g with the coordinates in \a rect and texture
+ coordinates from \a textureRect.
+
+ \a textureRect should be in normalized coordinates.
+
+ \a g is assumed to be a triangle strip of four vertices of type
+ QSGGeometry::TexturedPoint2D.
+ */
+void QSGGeometry::updateTexturedRectGeometry(QSGGeometry *g, const QRectF &rect, const QRectF &textureRect)
+{
+ TexturedPoint2D *v = g->vertexDataAsTexturedPoint2D();
+ v[0].x = rect.left();
+ v[0].y = rect.top();
+ v[0].tx = textureRect.left();
+ v[0].ty = textureRect.top();
+
+ v[1].x = rect.right();
+ v[1].y = rect.top();
+ v[1].tx = textureRect.right();
+ v[1].ty = textureRect.top();
+
+ v[2].x = rect.left();
+ v[2].y = rect.bottom();
+ v[2].tx = textureRect.left();
+ v[2].ty = textureRect.bottom();
+
+ v[3].x = rect.right();
+ v[3].y = rect.bottom();
+ v[3].tx = textureRect.right();
+ v[3].ty = textureRect.bottom();
+}
+
+QT_END_NAMESPACE
diff --git a/src/scenegraph/qsggeometry.h b/src/scenegraph/qsggeometry.h
new file mode 100644
index 0000000..0055392
--- /dev/null
+++ b/src/scenegraph/qsggeometry.h
@@ -0,0 +1,234 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt scene graph research project.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSGGEOMETRY_H
+#define QSGGEOMETRY_H
+
+#include <QtOpenGL/qgl.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QSGGeometry
+{
+public:
+ struct Attribute
+ {
+ int position;
+ int tupleSize;
+ int type;
+ };
+
+ struct AttributeSet {
+ int count;
+ int stride;
+ const Attribute *attributes;
+ };
+
+ struct Point2D { float x, y; };
+ struct TexturedPoint2D { float x, y; float tx, ty; };
+ struct ColoredPoint2D { float x, y; unsigned char r, g, b, a; };
+
+ static const AttributeSet &defaultAttributes_Point2D();
+ static const AttributeSet &defaultAttributes_TexturedPoint2D();
+ static const AttributeSet &defaultAttributes_ColoredPoint2D();
+
+ QSGGeometry(const QSGGeometry::AttributeSet &attribs,
+ int vertexCount,
+ int indexCount = 0,
+ int indexType = GL_UNSIGNED_SHORT);
+ ~QSGGeometry();
+
+ void setDrawingMode(GLenum mode);
+ inline GLenum drawingMode() const { return m_drawing_mode; }
+
+ void allocate(int vertexCount, int indexCount = 0);
+
+ int vertexCount() const { return m_vertex_count; }
+
+ void *vertexData() { return m_data; }
+ inline Point2D *vertexDataAsPoint2D();
+ inline TexturedPoint2D *vertexDataAsTexturedPoint2D();
+ inline ColoredPoint2D *vertexDataAsColoredPoint2D();
+
+ inline const void *vertexData() const { return m_data; }
+ inline const Point2D *vertexDataAsPoint2D() const;
+ inline const TexturedPoint2D *vertexDataAsTexturedPoint2D() const;
+ inline const ColoredPoint2D *vertexDataAsColoredPoint2D() const;
+
+ inline int indexType() const { return m_index_type; }
+
+ int indexCount() const { return m_index_count; }
+
+ void *indexData();
+ inline uint *indexDataAsUInt();
+ inline quint16 *indexDataAsUShort();
+
+ const void *indexData() const;
+ inline const uint *indexDataAsUInt() const;
+ inline const quint16 *indexDataAsUShort() const;
+
+ inline int attributeCount() const { return m_attributes.count; }
+ inline const Attribute *attributes() const { return m_attributes.attributes; }
+ inline int stride() const { return m_attributes.stride; }
+
+ static void updateRectGeometry(QSGGeometry *g, const QRectF &rect);
+ static void updateTexturedRectGeometry(QSGGeometry *g, const QRectF &rect, const QRectF &sourceRect);
+
+private:
+ int m_drawing_mode;
+ int m_vertex_count;
+ int m_index_count;
+ int m_index_type;
+ const AttributeSet &m_attributes;
+ void *m_data;
+ int m_index_data_offset;
+
+ void *m_reserved_pointer;
+
+ uint m_owns_data : 1;
+ uint m_reserved_bits : 31;
+
+ float m_prealloc[16];
+};
+
+inline uint *QSGGeometry::indexDataAsUInt()
+{
+ Q_ASSERT(m_index_type == GL_UNSIGNED_INT);
+ return (uint *) indexData();
+}
+
+inline quint16 *QSGGeometry::indexDataAsUShort()
+{
+ Q_ASSERT(m_index_type == GL_UNSIGNED_SHORT);
+ return (quint16 *) indexData();
+}
+
+inline const uint *QSGGeometry::indexDataAsUInt() const
+{
+ Q_ASSERT(m_index_type == GL_UNSIGNED_INT);
+ return (uint *) indexData();
+}
+
+inline const quint16 *QSGGeometry::indexDataAsUShort() const
+{
+ Q_ASSERT(m_index_type == GL_UNSIGNED_SHORT);
+ return (quint16 *) indexData();
+}
+
+inline QSGGeometry::Point2D *QSGGeometry::vertexDataAsPoint2D()
+{
+ Q_ASSERT(m_attributes.count == 1);
+ Q_ASSERT(m_attributes.stride == 2 * sizeof(float));
+ Q_ASSERT(m_attributes.attributes[0].tupleSize == 2);
+ Q_ASSERT(m_attributes.attributes[0].type == GL_FLOAT);
+ Q_ASSERT(m_attributes.attributes[0].position == 0);
+ return (Point2D *) m_data;
+}
+
+inline QSGGeometry::TexturedPoint2D *QSGGeometry::vertexDataAsTexturedPoint2D()
+{
+ Q_ASSERT(m_attributes.count == 2);
+ Q_ASSERT(m_attributes.stride == 4 * sizeof(float));
+ Q_ASSERT(m_attributes.attributes[0].position == 0);
+ Q_ASSERT(m_attributes.attributes[0].tupleSize == 2);
+ Q_ASSERT(m_attributes.attributes[0].type == GL_FLOAT);
+ Q_ASSERT(m_attributes.attributes[1].position == 1);
+ Q_ASSERT(m_attributes.attributes[1].tupleSize == 2);
+ Q_ASSERT(m_attributes.attributes[1].type == GL_FLOAT);
+ return (TexturedPoint2D *) m_data;
+}
+
+inline QSGGeometry::ColoredPoint2D *QSGGeometry::vertexDataAsColoredPoint2D()
+{
+ Q_ASSERT(m_attributes.count == 2);
+ Q_ASSERT(m_attributes.stride == 2 * sizeof(float) + 4 * sizeof(char));
+ Q_ASSERT(m_attributes.attributes[0].position == 0);
+ Q_ASSERT(m_attributes.attributes[0].tupleSize == 2);
+ Q_ASSERT(m_attributes.attributes[0].type == GL_FLOAT);
+ Q_ASSERT(m_attributes.attributes[1].position == 1);
+ Q_ASSERT(m_attributes.attributes[1].tupleSize == 4);
+ Q_ASSERT(m_attributes.attributes[1].type == GL_UNSIGNED_BYTE);
+ return (ColoredPoint2D *) m_data;
+}
+
+inline const QSGGeometry::Point2D *QSGGeometry::vertexDataAsPoint2D() const
+{
+ Q_ASSERT(m_attributes.count == 1);
+ Q_ASSERT(m_attributes.stride == 2 * sizeof(float));
+ Q_ASSERT(m_attributes.attributes[0].tupleSize == 2);
+ Q_ASSERT(m_attributes.attributes[0].type == GL_FLOAT);
+ Q_ASSERT(m_attributes.attributes[0].position == 0);
+ return (const Point2D *) m_data;
+}
+
+inline const QSGGeometry::TexturedPoint2D *QSGGeometry::vertexDataAsTexturedPoint2D() const
+{
+ Q_ASSERT(m_attributes.count == 2);
+ Q_ASSERT(m_attributes.stride == 4 * sizeof(float));
+ Q_ASSERT(m_attributes.attributes[0].position == 0);
+ Q_ASSERT(m_attributes.attributes[0].tupleSize == 2);
+ Q_ASSERT(m_attributes.attributes[0].type == GL_FLOAT);
+ Q_ASSERT(m_attributes.attributes[1].position == 1);
+ Q_ASSERT(m_attributes.attributes[1].tupleSize == 2);
+ Q_ASSERT(m_attributes.attributes[1].type == GL_FLOAT);
+ return (const TexturedPoint2D *) m_data;
+}
+
+inline const QSGGeometry::ColoredPoint2D *QSGGeometry::vertexDataAsColoredPoint2D() const
+{
+ Q_ASSERT(m_attributes.count == 2);
+ Q_ASSERT(m_attributes.stride == 2 * sizeof(float) + 4 * sizeof(char));
+ Q_ASSERT(m_attributes.attributes[0].position == 0);
+ Q_ASSERT(m_attributes.attributes[0].tupleSize == 2);
+ Q_ASSERT(m_attributes.attributes[0].type == GL_FLOAT);
+ Q_ASSERT(m_attributes.attributes[1].position == 1);
+ Q_ASSERT(m_attributes.attributes[1].tupleSize == 4);
+ Q_ASSERT(m_attributes.attributes[1].type == GL_UNSIGNED_BYTE);
+ return (const ColoredPoint2D *) m_data;
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QSGGEOMETRY_H
diff --git a/src/shadereffect.cpp b/src/shadereffect.cpp
new file mode 100644
index 0000000..a76c1c6
--- /dev/null
+++ b/src/shadereffect.cpp
@@ -0,0 +1,192 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "shadereffect.h"
+#include "shadereffectbuffer.h"
+#include "shadereffectsource.h"
+
+#include <QDeclarativeItem>
+#include <QPainter>
+#include <QtOpenGL>
+
+static QTransform savedWorldTransform;
+
+ShaderEffect::ShaderEffect(QObject *parent)
+ : QGraphicsEffect(parent)
+ , m_changed(true)
+{
+}
+
+ShaderEffect::~ShaderEffect()
+{
+}
+
+void ShaderEffect::prepareBufferedDraw(QPainter *painter)
+{
+ // This workaround needed because QGraphicsEffect seems to always utilize default painters worldtransform
+ // instead of the active painters worldtransform.
+ const ShaderEffectBuffer *effectBuffer = dynamic_cast<ShaderEffectBuffer*> (painter->device());
+ if (effectBuffer) {
+ savedWorldTransform = painter->worldTransform() * savedWorldTransform;
+ painter->setWorldTransform(savedWorldTransform);
+ } else {
+ savedWorldTransform = painter->worldTransform();
+ }
+}
+
+void ShaderEffect::draw (QPainter *painter)
+{
+ const QGLContext *context = QGLContext::currentContext();
+
+ prepareBufferedDraw(painter);
+
+ if (context) {
+ updateRenderTargets();
+ }
+
+ if (!context || m_renderTargets.count() == 0 || !hideOriginal())
+ drawSource(painter);
+}
+
+void ShaderEffect::updateRenderTargets()
+{
+ if (!m_changed)
+ return;
+
+ m_changed = false;
+
+ int count = m_renderTargets.count();
+ for (int i = 0; i < count; i++) {
+ if (m_renderTargets[i]->isLive() || m_renderTargets[i]->isDirtyTexture()) {
+ m_renderTargets[i]->updateBackbuffer();
+ ShaderEffectBuffer* target = m_renderTargets[i]->fbo();
+ if (target && target->isValid() && target->width() > 0 && target->height() > 0) {
+ QPainter p(target);
+ p.setCompositionMode(QPainter::CompositionMode_Clear);
+ p.fillRect(QRect(QPoint(0, 0), target->size()), Qt::transparent);
+ p.setCompositionMode(QPainter::CompositionMode_SourceOver);
+
+ QRectF sourceRect = m_renderTargets[i]->sourceRect();
+ QSize textureSize = m_renderTargets[i]->textureSize();
+
+ qreal yflip = m_renderTargets[i]->isMirrored() ? -1.0 : 1.0; // flip y to match scenegraph, it also flips texturecoordinates
+ qreal xscale = 1.0;
+ qreal yscale = 1.0 * yflip;
+
+ qreal leftMargin = 0.0;
+ qreal rightMargin = 0.0;
+ qreal topMargin = 0.0;
+ qreal bottomMargin = 0.0;
+
+ qreal width = m_renderTargets[i]->sourceItem()->width();
+ qreal height = m_renderTargets[i]->sourceItem()->height();
+
+ if (!sourceRect.isEmpty()) {
+ leftMargin = -sourceRect.left();
+ rightMargin = sourceRect.right() - width;
+ topMargin = -sourceRect.top();
+ bottomMargin = sourceRect.bottom() - height;
+ }
+
+ if ((width + leftMargin + rightMargin) > 0 && (height + topMargin + bottomMargin) > 0) {
+ if (!textureSize.isEmpty()) {
+ qreal textureWidth = textureSize.width();
+ qreal textureHeight = textureSize.height();
+
+ xscale = width / (width + leftMargin + rightMargin);
+ yscale = height / (height + topMargin + bottomMargin);
+
+ p.translate(textureWidth / 2, textureHeight / 2);
+ p.scale(xscale, yscale * yflip);
+ p.translate(-textureWidth / 2, -textureHeight / 2);
+ p.scale(textureWidth / width, textureHeight / height);
+ } else {
+ xscale = width / (width + leftMargin + rightMargin);
+ yscale = height / (height + topMargin + bottomMargin);
+
+ p.translate(width / 2, height / 2);
+ p.scale(xscale, yscale * yflip);
+ p.translate(-width / 2, -height / 2);
+ }
+ }
+
+ drawSource(&p);
+ p.end();
+ m_renderTargets[i]->markSceneGraphDirty();
+ }
+ }
+ }
+}
+
+void ShaderEffect::sourceChanged (ChangeFlags flags)
+{
+ Q_UNUSED(flags);
+ m_changed = true;
+}
+
+void ShaderEffect::addRenderTarget(ShaderEffectSource *target)
+{
+ if (!m_renderTargets.contains(target))
+ m_renderTargets.append(target);
+}
+
+void ShaderEffect::removeRenderTarget(ShaderEffectSource *target)
+{
+ int index = m_renderTargets.indexOf(target);
+ if (index >= 0)
+ m_renderTargets.remove(index);
+ else
+ qWarning() << "ShaderEffect::removeRenderTarget - did not find target.";
+}
+
+bool ShaderEffect::hideOriginal() const
+{
+ if (m_renderTargets.count() == 0)
+ return false;
+
+ // Just like scenegraph version, if there is even one source that says "hide original" we hide it.
+ int count = m_renderTargets.count();
+ for (int i = 0; i < count; i++) {
+ if (m_renderTargets[i]->hideSource())
+ return true;
+ }
+ return false;
+}
diff --git a/src/shadereffect.h b/src/shadereffect.h
new file mode 100644
index 0000000..35a697b
--- /dev/null
+++ b/src/shadereffect.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SHADEREFFECT_H
+#define SHADEREFFECT_H
+
+#include <QGraphicsEffect>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class ShaderEffectSource;
+
+class ShaderEffect : public QGraphicsEffect
+{
+ Q_OBJECT
+
+public:
+ ShaderEffect(QObject *parent = 0);
+ ~ShaderEffect();
+ void addRenderTarget(ShaderEffectSource *target);
+ void removeRenderTarget(ShaderEffectSource *target);
+
+protected:
+ virtual void draw (QPainter *painter);
+ virtual void sourceChanged (ChangeFlags flags);
+
+private:
+ void prepareBufferedDraw(QPainter *painter);
+ void updateRenderTargets();
+ bool hideOriginal() const;
+
+public:
+ QVector<ShaderEffectSource*> m_renderTargets;
+ bool m_changed : 1;
+};
+
+QT_END_HEADER
+
+QT_END_NAMESPACE
+
+#endif // SHADEREFFECT_H
diff --git a/src/shadereffectbuffer.cpp b/src/shadereffectbuffer.cpp
new file mode 100644
index 0000000..4c76ada
--- /dev/null
+++ b/src/shadereffectbuffer.cpp
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "shadereffectbuffer.h"
+
+ShaderEffectBuffer::ShaderEffectBuffer(const QSize & size, const QGLFramebufferObjectFormat & format)
+ : QGLFramebufferObject(size, format)
+{
+}
+
+ShaderEffectBuffer::~ShaderEffectBuffer()
+{
+}
+
diff --git a/src/shadereffectbuffer.h b/src/shadereffectbuffer.h
new file mode 100644
index 0000000..dcab6ec
--- /dev/null
+++ b/src/shadereffectbuffer.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SHADEREFFECTBUFFER_H
+#define SHADEREFFECTBUFFER_H
+
+#include <QtOpenGL>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class ShaderEffectBuffer : public QGLFramebufferObject
+{
+public:
+ ShaderEffectBuffer(const QSize &size, const QGLFramebufferObjectFormat &format);
+ ~ShaderEffectBuffer();
+};
+
+QT_END_HEADER
+
+QT_END_NAMESPACE
+
+#endif // SHADEREFFECTBUFFER_H
diff --git a/src/shadereffectitem.cpp b/src/shadereffectitem.cpp
new file mode 100644
index 0000000..64b59bd
--- /dev/null
+++ b/src/shadereffectitem.cpp
@@ -0,0 +1,893 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "shadereffectitem.h"
+#include "shadereffect.h"
+#include "glfunctions.h"
+
+#include <QPainter>
+#include <QtOpenGL>
+
+static const char qt_default_vertex_code[] =
+ "uniform highp mat4 qt_ModelViewProjectionMatrix;\n"
+ "attribute highp vec4 qt_Vertex;\n"
+ "attribute highp vec2 qt_MultiTexCoord0;\n"
+ "varying highp vec2 qt_TexCoord0;\n"
+ "void main(void)\n"
+ "{\n"
+ "qt_TexCoord0 = qt_MultiTexCoord0;\n"
+ "gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;\n"
+ "}\n";
+
+static const char qt_default_fragment_code[] =
+ "varying highp vec2 qt_TexCoord0;\n"
+ "uniform lowp sampler2D source;\n"
+ "void main(void)\n"
+ "{\n"
+ "gl_FragColor = texture2D(source, qt_TexCoord0.st);\n"
+ "}\n";
+
+static const char qt_postion_attribute_name[] = "qt_Vertex";
+static const char qt_texcoord_attribute_name[] = "qt_MultiTexCoord0";
+static const char qt_emptyAttributeName[] = "";
+
+
+/*!
+ \qmlclass ShaderEffectItem ShaderEffectItem
+ \ingroup qmlshadersplugin
+ \brief The ShaderEffectItem object alters the output of given item with OpenGL shaders.
+ \inherits Item
+
+ ShaderEffectItem is available in the \bold{Qt.labs.shaders 1.0} module.
+ \e {Elements in the Qt.labs module are not guaranteed to remain compatible
+ in future versions.}
+
+ This element provides preliminary support for embedding OpenGL shader code into QML,
+ and may be heavily changed or removed in later versions.
+
+ Requirement for the use of shaders is that the application is either using
+ Qt OpenGL graphicssystem or is forced to use OpenGL by setting QGLWidget as the viewport to QDeclarativeView (recommened way).
+
+ ShaderEffectItem internal behaviour is such that during the paint event it first renders its
+ ShaderEffectSource items into a OpenGL framebuffer object which can be used as a texture. If the ShaderEffectSource is defined to be an image,
+ it is directly uploaded as a texture. The texture(s) containing the source pixelcontent are then bound to graphics
+ pipeline texture units. Finally a textured mesh is passed to the vertex- and fragmentshaders which
+ then produce the final output for the ShaderEffectItem. It is possible to alter the mesh structure by defining
+ the amount vertices it contains, but currently it is not possible to import complex 3D-models to be used as the mesh.
+
+ It is possible to define one or more ShaderEffectItems to be a ShaderEffectSource for other ShaderEffectItems, but ShaderEffectItem
+ should never be declared as a child element of its source item(s) because it would cause circular loop in the painting.
+
+ A standard set of vertex attributes are provided for the shaders:
+
+ \list
+ \o qt_Vertex - The primary position of the vertex.
+ \o qt_MultiTexCoord0 - The texture co-ordinate at each vertex for texture unit 0.
+ \endlist
+
+ Additionally following uniforms are available for shaders:
+
+ \list
+ \o qt_Opacity - Effective opacity of the item.
+ \o qt_ModelViewProjectionMatrix - current 4x4 transformation matrix of the item.
+ \endlist
+
+ Furthermore, it is possible to utilize automatic QML propertybinding into vertex- and fragment shader
+ uniforms. Conversions are done according to the table below:
+
+ \table
+ \header
+ \o QML property
+ \o GLSL uniform
+ \row
+ \o property double foo: 1.0
+ \o uniform highp float foo
+ \row
+ \o property real foo: 1.0
+ \o uniform highp float foo
+ \row
+ \o property bool foo: true
+ \o uniform bool foo
+ \row
+ \o property int foo: 1
+ \o uniform int foo
+ \row
+ \o property variant foo: Qt.point(1,1)
+ \o uniform highp vec2 foo
+ \row
+ \o property variant foo: Qt.size(1, 1)
+ \o uniform highp vec2 foo
+ \row
+ \o property variant foo: Qt.rect(1, 1, 2, 2)
+ \o uniform highp vec4 foo
+ \row
+ \o property color foo: "#00000000"
+ \o uniform lowp vec4 foo
+ \row
+ \o property variant foo: Qt.vector3d(1.0, 2.0, 0.0)
+ \o uniform highp vec3 foo
+ \row
+ \o property variant foo: ShaderEffectSource { SourceItem: bar }
+ \o uniform lowp sampler2D foo
+ \endtable
+ \note
+ The uniform precision definitions in the above table are not strict, it is possible to choose the uniform
+ precision based on what is the most suitable for the shader code for that particular uniform.
+
+
+ The below example uses fragment shader to create simple wiggly effect to a text label.
+ Automatic property binding takes care of binding the properties to the uniforms if their
+ names are identical. ShaderEffectSource referring to textLabel is bound to sampler2D uniform inside the fragment
+ shader code.
+
+ \qml
+import QtQuick 1.0
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ width: 300
+ height: 300
+ color: "black"
+
+ Text {
+ id: textLabel
+ text: "Hello World"
+ anchors.centerIn: parent
+ font.pixelSize: 32
+ color: "white"
+
+ }
+
+ ShaderEffectItem {
+ property variant source: ShaderEffectSource { sourceItem: textLabel; hideSource: true }
+ property real wiggleAmount: 0.005
+ anchors.fill: textLabel
+
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform highp float wiggleAmount;
+ void main(void)
+ {
+ highp vec2 wiggledTexCoord = qt_TexCoord0;
+ wiggledTexCoord.s += sin(4.0 * 3.141592653589 * wiggledTexCoord.t) * wiggleAmount;
+ gl_FragColor = texture2D(source, wiggledTexCoord.st);
+ }
+ "
+ }
+}
+ \endqml
+ \image Example1.png
+
+*/
+
+ShaderEffectItem::ShaderEffectItem(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
+ , m_meshResolution(1, 1)
+ , m_geometry(QSGGeometry::defaultAttributes_TexturedPoint2D(), 4)
+ , m_blending(true)
+ , m_program_dirty(true)
+ , m_active(true)
+ , m_respectsMatrix(false)
+ , m_respectsOpacity(false)
+ , m_checkedViewportUpdateMode(false)
+ , m_checkedOpenGL(false)
+ , m_mirrored(false)
+{
+ setFlag(QGraphicsItem::ItemHasNoContents, false);
+ connect(this, SIGNAL(visibleChanged()), this, SLOT(handleVisibilityChange()));
+ m_active = isVisible();
+}
+
+ShaderEffectItem::~ShaderEffectItem()
+{
+}
+
+
+/*!
+ \qmlproperty string ShaderEffectItem::fragmentShader
+ This property holds the OpenGL fragment shader code.
+
+ The default fragment shader is following:
+
+ \code
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ void main(void)
+ {
+ gl_FragColor = texture2D(source, qt_TexCoord0.st);
+ }
+ \endcode
+
+*/
+
+/*!
+ \property ShaderEffectItem::fragmentShader
+ \brief the OpenGL fragment shader code.
+*/
+
+void ShaderEffectItem::setFragmentShader(const QString &code)
+{
+ if (m_fragment_code.constData() == code.constData())
+ return;
+
+ m_fragment_code = code;
+ if (isComponentComplete()) {
+ reset();
+ updateProperties();
+ }
+ emit fragmentShaderChanged();
+}
+
+/*!
+ \qmlproperty string ShaderEffectItem::vertexShader
+ This property holds the OpenGL vertex shader code.
+
+ The default vertex shader is following:
+
+ \code
+ uniform highp mat4 qt_ModelViewProjectionMatrix;
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ varying highp vec2 qt_TexCoord0;
+ void main(void)
+ {
+ qt_TexCoord0 = qt_MultiTexCoord0;
+ gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;
+ }
+ \endcode
+
+*/
+
+/*!
+ \property ShaderEffectItem::vertexShader
+ \brief the OpenGL vertex shader code.
+*/
+
+void ShaderEffectItem::setVertexShader(const QString &code)
+{
+ if (m_vertex_code.constData() == code.constData())
+ return;
+
+ m_vertex_code = code;
+ if (isComponentComplete()) {
+ reset();
+ updateProperties();
+ }
+ emit vertexShaderChanged();
+}
+
+/*!
+ \qmlproperty bool ShaderEffectItem::blending
+ This property defines wheter item is drawn using blending.
+
+ If true, the RGBA pixel output from the fragment shader is blended with
+ the pixel RGBA-values already in the framebuffer.
+
+ If false, fragment shader output is written to framebuffer as such.
+
+ Usually drawing without blending is slightly faster, thus disabling blending
+ might be a good choice when item is used as a background element.
+
+ \note
+ By default the pixel data in textures is stored in 32-bit premultiplied alpha format.
+ This should be taken into account when blending or reading the pixel values
+ in the fragment shader code.
+
+ The default value is true.
+*/
+
+/*!
+ \property ShaderEffectItem::blending
+ \brief the drawing is done using blending.
+*/
+
+void ShaderEffectItem::setBlending(bool enable)
+{
+ if (m_blending == enable)
+ return;
+
+ m_blending = enable;
+ m_changed = true;
+ emit blendingChanged();
+}
+
+
+/*!
+ \qmlproperty QSize ShaderEffectItem::meshResolution
+ This property defines to how many triangles the item is divided into before its
+ vertices are passed to the vertex shader.
+
+ Triangles are defined as triangle strips and the amount of triangles can be controlled
+ separately for x and y-axis.
+
+ The default value is QSize(1,1).
+*/
+
+/*!
+ \property ShaderEffectItem::meshResolution
+ \brief the amount of triangles in the mesh for both x and y-axis.
+*/
+
+void ShaderEffectItem::setMeshResolution(const QSize &size)
+{
+ if (size == m_meshResolution)
+ return;
+
+ m_meshResolution = size;
+ emit meshResolutionChanged();
+ updateGeometry();
+}
+
+void ShaderEffectItem::componentComplete()
+{
+ updateProperties();
+ QDeclarativeItem::componentComplete();
+}
+
+void ShaderEffectItem::checkViewportUpdateMode()
+{
+ if (!m_checkedViewportUpdateMode) {
+ QGraphicsScene *s = scene();
+ if (s){
+ QList<QGraphicsView*> views = s->views();
+ for (int i = 0; i < views.count(); i++) {
+ if (views[i]->viewportUpdateMode() != QGraphicsView::FullViewportUpdate) {
+ qWarning() << "ShaderEffectItem::checkViewportUpdateMode - consider setting QGraphicsView::FullViewportUpdate mode with OpenGL!";
+ }
+ }
+ }
+ m_checkedViewportUpdateMode = true;
+ }
+}
+
+void ShaderEffectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
+{
+ if (!m_active) return;
+
+ const QGLContext *context = QGLContext::currentContext();
+
+ if (context) {
+ checkViewportUpdateMode();
+ painter->save();
+ painter->beginNativePainting();
+ QMatrix4x4 combinedMatrix = QMatrix4x4(painter->transform());
+ renderEffect(painter, combinedMatrix);
+ painter->endNativePainting();
+ painter->restore();
+ } else {
+ if (!m_checkedOpenGL) {
+ qWarning() << "ShaderEffectItem::paint - OpenGL not available";
+ m_checkedOpenGL = true;
+ }
+ }
+}
+
+void ShaderEffectItem::renderEffect(QPainter *painter, const QMatrix4x4 &matrix)
+{
+ if (!painter || !painter->device())
+ return;
+
+ if (!m_program.isLinked() || m_program_dirty)
+ updateShaderProgram();
+
+ m_program.bind();
+
+ QMatrix4x4 combinedMatrix;
+ combinedMatrix.scale(2.0 / painter->device()->width(), -2.0 / painter->device()->height(), 1.0);
+ combinedMatrix.translate(-painter->device()->width() / 2.0, -painter->device()->height() / 2.0 );
+ combinedMatrix *= matrix;
+ updateEffectState(combinedMatrix);
+
+ for (int i = 0; i < m_attributeNames.size(); ++i) {
+ m_program.enableAttributeArray(m_geometry.attributes()[i].position);
+ }
+
+ bindGeometry();
+
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_GREATER);
+ glDepthMask(true);
+#if defined(QT_OPENGL_ES)
+ glClearDepthf(0);
+#else
+ glClearDepth(0);
+#endif
+ glClearColor(0, 0, 0, 0);
+ glClear(GL_DEPTH_BUFFER_BIT);
+
+ if (m_blending){
+ glEnable(GL_BLEND);
+ glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+ } else {
+ glDisable(GL_BLEND);
+ }
+
+ if (m_geometry.indexCount())
+ glDrawElements(m_geometry.drawingMode(), m_geometry.indexCount(), m_geometry.indexType(), m_geometry.indexData());
+ else
+ glDrawArrays(m_geometry.drawingMode(), 0, m_geometry.vertexCount());
+
+ glDepthMask(false);
+ glDisable(GL_DEPTH_TEST);
+
+ for (int i = 0; i < m_attributeNames.size(); ++i)
+ m_program.disableAttributeArray(m_geometry.attributes()[i].position);
+}
+
+void ShaderEffectItem::updateEffectState(const QMatrix4x4 &matrix)
+{
+ for (int i = m_sources.size() - 1; i >= 0; --i) {
+ const ShaderEffectItem::SourceData &source = m_sources.at(i);
+ if (!source.source)
+ continue;
+
+ glActiveTexture(GL_TEXTURE0 + i);
+ source.source->bind();
+ }
+
+ if (m_respectsOpacity)
+ m_program.setUniformValue("qt_Opacity", static_cast<float> (effectiveOpacity()));
+
+ if (m_respectsMatrix){
+ m_program.setUniformValue("qt_ModelViewProjectionMatrix", matrix);
+ }
+
+ QSet<QByteArray>::const_iterator it;
+ for (it = m_uniformNames.begin(); it != m_uniformNames.end(); ++it) {
+ const QByteArray &name = *it;
+ QVariant v = property(name.constData());
+
+ switch (v.type()) {
+ case QVariant::Color:
+ m_program.setUniformValue(name.constData(), qvariant_cast<QColor>(v));
+ break;
+ case QVariant::Double:
+ m_program.setUniformValue(name.constData(), (float) qvariant_cast<double>(v));
+ break;
+ case QVariant::Transform:
+ m_program.setUniformValue(name.constData(), qvariant_cast<QTransform>(v));
+ break;
+ case QVariant::Int:
+ m_program.setUniformValue(name.constData(), v.toInt());
+ break;
+ case QVariant::Bool:
+ m_program.setUniformValue(name.constData(), GLint(v.toBool()));
+ break;
+ case QVariant::Size:
+ case QVariant::SizeF:
+ m_program.setUniformValue(name.constData(), v.toSizeF());
+ break;
+ case QVariant::Point:
+ case QVariant::PointF:
+ m_program.setUniformValue(name.constData(), v.toPointF());
+ break;
+ case QVariant::Rect:
+ case QVariant::RectF:
+ {
+ QRectF r = v.toRectF();
+ m_program.setUniformValue(name.constData(), r.x(), r.y(), r.width(), r.height());
+ }
+ break;
+ case QVariant::Vector3D:
+ m_program.setUniformValue(name.constData(), qvariant_cast<QVector3D>(v));
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+static inline int size_of_type(GLenum type)
+{
+ static int sizes[] = {
+ sizeof(char),
+ sizeof(unsigned char),
+ sizeof(short),
+ sizeof(unsigned short),
+ sizeof(int),
+ sizeof(unsigned int),
+ sizeof(float),
+ 2,
+ 3,
+ 4,
+ sizeof(double)
+ };
+ return sizes[type - GL_BYTE];
+}
+
+void ShaderEffectItem::bindGeometry()
+{
+ char const *const *attrNames = m_attributeNames.constData();
+ int offset = 0;
+ for (int j = 0; j < m_attributeNames.size(); ++j) {
+ if (!*attrNames[j])
+ continue;
+ Q_ASSERT_X(j < m_geometry.attributeCount(), "ShaderEffectItem::bindGeometry()", "Geometry lacks attribute required by material");
+ const QSGGeometry::Attribute &a = m_geometry.attributes()[j];
+ Q_ASSERT_X(j == a.position, "ShaderEffectItem::bindGeometry()", "Geometry does not have continous attribute positions");
+#if defined(QT_OPENGL_ES_2)
+ GLboolean normalize = a.type != GL_FLOAT;
+#else
+ GLboolean normalize = a.type != GL_FLOAT && a.type != GL_DOUBLE;
+#endif
+ if (normalize)
+ qWarning() << "ShaderEffectItem::bindGeometry() - non supported attribute type!";
+
+ m_program.setAttributeArray(a.position, (GLfloat*) (((char*) m_geometry.vertexData()) + offset), a.tupleSize, m_geometry.stride());
+ //glVertexAttribPointer(a.position, a.tupleSize, a.type, normalize, m_geometry.stride(), (char *) m_geometry.vertexData() + offset);
+ offset += a.tupleSize * size_of_type(a.type);
+ }
+}
+
+void ShaderEffectItem::updateGeometry()
+{
+ QRectF srcRect(0, 1, 1, -1);
+
+ if (m_mirrored)
+ srcRect = QRectF(0, 0, 1, 1);
+
+ QRectF dstRect = QRectF(0,0, width(), height());
+
+ int vmesh = m_meshResolution.height();
+ int hmesh = m_meshResolution.width();
+
+ QSGGeometry *g = &m_geometry;
+ if (vmesh == 1 && hmesh == 1) {
+ if (g->vertexCount() != 4)
+ g->allocate(4);
+ QSGGeometry::updateTexturedRectGeometry(g, dstRect, srcRect);
+ return;
+ }
+
+ g->allocate((vmesh + 1) * (hmesh + 1), vmesh * 2 * (hmesh + 2));
+
+ QSGGeometry::TexturedPoint2D *vdata = g->vertexDataAsTexturedPoint2D();
+
+ for (int iy = 0; iy <= vmesh; ++iy) {
+ float fy = iy / float(vmesh);
+ float y = float(dstRect.top()) + fy * float(dstRect.height());
+ float ty = float(srcRect.top()) + fy * float(srcRect.height());
+ for (int ix = 0; ix <= hmesh; ++ix) {
+ float fx = ix / float(hmesh);
+ vdata->x = float(dstRect.left()) + fx * float(dstRect.width());
+ vdata->y = y;
+ vdata->tx = float(srcRect.left()) + fx * float(srcRect.width());
+ vdata->ty = ty;
+ ++vdata;
+ }
+ }
+
+ quint16 *indices = (quint16 *)g->indexDataAsUShort();
+ int i = 0;
+ for (int iy = 0; iy < vmesh; ++iy) {
+ *(indices++) = i + hmesh + 1;
+ for (int ix = 0; ix <= hmesh; ++ix, ++i) {
+ *(indices++) = i + hmesh + 1;
+ *(indices++) = i;
+ }
+ *(indices++) = i - 1;
+ }
+}
+
+void ShaderEffectItem::setActive(bool enable)
+{
+ if (m_active == enable)
+ return;
+
+ if (m_active) {
+ for (int i = 0; i < m_sources.size(); ++i) {
+ ShaderEffectSource *source = m_sources.at(i).source;
+ if (!source)
+ continue;
+ disconnect(source, SIGNAL(repaintRequired()), this, SLOT(markDirty()));
+ source->derefFromEffectItem();
+ }
+ }
+
+ m_active = enable;
+
+ if (m_active) {
+ for (int i = 0; i < m_sources.size(); ++i) {
+ ShaderEffectSource *source = m_sources.at(i).source;
+ if (!source)
+ continue;
+ source->refFromEffectItem();
+ connect(source, SIGNAL(repaintRequired()), this, SLOT(markDirty()));
+ }
+ }
+
+ emit activeChanged();
+ markDirty();
+}
+
+void ShaderEffectItem::preprocess()
+{
+ for (int i = 0; i < m_sources.size(); ++i) {
+ ShaderEffectSource *source = m_sources.at(i).source;
+ if (source)
+ source->updateBackbuffer();
+ }
+}
+
+void ShaderEffectItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
+{
+ if (newGeometry.size() != oldGeometry.size())
+ updateGeometry();
+ QDeclarativeItem::geometryChanged(newGeometry, oldGeometry);
+}
+
+void ShaderEffectItem::changeSource(int index)
+{
+ Q_ASSERT(index >= 0 && index < m_sources.size());
+ QVariant v = property(m_sources.at(index).name.constData());
+ setSource(v, index);
+}
+
+void ShaderEffectItem::markDirty() {
+ update();
+}
+
+void ShaderEffectItem::setSource(const QVariant &var, int index)
+{
+ Q_ASSERT(index >= 0 && index < m_sources.size());
+
+ SourceData &source = m_sources[index];
+
+ source.source = 0;
+ source.item = 0;
+ if (var.isNull()) {
+ return;
+ } else if (!qVariantCanConvert<QObject *>(var)) {
+ qWarning("Could not assign source of type '%s' to property '%s'.", var.typeName(), source.name.constData());
+ return;
+ }
+
+ QObject *obj = qVariantValue<QObject *>(var);
+
+ source.source = qobject_cast<ShaderEffectSource *>(obj);
+ source.item = qobject_cast<QDeclarativeItem *>(obj);
+
+ if (!source.item)
+ qWarning("Could not assign property '%s', did not implement QDeclarativeItem.", source.name.constData());
+
+ if (!source.source)
+ qWarning("Could not assign property '%s', did not implement ShaderEffectSource.", source.name.constData());
+
+ // TODO: Find better solution.
+ // 'source.item' needs a canvas to get a scenegraph node.
+ // The easiest way to make sure it gets a canvas is to
+ // make it a part of the same item tree as 'this'.
+ if (source.item && source.item->parentItem() == 0) {
+ source.item->setParentItem(this);
+ // Unlike in scenegraph, we cannot set item invisible here because qgraphicsview would optimize it away.
+ }
+
+ // Unlike in scenegraph, ref counting is used to optimize memory consumption. Sources themself may free fbos when not referenced.
+ if (m_active && source.source) {
+ source.source->refFromEffectItem();
+ connect(source.source, SIGNAL(repaintRequired()), this, SLOT(markDirty()));
+ }
+}
+
+void ShaderEffectItem::disconnectPropertySignals()
+{
+ disconnect(this, 0, this, SLOT(markDirty()));
+ for (int i = 0; i < m_sources.size(); ++i) {
+ SourceData &source = m_sources[i];
+ disconnect(this, 0, source.mapper, 0);
+ disconnect(source.mapper, 0, this, 0);
+ }
+}
+
+void ShaderEffectItem::connectPropertySignals()
+{
+ QSet<QByteArray>::const_iterator it;
+ for (it = m_uniformNames.begin(); it != m_uniformNames.end(); ++it) {
+ int pi = metaObject()->indexOfProperty(it->constData());
+ if (pi >= 0) {
+ QMetaProperty mp = metaObject()->property(pi);
+ if (!mp.hasNotifySignal())
+ qWarning("ShaderEffectItem: property '%s' does not have notification method!", it->constData());
+ QByteArray signalName("2");
+ signalName.append(mp.notifySignal().signature());
+ connect(this, signalName, this, SLOT(markDirty()));
+ } else {
+ qWarning("ShaderEffectItem: '%s' does not have a matching property!", it->constData());
+ }
+ }
+ for (int i = 0; i < m_sources.size(); ++i) {
+ SourceData &source = m_sources[i];
+ int pi = metaObject()->indexOfProperty(source.name.constData());
+ if (pi >= 0) {
+ QMetaProperty mp = metaObject()->property(pi);
+ QByteArray signalName("2");
+ signalName.append(mp.notifySignal().signature());
+ connect(this, signalName, source.mapper, SLOT(map()));
+ source.mapper->setMapping(this, i);
+ connect(source.mapper, SIGNAL(mapped(int)), this, SLOT(changeSource(int)));
+ } else {
+ qWarning("ShaderEffectItem: '%s' does not have a matching source!", source.name.constData());
+ }
+ }
+}
+
+void ShaderEffectItem::reset()
+{
+ disconnectPropertySignals();
+
+ m_program.removeAllShaders();
+ m_attributeNames.clear();
+ m_uniformNames.clear();
+ for (int i = 0; i < m_sources.size(); ++i) {
+ const SourceData &source = m_sources.at(i);
+ if (m_active && source.source)
+ source.source->derefFromEffectItem();
+ delete source.mapper;
+ }
+
+ m_sources.clear();
+ m_program_dirty = true;
+}
+
+void ShaderEffectItem::updateProperties()
+{
+ QString vertexCode = m_vertex_code;
+ QString fragmentCode = m_fragment_code;
+
+ if (vertexCode.isEmpty())
+ vertexCode = qt_default_vertex_code;
+
+ if (fragmentCode.isEmpty())
+ fragmentCode = qt_default_fragment_code;
+
+ lookThroughShaderCode(vertexCode);
+ lookThroughShaderCode(fragmentCode);
+
+ if (!m_attributeNames.contains(qt_postion_attribute_name))
+ qWarning("ShaderEffectItem: Missing reference to \'%s\'.", qt_postion_attribute_name);
+ if (!m_attributeNames.contains(qt_texcoord_attribute_name))
+ qWarning("ShaderEffectItem: Missing reference to \'%s\'.", qt_texcoord_attribute_name);
+ if (!m_respectsMatrix)
+ qWarning("ShaderEffectItem: Missing reference to \'qt_ModelViewProjectionMatrix\'.");
+
+ for (int i = 0; i < m_sources.size(); ++i) {
+ QVariant v = property(m_sources.at(i).name);
+ setSource(v, i); // Property exists.
+ }
+
+ connectPropertySignals();
+}
+
+void ShaderEffectItem::updateShaderProgram()
+{
+ QString vertexCode = m_vertex_code;
+ QString fragmentCode = m_fragment_code;
+
+ if (vertexCode.isEmpty())
+ vertexCode = QString::fromLatin1(qt_default_vertex_code);
+
+ if (fragmentCode.isEmpty())
+ fragmentCode = QString::fromLatin1(qt_default_fragment_code);
+
+ m_program.addShaderFromSourceCode(QGLShader::Vertex, vertexCode);
+ m_program.addShaderFromSourceCode(QGLShader::Fragment, fragmentCode);
+
+ for (int i = 0; i < m_attributeNames.size(); ++i) {
+ m_program.bindAttributeLocation(m_attributeNames.at(i), m_geometry.attributes()[i].position);
+ }
+
+ if (!m_program.link()) {
+ qWarning("ShaderEffectItem: Shader compilation failed:");
+ qWarning() << m_program.log();
+ }
+
+ if (!m_attributeNames.contains(qt_postion_attribute_name))
+ qWarning("ShaderEffectItem: Missing reference to \'qt_Vertex\'.");
+ if (!m_attributeNames.contains(qt_texcoord_attribute_name))
+ qWarning("ShaderEffectItem: Missing reference to \'qt_MultiTexCoord0\'.");
+ if (!m_respectsMatrix)
+ qWarning("ShaderEffectItem: Missing reference to \'qt_ModelViewProjectionMatrix\'.");
+
+ if (m_program.isLinked()) {
+ m_program.bind();
+ for (int i = 0; i < m_sources.size(); ++i)
+ m_program.setUniformValue(m_sources.at(i).name.constData(), i);
+ }
+
+ m_program_dirty = false;
+}
+
+void ShaderEffectItem::lookThroughShaderCode(const QString &code)
+{
+ // Regexp for matching attributes and uniforms.
+ // In human readable form: attribute|uniform [lowp|mediump|highp] <type> <name>
+ static QRegExp re(QLatin1String("\\b(attribute|uniform)\\b\\s*\\b(?:lowp|mediump|highp)?\\b\\s*\\b(\\w+)\\b\\s*\\b(\\w+)"));
+ Q_ASSERT(re.isValid());
+
+ int pos = -1;
+
+ //QString wideCode = QString::fromLatin1(code.constData(), code.size());
+ QString wideCode = code;
+
+ while ((pos = re.indexIn(wideCode, pos + 1)) != -1) {
+ QByteArray decl = re.cap(1).toLatin1(); // uniform or attribute
+ QByteArray type = re.cap(2).toLatin1(); // type
+ QByteArray name = re.cap(3).toLatin1(); // variable name
+
+ if (decl == "attribute") {
+ if (name == qt_postion_attribute_name) {
+ m_attributeNames.insert(0, qt_postion_attribute_name);
+ } else if (name == "qt_MultiTexCoord0") {
+ if (m_attributeNames.at(0) == 0) {
+ m_attributeNames.insert(0, qt_emptyAttributeName);
+ }
+ m_attributeNames.insert(1, qt_texcoord_attribute_name);
+ } else {
+ // TODO: Support user defined attributes.
+ qWarning("ShaderEffectItem: Attribute \'%s\' not recognized.", name.constData());
+ }
+ } else {
+ Q_ASSERT(decl == "uniform");
+
+ if (name == "qt_ModelViewProjectionMatrix") {
+ m_respectsMatrix = true;
+ } else if (name == "qt_Opacity") {
+ m_respectsOpacity = true;
+ } else {
+ m_uniformNames.insert(name);
+ if (type == "sampler2D") {
+ SourceData d;
+ d.mapper = new QSignalMapper;
+ d.source = 0;
+ d.name = name;
+ d.item = 0;
+ m_sources.append(d);
+ }
+ }
+ }
+ }
+}
+
+void ShaderEffectItem::handleVisibilityChange()
+{
+ setActive(isVisible());
+}
diff --git a/src/shadereffectitem.h b/src/shadereffectitem.h
new file mode 100644
index 0000000..d1f9fd4
--- /dev/null
+++ b/src/shadereffectitem.h
@@ -0,0 +1,149 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SHADEREFFECTITEM_H
+#define SHADEREFFECTITEM_H
+
+#include <QDeclarativeItem>
+#include <QtOpenGL>
+#include "shadereffectsource.h"
+#include "scenegraph/qsggeometry.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class ShaderEffectItem : public QDeclarativeItem
+{
+ Q_OBJECT
+ Q_INTERFACES(QDeclarativeParserStatus)
+ Q_PROPERTY(QString fragmentShader READ fragmentShader WRITE setFragmentShader NOTIFY fragmentShaderChanged)
+ Q_PROPERTY(QString vertexShader READ vertexShader WRITE setVertexShader NOTIFY vertexShaderChanged)
+ Q_PROPERTY(bool blending READ blending WRITE setBlending NOTIFY blendingChanged)
+ Q_PROPERTY(QSize meshResolution READ meshResolution WRITE setMeshResolution NOTIFY meshResolutionChanged)
+
+public:
+ ShaderEffectItem(QDeclarativeItem* parent = 0);
+ ~ShaderEffectItem();
+
+ virtual void componentComplete();
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+
+ QString fragmentShader() const { return m_fragment_code; }
+ void setFragmentShader(const QString &code);
+
+ QString vertexShader() const { return m_vertex_code; }
+ void setVertexShader(const QString &code);
+
+ bool blending() const { return m_blending; }
+ void setBlending(bool enable);
+
+ QSize meshResolution() const { return m_meshResolution; }
+ void setMeshResolution(const QSize &size);
+
+ void preprocess();
+
+Q_SIGNALS:
+ void fragmentShaderChanged();
+ void vertexShaderChanged();
+ void blendingChanged();
+ void activeChanged();
+ void meshResolutionChanged();
+
+protected:
+ virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry);
+
+private Q_SLOTS:
+ void changeSource(int index);
+ void handleVisibilityChange();
+ void markDirty();
+
+private:
+ void checkViewportUpdateMode();
+ void renderEffect(QPainter *painter, const QMatrix4x4 &matrix);
+ void updateEffectState(const QMatrix4x4 &matrix);
+ void updateGeometry();
+ void bindGeometry();
+ void setSource(const QVariant &var, int index);
+ void disconnectPropertySignals();
+ void connectPropertySignals();
+ void reset();
+ void updateProperties();
+ void updateShaderProgram();
+ void lookThroughShaderCode(const QString &code);
+ bool active() const { return m_active; }
+ void setActive(bool enable);
+
+private:
+ QString m_fragment_code;
+ QString m_vertex_code;
+ QGLShaderProgram m_program;
+ QVector<const char *> m_attributeNames;
+ QSet<QByteArray> m_uniformNames;
+ QSize m_meshResolution;
+ QSGGeometry m_geometry;
+
+ struct SourceData
+ {
+ QSignalMapper *mapper;
+ QPointer<ShaderEffectSource> source;
+ QPointer<QDeclarativeItem> item;
+ QByteArray name;
+ };
+
+ QVector<SourceData> m_sources;
+
+ bool m_changed : 1;
+ bool m_blending : 1;
+ bool m_program_dirty : 1;
+ bool m_active : 1;
+ bool m_respectsMatrix : 1;
+ bool m_respectsOpacity : 1;
+ bool m_checkedViewportUpdateMode : 1;
+ bool m_checkedOpenGL : 1;
+ bool m_mirrored : 1;
+};
+
+QT_END_HEADER
+
+QT_END_NAMESPACE
+
+#endif // SHADEREFFECTITEM_H
diff --git a/src/shadereffectsource.cpp b/src/shadereffectsource.cpp
new file mode 100644
index 0000000..41e8011
--- /dev/null
+++ b/src/shadereffectsource.cpp
@@ -0,0 +1,472 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "shadereffectsource.h"
+#include "shadereffectbuffer.h"
+#include "shadereffect.h"
+#include "glfunctions.h"
+
+#include <QtOpenGL>
+
+/*!
+ \qmlclass ShaderEffectSource ShaderEffectSource
+ \ingroup qmlshadersplugin
+ \brief The ShaderEffectSource object encapsulates the source content for the ShaderEffectItem.
+
+ ShaderEffectSource is available in the \bold{Qt.labs.shaders 1.0} module.
+ \e {Elements in the Qt.labs module are not guaranteed to remain compatible
+ in future versions.}
+
+ This element provides preliminary support for OpenGL shaders in QML,
+ and may be heavily changed or removed in later versions.
+
+ Requirement for the ability to use of shaders is that the application is either using
+ opengl graphicssystem or has set QGLWidget as the viewport to QDeclarativeView (recommended way).
+
+ ShaderEffectSource object encapsulates the source content so that it can be utilized in ShaderEffectItem.
+ Source content can be a live QML object tree, or a snapshot of QML object tree.
+
+*/
+
+ShaderEffectSource::ShaderEffectSource(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
+ , m_sourceItem(0)
+ , m_wrapMode(ClampToEdge)
+ , m_sourceRect(0, 0, 0, 0)
+ , m_textureSize(0, 0)
+ , m_format(RGBA)
+ , m_size(0, 0)
+ , m_fbo(0)
+ , m_multisampledFbo(0)
+ , m_refs(0)
+ , m_dirtyTexture(true)
+ , m_dirtySceneGraph(true)
+ , m_multisamplingSupported(false)
+ , m_checkedForMultisamplingSupport(false)
+ , m_live(true)
+ , m_hideSource(false)
+ , m_mirrored(false)
+{
+}
+
+ShaderEffectSource::~ShaderEffectSource()
+{
+ if (m_refs && m_sourceItem)
+ detachSourceItem();
+
+ delete m_fbo;
+ delete m_multisampledFbo;
+}
+
+/*!
+ \qmlproperty Item ShaderEffectSource::sourceItem
+ This property holds the Item which is used as the source for the shader effect.
+ If the item has children, those are included as well.
+
+ \note When source item content is passed to the ShaderEffectItem(s), it is always clipped to the boundingrect of the
+ sourceItem regardless of its clipping property.
+*/
+
+/*!
+ \property ShaderEffectSource::sourceItem
+ \brief the Item which is the source for the effect.
+*/
+
+void ShaderEffectSource::setSourceItem(QDeclarativeItem *item)
+{
+ if (item == m_sourceItem)
+ return;
+
+ if (m_sourceItem) {
+ disconnect(m_sourceItem, SIGNAL(widthChanged()), this, SLOT(markSourceSizeDirty()));
+ disconnect(m_sourceItem, SIGNAL(heightChanged()), this, SLOT(markSourceSizeDirty()));
+
+ if (m_refs)
+ detachSourceItem();
+ }
+
+ m_sourceItem = item;
+
+ if (m_sourceItem) {
+
+ // Must have some item as parent
+ if (m_sourceItem->parentItem() == 0)
+ m_sourceItem->setParentItem(this);
+
+ if (m_refs)
+ attachSourceItem();
+
+ connect(m_sourceItem, SIGNAL(widthChanged()), this, SLOT(markSourceSizeDirty()));
+ connect(m_sourceItem, SIGNAL(heightChanged()), this, SLOT(markSourceSizeDirty()));
+ }
+
+ updateSizeAndTexture();
+ emit sourceItemChanged();
+ emit repaintRequired();
+}
+
+/*!
+ \qmlproperty QRectF ShaderEffectSource::sourceRect
+ This property can be used to specify margins for the source content.
+
+ If other value than Qt.rect(0,0,0,0) is assigned to this property, it is interpreted as
+ specifying a relative source rectangle for the source content.
+
+ For example, setting Qt.rect(-10.0, -10.0, 120.0, 120.0) for a source that has width and height
+ of 100 pixels would produce 10 pixels margins to each side of the source.
+
+ Margins are useful when the original content is wanted to be spread outside the original source area,
+ like when creating a dropshadow with the shader or in other similar effects.
+
+ The default value is Qt.rect(0,0,0,0).
+*/
+
+/*!
+ \property ShaderEffectSource::sourceRect
+ \brief the relative sourceRect for the source.
+*/
+
+void ShaderEffectSource::setSourceRect(const QRectF &rect)
+{
+ if (rect == m_sourceRect)
+ return;
+ m_sourceRect = rect;
+ updateSizeAndTexture();
+ updateBackbuffer();
+ emit sourceRectChanged();
+ emit repaintRequired();
+
+ if (m_sourceItem) {
+ ShaderEffect* effect = qobject_cast<ShaderEffect*> (m_sourceItem->graphicsEffect());
+ if (effect)
+ effect->m_changed = true;
+ }
+}
+
+/*!
+ \qmlproperty QSize ShaderEffectSource::textureSize
+ This property holds the size for the texture containing the source content.
+
+ If value QSize(0,0) is assigned to this property, texture is resized
+ according to the source size. Otherwise source content is scaled to
+ the given size.
+
+ The default value is QSize(0,0).
+*/
+
+/*!
+ \property ShaderEffectSource::textureSize
+ \brief the texture size for the source.
+*/
+
+void ShaderEffectSource::setTextureSize(const QSize &size)
+{
+ if (size == m_textureSize)
+ return;
+
+ m_textureSize = size;
+ updateSizeAndTexture();
+ emit textureSizeChanged();
+ emit repaintRequired();
+
+ if (m_sourceItem) {
+ ShaderEffect* effect = qobject_cast<ShaderEffect*> (m_sourceItem->graphicsEffect());
+ if (effect)
+ effect->m_changed = true;
+ }
+}
+
+/*!
+ \qmlproperty bool ShaderEffectSource::live
+ This property holds the optimization flag to define wheter the source item content is changing or
+ static.
+
+ If value true is assigned to this property, source item content is re-rendered into a
+ texture for every frame. Setting the value to false improves the performance as it skips
+ rendering the source item (and its chidleren) and instead immediately passes the previously
+ rendered and cached texture to the shaders.
+
+ The default value is true.
+*/
+
+/*!
+ \property ShaderEffectSource::live
+ \brief the flag tells wheter source item content is changing between frames.
+*/
+
+void ShaderEffectSource::setLive(bool s)
+{
+ if (s == m_live)
+ return;
+
+ m_live = s;
+
+ emit liveChanged();
+ emit repaintRequired();
+}
+
+/*!
+ \qmlproperty bool ShaderEffectSource::hideSource
+ This property holds the flag to define wheter the original source item is
+ hidden when the effect item is drawn.
+
+ The default value is false.
+*/
+
+/*!
+ \property ShaderEffectSource::hideSource
+ \brief the flag tells wheter original source item content should be hidden.
+*/
+
+void ShaderEffectSource::setHideSource(bool hide)
+{
+ if (hide == m_hideSource)
+ return;
+
+ m_hideSource = hide;
+
+ emit hideSourceChanged();
+ emit repaintRequired();
+}
+
+/*!
+ \qmlproperty enumeration ShaderEffectSource::wrapMode
+
+ This property defines the wrap parameter for the source after it has been mapped as a texture.
+
+ \list
+ \o WrapMode.ClampToEdge - Causes texturecoordinates to be clamped to the range [ 1/2*N , 1 - 1/2*N ], where N is the texture width.
+ \o WrapMode.RepeatHorizontally - Causes the integer part of the horizontal texturecoordinate to be ignored; the GL uses only the fractional part, thereby creating a horizontal repeating pattern.
+ \o WrapMode.RepeatVertically - Causes the integer part of the vertical texturecoordinate to be ignored; the GL uses only the fractional part, thereby creating a vertical repeating pattern.
+ \o WrapMode.Repeat - Causes the integer part of both the horizontal and vertical texturecoordinates to be ignored; the GL uses only the fractional part, thereby creating a repeating pattern.
+ \endlist
+
+ The default value is ClampToEdge.
+
+*/
+
+/*!
+ \property ShaderEffectSource::wrapMode
+ \brief the wrap parameter for the source after it has been mapped as a texture.
+*/
+
+void ShaderEffectSource::setWrapMode(WrapMode mode)
+{
+ if (mode == m_wrapMode)
+ return;
+
+ m_wrapMode = mode;
+ updateBackbuffer();
+ emit wrapModeChanged();
+}
+
+/*!
+ \qmlmethod ShaderEffectSource::grab()
+
+ Repaints the source item content into the texture.
+
+ This method is useful when ShaderEffectSource::live has been set to false and
+ the changes in the source item content is desired to be made visible for the shaders.
+
+*/
+
+void ShaderEffectSource::grab()
+{
+ m_dirtyTexture = true;
+ emit repaintRequired();
+}
+
+void ShaderEffectSource::bind() const
+{
+ GLint filtering = smooth() ? GL_LINEAR : GL_NEAREST;
+ GLuint hwrap = (m_wrapMode == Repeat || m_wrapMode == RepeatHorizontally) ? GL_REPEAT : GL_CLAMP_TO_EDGE;
+ GLuint vwrap = (m_wrapMode == Repeat || m_wrapMode == RepeatVertically) ? GL_REPEAT : GL_CLAMP_TO_EDGE;
+
+#if !defined(QT_OPENGL_ES_2)
+ glEnable(GL_TEXTURE_2D);
+#endif
+ if (m_fbo) {
+ glBindTexture(GL_TEXTURE_2D, m_fbo->texture());
+ } else {
+ glBindTexture(GL_TEXTURE_2D, 0);
+ }
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filtering);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, smooth() ? GL_LINEAR : GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, hwrap);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, vwrap);
+}
+
+void ShaderEffectSource::refFromEffectItem()
+{
+ if (m_refs++ == 0) {
+ attachSourceItem();
+ emit activeChanged();
+ }
+}
+
+void ShaderEffectSource::derefFromEffectItem()
+{
+ if (--m_refs == 0) {
+ detachSourceItem();
+ emit activeChanged();
+ }
+ Q_ASSERT(m_refs >= 0);
+}
+
+void ShaderEffectSource::updateBackbuffer()
+{
+ if (!m_sourceItem)
+ return;
+
+ // Multisampling is not (for now) supported.
+ QSize size = QSize(m_sourceItem->width(), m_sourceItem->height());
+ if (!m_textureSize.isEmpty())
+ size = m_textureSize;
+
+ if (size.height() > 0 && size.width() > 0) {
+ QGLFramebufferObjectFormat format;
+ format.setAttachment(QGLFramebufferObject::CombinedDepthStencil);
+ format.setInternalTextureFormat(m_format);
+
+ if (!m_fbo) {
+ m_fbo = new ShaderEffectBuffer(size, format);
+ } else {
+ if (m_fbo->size() != size || m_fbo->format().internalTextureFormat() != GLenum(m_format)) {
+ delete m_fbo;
+ m_fbo = 0;
+ m_fbo = new ShaderEffectBuffer(size, format);
+ }
+ }
+ }
+
+ // Note that real update for the source content happens in shadereffect.cpp
+ m_dirtyTexture = false;
+}
+
+void ShaderEffectSource::markSceneGraphDirty()
+{
+ m_dirtySceneGraph = true;
+ emit repaintRequired();
+}
+
+void ShaderEffectSource::markSourceSizeDirty()
+{
+ Q_ASSERT(m_sourceItem);
+ if (m_textureSize.isEmpty())
+ updateSizeAndTexture();
+ if (m_refs)
+ emit repaintRequired();
+}
+
+void ShaderEffectSource::updateSizeAndTexture()
+{
+ if (m_sourceItem) {
+ QSize size = m_textureSize;
+ if (size.isEmpty())
+ size = QSize(m_sourceItem->width(), m_sourceItem->height());
+ if (size.width() < 1)
+ size.setWidth(1);
+ if (size.height() < 1)
+ size.setHeight(1);
+ if (m_fbo && m_fbo->size() != size) {
+ delete m_fbo;
+ m_fbo = 0;
+ delete m_multisampledFbo;
+ m_fbo = m_multisampledFbo = 0;
+ }
+ if (m_size.width() != size.width()) {
+ m_size.setWidth(size.width());
+ emit widthChanged();
+ }
+ if (m_size.height() != size.height()) {
+ m_size.setHeight(size.height());
+ emit heightChanged();
+ }
+ m_dirtyTexture = true;
+ } else {
+ if (m_size.width() != 0) {
+ m_size.setWidth(0);
+ emit widthChanged();
+ }
+ if (m_size.height() != 0) {
+ m_size.setHeight(0);
+ emit heightChanged();
+ }
+ }
+}
+
+void ShaderEffectSource::attachSourceItem()
+{
+ if (!m_sourceItem)
+ return;
+
+ ShaderEffect *effect = qobject_cast<ShaderEffect*> (m_sourceItem->graphicsEffect());
+
+ if (!effect) {
+ effect = new ShaderEffect();
+ m_sourceItem->setGraphicsEffect(effect);
+ }
+
+ if (effect)
+ effect->addRenderTarget(this);
+
+ m_sourceItem->update();
+}
+
+void ShaderEffectSource::detachSourceItem()
+{
+ if (!m_sourceItem)
+ return;
+
+ ShaderEffect* effect = qobject_cast<ShaderEffect*> (m_sourceItem->graphicsEffect());
+
+ if (effect)
+ effect->removeRenderTarget(this);
+
+ delete m_fbo;
+ m_fbo = 0;
+
+ delete m_multisampledFbo;
+ m_multisampledFbo = 0;
+
+ m_dirtyTexture = true;
+}
diff --git a/src/shadereffectsource.h b/src/shadereffectsource.h
new file mode 100644
index 0000000..275e5b2
--- /dev/null
+++ b/src/shadereffectsource.h
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SHADEREFFECTSOURCE_H
+#define SHADEREFFECTSOURCE_H
+
+#include <QDeclarativeItem>
+#include <QtOpenGL>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class ShaderEffectBuffer;
+
+class ShaderEffectSource : public QDeclarativeItem
+{
+ Q_OBJECT
+ Q_PROPERTY(QDeclarativeItem *sourceItem READ sourceItem WRITE setSourceItem NOTIFY sourceItemChanged)
+ Q_PROPERTY(QRectF sourceRect READ sourceRect WRITE setSourceRect NOTIFY sourceRectChanged)
+ Q_PROPERTY(QSize textureSize READ textureSize WRITE setTextureSize NOTIFY textureSizeChanged)
+ Q_PROPERTY(bool live READ isLive WRITE setLive NOTIFY liveChanged)
+ Q_PROPERTY(bool hideSource READ hideSource WRITE setHideSource NOTIFY hideSourceChanged)
+ Q_PROPERTY(WrapMode wrapMode READ wrapMode WRITE setWrapMode NOTIFY wrapModeChanged)
+ Q_ENUMS(WrapMode)
+ Q_ENUMS(Format)
+
+public:
+ enum WrapMode {
+ ClampToEdge,
+ RepeatHorizontally,
+ RepeatVertically,
+ Repeat
+ };
+
+ enum Format {
+ Alpha = GL_ALPHA,
+ RGB = GL_RGB,
+ RGBA = GL_RGBA
+ };
+
+ ShaderEffectSource(QDeclarativeItem *parent = 0);
+ virtual ~ShaderEffectSource();
+
+ QDeclarativeItem *sourceItem() const { return m_sourceItem.data(); }
+ void setSourceItem(QDeclarativeItem *item);
+
+ QRectF sourceRect() const { return m_sourceRect; };
+ void setSourceRect(const QRectF &rect);
+
+ QSize textureSize() const { return m_textureSize; }
+ void setTextureSize(const QSize &size);
+
+ bool isLive() const { return m_live; }
+ void setLive(bool s);
+
+ bool hideSource() const { return m_hideSource; }
+ void setHideSource(bool hide);
+
+ WrapMode wrapMode() const { return m_wrapMode; };
+ void setWrapMode(WrapMode mode);
+
+ bool isActive() const { return m_refs; }
+ void bind() const;
+ void refFromEffectItem();
+ void derefFromEffectItem();
+ void updateBackbuffer();
+
+ ShaderEffectBuffer* fbo() { return m_fbo; }
+ bool isDirtyTexture() { return m_dirtyTexture; }
+ bool isMirrored() { return m_mirrored; }
+
+ Q_INVOKABLE void grab();
+
+Q_SIGNALS:
+ void sourceItemChanged();
+ void sourceRectChanged();
+ void textureSizeChanged();
+ void formatChanged();
+ void liveChanged();
+ void hideSourceChanged();
+ void activeChanged();
+ void repaintRequired();
+ void wrapModeChanged();
+
+public Q_SLOTS:
+ void markSceneGraphDirty();
+ void markSourceSizeDirty();
+
+private:
+ void updateSizeAndTexture();
+ void attachSourceItem();
+ void detachSourceItem();
+
+private:
+ QPointer<QDeclarativeItem> m_sourceItem;
+ WrapMode m_wrapMode;
+ QRectF m_sourceRect;
+ QSize m_textureSize;
+ Format m_format;
+ QSize m_size;
+
+ ShaderEffectBuffer *m_fbo;
+ ShaderEffectBuffer *m_multisampledFbo;
+ int m_refs;
+ bool m_dirtyTexture : 1;
+ bool m_dirtySceneGraph : 1;
+ bool m_multisamplingSupported : 1;
+ bool m_checkedForMultisamplingSupport : 1;
+ bool m_live : 1;
+ bool m_hideSource : 1;
+ bool m_mirrored : 1;
+};
+
+QT_END_HEADER
+
+QT_END_NAMESPACE
+
+
+#endif // SHADEREFFECTSOURCE_H
diff --git a/src/src.pro b/src/src.pro
new file mode 100644
index 0000000..08f2b6d
--- /dev/null
+++ b/src/src.pro
@@ -0,0 +1,55 @@
+TEMPLATE = lib
+TARGET = qmlshadersplugin
+QT += declarative opengl
+CONFIG += qt plugin
+
+TARGETPATH = Qt/labs/shaders
+target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
+
+symbian: {
+ TARGET.EPOCALLOWDLLDATA = 1
+
+ pluginstub.sources = $${TARGET}.dll
+ pluginstub.path = /resource/qt/imports/$$TARGETPATH
+
+ resfiles.sources = qmldir
+ resfiles.path = /resource/qt/imports/$$TARGETPATH
+
+ DEPLOYMENT += pluginstub resfiles
+
+# temp workaround
+ TARGET.CAPABILITY += NetworkServices
+}
+
+# Input
+SOURCES += \
+ qmlshadersplugin_plugin.cpp \
+ shadereffect.cpp \
+ shadereffectitem.cpp \
+ shadereffectsource.cpp \
+ scenegraph/qsggeometry.cpp \
+ shadereffectbuffer.cpp
+
+HEADERS += \
+ qmlshadersplugin_plugin.h \
+ glfunctions.h \
+ shadereffect.h \
+ shadereffectitem.h \
+ shadereffectsource.h \
+ scenegraph/qsggeometry.h \
+ shadereffectbuffer.h
+
+OTHER_FILES = qmldir
+
+!equals(_PRO_FILE_PWD_, $$OUT_PWD) {
+ copy_qmldir.target = $$OUT_PWD/qmldir
+ copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
+ copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\"
+ QMAKE_EXTRA_TARGETS += copy_qmldir
+ PRE_TARGETDEPS += $$copy_qmldir.target
+}
+
+qmlfiles.files = qmldir
+qmlfiles.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
+
+INSTALLS += target qmlfiles
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
new file mode 100644
index 0000000..4ca586f
--- /dev/null
+++ b/tests/auto/auto.pro
@@ -0,0 +1,18 @@
+load(qttest_p4)
+
+QT += opengl declarative
+SOURCES += tst_qmlshadersplugin.cpp
+
+SOURCES += \
+ ../../src/shadereffectitem.cpp \
+ ../../src/shadereffectsource.cpp \
+ ../../src/shadereffect.cpp \
+ ../../src/shadereffectbuffer.cpp \
+ ../../src/scenegraph/qsggeometry.cpp
+
+HEADERS += \
+ ../../src/shadereffectitem.h \
+ ../../src/shadereffectsource.h \
+ ../../src/shadereffect.h \
+ ../../src/shadereffectbuffer.h \
+ ../../src/scenegraph/qsggeometry.h
diff --git a/tests/auto/tst_qmlshadersplugin.cpp b/tests/auto/tst_qmlshadersplugin.cpp
new file mode 100644
index 0000000..d17baea
--- /dev/null
+++ b/tests/auto/tst_qmlshadersplugin.cpp
@@ -0,0 +1,174 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qtest.h>
+#include <QtDeclarative>
+#include "../../src/shadereffectitem.h"
+#include "../../src/shadereffectsource.h"
+#include "../../src/shadereffect.h"
+
+static const char qt_default_vertex_code[] =
+ "uniform highp mat4 qt_ModelViewProjectionMatrix;\n"
+ "attribute highp vec4 qt_Vertex;\n"
+ "attribute highp vec2 qt_MultiTexCoord0;\n"
+ "varying highp vec2 qt_TexCoord0;\n"
+ "void main(void)\n"
+ "{\n"
+ "qt_TexCoord0 = qt_MultiTexCoord0;\n"
+ "gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;\n"
+ "}\n";
+
+static const char qt_default_fragment_code[] =
+ "varying highp vec2 qt_TexCoord0;\n"
+ "uniform lowp sampler2D source;\n"
+ "void main(void)\n"
+ "{\n"
+ "gl_FragColor = texture2D(source, qt_TexCoord0.st);\n"
+ "}\n";
+
+class tst_qmlshadersplugin : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void initTestCase();
+ void shaderEffectItemAPI();
+ void shaderEffectSourceAPI();
+
+private:
+ QDeclarativeEngine engine;
+};
+
+void tst_qmlshadersplugin::initTestCase()
+{
+ const char *uri ="Qt.labs.shaders";
+ qmlRegisterType<ShaderEffectItem>(uri, 1, 0, "ShaderEffectItem");
+ qmlRegisterType<ShaderEffectSource>(uri, 1, 0, "ShaderEffectSource");
+}
+
+
+void tst_qmlshadersplugin::shaderEffectItemAPI()
+{
+ // Creation
+ QString componentStr = "import QtQuick 1.0\n"
+ "import Qt.labs.shaders 1.0\n"
+ "ShaderEffectItem {\n"
+ "property variant source\n"
+ "width: 200; height: 300\n"
+ "}";
+ QDeclarativeComponent component(&engine);
+ component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+
+ QObject *obj = component.create();
+ QTest::qWait(100);
+ QVERIFY(obj != 0);
+
+ // Default values
+ QCOMPARE(obj->property("width").toDouble(), 200.);
+ QCOMPARE(obj->property("height").toDouble(), 300.);
+ QCOMPARE(obj->property("fragmentShader").toString(), QString(""));
+ QCOMPARE(obj->property("vertexShader").toString(), QString(""));
+ QCOMPARE(obj->property("blending").toBool(), true);
+ QCOMPARE(obj->property("meshResolution").toSize(), QSize(1, 1));
+
+ // Seting the values
+ QVERIFY(obj->setProperty("fragmentShader", QString(qt_default_fragment_code)));
+ QVERIFY(obj->setProperty("vertexShader", QString(qt_default_vertex_code)));
+ QVERIFY(obj->setProperty("blending", false));
+ QVERIFY(obj->setProperty("meshResolution", QSize(20, 10)));
+
+ QCOMPARE(obj->property("fragmentShader").toString(), QString(qt_default_fragment_code));
+ QCOMPARE(obj->property("vertexShader").toString(), QString(qt_default_vertex_code));
+ QCOMPARE(obj->property("blending").toBool(), false);
+ QCOMPARE(obj->property("meshResolution").toSize(), QSize(20, 10));
+
+ delete obj;
+}
+
+void tst_qmlshadersplugin::shaderEffectSourceAPI()
+{
+ // Creation
+ QString componentStr = "import QtQuick 1.0\n"
+ "import Qt.labs.shaders 1.0\n"
+ "ShaderEffectSource {}";
+ QDeclarativeComponent shaderEffectSourceComponent(&engine);
+ shaderEffectSourceComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+
+ QObject *obj = shaderEffectSourceComponent.create();
+ QTest::qWait(100);
+ QVERIFY(obj != 0);
+
+ // Default values
+ QCOMPARE(obj->property("sourceRect").toRect(), QRect(0, 0, 0, 0));
+ QCOMPARE(obj->property("textureSize").toSize(), QSize(0, 0));
+ QCOMPARE(obj->property("live").toBool(), true);
+ QCOMPARE(obj->property("hideSource").toBool(), false);
+ QCOMPARE(obj->property("wrapMode").toUInt(), static_cast<unsigned int>(ShaderEffectSource::ClampToEdge));
+
+ // Seting the values
+ componentStr = "import QtQuick 1.0\n"
+ "Item {}";
+ QDeclarativeComponent itemComponent(&engine);
+ itemComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem *> (itemComponent.create());
+ QVERIFY(item != 0);
+
+ QVERIFY(obj->setProperty("sourceItem", QVariant::fromValue(item)));
+ QVERIFY(obj->setProperty("sourceRect", QRect(10, 20, 30, 40)));
+ QVERIFY(obj->setProperty("textureSize", QSize(50, 100)));
+ QVERIFY(obj->setProperty("live", false));
+ QVERIFY(obj->setProperty("hideSource", true));
+ QVERIFY(obj->setProperty("wrapMode", static_cast<unsigned int>(ShaderEffectSource::Repeat)));
+
+ QCOMPARE(obj->property("sourceItem"), QVariant::fromValue(item));
+ QCOMPARE(obj->property("sourceRect").toRect(), QRect(10, 20, 30, 40));
+ QCOMPARE(obj->property("textureSize").toSize(), QSize(50, 100));
+ QCOMPARE(obj->property("live").toBool(), false);
+ QCOMPARE(obj->property("hideSource").toBool(), true);
+ QCOMPARE(obj->property("wrapMode").toUInt(), static_cast<unsigned int>(ShaderEffectSource::Repeat));
+
+ delete item;
+ delete obj;
+}
+
+QTEST_MAIN(tst_qmlshadersplugin)
+
+#include "tst_qmlshadersplugin.moc"
diff --git a/tests/manual/manual.pro b/tests/manual/manual.pro
new file mode 100644
index 0000000..37c05a8
--- /dev/null
+++ b/tests/manual/manual.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = qmlshadersplugintest performance
diff --git a/tests/manual/performance/GaussianBlur.qml b/tests/manual/performance/GaussianBlur.qml
new file mode 100644
index 0000000..4424b0b
--- /dev/null
+++ b/tests/manual/performance/GaussianBlur.qml
@@ -0,0 +1,43 @@
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Item {
+ id: gaussianBlur
+ property variant source: 0
+ property real radius: 8;
+ property real deviation: Math.sqrt(-((radius+1) * (radius+1)) / (2 * Math.log(1.0 / 255.0)))
+ property bool live: true
+
+ ShaderEffectItem {
+ id: cache
+ anchors.fill: parent
+ visible: !gaussianBlur.live
+ property variant source: ShaderEffectSource { sourceItem: verticalBlur; live: false; hideSource: true }
+ }
+
+ GaussianDirectionalBlur {
+ id: verticalBlur
+ anchors.fill: parent
+
+ deltaX: 0.0
+ deltaY: 1.0/parent.height
+
+ source: ShaderEffectSource { sourceItem: horizontalBlur; hideSource: true }
+ deviation: gaussianBlur.deviation
+ radius: gaussianBlur.radius
+ }
+
+ GaussianDirectionalBlur {
+ id: horizontalBlur
+ anchors.fill: parent
+ blending: false
+
+ deltaX: 1.0/parent.width
+ deltaY: 0.0
+
+ source: gaussianBlur.source
+ deviation: gaussianBlur.deviation
+ radius: gaussianBlur.radius
+ }
+
+}
diff --git a/tests/manual/performance/GaussianDirectionalBlur.qml b/tests/manual/performance/GaussianDirectionalBlur.qml
new file mode 100644
index 0000000..de46a66
--- /dev/null
+++ b/tests/manual/performance/GaussianDirectionalBlur.qml
@@ -0,0 +1,174 @@
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+// Note 1. This shader implements gaussian blur without dynamic array access from inside shader loops (Optional feature in OpenGLES 2.0).
+// Note 2. Shader code is generated to avoid ecessive if-else structure in fragment shader. Code re-generation (very slow!) happens if blur radius is changed.
+
+ShaderEffectItem {
+ id: effect
+ property variant source: 0
+ property real deviation: Math.sqrt(-((radius+1) * (radius+1)) / (2 * Math.log(1.0 / 255.0)));
+ property real radius: 8;
+ property real deltaX: 0.0
+ property real deltaY: 0.0
+
+ property real gaussianSum: 0.0
+ property real startIndex: 0.0
+ property real samples: radius * 2
+
+ property variant gwts: []
+ property variant delta: Qt.vector3d(effect.deltaX, effect.deltaY, effect.startIndex);
+ property variant factor_0_2: Qt.vector3d(effect.gwts[0], effect.gwts[1], effect.gwts[2]);
+ property variant factor_3_5: Qt.vector3d(effect.gwts[3],effect.gwts[4],effect.gwts[5]);
+ property variant factor_6_8: Qt.vector3d(effect.gwts[6],effect.gwts[7],effect.gwts[8]);
+ property variant factor_9_11: Qt.vector3d(effect.gwts[9],effect.gwts[10],effect.gwts[11]);
+ property variant factor_12_14: Qt.vector3d(effect.gwts[12],effect.gwts[13],effect.gwts[14]);
+ property variant factor_15_17: Qt.vector3d(effect.gwts[15],effect.gwts[16],effect.gwts[17]);
+ property variant factor_18_20: Qt.vector3d(effect.gwts[18],effect.gwts[19],effect.gwts[20]);
+ property variant factor_21_23: Qt.vector3d(effect.gwts[21],effect.gwts[22],effect.gwts[23]);
+ property variant factor_24_26: Qt.vector3d(effect.gwts[24],effect.gwts[25],effect.gwts[26]);
+ property variant factor_27_29: Qt.vector3d(effect.gwts[27],effect.gwts[28],effect.gwts[29]);
+ property variant factor_30_32: Qt.vector3d(effect.gwts[30],effect.gwts[31],effect.gwts[32]);
+
+ //Gaussian function = h(x):=(1/sqrt(2*3.14159*(D^2))) * %e^(-(x^2)/(2*(D^2)));
+ function gausFunc(x){
+ return (1/Math.sqrt(2*3.1415926*(Math.pow(effect.deviation,2)))) * Math.pow(2.7182818,-((Math.pow(x,2))/(2*(Math.pow(effect.deviation,2)))));
+ }
+
+ function calcGWTS() {
+ var n = new Array(Math.floor(effect.samples));
+ var step
+ for (var i = 0; i < effect.samples; i++) {
+ step = -effect.samples/2 + i + 0.5
+ n[i] = gausFunc(step);
+ //console.log("New gaussian value " + step + ": " + n[i]);
+ }
+ return n;
+ }
+
+ function buildFragmentShader() {
+
+ var shaderSteps = [
+ "gl_FragColor += texture2D(source, texCoord) * factor_0_2.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_0_2.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_0_2.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_3_5.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_3_5.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_3_5.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_6_8.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_6_8.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_6_8.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_9_11.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_9_11.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_9_11.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_12_14.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_12_14.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_12_14.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_15_17.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_15_17.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_15_17.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_18_20.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_18_20.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_18_20.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_21_23.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_21_23.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_21_23.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_24_26.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_24_26.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_24_26.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_27_29.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_27_29.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_27_29.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_30_32.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_30_32.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_30_32.z; texCoord += shift;"
+ ]
+
+ var shader = fragmentShader_begin
+ var samples = effect.samples
+ if (samples > 32) {
+ console.log("GaussianBlur: Maximum of 32 blur samples exceeded!")
+ samples = 32
+ }
+
+ for (var i = 0; i < samples; i++) {
+ shader += shaderSteps[i]
+ }
+
+ shader += fragmentShader_end
+ effect.fragmentShader = shader
+
+ }
+
+ onDeviationChanged:{
+ effect.startIndex = -effect.samples/2 + 0.5
+ effect.gwts = calcGWTS();
+// console.log(" deviation changed")
+ var sum = 0.0;
+ for(var j = 0; j < effect.samples; j++){
+ sum += effect.gwts[j];
+ }
+ effect.gaussianSum = sum
+// console.log("Gaussian values ready, sum = " + sum + ", startIndex = " + effect.startIndex);
+// console.log("Gaussian values ready, deviation = " + effect.deviation)
+ }
+
+ Component.onCompleted:{
+ effect.startIndex = -effect.samples/2 + 0.5
+ effect.gwts = calcGWTS();
+ var sum = 0.0;
+ for(var j = 0; j < effect.samples; j++){
+ sum += effect.gwts[j];
+ }
+ effect.gaussianSum = sum
+// console.log("Gaussian values ready, sum = " + sum + ", startIndex = " + effect.startIndex);
+// console.log("Gaussian values ready, deviation = " + effect.deviation)
+ buildFragmentShader()
+ }
+
+ onSamplesChanged: {
+ buildFragmentShader()
+ }
+
+ property string fragmentShader_begin:
+ "
+ varying mediump vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform highp vec3 delta;
+ uniform highp vec3 factor_0_2;
+ uniform highp vec3 factor_3_5;
+ uniform highp vec3 factor_6_8;
+ uniform highp vec3 factor_9_11;
+ uniform highp vec3 factor_12_14;
+ uniform highp vec3 factor_15_17;
+ uniform highp vec3 factor_18_20;
+ uniform highp vec3 factor_21_23;
+ uniform highp vec3 factor_24_26;
+ uniform highp vec3 factor_27_29;
+ uniform highp vec3 factor_30_32;
+ uniform highp float gaussianSum;
+
+ void main() {
+ highp vec2 shift = vec2(delta.x, delta.y);
+ highp float index = delta.z;
+ mediump vec2 texCoord = qt_TexCoord0 + (shift * index);
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
+ "
+
+ property string fragmentShader_end:
+ "
+ if (gaussianSum > 0.0)
+ gl_FragColor /= gaussianSum;
+ }
+ "
+}
diff --git a/tests/manual/performance/GaussianDropShadow.qml b/tests/manual/performance/GaussianDropShadow.qml
new file mode 100644
index 0000000..be78c86
--- /dev/null
+++ b/tests/manual/performance/GaussianDropShadow.qml
@@ -0,0 +1,41 @@
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Item {
+ id: gaussianDropShadow
+
+ property color shadowColor: Qt.rgba(0.5, 0.5, 0.5, 1.0)
+ property variant source: 0
+ property real radius: 8
+ property real deviation: Math.sqrt(-((radius+1) * (radius+1)) / (2 * Math.log(1.0 / 255.0)))
+ property bool live: true
+
+ GaussianBlur {
+ id: blur
+ anchors.fill: parent
+ radius: gaussianDropShadow.radius
+ deviation: gaussianDropShadow.deviation
+ source: gaussianDropShadow.source
+ live: gaussianDropShadow.live
+ }
+
+ ShaderEffectItem {
+ id: shadow
+ property color shadowColor: gaussianDropShadow.shadowColor
+ property variant source: ShaderEffectSource { sourceItem: blur; hideSource: true }
+ anchors.fill: parent
+
+ fragmentShader:
+ "
+ varying mediump vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform lowp vec4 shadowColor;
+
+ void main() {
+ lowp vec4 sourceColor = texture2D(source, qt_TexCoord0);
+ gl_FragColor = mix(vec4(0), shadowColor, sourceColor.a);
+ }
+ "
+ }
+}
+
diff --git a/tests/manual/performance/TestGaussianDropShadow.qml b/tests/manual/performance/TestGaussianDropShadow.qml
new file mode 100755
index 0000000..c6d1d9b
--- /dev/null
+++ b/tests/manual/performance/TestGaussianDropShadow.qml
@@ -0,0 +1,66 @@
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Item {
+ id: main
+ width: 360
+ height: 640
+
+ property bool liveShadows: true
+ property real r: 0
+
+ NumberAnimation on r {
+ loops: Animation.Infinite
+ from: 0
+ to: 360
+ duration: 3000
+ }
+
+ Image {
+ id: background
+ width: main.width
+ height: main.height
+ fillMode: Image.Tile
+ source: "tile.jpg"
+ }
+
+ GaussianDropShadow {
+ x: image1.x + 50
+ y: image1.y + 50
+ width: image1.width
+ height: image1.height
+ shadowColor: "#88000000"
+ source: ShaderEffectSource { sourceItem: image1; hideSource: false; sourceRect: Qt.rect(-10, -10, image1.width + 20, image1.height + 20) }
+ radius: 12.0
+ deviation: 12
+ rotation: r
+ }
+
+ Image {
+ id: image1
+ anchors.fill: parent
+ source: "drop_shadow_small.png"
+ smooth: true
+ rotation: r
+ }
+
+ GaussianDropShadow {
+ x: image2.x + 50
+ y: image2.y + 50
+ width: image2.width
+ height: image2.height
+ shadowColor: "#88000000"
+ source: ShaderEffectSource { sourceItem: image2; hideSource: false; sourceRect: Qt.rect(-10, -10, image2.width + 20, image2.height + 20) }
+ radius: 12.0
+ deviation: 12
+ rotation: -r
+ }
+
+ Image {
+ id: image2
+ anchors.fill: parent
+ source: "drop_shadow_small.png"
+ smooth: true
+ rotation: -r
+ }
+}
diff --git a/tests/manual/performance/TestWater.qml b/tests/manual/performance/TestWater.qml
new file mode 100755
index 0000000..ec5ef6d
--- /dev/null
+++ b/tests/manual/performance/TestWater.qml
@@ -0,0 +1,20 @@
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Item {
+ width: 360
+ height: 640
+
+ Image {
+ id: image
+ width: parent.width
+ height: parent.height * 0.65
+ source: "sydney5.png"
+ smooth: true
+ }
+ Water {
+ sourceItem: image
+ intensity: 5
+ height: parent.height - image.height
+ }
+}
diff --git a/tests/manual/performance/Water.qml b/tests/manual/performance/Water.qml
new file mode 100644
index 0000000..02486dd
--- /dev/null
+++ b/tests/manual/performance/Water.qml
@@ -0,0 +1,85 @@
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Item {
+ id: root
+ property alias sourceItem: effectsource.sourceItem
+ property real intensity: 1
+ property bool waving: true
+ anchors.top: sourceItem.bottom
+ width: sourceItem.width
+ height: sourceItem.height
+
+ ShaderEffectItem {
+ anchors.fill: parent
+ property variant source: effectsource
+ property real f: 0
+ property real f2: 0
+ property alias intensity: root.intensity
+ smooth: true
+
+ ShaderEffectSource {
+ id: effectsource
+ hideSource: false
+ smooth: true
+ }
+
+ fragmentShader:
+ "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ uniform lowp float qt_Opacity;
+ uniform highp float f;
+ uniform highp float f2;
+ uniform highp float intensity;
+
+ void main() {
+ const highp float twopi = 3.141592653589 * 2.0;
+
+ highp float distanceFactorToPhase = pow(qt_TexCoord0.y + 0.5, 8.0) * 5.0;
+ highp float ofx = sin(f * twopi + distanceFactorToPhase) / 100.0;
+ highp float ofy = sin(f2 * twopi + distanceFactorToPhase * qt_TexCoord0.x) / 60.0;
+
+ highp float intensityDampingFactor = (qt_TexCoord0.x + 0.1) * (qt_TexCoord0.y + 0.2);
+ highp float distanceFactor = (1.0 - qt_TexCoord0.y) * 4.0 * intensity * intensityDampingFactor;
+
+ ofx *= distanceFactor;
+ ofy *= distanceFactor;
+
+ highp float x = qt_TexCoord0.x + ofx;
+ highp float y = 1.0 - qt_TexCoord0.y + ofy;
+
+ highp float fake = (sin((ofy + ofx) * twopi) + 0.5) * 0.05 * (1.2 - qt_TexCoord0.y) * intensity * intensityDampingFactor;
+
+ highp vec4 pix =
+ texture2D(source, vec2(x, y)) * 0.6 +
+ texture2D(source, vec2(x-fake, y)) * 0.15 +
+ texture2D(source, vec2(x, y-fake)) * 0.15 +
+ texture2D(source, vec2(x+fake, y)) * 0.15 +
+ texture2D(source, vec2(x, y+fake)) * 0.15;
+
+ highp float darken = 0.6 - (ofx - ofy) / 2.0;
+ pix.b *= 1.2 * darken;
+ pix.r *= 0.9 * darken;
+ pix.g *= darken;
+
+ gl_FragColor = qt_Opacity * vec4(pix.r, pix.g, pix.b, 1.0);
+ }
+ "
+
+ NumberAnimation on f {
+ running: root.waving
+ loops: Animation.Infinite
+ from: 0
+ to: 1
+ duration: 2410
+ }
+ NumberAnimation on f2 {
+ running: root.waving
+ loops: Animation.Infinite
+ from: 0
+ to: 1
+ duration: 1754
+ }
+ }
+}
diff --git a/tests/manual/performance/drop_shadow_small.png b/tests/manual/performance/drop_shadow_small.png
new file mode 100755
index 0000000..4a9b283
--- /dev/null
+++ b/tests/manual/performance/drop_shadow_small.png
Binary files differ
diff --git a/tests/manual/performance/performance.pro b/tests/manual/performance/performance.pro
new file mode 100644
index 0000000..1b51943
--- /dev/null
+++ b/tests/manual/performance/performance.pro
@@ -0,0 +1,23 @@
+QT += opengl declarative testlib
+
+TARGET = tst_performance
+
+SOURCES += \
+ tst_performance.cpp \
+ ../../../src/shadereffectitem.cpp \
+ ../../../src/shadereffectsource.cpp \
+ ../../../src/shadereffect.cpp \
+ ../../../src/shadereffectbuffer.cpp \
+ ../../../src/scenegraph/qsggeometry.cpp
+
+HEADERS += \
+ ../../../src/shadereffectitem.h \
+ ../../../src/shadereffectsource.h \
+ ../../../src/shadereffect.h \
+ ../../../src/shadereffectbuffer.h \
+ ../../../src/scenegraph/qsggeometry.h
+
+OTHER_FILES += \
+ *.qml \
+ *.png \
+ *.jpg
diff --git a/tests/manual/performance/sydney5.png b/tests/manual/performance/sydney5.png
new file mode 100644
index 0000000..300a6fd
--- /dev/null
+++ b/tests/manual/performance/sydney5.png
Binary files differ
diff --git a/tests/manual/performance/tile.jpg b/tests/manual/performance/tile.jpg
new file mode 100644
index 0000000..4aeebe5
--- /dev/null
+++ b/tests/manual/performance/tile.jpg
Binary files differ
diff --git a/tests/manual/performance/tst_performance.cpp b/tests/manual/performance/tst_performance.cpp
new file mode 100644
index 0000000..4755d04
--- /dev/null
+++ b/tests/manual/performance/tst_performance.cpp
@@ -0,0 +1,110 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/qtest.h>
+#include <QtDeclarative>
+#include "../../../src/shadereffectitem.h"
+#include "../../../src/shadereffectsource.h"
+//#include "../../../src/shadereffect.h"
+
+class BenchmarkItem : public QDeclarativeItem
+{
+ Q_OBJECT
+
+public:
+ BenchmarkItem( QDeclarativeItem * parent = 0 ) : QDeclarativeItem(parent)
+ , m_frameCount(0)
+ {
+ setFlag(QGraphicsItem::ItemHasNoContents, false);
+ }
+
+ void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {
+ QDeclarativeItem::paint(painter, option, widget);
+ if (timer.restart() > 7) m_frameCount++;
+ }
+
+ int frameCount() { return m_frameCount; }
+
+private:
+ int m_frameCount;
+ QTime timer;
+};
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ QDeclarativeView view;
+ view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
+ view.setAttribute(Qt::WA_OpaquePaintEvent);
+ view.setAttribute(Qt::WA_NoSystemBackground);
+ view.setResizeMode(QDeclarativeView::SizeViewToRootObject);
+
+ qmlRegisterType<ShaderEffectItem>("Qt.labs.shaders", 1, 0, "ShaderEffectItem");
+ qmlRegisterType<ShaderEffectSource>("Qt.labs.shaders", 1, 0, "ShaderEffectSource");
+
+ QGLFormat format = QGLFormat::defaultFormat();
+ format.setSampleBuffers(false);
+ format.setSwapInterval(1);
+
+ QGLWidget* glWidget = new QGLWidget(format);
+ glWidget->setAutoFillBackground(false);
+ view.setViewport(glWidget);
+ view.show();
+
+ view.setSource(QUrl::fromLocalFile("TestWater.qml"));
+ BenchmarkItem *benchmarkItem;
+
+ qDebug() << "Sea Water benchmark:";
+ benchmarkItem = new BenchmarkItem(dynamic_cast<QDeclarativeItem *>(view.rootObject()));
+ QTest::qWait(5000);
+ qDebug() << "Rendered " << benchmarkItem->frameCount() << " frames in 5 seconds";
+ qDebug() << "Average " << benchmarkItem->frameCount() / 5.0 << " frames per second";
+
+ qDebug() << "Gaussian drop shadow benchmark:";
+ view.setSource(QUrl::fromLocalFile("TestGaussianDropShadow.qml"));
+ benchmarkItem = new BenchmarkItem(dynamic_cast<QDeclarativeItem *>(view.rootObject()));
+ QTest::qWait(5000);
+ qDebug() << "Rendered " << benchmarkItem->frameCount() << " frames in 5 seconds";
+ qDebug() << "Average " << benchmarkItem->frameCount() / 5.0 << " frames per second";
+}
+
+#include "tst_performance.moc"
diff --git a/tests/manual/qmlshadersplugintest/main.cpp b/tests/manual/qmlshadersplugintest/main.cpp
new file mode 100644
index 0000000..3f40e92
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/main.cpp
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/QApplication>
+#include <QtOpenGL>
+#include "qmlapplicationviewer.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ QGLFormat format = QGLFormat::defaultFormat();
+ format.setSampleBuffers(false);
+ format.setSwapInterval(1);
+
+ QGLWidget* glWidget = new QGLWidget(format);
+ glWidget->setAutoFillBackground(false);
+
+ QmlApplicationViewer viewer;
+ viewer.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
+ viewer.setViewport(glWidget);
+ viewer.setAttribute(Qt::WA_OpaquePaintEvent);
+ viewer.setAttribute(Qt::WA_NoSystemBackground);
+ viewer.setOrientation(QmlApplicationViewer::Auto);
+ viewer.setMainQmlFile(QLatin1String("qml/qmlshadersplugintest/main.qml"));
+ viewer.show();
+
+ return app.exec();
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestActive.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestActive.qml
new file mode 100644
index 0000000..8aaee0d
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestActive.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "red"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ //effect.active = !effect.active
+ effect.visible = !effect.visible
+ }
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ }
+ "
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: effect.visible ? "Effect active (display should be green)" : "Effect not active (display should be red)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBasic.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBasic.qml
new file mode 100644
index 0000000..c7ec908
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBasic.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Item {
+ anchors.fill: parent;
+
+ ShaderEffectItem {
+ anchors.fill: parent;
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(qt_TexCoord0.x, qt_TexCoord0.y, 1, 1);
+ }
+ "
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBlending.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBlending.qml
new file mode 100644
index 0000000..d7ce837
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBlending.qml
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "green"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ effect.blending = !effect.blending
+ }
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 0.0);
+ }
+ "
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: effect.blending ? "Effect blending (display should be orange)" : "Effect not blending (display should be red)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBlendingModes.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBlendingModes.qml
new file mode 100644
index 0000000..bd60c68
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestBlendingModes.qml
@@ -0,0 +1,267 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Item {
+ id: blendModeTest
+ property real blendItemHeight: 60
+
+ anchors.fill: parent;
+
+ Rectangle {
+ width: parent.width / 6
+ height: parent.height
+ color: "black"
+ }
+ Rectangle {
+ x: parent.width/6 * 1
+ width: parent.width / 6
+ height: parent.height
+ color: "white"
+ }
+ Rectangle {
+ x: parent.width/6 * 2
+ width: parent.width / 6
+ height: parent.height
+ color: "gray"
+ }
+ Rectangle {
+ x: parent.width/6 * 3
+ width: parent.width / 6
+ height: parent.height
+ color: "red"
+ }
+ Rectangle {
+ x: parent.width/6 * 4
+ width: parent.width / 6
+ height: parent.height
+ color: "green"
+ }
+ Rectangle {
+ x: parent.width/6 * 5
+ width: parent.width / 6
+ height: parent.height
+ color: "blue"
+ }
+
+
+ Image {
+ anchors.fill: parent;
+ source: "image.png"
+
+ }
+
+ Rectangle {
+ id: first
+ anchors.top: parent.top
+ anchors.topMargin: 60
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ color: "#8000ff00"
+ Text {
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 5
+ text: " Rectangle color #8000ff00"
+ color: "white"
+ }
+ }
+ Rectangle {
+ id: second
+ anchors.top: first.bottom
+ anchors.topMargin: 5
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ color: "#ff00ff00"
+ opacity: 0.5
+ Text {
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 5
+ text: " Rectangle color #ff00ff00, opacity 0.5"
+ color: "white"
+ }
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.top: second.bottom
+ anchors.topMargin: 5
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 0.5);
+ }
+ "
+ Text {
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 5
+ text: " ShaderEffectItem gl_FragColor=vec4(0.0, 1.0, 0.0, 0.5)"
+ color: "white"
+ }
+ }
+
+ ShaderEffectItem {
+ id: effect2
+ anchors.top: effect.bottom
+ anchors.topMargin: 5
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(0.0, 0.5, 0.0, 0.5);
+ }
+ "
+ Text {
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 5
+ text: " ShaderEffectItem gl_FragColor=vec4(0.0, 0.5, 0.0, 0.5)"
+ color: "white"
+ }
+ }
+
+
+ Image {
+ id: image1
+ source: "green_image_transparent.png"
+ anchors.top: effect2.bottom
+ anchors.topMargin: 5
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ }
+ Text {
+ anchors.bottom: image1.bottom
+ anchors.bottomMargin: 5
+ text: " Image, green and 50% alpha"
+ color: "white"
+ }
+
+
+ ShaderEffectItem {
+ id: effect3
+ property variant source: ShaderEffectSource {
+ sourceItem: image1
+ hideSource: false
+ }
+ anchors.top: image1.bottom
+ anchors.topMargin: 5
+
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ Text {
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 5
+ text: " ShaderEffectItem, source item green 50% alpha."
+ color: "white"
+ }
+ }
+
+ ShaderEffectItem {
+ id: effect4
+ property variant source: ShaderEffectSource {
+ sourceItem: Image { source: "green_image_transparent.png" }
+ hideSource: true
+ }
+ anchors.top: effect3.bottom
+ anchors.topMargin: 5
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ Text {
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 5
+ text: " ShaderEffectItem, source image green 50% alpha."
+ color: "white"
+ }
+ }
+
+
+ Rectangle {
+ id: greenRect2
+ anchors.top: effect4.bottom
+ anchors.topMargin: 5
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ opacity: 0.5
+ color: "green"
+ }
+
+
+ ShaderEffectItem {
+ id: effect5
+ property variant source: ShaderEffectSource { sourceItem: greenRect2; hideSource: true }
+ anchors.top: effect4.bottom
+ anchors.topMargin: 5
+
+ width: parent.width
+ height: blendModeTest.blendItemHeight
+ Text {
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 5
+ text: " ShaderEffectItem, source item green rect with 0.5 opacity."
+ color: "white"
+ }
+ }
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ }
+ }
+
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "Blending test"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestEffectHierarchy.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestEffectHierarchy.qml
new file mode 100644
index 0000000..e3a4c80
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestEffectHierarchy.qml
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ id :root
+ anchors.fill: parent;
+ color: "green"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ effect1.visible = !effect1.visible
+ effect2.visible = !effect2.visible
+ //effect3.visible = !effect3.visible
+ }
+ }
+
+ Rectangle {
+ id: a
+ x: 90
+ y: 90
+ color: "red"
+ width: 220
+ height: 220
+ Rectangle {
+ id: b
+ x: 10
+ y: 10
+ color: "blue"
+ width: 100
+ height: 100
+ rotation: 5
+ Rectangle {
+ id: c
+ x: 10
+ y: 10
+ color: "black"
+ width: 80
+ height: 80
+ }
+ }
+ Rectangle {
+ id: d
+ x: 10
+ y: 110
+ color: "yellow"
+ width: 100
+ height: 100
+ }
+ }
+
+ ShaderEffectItem {
+ id: effect1
+ anchors.fill: a
+ property variant source: ShaderEffectSource{ sourceItem: a; hideSource: true }
+ }
+
+ ShaderEffectItem {
+ id: effect2
+ x: 100
+ y: 100
+ width: 100
+ height: 100
+ rotation: 5
+ property variant source: ShaderEffectSource{ sourceItem: b; hideSource: true }
+ }
+
+// ShaderEffectItem {
+// id: effect3
+// x: 110
+// y: 210
+// width: 80
+// height: 80
+// property variant source: ShaderEffectSource{ sourceItem: c; hideSource: true }
+// }
+
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: effect1.visible ? "Effects active" : "Effects NOT active"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestEffectInsideAnotherEffect.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestEffectInsideAnotherEffect.qml
new file mode 100644
index 0000000..ab84557
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestEffectInsideAnotherEffect.qml
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "green"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+
+ }
+ }
+
+ Rectangle {
+ id: theSource
+ color: "red"
+ anchors.centerIn: parent;
+ width: parent.width/2
+ height: parent.height/2
+ }
+
+ ShaderEffectItem {
+ id: effect1
+ anchors.fill: theSource;
+ property variant source: ShaderEffectSource{ sourceItem: theSource; hideSource: true }
+ }
+
+ ShaderEffectItem {
+ id: effect2
+ anchors.fill: effect1;
+ property variant source: effect1
+
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ void main(void)
+ {
+ gl_FragColor = vec4(texture2D(source, qt_TexCoord0.st).rgb, 1.0);
+ }
+ "
+ }
+
+ ShaderEffectItem {
+ id: effect3
+ x: effect2.x
+ y: effect2.y
+ width: effect2.width
+ height: effect2.height
+
+ property variant source: ShaderEffectSource { sourceItem: effect2 ; hideSource: false }
+
+ fragmentShader:
+ "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ void main(void)
+ {
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+ }
+ "
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "Red rect inside green fullscreen rect."
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestFormat.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestFormat.qml
new file mode 100644
index 0000000..9b1c697
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestFormat.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "gray"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ if (theSource.format == ShaderEffectSource.Alpha)
+ theSource.format = ShaderEffectSource.RGB
+ else if (theSource.format == ShaderEffectSource.RGB)
+ theSource.format = ShaderEffectSource.RGBA
+ else if (theSource.format == ShaderEffectSource.RGBA)
+ theSource.format = ShaderEffectSource.Alpha
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image.png" }
+ live: false
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.centerIn: parent
+ width: parent.width
+ height: parent.height
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "Source format test: " + theSource.format
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestFragmentShader.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestFragmentShader.qml
new file mode 100644
index 0000000..0a7f261
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestFragmentShader.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ effect.fragmentShader == effect.redFragmentShader ? effect.fragmentShader = effect.greenFragmentShader : effect.fragmentShader = effect.redFragmentShader
+ }
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+
+ property string redFragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+ }
+ "
+
+ property string greenFragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ }
+ "
+
+ fragmentShader: redFragmentShader
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: effect.fragmentShader == effect.redFragmentShader ? "Effect (display should be red)" : "Effect (display should be green)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestGrab.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestGrab.qml
new file mode 100644
index 0000000..6a20835
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestGrab.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ console.log("Grabbed!")
+ theSource.grab();
+ }
+ }
+
+ Image {
+ id: theSourcImage
+ source: "image_opaque.png"
+ opacity: 0.5
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: theSourcImage
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.centerIn: parent
+ width: parent.width
+ height: parent.height
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "Effect with grab (opacity 0.5)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestHideOriginal.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestHideOriginal.qml
new file mode 100644
index 0000000..4027745
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestHideOriginal.qml
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "green"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ //theSource.hideOriginal = !theSource.hideOriginal
+ theSource.hideSource = !theSource.hideSource
+ }
+ }
+
+ Rectangle {
+ id: redRect
+ anchors.fill: parent;
+ color: "red"
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: redRect
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ uniform sampler2D source;
+ void main() {
+ // Empty fragmentshader, we do not write any pixels via this effect item. We only observe hideoriginal functionality.
+ }
+ "
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ //text: theSource.hideOriginal ? "Hideoriginal true (display should be green)" : "Hideoriginal false (display should be red)"
+ text: theSource.hideSource ? "HideSource true (display should be green)" : "HideSource false (display should be red)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestHorizontalWrap.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestHorizontalWrap.qml
new file mode 100644
index 0000000..92436a8
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestHorizontalWrap.qml
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ theSource.wrapMode == ShaderEffectSource.RepeatHorizontally ? theSource.wrapMode = ShaderEffectSource.ClampToEdge : theSource.wrapMode = ShaderEffectSource.RepeatHorizontally
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image_small.png" }
+ live: false
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+
+ fragmentShader: "
+ uniform lowp sampler2D source;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ vec2 tex = qt_TexCoord0 * 4.0;
+ gl_FragColor = texture2D(source, tex);
+ }
+ "
+
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: theSource.wrapMode == ShaderEffectSource.RepeatHorizontally ? "HorizontalWrap RepeatHorizontally" : "HorizontalWrap ClampToEdge"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageFiltering.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageFiltering.qml
new file mode 100644
index 0000000..07da7b8
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageFiltering.qml
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ theSource.smooth = !theSource.smooth
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image.png" }
+ live: false
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ width: parent.width * 2.0
+ height: parent.height * 2.0
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: !theSource.smooth ? "Filtering nearest (faster)" : "Filtering linear (better quality)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMargins.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMargins.qml
new file mode 100644
index 0000000..8bfafa9
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMargins.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ id: imageMarginTester
+ anchors.fill: parent;
+ color: "green"
+ property real testMarginX: 10
+ property real testMarginY: 10
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+
+ onTriggered: {
+ if (imageMarginTester.testMarginX < 20) {
+ imageMarginTester.testMarginX = 50
+ imageMarginTester.testMarginY = 120
+ }
+ else {
+ imageMarginTester.testMarginX = 10
+ imageMarginTester.testMarginY = 10
+ }
+
+ console.log("onTriggered...")
+ theSource.sourceRect = Qt.rect(-testMarginX, -testMarginY, parent.width + testMarginX*2, parent.height + testMarginY*2)
+ console.log("onTriggered done")
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceImage: "image_opaque.png"
+ sourceRect: Qt.rect(-10,-10, parent.width + 2*10, parent.height + 2*10)
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: theSource.sourceRect.width == 0 ? "No margins" : "Green margins " + imageMarginTester.testMarginX + "x" + imageMarginTester.testMarginY
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMarginsWithTextureSize.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMarginsWithTextureSize.qml
new file mode 100644
index 0000000..61f947a
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMarginsWithTextureSize.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ id: marginTester
+ anchors.fill: parent;
+ color: "green"
+ property real testMarginX: 10
+ property real testMarginY: 10
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ if (marginTester.testMarginX < 20) {
+ marginTester.testMarginX = 50
+ marginTester.testMarginY = 120
+ }
+ else {
+ marginTester.testMarginX = 10
+ marginTester.testMarginY = 10
+ }
+
+ theSource.sourceRect = Qt.rect(-testMarginX, -testMarginY, parent.width + testMarginX*2, parent.height + testMarginY*2)
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceImage: "image_opaque.png"
+ textureSize: Qt.size(160,160)
+ sourceRect: Qt.rect(-10,-10, parent.width + 2*10, parent.height + 2*10)
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: theSource.sourceRect.width == 0 ? "No margins" : "Green margins " + marginTester.testMarginX + "x" + marginTester.testMarginY
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMipmap.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMipmap.qml
new file mode 100644
index 0000000..56b8168
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestImageMipmap.qml
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ if (theSource.mipmap && theSource.smooth){
+ theSource.smooth = false
+ } else if (theSource.mipmap && !theSource.smooth){
+ theSource.smooth = true
+ theSource.mipmap = false
+ } else if (!theSource.mipmap && theSource.smooth){
+ theSource.smooth = false
+ } else if (!theSource.mipmap && !theSource.smooth){
+ theSource.smooth = true
+ theSource.mipmap = true
+ }
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceImage: "wallpaper.jpg"
+ mipmap: false
+ smooth: false
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.centerIn: parent;
+ width: parent.width * 0.8
+ height: parent.height * 0.8
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "Mipmap: " + theSource.mipmap + ", Smooth: " + theSource.smooth
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestItemMargins.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestItemMargins.qml
new file mode 100644
index 0000000..26c6f57
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestItemMargins.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ id: marginTester
+ anchors.fill: parent;
+ color: "green"
+ property real testMarginX: 10
+ property real testMarginY: 10
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ if (marginTester.testMarginX < 20) {
+ marginTester.testMarginX = 50
+ marginTester.testMarginY = 120
+ }
+ else {
+ marginTester.testMarginX = 10
+ marginTester.testMarginY = 10
+ }
+
+ theSource.sourceRect = Qt.rect(-testMarginX, -testMarginY, parent.width + testMarginX*2, parent.height + testMarginY*2)
+ console.log("onTriggered")
+ }
+ }
+
+ Image {
+ id: redrect
+ source: "image_opaque.png"
+ }
+
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: redrect
+ sourceRect: Qt.rect(-10,-10, parent.width + 2*10, parent.height + 2*10)
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: theSource.sourceRect.width == 0 ? "No margins" : "Green margins " + marginTester.testMarginX + "x" + marginTester.testMarginY
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestItemMarginsWithTextureSize.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestItemMarginsWithTextureSize.qml
new file mode 100644
index 0000000..abbf8f4
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestItemMarginsWithTextureSize.qml
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ id: marginTester
+ anchors.fill: parent;
+ color: "green"
+ property real testMarginX: 10
+ property real testMarginY: 10
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ if (marginTester.testMarginX < 20) {
+ marginTester.testMarginX = 50
+ marginTester.testMarginY = 120
+ }
+ else {
+ marginTester.testMarginX = 10
+ marginTester.testMarginY = 10
+ }
+
+ theSource.sourceRect = Qt.rect(-testMarginX, -testMarginY, parent.width + testMarginX*2, parent.height + testMarginY*2)
+ }
+ }
+
+ Image {
+ id: redrect
+ source: "image_opaque.png"
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: redrect
+ textureSize: Qt.size(160,160)
+ sourceRect: Qt.rect(-10,-10, parent.width + 2*10, parent.height + 2*10)
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: theSource.sourceRect.width == 0 ? "No margins" : "Green margins " + marginTester.testMarginX + "x" + marginTester.testMarginY
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestLive.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestLive.qml
new file mode 100644
index 0000000..0d3553b
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestLive.qml
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ theSource.live = !theSource.live
+ theSource.grab() // This tests grabbing screenshot from static source
+ }
+ }
+
+ Rectangle {
+ id: greenRect
+ anchors.fill: parent;
+ color: theSource.live ? "green" : "red" // This works if we use grab()
+ property int counter: 0
+ Text {
+ id: counterText
+ anchors.centerIn: parent
+ text: greenRect.counter
+ font.pixelSize: 48
+ }
+ Timer {
+ running: true
+ interval: 100
+ repeat: true
+ onTriggered: {
+ greenRect.counter++
+ }
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: greenRect
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: theSource.live ? "live true (color green, number changes)" : "live false (color red, same number)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestMeshResolution.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestMeshResolution.qml
new file mode 100644
index 0000000..e8ddc61
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestMeshResolution.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "red"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ effect.meshResolution.width == 1 ? effect.meshResolution = Qt.size(40,40) : effect.meshResolution = Qt.size(1,1)
+ }
+ }
+
+ Rectangle {
+ id: thesource
+ anchors.centerIn: parent;
+ color: "green"
+ width: parent.width
+ height: parent.height
+ Image {
+ anchors.centerIn: parent;
+ source: "image_opaque.png"
+ }
+ }
+
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: thesource;
+ property variant source: ShaderEffectSource { sourceItem: thesource }
+
+ vertexShader: "
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ uniform highp mat4 qt_ModelViewProjectionMatrix;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ qt_TexCoord0 = qt_MultiTexCoord0;
+
+ highp vec4 shift = vec4(cos(1071. * qt_MultiTexCoord0.x + 1.0) + sin(2051. * qt_MultiTexCoord0.y + 1.0),
+ cos(1131. * qt_MultiTexCoord0.x + 1.0) + sin(3039. * qt_MultiTexCoord0.x + 1.0), 0, 0) * 3.0;
+
+ if (qt_MultiTexCoord0.x < 0.01 || qt_MultiTexCoord0.x > 0.99)
+ shift.x = 0.;
+ if (qt_MultiTexCoord0.y < 0.01 || qt_MultiTexCoord0.y > 0.99)
+ shift.y = 0.;
+
+ gl_Position = qt_ModelViewProjectionMatrix * (qt_Vertex + shift);
+ }
+ "
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: effect.meshResolution.width == 1 ? "Resolution (1,1) (image looks normal)" : "Resolution (40,40) (image looks distorted)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestOneSource.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestOneSource.qml
new file mode 100644
index 0000000..8b92247
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestOneSource.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "black"
+
+ Text {
+ id: text
+ anchors.centerIn: parent
+ font.pixelSize: 80
+ text: "Shaderz!"
+ }
+
+ ShaderEffectSource {
+ id: source
+ sourceItem: text
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ anchors.fill: text;
+
+ property variant source: source
+
+ fragmentShader: "
+ uniform lowp sampler2D source;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(qt_TexCoord0.x, qt_TexCoord0.y, 1, 1) * texture2D(source, qt_TexCoord0).a;
+ }
+ "
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestOpacity.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestOpacity.qml
new file mode 100644
index 0000000..af5ecf7
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestOpacity.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ if (effect.opacity > 0.9)
+ effect.opacity = 0.0
+ else if (effect.opacity < 0.5)
+ effect.opacity = 0.5
+ else if (effect.opacity < 0.9)
+ effect.opacity = 1.0
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image_opaque.png" }
+ live: false
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.centerIn: parent
+ width: parent.width
+ height: parent.height
+ property variant source: theSource
+
+ fragmentShader: "
+ uniform highp float qt_Opacity;
+ uniform lowp sampler2D source;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(texture2D(source, qt_TexCoord0).rgb, qt_Opacity);
+ }
+ "
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "Effect with opacity: " + effect.opacity
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestRotation.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestRotation.qml
new file mode 100644
index 0000000..4262ebc
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestRotation.qml
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ if (effectWrapper.rotation < 45)
+ effectWrapper.rotation = 45
+ else if (effectWrapper.rotation < 90)
+ effectWrapper.rotation = 90
+ else if (effectWrapper.rotation < 180)
+ effectWrapper.rotation = 0
+
+ }
+ }
+
+ Item {
+ id: effectWrapper
+ anchors.fill: parent;
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image_opaque.png" }
+ live: false
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.centerIn: parent
+ width: parent.width - 50
+ height: parent.height - 50
+ property variant source: theSource
+ }
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "Effect is rotated " + effectWrapper.rotation + " degrees"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestScale.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestScale.qml
new file mode 100644
index 0000000..b60747c
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestScale.qml
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ if (effectWrapper.scale < 0.3)
+ effectWrapper.scale = 0.3
+ else if (effectWrapper.scale < 1.7)
+ effectWrapper.scale = 1.7
+ else if (effectWrapper.scale < 2.0)
+ effectWrapper.scale = 0.1
+ }
+ }
+
+ Item {
+ id: effectWrapper
+ anchors.fill: parent;
+ scale: 0.1
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image_opaque.png" }
+ live: false
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.centerIn: parent
+ width: parent.width - 50
+ height: parent.height - 50
+ property variant source: theSource
+ }
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "Effect is scaled " + effectWrapper.scale
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTextureSize.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTextureSize.qml
new file mode 100644
index 0000000..5ca08cb
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTextureSize.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ theSource.textureSize.width == 64 ? theSource.textureSize = Qt.size(360,640) : theSource.textureSize = Qt.size(64,64)
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image.png" }
+ live: false
+ textureSize: Qt.size(64,64)
+ smooth: true
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: "textureSize:" + theSource.textureSize.width + "x" + theSource.textureSize.height
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTwiceOnSameSource.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTwiceOnSameSource.qml
new file mode 100644
index 0000000..e84b84b
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTwiceOnSameSource.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "black"
+
+ Text {
+ id: text
+ anchors.centerIn: parent
+ font.pixelSize: 80
+ text: "Shaderz!"
+ }
+
+ ShaderEffectSource {
+ id: source
+ sourceItem: text
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ width: parent.width
+ height: parent.height / 2
+ blending: false
+
+ property variant source: source
+
+ fragmentShader: "
+ uniform lowp sampler2D source;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(0, qt_TexCoord0.y, 1, 1) * texture2D(source, qt_TexCoord0).a;
+ }
+ "
+ }
+
+ ShaderEffectItem {
+ width: parent.width
+ y: parent.height / 2
+ height: parent.height / 2
+
+ property variant source: source
+
+ fragmentShader: "
+ uniform lowp sampler2D source;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(qt_TexCoord0.x, 1, 0, 1) * texture2D(source, qt_TexCoord0).a;
+ }
+ "
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTwoSources.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTwoSources.qml
new file mode 100644
index 0000000..c8f12af
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestTwoSources.qml
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "black"
+
+ Rectangle {
+ id: rect;
+ anchors.centerIn: parent
+ width: 1
+ height: 10
+
+ gradient: Gradient {
+ GradientStop { position: 0; color: "#ff0000" }
+ GradientStop { position: 0.5; color: "#00ff00" }
+ GradientStop { position: 1; color: "#0000ff" }
+ }
+ }
+
+ Text {
+ id: text
+ anchors.centerIn: parent
+ font.pixelSize: 80
+ text: "Shaderz!"
+ }
+
+ ShaderEffectSource {
+ id: maskSource
+ sourceItem: text
+ hideSource: true
+ }
+
+ ShaderEffectSource {
+ id: colorSource
+ sourceItem: rect;
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ anchors.fill: text;
+
+ property variant colorSource: colorSource
+ property variant maskSource: maskSource;
+
+ fragmentShader: "
+ uniform lowp sampler2D maskSource;
+ uniform lowp sampler2D colorSource;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = texture2D(maskSource, qt_TexCoord0).a * texture2D(colorSource, qt_TexCoord0.yx);
+ }
+ "
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestVertexShader.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestVertexShader.qml
new file mode 100644
index 0000000..0e12257
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestVertexShader.qml
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "red"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ effect.vertexShader == effect.defaultVertexShader ? effect.vertexShader = effect.dummyVertexShader : effect.vertexShader = effect.defaultVertexShader
+ }
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+
+ property string defaultVertexShader: "
+ uniform highp mat4 qt_ModelViewProjectionMatrix;
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ varying highp vec2 qt_TexCoord0;
+ void main(void)
+ {
+ qt_TexCoord0 = qt_MultiTexCoord0;
+ gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;
+ };
+ "
+
+ property string dummyVertexShader: "
+ uniform highp mat4 qt_ModelViewProjectionMatrix;
+ attribute highp vec4 qt_Vertex;
+ attribute highp vec2 qt_MultiTexCoord0;
+ varying highp vec2 qt_TexCoord0;
+ void main(void)
+ {
+ qt_TexCoord0 = qt_MultiTexCoord0;
+ gl_Position = qt_Vertex * vec4(0.0, 0.0, 0.0, 0.0001);
+ };
+ "
+
+ vertexShader: defaultVertexShader
+
+ fragmentShader: "
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ }
+ "
+
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: effect.vertexShader == effect.defaultVertexShader ? "Effect (display shoud be green)" : "Effect (display shoud be red)"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestVerticalWrap.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestVerticalWrap.qml
new file mode 100644
index 0000000..96171ef
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestVerticalWrap.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ theSource.wrapMode == ShaderEffectSource.RepeatVertically ? theSource.wrapMode = ShaderEffectSource.ClampToEdge : theSource.wrapMode = ShaderEffectSource.RepeatVertically
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image_small.png" }
+ live: false
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+ fragmentShader: "
+ uniform lowp sampler2D source;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ vec2 tex = qt_TexCoord0 * 4.0;
+ gl_FragColor = texture2D(source, tex);
+ }
+ "
+
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: theSource.wrapMode == ShaderEffectSource.RepeatVertically ? "Wrap RepeatVertically" : "VerticalWrap ClampToEdge"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestWrapRepeat.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestWrapRepeat.qml
new file mode 100644
index 0000000..35f6b92
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/TestWrapRepeat.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import Qt 4.7
+import Qt.labs.shaders 1.0
+
+Rectangle {
+ anchors.fill: parent;
+ color: "white"
+
+ Timer {
+ running: true
+ interval: 2000
+ repeat: true
+ onTriggered: {
+ theSource.wrapMode == ShaderEffectSource.Repeat ? theSource.wrapMode = ShaderEffectSource.ClampToEdge : theSource.wrapMode = ShaderEffectSource.Repeat
+ }
+ }
+
+ ShaderEffectSource {
+ id: theSource
+ sourceItem: Image { source: "image_small.png" }
+ live: false
+ hideSource: true
+ }
+
+ ShaderEffectItem {
+ id: effect
+ anchors.fill: parent;
+ property variant source: theSource
+ fragmentShader: "
+ uniform lowp sampler2D source;
+ varying highp vec2 qt_TexCoord0;
+ void main() {
+ vec2 tex = qt_TexCoord0 * 4.0;
+ gl_FragColor = texture2D(source, tex);
+ }
+ "
+
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 40
+ color: "#cc000000"
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ text: theSource.wrapMode == ShaderEffectSource.Repeat ? "Wrap Repeat" : "Wrap ClampToEdge"
+ color: "white"
+ font.bold: true
+ }
+ }
+}
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/back.svg b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/back.svg
new file mode 100755
index 0000000..31a78be
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/back.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
+<rect fill="none" width="30" height="30"/>
+<path fill="#FFFFFF" d="M19,8h-9V5c0-0.389-0.225-0.74-0.576-0.906C9.289,4.031,9.145,4,9,4C8.771,4,8.543,4.079,8.359,4.231
+ l-6,5.001C2.132,9.422,2,9.703,2,10s0.132,0.578,0.359,0.768l6,5C8.543,15.921,8.771,16,9,16c0.145,0,0.289-0.031,0.424-0.094
+ C9.775,15.741,10,15.389,10,15v-3h9c2.757,0,5,2.243,5,5s-2.243,5-5,5h-6.917c-1.104,0-2,0.896-2,2s0.896,2,2,2H19
+ c4.963,0,9-4.037,9-9S23.963,8,19,8z"/>
+</svg>
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestActive-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestActive-1.png
new file mode 100644
index 0000000..564ec9e
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestActive-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestActive-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestActive-2.png
new file mode 100644
index 0000000..cffd9b8
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestActive-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBasic-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBasic-1.png
new file mode 100644
index 0000000..26a13bd
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBasic-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlendModes-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlendModes-1.png
new file mode 100644
index 0000000..0fd88a0
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlendModes-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlending-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlending-1.png
new file mode 100644
index 0000000..16b6f9a
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlending-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlending-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlending-2.png
new file mode 100644
index 0000000..c399dac
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestBlending-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectHierarchy-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectHierarchy-1.png
new file mode 100644
index 0000000..4091ba2
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectHierarchy-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectHierarchy-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectHierarchy-2.png
new file mode 100644
index 0000000..f7ca15c
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectHierarchy-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectInsideAnotherEffect-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectInsideAnotherEffect-1.png
new file mode 100644
index 0000000..945b842
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectInsideAnotherEffect-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectsHierarchy.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectsHierarchy.png
new file mode 100644
index 0000000..a1108d7
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestEffectsHierarchy.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestFragmentShader-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestFragmentShader-1.png
new file mode 100644
index 0000000..b88edee
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestFragmentShader-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestFragmentShader-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestFragmentShader-2.png
new file mode 100644
index 0000000..0d12eb5
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestFragmentShader-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestGrab-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestGrab-1.png
new file mode 100644
index 0000000..4b73489
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestGrab-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHideOriginal-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHideOriginal-1.png
new file mode 100644
index 0000000..a812e9b
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHideOriginal-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHideOriginal-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHideOriginal-2.png
new file mode 100644
index 0000000..2cdaf21
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHideOriginal-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHorizontalWrap-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHorizontalWrap-1.png
new file mode 100644
index 0000000..2780847
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHorizontalWrap-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHorizontalWrap-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHorizontalWrap-2.png
new file mode 100644
index 0000000..2467c72
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestHorizontalWrap-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestImageFiltering-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestImageFiltering-1.png
new file mode 100644
index 0000000..81cfa1e
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestImageFiltering-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestImageFiltering-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestImageFiltering-2.png
new file mode 100644
index 0000000..835135f
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestImageFiltering-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMargins-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMargins-1.png
new file mode 100644
index 0000000..85e8b61
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMargins-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMargins-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMargins-2.png
new file mode 100644
index 0000000..f3826e4
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMargins-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMarginsWithTextureSize-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMarginsWithTextureSize-1.png
new file mode 100644
index 0000000..21a55b1
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMarginsWithTextureSize-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMarginsWithTextureSize-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMarginsWithTextureSize-2.png
new file mode 100644
index 0000000..bd71aa1
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestItemMarginsWithTextureSize-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestLive-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestLive-1.png
new file mode 100644
index 0000000..05c5547
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestLive-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestLive-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestLive-2.png
new file mode 100644
index 0000000..20bdacb
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestLive-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestMeshResolution-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestMeshResolution-1.png
new file mode 100644
index 0000000..37a8d48
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestMeshResolution-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestMeshResolution-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestMeshResolution-2.png
new file mode 100644
index 0000000..40ff010
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestMeshResolution-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOneSource.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOneSource.png
new file mode 100644
index 0000000..821f2df
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOneSource.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-1.png
new file mode 100644
index 0000000..8f9e0df
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-2.png
new file mode 100644
index 0000000..8479b2c
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-3.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-3.png
new file mode 100644
index 0000000..68aa374
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestOpacity-3.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-1.png
new file mode 100644
index 0000000..29ad463
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-2.png
new file mode 100644
index 0000000..5bdfb47
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-3.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-3.png
new file mode 100644
index 0000000..3fc739f
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestRotation-3.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-1.png
new file mode 100644
index 0000000..cbfa1d4
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-2.png
new file mode 100644
index 0000000..a5da3aa
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-3.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-3.png
new file mode 100644
index 0000000..ee97294
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestScale-3.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTextureSize-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTextureSize-1.png
new file mode 100644
index 0000000..ffd8a07
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTextureSize-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTextureSize-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTextureSize-2.png
new file mode 100644
index 0000000..abc3ac8
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTextureSize-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTwiceOnSameSource.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTwiceOnSameSource.png
new file mode 100644
index 0000000..bd2c73d
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTwiceOnSameSource.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTwoSources.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTwoSources.png
new file mode 100644
index 0000000..31bc71c
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestTwoSources.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVertexShader-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVertexShader-1.png
new file mode 100644
index 0000000..8fb3997
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVertexShader-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVertexShader-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVertexShader-2.png
new file mode 100644
index 0000000..c4bdbcd
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVertexShader-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVerticalWrap-1.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVerticalWrap-1.png
new file mode 100644
index 0000000..fdb3f19
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVerticalWrap-1.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVerticalWrap-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVerticalWrap-2.png
new file mode 100644
index 0000000..48bfd23
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestVerticalWrap-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestWrapRepeat-1.png.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestWrapRepeat-1.png.png
new file mode 100644
index 0000000..1d3f0b2
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestWrapRepeat-1.png.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestWrapRepeat-2.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestWrapRepeat-2.png
new file mode 100644
index 0000000..9812973
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/expected_results/Expected-TestWrapRepeat-2.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/green_image_transparent.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/green_image_transparent.png
new file mode 100755
index 0000000..f3024f7
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/green_image_transparent.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image.png
new file mode 100755
index 0000000..144c02d
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image_opaque.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image_opaque.png
new file mode 100755
index 0000000..c73d389
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image_opaque.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image_small.png b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image_small.png
new file mode 100755
index 0000000..b226773
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/image_small.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/main.qml b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/main.qml
new file mode 100644
index 0000000..de5807d
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/main.qml
@@ -0,0 +1,236 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QML Shaders plugin of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Item {
+ id: main
+ width: 360
+ height: 640
+
+ Rectangle {
+ id: background
+ visible: testCaseList.visible
+ anchors.fill: parent
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "#EEEEEE" }
+ GradientStop { position: 1.0; color: "#AAAAAA" }
+ }
+ }
+
+ Loader {
+ id: testLoader
+ width: parent.width
+ height: parent.height
+ visible: !testCaseList.visible
+ }
+
+ ListModel {
+ id: testcaseModel
+ ListElement { name: "TestEffectHierarchy.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestGrab.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestLive.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestImageFiltering.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestWrapRepeat.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestHorizontalWrap.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestVerticalWrap.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestTextureSize.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestItemMargins.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestEffectInsideAnotherEffect.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestItemMarginsWithTextureSize.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestHideOriginal.qml"; group: "Effect source property tests" }
+ ListElement { name: "TestActive.qml"; group: "Effect item property tests" }
+ ListElement { name: "TestBlending.qml"; group: "Effect item property tests" }
+ ListElement { name: "TestBlendingModes.qml"; group: "Effect item property tests" }
+ ListElement { name: "TestOpacity.qml"; group: "Effect item property tests" }
+ ListElement { name: "TestFragmentShader.qml"; group: "Effect item property tests" }
+ ListElement { name: "TestVertexShader.qml"; group: "Effect item property tests" }
+ ListElement { name: "TestMeshResolution.qml"; group: "Effect item property tests" }
+ ListElement { name: "TestRotation.qml"; group: "Shader effect transformation tests" }
+ ListElement { name: "TestScale.qml"; group: "Shader effect transformation tests" }
+ ListElement { name: "TestBasic.qml"; group: "Scenegraph effect tests" }
+ ListElement { name: "TestOneSource.qml"; group: "Scenegraph effect tests" }
+ ListElement { name: "TestTwiceOnSameSource.qml"; group: "Scenegraph effect tests" }
+ ListElement { name: "TestTwoSources.qml"; group: "Scenegraph effect tests" }
+ }
+
+ Component {
+ id: sectionHeading
+ Rectangle {
+ width: testCaseList.width
+ height: 35
+ color: "#00000000"
+
+ Text {
+ text: section
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignLeft
+ anchors.fill: parent
+ anchors.leftMargin: 5
+ font.bold: true
+ style: Text.Raised
+ styleColor: "white"
+ }
+ }
+ }
+
+ ListView {
+ id: testCaseList
+
+ property int hideTranslation: 0
+ transform: Translate {
+ x: testCaseList.hideTranslation
+ }
+
+ anchors.fill: parent
+ anchors.topMargin: 10
+ anchors.leftMargin: 5
+ anchors.rightMargin: 5
+ anchors.bottomMargin: 10
+
+ model: testcaseModel
+ spacing: 3
+
+ state: "testStopped"
+
+ section.property: "group"
+ section.criteria: ViewSection.FullString
+ section.delegate: sectionHeading
+
+ delegate: Rectangle {
+ width: parent.width
+ height: 50
+ radius: 5
+ border.width: 1
+ border.color: "#888888"
+ color: delegateMouseArea.pressed ? "#AAAAFF" : "#FFFFFF"
+ Text {
+ id: delegateText;
+ text: " " + name
+ width: parent.width
+ height: parent.height
+ font.pixelSize: 16
+ verticalAlignment: Text.AlignVCenter
+ }
+ Text {
+ id: delegateText2;
+ text: "> "
+ width: parent.width
+ height: parent.height
+ font.pixelSize: 20
+ smooth: true
+ color: "gray"
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignRight
+ }
+
+ MouseArea {
+ id: delegateMouseArea
+ anchors.fill: parent;
+ onClicked: {
+ testCaseList.state = "testRunning"
+ testLoader.source = name
+ console.log(name)
+ }
+ }
+ }
+
+ states: [
+ State {
+ name: "testRunning"
+ PropertyChanges { target: testCaseList; visible: false; hideTranslation: -main.width }
+ },
+ State {
+ name: "testStopped"
+ PropertyChanges { target: testCaseList; visible: true; hideTranslation: 0 }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ to: "testRunning"
+ SequentialAnimation {
+ NumberAnimation { properties: "hideTranslation"; easing.type: Easing.InQuad; duration: 300 }
+ PropertyAction { target: testCaseList; property: "visible"; value: false }
+ }
+ },
+ Transition {
+ to: "testStopped"
+ SequentialAnimation {
+ PropertyAction { target: testCaseList; property: "visible"; value: true }
+ NumberAnimation { properties: "hideTranslation"; easing.type: Easing.InQuad; duration: 300 }
+ }
+ }
+
+ ]
+ }
+
+ Rectangle {
+ visible: true
+ anchors.bottom: main.bottom
+ anchors.left: main.left
+ anchors.right: main.right
+ height: 40
+ color: "#cc000000"
+ Item {
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ Image {
+ source: "back.svg"
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent;
+ onClicked: {
+ if (testCaseList.visible){
+ Qt.quit()
+ } else if (!testCaseList.state != "testStopped") {
+ testCaseList.state = "testStopped"
+ testLoader.source = ""
+ }
+ }
+ }
+ }
+}
+
diff --git a/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/wallpaper.jpg b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/wallpaper.jpg
new file mode 100755
index 0000000..5bc7b58
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qml/qmlshadersplugintest/wallpaper.jpg
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.cpp b/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.cpp
new file mode 100644
index 0000000..51b5fcc
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.cpp
@@ -0,0 +1,127 @@
+// checksum 0xdf1f version 0x10008
+#include "qmlapplicationviewer.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
+#include <QtDeclarative/QDeclarativeComponent>
+#include <QtDeclarative/QDeclarativeEngine>
+#include <QtDeclarative/QDeclarativeContext>
+
+#if defined(QMLJSDEBUGGER)
+#include <jsdebuggeragent.h>
+#endif
+#if defined(QMLOBSERVER)
+#include <qdeclarativeviewobserver.h>
+#endif
+
+#if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK)
+#include <eikenv.h>
+#include <eikappui.h>
+#include <aknenv.h>
+#include <aknappui.h>
+#endif // Q_OS_SYMBIAN && ORIENTATIONLOCK
+
+class QmlApplicationViewerPrivate
+{
+ QString mainQmlFile;
+ friend class QmlApplicationViewer;
+ static QString adjustPath(const QString &path);
+};
+
+QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
+{
+#ifdef Q_OS_UNIX
+#ifdef Q_OS_MAC
+ if (!QDir::isAbsolutePath(path))
+ return QCoreApplication::applicationDirPath()
+ + QLatin1String("/../Resources/") + path;
+#else
+ const QString pathInShareDir = QCoreApplication::applicationDirPath()
+ + QLatin1String("/../share/")
+ + QFileInfo(QCoreApplication::applicationFilePath()).fileName()
+ + QLatin1Char('/') + path;
+ if (QFileInfo(pathInShareDir).exists())
+ return pathInShareDir;
+#endif
+#endif
+ return path;
+}
+
+QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :
+ QDeclarativeView(parent),
+ m_d(new QmlApplicationViewerPrivate)
+{
+ connect(engine(), SIGNAL(quit()), SLOT(close()));
+ setResizeMode(QDeclarativeView::SizeRootObjectToView);
+#ifdef QMLJSDEBUGGER
+ new QmlJSDebugger::JSDebuggerAgent(engine());
+#endif
+#ifdef QMLOBSERVER
+ new QmlJSDebugger::QDeclarativeViewObserver(this, parent);
+#endif
+}
+
+QmlApplicationViewer::~QmlApplicationViewer()
+{
+ delete m_d;
+}
+
+void QmlApplicationViewer::setMainQmlFile(const QString &file)
+{
+ m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
+ setSource(QUrl::fromLocalFile(m_d->mainQmlFile));
+}
+
+void QmlApplicationViewer::addImportPath(const QString &path)
+{
+ engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
+}
+
+void QmlApplicationViewer::setOrientation(Orientation orientation)
+{
+#ifdef Q_OS_SYMBIAN
+ if (orientation != Auto) {
+#if defined(ORIENTATIONLOCK)
+ const CAknAppUiBase::TAppUiOrientation uiOrientation =
+ (orientation == LockPortrait) ? CAknAppUi::EAppUiOrientationPortrait
+ : CAknAppUi::EAppUiOrientationLandscape;
+ CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi());
+ TRAPD(error,
+ if (appUi)
+ appUi->SetOrientationL(uiOrientation);
+ );
+#else // ORIENTATIONLOCK
+ qWarning("'ORIENTATIONLOCK' needs to be defined on Symbian when locking the orientation.");
+#endif // ORIENTATIONLOCK
+ }
+#elif defined(Q_WS_MAEMO_5)
+ Qt::WidgetAttribute attribute;
+ switch (orientation) {
+ case LockPortrait:
+ attribute = Qt::WA_Maemo5PortraitOrientation;
+ break;
+ case LockLandscape:
+ attribute = Qt::WA_Maemo5LandscapeOrientation;
+ break;
+ case Auto:
+ default:
+ attribute = Qt::WA_Maemo5AutoOrientation;
+ break;
+ }
+ setAttribute(attribute, true);
+#else // Q_OS_SYMBIAN
+ Q_UNUSED(orientation);
+#endif // Q_OS_SYMBIAN
+}
+
+void QmlApplicationViewer::show()
+{
+#ifdef Q_OS_SYMBIAN
+ showFullScreen();
+#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
+ showMaximized();
+#else
+ QDeclarativeView::show();
+#endif
+}
diff --git a/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.h b/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.h
new file mode 100644
index 0000000..ea78431
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.h
@@ -0,0 +1,28 @@
+// checksum 0x39ee version 0x10008
+#ifndef QMLAPPLICATIONVIEWER_H
+#define QMLAPPLICATIONVIEWER_H
+
+#include <QtDeclarative/QDeclarativeView>
+
+class QmlApplicationViewer : public QDeclarativeView
+{
+public:
+ enum Orientation {
+ LockPortrait,
+ LockLandscape,
+ Auto
+ };
+
+ QmlApplicationViewer(QWidget *parent = 0);
+ virtual ~QmlApplicationViewer();
+
+ void setMainQmlFile(const QString &file);
+ void addImportPath(const QString &path);
+ void setOrientation(Orientation orientation);
+ void show();
+
+private:
+ class QmlApplicationViewerPrivate *m_d;
+};
+
+#endif // QMLAPPLICATIONVIEWER_H
diff --git a/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.pri b/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.pri
new file mode 100644
index 0000000..471b9cd
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qmlapplicationviewer/qmlapplicationviewer.pri
@@ -0,0 +1,152 @@
+# checksum 0xc123 version 0x10008
+# This file should not be edited.
+# Future versions of Qt Creator might offer updated versions of this file.
+
+QT += declarative
+
+SOURCES += $$PWD/qmlapplicationviewer.cpp
+HEADERS += $$PWD/qmlapplicationviewer.h
+INCLUDEPATH += $$PWD
+
+contains(DEFINES, QMLOBSERVER) {
+ DEFINES *= QMLJSDEBUGGER
+}
+
+defineTest(minQtVersion) {
+ maj = $$1
+ min = $$2
+ patch = $$3
+ isEqual(QT_MAJOR_VERSION, $$maj) {
+ isEqual(QT_MINOR_VERSION, $$min) {
+ isEqual(QT_PATCH_VERSION, $$patch) {
+ return(true)
+ }
+ greaterThan(QT_PATCH_VERSION, $$patch) {
+ return(true)
+ }
+ }
+ greaterThan(QT_MINOR_VERSION, $$min) {
+ return(true)
+ }
+ }
+ return(false)
+}
+
+contains(DEFINES, QMLJSDEBUGGER) {
+ CONFIG(debug, debug|release) {
+ !minQtVersion(4, 7, 1) {
+ warning()
+ warning("Debugging QML requires the qmljsdebugger library that ships with Qt Creator.")
+ warning("This library requires Qt 4.7.1 or newer.")
+ warning()
+
+ error("Qt version $$QT_VERSION too old for QmlJS Debugging. Aborting.")
+ }
+ isEmpty(QMLJSDEBUGGER_PATH) {
+ warning()
+ warning("Debugging QML requires the qmljsdebugger library that ships with Qt Creator.")
+ warning("Please specify its location on the qmake command line, eg")
+ warning(" qmake -r QMLJSDEBUGGER_PATH=$CREATORDIR/share/qtcreator/qmljsdebugger")
+ warning()
+
+ error("QMLJSDEBUGGER defined, but no QMLJSDEBUGGER_PATH set on command line. Aborting.")
+ DEFINES -= QMLJSDEBUGGER
+ } else {
+ include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri)
+ }
+ } else {
+ DEFINES -= QMLJSDEBUGGER
+ }
+}
+# This file should not be edited.
+# Future versions of Qt Creator might offer updated versions of this file.
+
+defineTest(qtcAddDeployment) {
+for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemsources = $${item}.sources
+ $$itemsources = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath= $$eval($${deploymentfolder}.target)
+ export($$itemsources)
+ export($$itempath)
+ DEPLOYMENT += $$item
+}
+
+MAINPROFILEPWD = $$PWD
+
+symbian {
+ ICON = $${TARGET}.svg
+ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+ contains(DEFINES, ORIENTATIONLOCK):LIBS += -lavkon -leikcore -leiksrv -lcone
+ contains(DEFINES, NETWORKACCESS):TARGET.CAPABILITY += NetworkServices
+} else:win32 {
+ !isEqual(PWD,$$OUT_PWD) {
+ copyCommand = @echo Copying application data...
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$eval($${deploymentfolder}.source)
+ pathSegments = $$split(source, /)
+ sourceAndTarget = $$MAINPROFILEPWD/$$source $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(pathSegments)
+ copyCommand += && $(COPY_DIR) $$replace(sourceAndTarget, /, \\)
+ }
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+} else:unix {
+ maemo5 {
+ installPrefix = /opt/usr
+ desktopfile.path = /usr/share/applications/hildon
+ } else {
+ installPrefix = /usr/local
+ desktopfile.path = /usr/share/applications
+ !isEqual(PWD,$$OUT_PWD) {
+ copyCommand = @echo Copying application data...
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ macx {
+ target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
+ } else {
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+ }
+ copyCommand += && $(MKDIR) $$target
+ copyCommand += && $(COPY_DIR) $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) $$target
+ }
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+ }
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemfiles = $${item}.files
+ $$itemfiles = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath = $${installPrefix}/share/$${TARGET}/$$eval($${deploymentfolder}.target)
+ export($$itemfiles)
+ export($$itempath)
+ INSTALLS += $$item
+ }
+ icon.files = $${TARGET}.png
+ icon.path = /usr/share/icons/hicolor/64x64/apps
+ desktopfile.files = $${TARGET}.desktop
+ target.path = $${installPrefix}/bin
+ export(icon.files)
+ export(icon.path)
+ export(desktopfile.files)
+ export(desktopfile.path)
+ export(target.path)
+ INSTALLS += desktopfile icon target
+}
+
+export (ICON)
+export (INSTALLS)
+export (DEPLOYMENT)
+export (TARGET.EPOCHEAPSIZE)
+export (TARGET.CAPABILITY)
+export (LIBS)
+export (QMAKE_EXTRA_TARGETS)
+}
diff --git a/tests/manual/qmlshadersplugintest/qmlshadersplugintest.desktop b/tests/manual/qmlshadersplugintest/qmlshadersplugintest.desktop
new file mode 100644
index 0000000..c56ac76
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qmlshadersplugintest.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=qmlshadersplugintest
+Exec=/opt/bin/qmlshadersplugintest
+Icon=qmlshadersplugintest
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/tests/manual/qmlshadersplugintest/qmlshadersplugintest.png b/tests/manual/qmlshadersplugintest/qmlshadersplugintest.png
new file mode 100644
index 0000000..707d5c4
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qmlshadersplugintest.png
Binary files differ
diff --git a/tests/manual/qmlshadersplugintest/qmlshadersplugintest.pro b/tests/manual/qmlshadersplugintest/qmlshadersplugintest.pro
new file mode 100644
index 0000000..98101fb
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qmlshadersplugintest.pro
@@ -0,0 +1,29 @@
+QT += declarative opengl
+
+# Add more folders to ship with the application, here
+folder_01.source = qml/qmlshadersplugintest
+folder_01.target = qml
+DEPLOYMENTFOLDERS = folder_01
+
+# Additional import path used to resolve Qml modules in Creator's code model
+QML_IMPORT_PATH =
+
+# Avoid auto screen rotation
+#DEFINES += ORIENTATIONLOCK
+
+# Needs to be defined for Symbian
+#DEFINES += NETWORKACCESS
+
+symbian:TARGET.UID3 = 0xE40472A7
+
+# Define QMLJSDEBUGGER to enable basic debugging (setting breakpoints etc)
+# Define QMLOBSERVER for advanced features (requires experimental QmlInspector plugin!)
+#DEFINES += QMLJSDEBUGGER
+#DEFINES += QMLOBSERVER
+
+# The .cpp file which was generated for your project. Feel free to hack it.
+SOURCES += main.cpp
+
+# Please do not modify the following two lines. Required for deployment.
+include(qmlapplicationviewer/qmlapplicationviewer.pri)
+qtcAddDeployment()
diff --git a/tests/manual/qmlshadersplugintest/qmlshadersplugintest.svg b/tests/manual/qmlshadersplugintest/qmlshadersplugintest.svg
new file mode 100644
index 0000000..566acfa
--- /dev/null
+++ b/tests/manual/qmlshadersplugintest/qmlshadersplugintest.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ height="44px"
+ version="1.1"
+ viewBox="0 0 44 44"
+ width="44px"
+ x="0px"
+ y="0px"
+ id="svg2"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="qt.svg">
+ <metadata
+ id="metadata18">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs16">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 22 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="44 : 22 : 1"
+ inkscape:persp3d-origin="22 : 14.666667 : 1"
+ id="perspective2836" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1020"
+ id="namedview14"
+ showgrid="false"
+ inkscape:zoom="21.454545"
+ inkscape:cx="49.412871"
+ inkscape:cy="21.894358"
+ inkscape:window-x="-4"
+ inkscape:window-y="-4"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g3" />
+ <g
+ transform="matrix(0.18308778,0,0,0.18308778,6.6100946,3.2385199)"
+ id="g3">
+ <path
+ d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
+ style="fill:#006225"
+ id="path5"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
+ style="fill:#80c342"
+ id="path7" />
+ <path
+ d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
+ style="fill:#006225"
+ id="path11" />
+ <path
+ d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
+ style="fill:#006225"
+ id="path13" />
+ <path
+ id="path17"
+ style="fill:#ffffff"
+ d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z" />
+ <path
+ d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
+ style="fill:#006225"
+ id="path19" />
+ <path
+ id="path21"
+ style="fill:#006225"
+ d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z" />
+ </g>
+</svg>
diff --git a/tests/tests.pro b/tests/tests.pro
new file mode 100644
index 0000000..0922994
--- /dev/null
+++ b/tests/tests.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = auto manual