summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@nokia.com>2010-09-13 12:13:28 +0200
committerPaul Olav Tvete <paul.tvete@nokia.com>2010-09-13 12:13:28 +0200
commit8f9d38ed63a2c568596febe5ea59a55fe03d7ba9 (patch)
treeaed0951fc53191a24c3f64862554976c57a708c9
parent0bf1b83cd7d972a69388cdbd759dbba8b1baffd2 (diff)
parent72cc21e597f2d77ea1be3c1a3f7df36d8909d2fc (diff)
Merge branch 'qt-4.7' into lighthouse-4.7
Conflicts: configure src/corelib/tools/qsimd.cpp
-rwxr-xr-xbin/createpackage.pl17
-rwxr-xr-xbin/patch_capabilities.pl9
-rwxr-xr-xbin/syncqt234
-rwxr-xr-xconfigure85
-rwxr-xr-xconfigure.exebin1320448 -> 1321472 bytes
-rw-r--r--demos/browser/downloadmanager.cpp2
-rw-r--r--demos/browser/settings.cpp2
-rw-r--r--demos/declarative/calculator/Core/calculator.js10
-rw-r--r--demos/declarative/calculator/calculator.qml16
-rw-r--r--demos/declarative/flickr/common/Progress.qml2
-rw-r--r--demos/declarative/flickr/common/Slider.qml22
-rw-r--r--demos/declarative/flickr/mobile/Button.qml2
-rw-r--r--demos/declarative/flickr/mobile/ImageDetails.qml24
-rw-r--r--demos/declarative/flickr/mobile/ListDelegate.qml6
-rw-r--r--demos/declarative/flickr/mobile/TitleBar.qml2
-rw-r--r--demos/declarative/minehunt/MinehuntCore/pics/No-Ones-Laughing-3.jpgbin30730 -> 0 bytes
-rw-r--r--demos/declarative/minehunt/MinehuntCore/pics/background.pngbin0 -> 313930 bytes
-rw-r--r--demos/declarative/minehunt/MinehuntCore/pics/quit.pngbin0 -> 583 bytes
-rw-r--r--demos/declarative/minehunt/main.cpp1
-rw-r--r--demos/declarative/minehunt/minehunt.pro1
-rw-r--r--demos/declarative/minehunt/minehunt.qml14
-rw-r--r--demos/declarative/photoviewer/photoviewer.qml5
-rw-r--r--demos/declarative/rssnews/rssnews.qml20
-rwxr-xr-xdemos/declarative/samegame/SamegameCore/samegame.js3
-rw-r--r--demos/declarative/samegame/samegame.qml1
-rw-r--r--demos/declarative/snake/content/Cookie.qml6
-rw-r--r--demos/declarative/snake/content/Link.qml8
-rw-r--r--demos/declarative/snake/content/snake.js2
-rw-r--r--demos/declarative/snake/snake.qml12
-rw-r--r--demos/declarative/twitter/TwitterCore/AuthView.qml146
-rw-r--r--demos/declarative/twitter/TwitterCore/Button.qml2
-rw-r--r--demos/declarative/twitter/TwitterCore/FatDelegate.qml36
-rw-r--r--demos/declarative/twitter/TwitterCore/HomeTitleBar.qml161
-rw-r--r--demos/declarative/twitter/TwitterCore/Input.qml (renamed from doc/src/snippets/declarative/qmldocuments.qml)41
-rw-r--r--demos/declarative/twitter/TwitterCore/MultiTitleBar.qml7
-rw-r--r--demos/declarative/twitter/TwitterCore/RssModel.qml59
-rw-r--r--demos/declarative/twitter/TwitterCore/SearchView.qml124
-rw-r--r--demos/declarative/twitter/TwitterCore/TitleBar.qml85
-rw-r--r--demos/declarative/twitter/TwitterCore/ToolBar.qml5
-rw-r--r--demos/declarative/twitter/TwitterCore/UserModel.qml26
-rw-r--r--demos/declarative/twitter/TwitterCore/images/quit.pngbin0 -> 2369 bytes
-rw-r--r--demos/declarative/twitter/TwitterCore/qmldir4
-rw-r--r--demos/declarative/twitter/twitter.qml74
-rw-r--r--demos/declarative/webbrowser/content/Header.qml30
-rw-r--r--demos/declarative/webbrowser/content/pics/edit-delete.pngbin1333 -> 831 bytes
-rw-r--r--demos/declarative/webbrowser/content/pics/go-jump-locationbar.pngbin714 -> 408 bytes
-rw-r--r--demos/declarative/webbrowser/content/pics/go-next-view.pngbin1187 -> 1310 bytes
-rw-r--r--demos/declarative/webbrowser/content/pics/go-previous-view.pngbin1226 -> 1080 bytes
-rw-r--r--demos/embedded/anomaly/src/AddressBar.cpp20
-rw-r--r--demos/embedded/flightinfo/flightinfo.pro2
-rw-r--r--demos/embedded/qmlcalculator/qmlcalculator.cpp4
-rw-r--r--demos/embedded/qmlclocks/qmlclocks.cpp2
-rw-r--r--demos/embedded/qmldialcontrol/qmldialcontrol.cpp2
-rw-r--r--demos/embedded/qmleasing/deployment.pri2
-rw-r--r--demos/embedded/qmleasing/qmleasing.cpp2
-rw-r--r--demos/embedded/qmlflickr/qmlflickr.cpp4
-rw-r--r--demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp2
-rw-r--r--demos/embedded/qmltwitter/qmltwitter.cpp3
-rw-r--r--demos/embedded/weatherinfo/weatherinfo.pro2
-rw-r--r--demos/qtdemo/menumanager.cpp4
-rw-r--r--dist/changes-4.6.48
-rw-r--r--dist/changes-4.7.036
-rw-r--r--dist/changes-4.7.1118
-rw-r--r--doc/src/declarative/anchor-layout.qdoc2
-rw-r--r--doc/src/declarative/codingconventions.qdoc2
-rw-r--r--doc/src/declarative/declarativeui.qdoc98
-rw-r--r--doc/src/declarative/elements.qdoc9
-rw-r--r--doc/src/declarative/extending-tutorial.qdoc1
-rw-r--r--doc/src/declarative/extending.qdoc24
-rw-r--r--doc/src/declarative/javascriptblocks.qdoc34
-rw-r--r--doc/src/declarative/pics/flipable.gifbin80659 -> 131710 bytes
-rw-r--r--doc/src/declarative/pics/spacing_a.pngbin547 -> 0 bytes
-rw-r--r--doc/src/declarative/pics/spacing_b.pngbin560 -> 0 bytes
-rw-r--r--doc/src/declarative/propertybinding.qdoc33
-rw-r--r--doc/src/declarative/qdeclarativedocument.qdoc67
-rw-r--r--doc/src/declarative/qdeclarativemodels.qdoc155
-rw-r--r--doc/src/declarative/qml-intro.qdoc61
-rw-r--r--doc/src/declarative/qmlruntime.qdoc12
-rw-r--r--doc/src/development/qmake-manual.qdoc111
-rw-r--r--doc/src/examples/qml-examples.qdoc4
-rw-r--r--doc/src/examples/qml-twitter.qdoc4
-rw-r--r--doc/src/getting-started/examples.qdoc4
-rw-r--r--doc/src/getting-started/gettingstartedqml.qdoc50
-rw-r--r--doc/src/getting-started/installation.qdoc10
-rw-r--r--doc/src/getting-started/known-issues.qdoc4
-rw-r--r--doc/src/images/qml-borderimage-normal-image.pngbin0 -> 5282 bytes
-rw-r--r--doc/src/images/qml-borderimage-scaled.pngbin0 -> 5580 bytes
-rw-r--r--doc/src/images/qml-borderimage-tiled.pngbin0 -> 5889 bytes
-rw-r--r--doc/src/images/qml-flow-snippet.pngbin0 -> 11465 bytes
-rw-r--r--doc/src/images/qml-flow-text1.pngbin0 -> 9647 bytes
-rw-r--r--doc/src/images/qml-flow-text2.pngbin0 -> 10870 bytes
-rw-r--r--doc/src/images/qml-grid-no-spacing.pngbin0 -> 416 bytes
-rw-r--r--doc/src/images/qml-grid-spacing.pngbin0 -> 421 bytes
-rw-r--r--doc/src/images/qml-image-example.pngbin58184 -> 49584 bytes
-rw-r--r--doc/src/images/qml-listview-snippet.pngbin0 -> 2048 bytes
-rw-r--r--doc/src/images/qml-repeater-grid-index.pngbin0 -> 17964 bytes
-rw-r--r--doc/src/images/qml-row.pngbin0 -> 3090 bytes
-rw-r--r--doc/src/images/symbian-draw-pixmap-sequence.pngbin0 -> 5724 bytes
-rw-r--r--doc/src/images/symbian-qt-draw-pixmap-sequence.pngbin0 -> 9141 bytes
-rw-r--r--doc/src/images/symbian-qt-rendering-stack-non-screenplay.pngbin0 -> 52802 bytes
-rw-r--r--doc/src/images/symbian-rendering-stack-non-screenplay.pngbin0 -> 44655 bytes
-rw-r--r--doc/src/index.qdoc4
-rw-r--r--doc/src/legal/3rdparty.qdoc32
-rw-r--r--doc/src/platforms/compiler-notes.qdoc3
-rw-r--r--doc/src/platforms/platform-notes.qdoc50
-rw-r--r--doc/src/platforms/supported-platforms.qdoc51
-rw-r--r--doc/src/platforms/symbian-introduction.qdoc1
-rw-r--r--doc/src/platforms/x11overlays.qdoc1
-rw-r--r--doc/src/qt4-intro.qdoc3
-rw-r--r--doc/src/snippets/declarative/anchoranimation.qml1
-rw-r--r--doc/src/snippets/declarative/anchorchanges.qml53
-rw-r--r--doc/src/snippets/declarative/animatedimage.qml61
-rw-r--r--doc/src/snippets/declarative/behavior.qml57
-rw-r--r--doc/src/snippets/declarative/borderimage/borderimage-scaled.qml (renamed from doc/src/snippets/declarative/borderimage.qml)40
-rw-r--r--doc/src/snippets/declarative/borderimage/borderimage-tiled.qml81
-rw-r--r--doc/src/snippets/declarative/borderimage/normal-image.qml77
-rw-r--r--doc/src/snippets/declarative/borderimage/pics/borderframe.pngbin0 -> 3411 bytes
-rw-r--r--doc/src/snippets/declarative/borderimage/pics/borderframe.svg82
-rw-r--r--doc/src/snippets/declarative/coloranimation.qml57
-rw-r--r--doc/src/snippets/declarative/column/column.qml67
-rw-r--r--doc/src/snippets/declarative/column/vertical-positioner-transition.qml61
-rw-r--r--doc/src/snippets/declarative/column/vertical-positioner.qml50
-rw-r--r--doc/src/snippets/declarative/component.qml57
-rw-r--r--doc/src/snippets/declarative/flickable.qml (renamed from examples/tutorials/modelview/2_formatting/modelview.cpp)20
-rw-r--r--doc/src/snippets/declarative/flipable/flipable.qml (renamed from doc/src/snippets/declarative/flipable.qml)0
-rw-r--r--doc/src/snippets/declarative/flow-diagram.qml75
-rw-r--r--doc/src/snippets/declarative/flow.qml64
-rw-r--r--doc/src/snippets/declarative/grid/grid-items.qml58
-rw-r--r--doc/src/snippets/declarative/grid/grid-no-spacing.qml57
-rw-r--r--doc/src/snippets/declarative/grid/grid-spacing.qml60
-rw-r--r--doc/src/snippets/declarative/grid/grid.qml53
-rw-r--r--doc/src/snippets/declarative/image.qml47
-rw-r--r--doc/src/snippets/declarative/listmodel-modify.qml53
-rw-r--r--doc/src/snippets/declarative/listmodel-nested.qml53
-rw-r--r--doc/src/snippets/declarative/listmodel-simple.qml53
-rw-r--r--doc/src/snippets/declarative/listview/listview-snippet.qml52
-rw-r--r--doc/src/snippets/declarative/numberanimation.qml57
-rw-r--r--doc/src/snippets/declarative/parallelanimation.qml57
-rw-r--r--doc/src/snippets/declarative/parentanimation.qml53
-rw-r--r--doc/src/snippets/declarative/parentchange.qml53
-rw-r--r--doc/src/snippets/declarative/pics/qtlogo.pngbin0 -> 2991 bytes
-rw-r--r--doc/src/snippets/declarative/propertyaction.qml53
-rw-r--r--doc/src/snippets/declarative/propertyanimation.qml53
-rw-r--r--doc/src/snippets/declarative/propertychanges.qml53
-rw-r--r--doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml67
-rw-r--r--doc/src/snippets/declarative/qml-data-models/listelements.qml77
-rw-r--r--doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml64
-rw-r--r--doc/src/snippets/declarative/qml-documents/inline-component.qml (renamed from examples/tutorials/modelview/4_headers/modelview.cpp)29
-rw-r--r--doc/src/snippets/declarative/qml-documents/inline-text-component.qml55
-rw-r--r--doc/src/snippets/declarative/qml-documents/non-trivial.qml (renamed from examples/tutorials/modelview/1_readonly/modelview.h)39
-rw-r--r--doc/src/snippets/declarative/qml-documents/qmldocuments.qml (renamed from examples/tutorials/modelview/4_headers/modelview.h)36
-rw-r--r--doc/src/snippets/declarative/qml-intro/anchors1.qml56
-rw-r--r--doc/src/snippets/declarative/qml-intro/anchors2.qml (renamed from examples/tutorials/modelview/1_readonly/modelview.cpp)30
-rw-r--r--doc/src/snippets/declarative/qml-intro/anchors3.qml65
-rw-r--r--doc/src/snippets/declarative/qml-intro/hello-world1.qml (renamed from examples/tutorials/modelview/3_changingmodel/modelview.cpp)23
-rw-r--r--doc/src/snippets/declarative/qml-intro/hello-world2.qml (renamed from examples/tutorials/modelview/2_formatting/modelview.h)29
-rw-r--r--doc/src/snippets/declarative/qml-intro/hello-world3.qml (renamed from examples/tutorials/modelview/3_changingmodel/modelview.h)30
-rw-r--r--doc/src/snippets/declarative/qml-intro/hello-world4.qml61
-rw-r--r--doc/src/snippets/declarative/qml-intro/hello-world5.qml65
-rw-r--r--doc/src/snippets/declarative/qml-intro/images/qt-logo.svg104
-rw-r--r--doc/src/snippets/declarative/qml-intro/number-animation1.qml64
-rw-r--r--doc/src/snippets/declarative/qml-intro/number-animation2.qml66
-rw-r--r--doc/src/snippets/declarative/qml-intro/rectangle.qml50
-rw-r--r--doc/src/snippets/declarative/qml-intro/sequential-animation1.qml65
-rw-r--r--doc/src/snippets/declarative/qml-intro/sequential-animation2.qml73
-rw-r--r--doc/src/snippets/declarative/qml-intro/sequential-animation3.qml92
-rw-r--r--doc/src/snippets/declarative/qml-intro/states1.qml94
-rw-r--r--doc/src/snippets/declarative/qml-intro/transformations1.qml80
-rw-r--r--doc/src/snippets/declarative/qtobject.qml57
-rw-r--r--doc/src/snippets/declarative/repeaters/repeater-grid-index.qml61
-rw-r--r--doc/src/snippets/declarative/repeaters/repeater.qml (renamed from doc/src/snippets/declarative/repeater.qml)0
-rw-r--r--doc/src/snippets/declarative/rotationanimation.qml53
-rw-r--r--doc/src/snippets/declarative/row.qml62
-rw-r--r--doc/src/snippets/declarative/row/row.qml50
-rw-r--r--doc/src/snippets/declarative/sequentialanimation.qml57
-rw-r--r--doc/src/snippets/declarative/state-when.qml57
-rw-r--r--doc/src/snippets/declarative/state.qml57
-rw-r--r--doc/src/snippets/declarative/states.qml57
-rw-r--r--doc/src/snippets/declarative/systempalette.qml57
-rw-r--r--doc/src/snippets/declarative/transition-from-to.qml57
-rw-r--r--doc/src/snippets/declarative/transition-reversible.qml53
-rw-r--r--doc/src/snippets/declarative/transition.qml57
-rw-r--r--doc/src/snippets/declarative/visualdatamodel.qml53
-rw-r--r--doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp57
-rw-r--r--doc/src/snippets/declarative/~image-fillmode.qml46
-rwxr-xr-xdoc/src/template/style/style.css17
-rw-r--r--[-rwxr-xr-x]doc/src/tutorials/modelview.qdoc575
-rw-r--r--examples/declarative/animation/easing/content/QuitButton.qml52
-rw-r--r--examples/declarative/animation/easing/content/quit.pngbin0 -> 583 bytes
-rw-r--r--examples/declarative/animation/easing/easing.qml19
-rw-r--r--examples/declarative/animation/states/qt-logo.pngbin0 -> 5149 bytes
-rw-r--r--examples/declarative/animation/states/states.qml8
-rw-r--r--examples/declarative/animation/states/transitions.qml8
-rw-r--r--examples/declarative/animation/states/user.pngbin4886 -> 0 bytes
-rw-r--r--examples/declarative/imageelements/image/ImageCell.qml2
-rw-r--r--examples/declarative/imageelements/image/face-smile.pngbin15408 -> 0 bytes
-rw-r--r--examples/declarative/imageelements/image/qt-logo.pngbin0 -> 5149 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/arrow-down.pngbin892 -> 0 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/arrow-up.pngbin929 -> 0 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/list-delete.pngbin1074 -> 0 bytes
-rw-r--r--examples/declarative/positioners/add.pngbin1577 -> 810 bytes
-rw-r--r--examples/declarative/positioners/del.pngbin1661 -> 488 bytes
-rw-r--r--examples/declarative/toys/clocks/clocks.qml5
-rw-r--r--examples/declarative/toys/clocks/content/QuitButton.qml52
-rw-r--r--examples/declarative/toys/clocks/content/quit.pngbin0 -> 583 bytes
-rwxr-xr-xexamples/declarative/tutorials/samegame/samegame4/content/samegame.js4
-rw-r--r--examples/declarative/ui-components/dialcontrol/content/QuitButton.qml52
-rw-r--r--examples/declarative/ui-components/dialcontrol/content/quit.pngbin0 -> 583 bytes
-rw-r--r--examples/declarative/ui-components/dialcontrol/dialcontrol.qml5
-rw-r--r--examples/examples.pro2
-rw-r--r--examples/sql/masterdetail/mainwindow.cpp6
-rw-r--r--examples/tools/treemodelcompleter/mainwindow.cpp2
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/1_readonly/1_readonly.pro13
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/1_readonly/main.cpp9
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/1_readonly/mymodel.cpp0
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/1_readonly/mymodel.h0
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/2_formatting/2_formatting.pro12
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/2_formatting/main.cpp12
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/2_formatting/mymodel.cpp6
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/2_formatting/mymodel.h0
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro12
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/3_changingmodel/main.cpp9
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/3_changingmodel/mymodel.cpp0
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/3_changingmodel/mymodel.h3
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/4_headers/4_headers.pro14
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/4_headers/main.cpp11
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/4_headers/mymodel.cpp0
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/4_headers/mymodel.h0
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/5_edit/5_edit.pro12
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/5_edit/main.cpp4
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/5_edit/mainwindow.cpp (renamed from examples/tutorials/modelview/5_edit/modelview.cpp)6
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/5_edit/mainwindow.h (renamed from examples/tutorials/modelview/5_edit/modelview.h)13
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/5_edit/mymodel.cpp40
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/5_edit/mymodel.h9
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/6_treeview/6_treeview.pro12
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/6_treeview/main.cpp4
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/6_treeview/mainwindow.cpp (renamed from examples/tutorials/modelview/6_treeview/modelview.cpp)24
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/6_treeview/mainwindow.h (renamed from examples/tutorials/modelview/6_treeview/modelview.h)23
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/7_selections/7_selections.pro12
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/7_selections/main.cpp4
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/7_selections/mainwindow.cpp (renamed from examples/tutorials/modelview/7_selections/modelview.cpp)8
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/7_selections/mainwindow.h (renamed from examples/tutorials/modelview/7_selections/modelview.h)17
-rwxr-xr-x[-rw-r--r--]examples/tutorials/modelview/modelview.pro10
-rw-r--r--examples/xmlpatterns/filetree/mainwindow.cpp2
-rw-r--r--mkspecs/common/symbian/symbian-mmp.conf12
-rw-r--r--mkspecs/common/symbian/symbian.conf21
-rw-r--r--mkspecs/features/sis_targets.prf30
-rw-r--r--mkspecs/features/symbian/application_icon.prf15
-rw-r--r--mkspecs/features/symbian/run_on_phone.prf10
-rw-r--r--mkspecs/features/symbian/symbian_building.prf79
-rw-r--r--mkspecs/features/unix/separate_debug_info.prf3
-rw-r--r--mkspecs/features/vxworks.prf11
-rw-r--r--mkspecs/features/win32/embed_manifest_dll.prf5
-rw-r--r--mkspecs/features/win32/embed_manifest_exe.prf5
-rw-r--r--mkspecs/features/win32/msvc_mp.prf2
-rw-r--r--mkspecs/modules/README3
-rw-r--r--mkspecs/modules/qt_webkit_version.pri4
-rw-r--r--mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm2
-rw-r--r--mkspecs/symbian-sbsv2/flm/qt/qt.xml1
-rw-r--r--mkspecs/win32-msvc2008/qmake.conf2
-rw-r--r--mkspecs/win32-msvc2010/qmake.conf2
-rw-r--r--projects.pro4
-rw-r--r--qmake/Makefile.win32364
-rw-r--r--qmake/Makefile.win32-g++4
-rw-r--r--qmake/Makefile.win32-g++-sh4
-rw-r--r--qmake/generators/makefile.cpp41
-rw-r--r--qmake/generators/symbian/symbiancommon.cpp33
-rw-r--r--qmake/generators/symbian/symmake.cpp3
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.cpp66
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp3
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp3
-rw-r--r--qmake/generators/win32/msvc_vcxproj.cpp1
-rw-r--r--qmake/generators/win32/winmakefile.cpp9
-rw-r--r--qmake/qmake.pri3
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog36
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri1
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.cpp2
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.h33
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp111
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.h69
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/SymbianDefines.h42
-rw-r--r--src/3rdparty/phonon/gstreamer/mediaobject.cpp6
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog12
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp10
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.pro36
-rw-r--r--src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp100
-rw-r--r--src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri2
-rw-r--r--src/activeqt/control/qaxserverbase.cpp13
-rw-r--r--src/activeqt/shared/qaxtypes.cpp4
-rw-r--r--src/corelib/global/global.pri2
-rw-r--r--src/corelib/global/qglobal.cpp2
-rw-r--r--src/corelib/global/qlibraryinfo.cpp12
-rw-r--r--src/corelib/io/qdir.cpp479
-rw-r--r--src/corelib/io/qdir.h7
-rw-r--r--src/corelib/io/qfileinfo.cpp216
-rw-r--r--src/corelib/io/qfileinfo.h16
-rw-r--r--src/corelib/io/qfileinfo_p.h114
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp7
-rw-r--r--src/corelib/io/qsettings.cpp6
-rw-r--r--src/corelib/io/qurl.cpp26
-rw-r--r--src/corelib/kernel/qabstractitemmodel.cpp40
-rw-r--r--src/corelib/kernel/qabstractitemmodel_p.h19
-rw-r--r--src/corelib/kernel/qcore_symbian_p.cpp8
-rw-r--r--src/corelib/kernel/qeventdispatcher_symbian.cpp8
-rw-r--r--src/corelib/kernel/qeventdispatcher_win.cpp29
-rw-r--r--src/corelib/plugin/plugin.pri7
-rw-r--r--src/corelib/plugin/qlibrary.cpp53
-rw-r--r--src/corelib/plugin/qsystemlibrary.cpp136
-rw-r--r--src/corelib/plugin/qsystemlibrary_p.h106
-rw-r--r--src/corelib/tools/qbytearray.cpp41
-rw-r--r--src/corelib/tools/qeasingcurve.cpp40
-rw-r--r--src/corelib/tools/qelapsedtimer_unix.cpp129
-rw-r--r--src/corelib/tools/qsimd.cpp316
-rw-r--r--src/corelib/tools/qsimd_p.h8
-rw-r--r--src/corelib/tools/qstring.cpp84
-rw-r--r--src/corelib/tools/qstring.h1
-rw-r--r--src/corelib/tools/qvector.h4
-rw-r--r--src/dbus/qdbusintegrator.cpp3
-rw-r--r--src/declarative/debugger/qdeclarativedebugservice.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativeanchors.cpp9
-rw-r--r--src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp62
-rw-r--r--src/declarative/graphicsitems/qdeclarativeborderimage.cpp135
-rw-r--r--src/declarative/graphicsitems/qdeclarativeevents.cpp5
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable.cpp71
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable_p_p.h1
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflipable.cpp38
-rw-r--r--src/declarative/graphicsitems/qdeclarativefocuspanel.cpp5
-rw-r--r--src/declarative/graphicsitems/qdeclarativefocusscope.cpp5
-rw-r--r--src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp19
-rw-r--r--src/declarative/graphicsitems/qdeclarativegridview.cpp14
-rw-r--r--src/declarative/graphicsitems/qdeclarativegridview_p.h12
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimage.cpp59
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimagebase.cpp38
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimagebase_p.h3
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.cpp98
-rw-r--r--src/declarative/graphicsitems/qdeclarativelayoutitem.cpp7
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp107
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview_p.h13
-rw-r--r--src/declarative/graphicsitems/qdeclarativeloader.cpp11
-rw-r--r--src/declarative/graphicsitems/qdeclarativemousearea.cpp21
-rw-r--r--src/declarative/graphicsitems/qdeclarativepath.cpp58
-rw-r--r--src/declarative/graphicsitems/qdeclarativepathview.cpp285
-rw-r--r--src/declarative/graphicsitems/qdeclarativepathview_p.h1
-rw-r--r--src/declarative/graphicsitems/qdeclarativepathview_p_p.h12
-rw-r--r--src/declarative/graphicsitems/qdeclarativepositioners.cpp503
-rw-r--r--src/declarative/graphicsitems/qdeclarativerectangle.cpp5
-rw-r--r--src/declarative/graphicsitems/qdeclarativerepeater.cpp31
-rw-r--r--src/declarative/graphicsitems/qdeclarativetext.cpp44
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextedit.cpp21
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativetranslate.cpp3
-rw-r--r--src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp23
-rw-r--r--src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h1
-rw-r--r--src/declarative/qml/parser/qdeclarativejslexer.cpp8
-rw-r--r--src/declarative/qml/qdeclarativecompiledbindings.cpp2
-rw-r--r--src/declarative/qml/qdeclarativecompiler.cpp124
-rw-r--r--src/declarative/qml/qdeclarativecompiler_p.h6
-rw-r--r--src/declarative/qml/qdeclarativecomponent.cpp65
-rw-r--r--src/declarative/qml/qdeclarativecomponent.h1
-rw-r--r--src/declarative/qml/qdeclarativecomponent_p.h12
-rw-r--r--src/declarative/qml/qdeclarativecompositetypedata_p.h161
-rw-r--r--src/declarative/qml/qdeclarativecompositetypemanager.cpp776
-rw-r--r--src/declarative/qml/qdeclarativecompositetypemanager_p.h120
-rw-r--r--src/declarative/qml/qdeclarativecontext.cpp8
-rw-r--r--src/declarative/qml/qdeclarativedom.cpp35
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp13
-rw-r--r--src/declarative/qml/qdeclarativeengine_p.h4
-rw-r--r--src/declarative/qml/qdeclarativeimport.cpp157
-rw-r--r--src/declarative/qml/qdeclarativeimport_p.h37
-rw-r--r--src/declarative/qml/qdeclarativeinclude.cpp2
-rw-r--r--src/declarative/qml/qdeclarativeobjectscriptclass.cpp18
-rw-r--r--src/declarative/qml/qdeclarativeparser_p.h7
-rw-r--r--src/declarative/qml/qdeclarativeproperty.cpp1
-rw-r--r--src/declarative/qml/qdeclarativepropertycache.cpp42
-rw-r--r--src/declarative/qml/qdeclarativescriptparser.cpp217
-rw-r--r--src/declarative/qml/qdeclarativescriptparser_p.h13
-rw-r--r--src/declarative/qml/qdeclarativetypeloader.cpp1079
-rw-r--r--src/declarative/qml/qdeclarativetypeloader_p.h321
-rw-r--r--src/declarative/qml/qdeclarativevaluetypescriptclass.cpp2
-rw-r--r--src/declarative/qml/qdeclarativevmemetaobject.cpp14
-rw-r--r--src/declarative/qml/qmetaobjectbuilder.cpp4
-rw-r--r--src/declarative/qml/qml.pri5
-rw-r--r--src/declarative/util/qdeclarativeanimation.cpp56
-rw-r--r--src/declarative/util/qdeclarativebind.cpp15
-rw-r--r--src/declarative/util/qdeclarativeconnections.cpp7
-rw-r--r--src/declarative/util/qdeclarativelistmodel.cpp6
-rw-r--r--src/declarative/util/qdeclarativelistmodelworkeragent.cpp2
-rw-r--r--src/declarative/util/qdeclarativepixmapcache.cpp16
-rw-r--r--src/declarative/util/qdeclarativepropertychanges.cpp6
-rw-r--r--src/declarative/util/qdeclarativesmoothedanimation.cpp33
-rw-r--r--src/declarative/util/qdeclarativesmoothedanimation_p_p.h1
-rw-r--r--src/declarative/util/qdeclarativespringanimation.cpp37
-rw-r--r--src/declarative/util/qdeclarativestate.cpp17
-rw-r--r--src/declarative/util/qdeclarativestateoperations.cpp17
-rw-r--r--src/declarative/util/qdeclarativetransition.cpp6
-rw-r--r--src/declarative/util/qdeclarativetransitionmanager.cpp2
-rw-r--r--src/declarative/util/qdeclarativexmllistmodel.cpp7
-rw-r--r--src/gui/accessible/qaccessible_win.cpp4
-rw-r--r--src/gui/dialogs/qfiledialog_win.cpp12
-rw-r--r--src/gui/dialogs/qwizard_win.cpp6
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp40
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp19
-rw-r--r--src/gui/graphicsview/qgraphicstransform.cpp32
-rw-r--r--src/gui/graphicsview/qgraphicswidget.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicswidget_p.cpp3
-rw-r--r--src/gui/gui.pro2
-rw-r--r--src/gui/image/qpixmap_s60.cpp47
-rw-r--r--src/gui/image/qpixmap_s60_p.h7
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_p.h12
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_s60.cpp67
-rw-r--r--src/gui/kernel/qapplication.cpp6
-rw-r--r--src/gui/kernel/qapplication_mac.mm3
-rw-r--r--src/gui/kernel/qapplication_s60.cpp42
-rw-r--r--src/gui/kernel/qapplication_win.cpp38
-rw-r--r--src/gui/kernel/qapplication_x11.cpp7
-rw-r--r--src/gui/kernel/qcocoasharedwindowmethods_mac_p.h15
-rw-r--r--src/gui/kernel/qdesktopwidget_win.cpp6
-rw-r--r--src/gui/kernel/qeventdispatcher_mac.mm6
-rw-r--r--src/gui/kernel/qgesturemanager.cpp8
-rw-r--r--src/gui/kernel/qgesturemanager_p.h4
-rw-r--r--src/gui/kernel/qsoftkeymanager_s60.cpp2
-rw-r--r--src/gui/kernel/qt_s60_p.h6
-rw-r--r--src/gui/kernel/qwidget.cpp2
-rw-r--r--src/gui/kernel/qwidget_s60.cpp15
-rw-r--r--src/gui/kernel/qwidget_win.cpp6
-rw-r--r--src/gui/painting/qblendfunctions.cpp8
-rw-r--r--src/gui/painting/qdrawhelper.cpp917
-rw-r--r--src/gui/painting/qdrawhelper_neon.cpp191
-rw-r--r--src/gui/painting/qdrawhelper_neon_p.h7
-rw-r--r--src/gui/painting/qdrawhelper_p.h67
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp89
-rw-r--r--src/gui/painting/qdrawhelper_ssse3.cpp3
-rw-r--r--src/gui/painting/qdrawhelper_x86_p.h3
-rw-r--r--src/gui/painting/qpainter.cpp13
-rw-r--r--src/gui/painting/qtransform.h1
-rw-r--r--src/gui/styles/qcleanlooksstyle.cpp10
-rw-r--r--src/gui/styles/qgtkstyle.cpp5
-rw-r--r--src/gui/styles/qs60style.cpp26
-rw-r--r--src/gui/styles/qs60style_p.h1
-rw-r--r--src/gui/styles/qs60style_s60.cpp6
-rw-r--r--src/gui/styles/qwindowsstyle.cpp8
-rw-r--r--src/gui/styles/qwindowsvistastyle.cpp3
-rw-r--r--src/gui/styles/qwindowsxpstyle.cpp4
-rw-r--r--src/gui/text/qfont_s60.cpp31
-rw-r--r--src/gui/text/qfontdatabase_s60.cpp136
-rw-r--r--src/gui/text/qfontdatabase_win.cpp10
-rw-r--r--src/gui/text/qfontengine.cpp16
-rw-r--r--src/gui/text/qfontengine_ft.cpp13
-rw-r--r--src/gui/text/qfontengine_mac.mm17
-rw-r--r--src/gui/text/qfontengine_p.h1
-rw-r--r--src/gui/text/qfontengine_qpf.cpp2
-rw-r--r--src/gui/text/qfontengine_qws.cpp2
-rw-r--r--src/gui/text/qfontengine_s60.cpp9
-rw-r--r--src/gui/text/qfontengine_s60_p.h1
-rw-r--r--src/gui/text/qfontengine_win.cpp6
-rw-r--r--src/gui/text/qstatictext.cpp6
-rw-r--r--src/gui/text/qtextengine.cpp18
-rw-r--r--src/gui/util/qdesktopservices_s60.cpp1
-rw-r--r--src/gui/util/qdesktopservices_win.cpp6
-rw-r--r--src/gui/util/qsystemtrayicon_win.cpp8
-rw-r--r--src/gui/widgets/qcombobox.cpp3
-rw-r--r--src/gui/widgets/qdatetimeedit.cpp18
-rw-r--r--src/gui/widgets/qlinecontrol.cpp4
-rw-r--r--src/gui/widgets/qlineedit.cpp4
-rw-r--r--src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp96
-rw-r--r--src/imports/particles/qdeclarativeparticles.cpp33
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp2
-rw-r--r--src/network/access/qnetworkreply.cpp6
-rw-r--r--src/network/bearer/qnetworkconfigmanager.cpp35
-rw-r--r--src/network/bearer/qnetworkconfigmanager_p.cpp10
-rw-r--r--src/network/kernel/qauthenticator.cpp56
-rw-r--r--src/network/kernel/qhostinfo_unix.cpp5
-rw-r--r--src/network/kernel/qhostinfo_win.cpp14
-rw-r--r--src/network/kernel/qnetworkinterface_win.cpp3
-rw-r--r--src/network/kernel/qnetworkproxy_win.cpp15
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp9
-rw-r--r--src/network/socket/qnativesocketengine_win.cpp1
-rw-r--r--src/network/ssl/qsslsocket.cpp5
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp193
-rw-r--r--src/network/ssl/qsslsocket_openssl_p.h77
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols.cpp36
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp6
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h2
-rw-r--r--src/opengl/qgl.cpp12
-rw-r--r--src/opengl/qgl_mac.mm14
-rw-r--r--src/opengl/qgl_p.h3
-rw-r--r--src/opengl/qgl_win.cpp2
-rw-r--r--src/opengl/qglshaderprogram.cpp10
-rw-r--r--src/opengl/qpixmapdata_gl.cpp40
-rw-r--r--src/opengl/qpixmapdata_gl_p.h2
-rw-r--r--src/opengl/qwindowsurface_gl.cpp20
-rw-r--r--src/plugins/bearer/connman/connman.pro2
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.cpp162
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.h3
-rw-r--r--src/plugins/bearer/connman/qconnmanservice_linux.cpp9
-rw-r--r--src/plugins/bearer/connman/qconnmanservice_linux_p.h1
-rw-r--r--src/plugins/bearer/connman/qofonoservice_linux.cpp940
-rw-r--r--src/plugins/bearer/connman/qofonoservice_linux_p.h332
-rw-r--r--src/plugins/bearer/corewlan/qcorewlanengine.mm85
-rw-r--r--src/plugins/bearer/icd/qnetworksession_impl.cpp6
-rw-r--r--src/plugins/bearer/symbian/qnetworksession_impl.cpp112
-rw-r--r--src/plugins/bearer/symbian/qnetworksession_impl.h11
-rw-r--r--src/plugins/bearer/symbian/symbianengine.cpp86
-rw-r--r--src/plugins/bearer/symbian/symbianengine.h17
-rw-r--r--src/qt3support/network/q3dns.cpp3
-rw-r--r--src/s60installs/bwins/QtDeclarativeu.def3038
-rw-r--r--src/s60installs/bwins/QtGuiu.def557
-rw-r--r--src/s60installs/bwins/QtMultimediau.def12
-rw-r--r--src/s60installs/bwins/QtNetworku.def232
-rw-r--r--src/s60installs/bwins/QtOpenVGu.def4
-rw-r--r--src/s60installs/bwins/QtScriptu.def64
-rw-r--r--src/s60installs/bwins/QtTestu.def4
-rw-r--r--src/s60installs/bwins/phononu.def106
-rw-r--r--src/s60installs/eabi/QtCoreu.def88
-rw-r--r--src/s60installs/eabi/QtDeclarativeu.def2642
-rw-r--r--src/s60installs/eabi/QtGuiu.def543
-rw-r--r--src/s60installs/eabi/QtNetworku.def319
-rw-r--r--src/s60installs/eabi/QtOpenVGu.def4
-rw-r--r--src/s60installs/eabi/QtScriptu.def88
-rw-r--r--src/script/api/qscriptengine.cpp31
-rw-r--r--src/script/api/qscriptprogram.cpp4
-rw-r--r--src/script/script.pro5
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.cpp2
-rw-r--r--src/sql/drivers/psql/qsql_psql.pri7
-rw-r--r--src/sql/drivers/tds/qsql_tds.pri4
-rw-r--r--src/svg/qsvghandler.cpp2
-rw-r--r--src/testlib/qbenchmarkmeasurement_p.h4
-rw-r--r--src/tools/bootstrap/bootstrap.pro3
-rw-r--r--src/tools/rcc/rcc.cpp7
-rw-r--r--src/tools/uic/cpp/cppextractimages.cpp8
-rw-r--r--src/tools/uic/cpp/cppwriteincludes.cpp10
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp35
-rw-r--r--src/tools/uic/driver.cpp5
-rw-r--r--src/tools/uic/option.h8
-rwxr-xr-xsrc/xmlpatterns/parser/createTokenLookup.sh16
-rw-r--r--tests/arthur/common/paintcommands.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml2
-rw-r--r--tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml14
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/in.qml7
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml19
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/testtypes.h11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp60
-rw-r--r--tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp13
-rw-r--r--tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp68
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro6
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/DontDoubleCallClassBeginItem.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml14
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml13
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/testtypes.cpp1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/testtypes.h21
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp45
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/itemlist.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp79
-rw-r--r--tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp19
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp27
-rw-r--r--tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp11
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml19
-rw-r--r--tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp96
-rw-r--r--tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp12
-rw-r--r--tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.pngbin0 -> 1265 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml447
-rw-r--r--tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml68
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.pngbin0 -> 3692 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.1.pngbin0 -> 3697 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.pngbin0 -> 3696 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml795
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml100
-rw-r--r--tests/auto/gestures/tst_gestures.cpp5
-rw-r--r--tests/auto/headers/tst_headers.cpp3
-rw-r--r--tests/auto/linguist/lconvert/data/test-refs.po23
-rw-r--r--tests/auto/linguist/lconvert/data/test20.ts9
-rw-r--r--tests/auto/linguist/lconvert/tst_lconvert.cpp2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs/main.js91
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro3
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result195
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt29
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js56
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro3
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result30
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml97
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro3
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result195
-rw-r--r--tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp6
-rw-r--r--tests/auto/qdbusthreading/tst_qdbusthreading.cpp35
-rw-r--r--tests/auto/qdir/tst_qdir.cpp99
-rw-r--r--tests/auto/qeasingcurve/tst_qeasingcurve.cpp21
-rw-r--r--tests/auto/qfileinfo/tst_qfileinfo.cpp65
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp2
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp195
-rw-r--r--tests/auto/qimage/tst_qimage.cpp20
-rw-r--r--tests/auto/qinputcontext/qinputcontext.pro4
-rw-r--r--tests/auto/qinputcontext/tst_qinputcontext.cpp802
-rw-r--r--tests/auto/qkeysequence/tst_qkeysequence.cpp28
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp19
-rw-r--r--tests/auto/qmake/qmake.pro1
-rw-r--r--tests/auto/qmake/testdata/substitutes/test.pro6
-rw-r--r--tests/auto/qmake/testdata/substitutes/test3.txt1
-rw-r--r--tests/auto/qmake/tst_qmake.cpp5
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp26
-rw-r--r--tests/auto/qpen/tst_qpen.cpp1
-rw-r--r--tests/auto/qscriptengine/idtranslatable.js5
-rw-r--r--tests/auto/qscriptengine/qscriptengine.qrc1
-rw-r--r--tests/auto/qscriptengine/translations/idtranslatable_la.qmbin0 -> 342 bytes
-rw-r--r--tests/auto/qscriptengine/translations/idtranslatable_la.ts30
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp135
-rw-r--r--tests/auto/qsslsocket/tst_qsslsocket.cpp16
-rw-r--r--tests/auto/qstatictext/tst_qstatictext.cpp27
-rw-r--r--tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp20
-rw-r--r--tests/auto/qtimer/tst_qtimer.cpp5
-rw-r--r--tests/auto/qtouchevent/tst_qtouchevent.cpp59
-rw-r--r--tests/auto/qurl/tst_qurl.cpp19
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp25
-rw-r--r--tests/benchmarks/corelib/tools/qstring/data.cpp1284
-rw-r--r--tests/benchmarks/corelib/tools/qstring/data.h (renamed from tools/designer/src/components/propertyeditor/defs.h)29
-rw-r--r--tests/benchmarks/corelib/tools/qstring/generatelist.pl198
-rw-r--r--tests/benchmarks/corelib/tools/qstring/main.cpp1262
-rw-r--r--tests/benchmarks/corelib/tools/qstring/qstring.pro5
-rw-r--r--tools/activeqt/testcon/changeproperties.cpp8
-rw-r--r--tools/assistant/tools/assistant/bookmarkitem.cpp5
-rw-r--r--tools/assistant/tools/assistant/cmdlineparser.cpp6
-rw-r--r--tools/assistant/tools/assistant/cmdlineparser.h1
-rw-r--r--tools/assistant/tools/assistant/main.cpp3
-rw-r--r--tools/assistant/tools/assistant/mainwindow.cpp2
-rw-r--r--tools/assistant/tools/qcollectiongenerator/main.cpp75
-rw-r--r--tools/assistant/tools/qhelpconverter/filterpage.cpp2
-rw-r--r--tools/assistant/tools/qhelpconverter/finishpage.cpp3
-rw-r--r--tools/assistant/tools/qhelpconverter/helpwindow.cpp2
-rw-r--r--tools/assistant/tools/qhelpconverter/main.cpp15
-rw-r--r--tools/assistant/tools/qhelpgenerator/main.cpp42
-rw-r--r--tools/assistant/tools/shared/helpgenerator.cpp4
-rw-r--r--tools/configure/configure.pro2
-rw-r--r--tools/configure/configureapp.cpp51
-rw-r--r--tools/configure/environment.cpp7
-rw-r--r--tools/configure/tools.cpp10
-rw-r--r--tools/designer/src/components/formeditor/formeditor.qrc1
-rw-r--r--tools/designer/src/components/propertyeditor/defs.cpp107
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.pri4
-rw-r--r--tools/designer/src/components/taskmenu/itemlisteditor.cpp22
-rw-r--r--tools/designer/src/lib/shared/actionrepository.cpp6
-rw-r--r--tools/designer/src/lib/shared/plugindialog.cpp4
-rw-r--r--tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp4
-rw-r--r--tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp4
-rw-r--r--tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp4
-rw-r--r--tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp4
-rw-r--r--tools/designer/src/plugins/qwebview/qwebview_plugin.cpp4
-rw-r--r--tools/linguist/lconvert/main.cpp21
-rw-r--r--tools/linguist/linguist/mainwindow.cpp2
-rw-r--r--tools/linguist/linguist/phrase.cpp7
-rw-r--r--tools/linguist/lrelease/main.cpp52
-rw-r--r--tools/linguist/lupdate/cpp.cpp83
-rw-r--r--tools/linguist/lupdate/java.cpp29
-rw-r--r--tools/linguist/lupdate/main.cpp32
-rw-r--r--tools/linguist/lupdate/merge.cpp18
-rw-r--r--tools/linguist/lupdate/qdeclarative.cpp166
-rw-r--r--tools/linguist/lupdate/qscript.cpp262
-rw-r--r--tools/linguist/lupdate/qscript.g276
-rw-r--r--tools/linguist/lupdate/ui.cpp19
-rw-r--r--tools/linguist/shared/po.cpp30
-rw-r--r--tools/linguist/shared/xliff.cpp17
-rw-r--r--tools/porting/src/errors.cpp6
-rw-r--r--tools/porting/src/errors.h6
-rw-r--r--tools/qdoc3/htmlgenerator.cpp11
-rw-r--r--tools/qdoc3/main.cpp2
-rw-r--r--tools/qdoc3/qdoc3.pro1
-rw-r--r--tools/qdoc3/test/assistant.qdocconf2
-rw-r--r--tools/qdoc3/test/designer.qdocconf12
-rw-r--r--tools/qdoc3/test/linguist.qdocconf14
-rw-r--r--tools/qdoc3/test/qdeclarative.qdocconf58
-rw-r--r--tools/qdoc3/test/qmake.qdocconf58
-rw-r--r--tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf12
-rw-r--r--tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf12
-rw-r--r--tools/qdoc3/test/qt-defines.qdocconf52
-rw-r--r--tools/qdoc3/test/qt-html-templates.qdocconf29
-rw-r--r--tools/qdoc3/test/qt.qdocconf7
-rw-r--r--tools/qdoc3/test/qt_ja_JP.qdocconf7
-rw-r--r--tools/qdoc3/test/qt_zh_CN.qdocconf11
-rw-r--r--tools/qml/deviceorientation.cpp5
-rw-r--r--tools/qml/deviceorientation.h3
-rw-r--r--tools/qml/deviceorientation_maemo5.cpp53
-rw-r--r--tools/qml/deviceorientation_symbian.cpp27
-rw-r--r--tools/qml/main.cpp3
-rw-r--r--tools/qml/qml.pro2
-rw-r--r--tools/qml/qmlruntime.cpp2
-rw-r--r--tools/qml/startup/startup.qml88
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertymanager.cpp44
-rw-r--r--translations/assistant_sl.ts972
-rw-r--r--translations/assistant_uk.ts461
-rw-r--r--translations/designer_sl.ts8
-rw-r--r--translations/designer_uk.ts131
-rw-r--r--translations/linguist_sl.ts1596
-rw-r--r--translations/linguist_uk.ts1081
-rw-r--r--translations/qt_help_sl.ts329
-rw-r--r--translations/qt_help_uk.ts4
-rw-r--r--translations/qt_sl.ts696
-rw-r--r--translations/qt_uk.ts124
-rw-r--r--translations/qtconfig_sl.ts732
-rw-r--r--translations/qvfb_sl.ts422
-rw-r--r--translations/qvfb_uk.ts145
-rw-r--r--translations/translations.pri4
714 files changed, 31272 insertions, 12914 deletions
diff --git a/bin/createpackage.pl b/bin/createpackage.pl
index 984c1fdaae..2569a66733 100755
--- a/bin/createpackage.pl
+++ b/bin/createpackage.pl
@@ -81,11 +81,14 @@ Where supported options are as follows:
[-o|only-unsigned] = Creates only unsigned package.
[-s|stub] = Generates stub sis for ROM.
[-n|sisname <name>] = Specifies the final sis name.
+ [-g|gcce-is-armv5] = Convert gcce platform to armv5.
Where parameters are as follows:
templatepkg = Name of .pkg file template
target = Either debug or release
platform = One of the supported platform
winscw | gcce | armv5 | armv6 | armv7
+ Note that when packaging binaries built using gcce and symbian-sbsv2
+ mkspec, armv5 must be used for platform instead of gcce.
certificate = The certificate file used for signing
key = The certificate's private key file
passphrase = The passphrase of the certificate's private key file
@@ -123,6 +126,7 @@ my $preserveUnsigned = "";
my $stub = "";
my $signed_sis_name = "";
my $onlyUnsigned = "";
+my $convertGcce = "";
unless (GetOptions('i|install' => \$install,
'p|preprocess' => \$preprocessonly,
@@ -130,7 +134,8 @@ unless (GetOptions('i|install' => \$install,
'u|unsigned' => \$preserveUnsigned,
'o|only-unsigned' => \$onlyUnsigned,
's|stub' => \$stub,
- 'n|sisname=s' => \$signed_sis_name,)) {
+ 'n|sisname=s' => \$signed_sis_name,
+ 'g|gcce-is-armv5' => \$convertGcce,)) {
Usage();
}
@@ -146,6 +151,16 @@ $target = $tmpvalues[0] or $target = "";
my $platform;
$platform = $tmpvalues[1] or $platform = "";
+if ($platform =~ m/^gcce$/i) {
+ if (($convertGcce ne "")) {
+ $platform = "armv5";
+ } elsif ($ENV{SBS_HOME}) {
+ # Print a informative note in case suspected misuse is detected.
+ print "\nNote: You should use armv5 as platform or specify -g parameter to convert platform\n";
+ print " when packaging gcce binaries built using symbian-sbsv2 mkspec.\n\n";
+ }
+}
+
# Convert visual target to real target (debug->udeb and release->urel)
$target =~ s/debug/udeb/i;
$target =~ s/release/urel/i;
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index 7d6f5dc163..0c0538c476 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -54,7 +54,9 @@ sub Usage() {
print("If no capabilities are given, the binaries will be given the\n");
print("capabilities supported by self-signed certificates.\n\n");
print(" *** NOTE: If *_template.pkg file is given and one is using symbian-abld or\n");
- print(" symbian-sbsv2 platform, 'target-platform' is REQUIRED. ***\n");
+ print(" symbian-sbsv2 platform, 'target-platform' is REQUIRED. ***\n\n");
+ print(" *** NOTE2: When patching gcce binaries built with symbian-sbsv2 toolchain,\n");
+ print(" armv5 must be specified as platform.\n");
print("\nUsage: patch_capabilities.pl pkg_filename [target-platform [capability list]]\n");
print("\nE.g. patch_capabilities.pl myapp_template.pkg release-armv5 \"All -TCB\"\n");
exit();
@@ -104,6 +106,11 @@ if (@ARGV)
# Convert visual target to real target (debug->udeb and release->urel)
$target =~ s/debug/udeb/i;
$target =~ s/release/urel/i;
+
+ if (($platform =~ m/^gcce$/i) && ($ENV{SBS_HOME})) {
+ # Print a informative note in case suspected misuse is detected.
+ print "\nNote: You must use armv5 as platform when packaging gcce binaries built using symbian-sbsv2 mkspec.\n";
+ }
}
# If the specified ".pkg" file exists (and can be read),
diff --git a/bin/syncqt b/bin/syncqt
index f63f06a19d..907869dd0e 100755
--- a/bin/syncqt
+++ b/bin/syncqt
@@ -213,7 +213,7 @@ sub classNames {
}
}
return @ret if($line =~ m/^#pragma qt_sync_stop_processing/);
- push(@ret, "$1") if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/);
+ push(@ret, $1) if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/);
$line = 0;
}
if($line) {
@@ -297,8 +297,7 @@ sub classNames {
push @symbols, "QMutable" . $1 . "Iterator";
}
- foreach (@symbols) {
- my $symbol = $_;
+ foreach my $symbol (@symbols) {
$symbol = (join("::", @namespaces) . "::" . $symbol) if (scalar @namespaces);
push @ret, $symbol
if ($symbol =~ /^Q[^:]*$/ # no-namespace, starting with Q
@@ -310,21 +309,22 @@ sub classNames {
}
######################################################################
-# Syntax: syncHeader(header, iheader, copy)
+# Syntax: syncHeader(header, iheader, copy, timestamp)
# Params: header, string, filename to create "symlink" for
# iheader, string, destination name of symlink
# copy, forces header to be a copy of iheader
+# timestamp, the requested modification time if copying
#
# Purpose: Syncronizes header to iheader
# Returns: 1 if successful, else 0.
######################################################################
sub syncHeader {
- my ($header, $iheader, $copy) = @_;
+ my ($header, $iheader, $copy, $ts) = @_;
$iheader =~ s=\\=/=g;
$header =~ s=\\=/=g;
return copyFile($iheader, $header) if($copy);
- unless(-e "$header") {
+ unless(-e $header) {
my $header_dir = dirname($header);
mkpath $header_dir, !$quiet;
@@ -333,6 +333,7 @@ sub syncHeader {
open HEADER, ">$header" || die "Could not open $header for writing!\n";
print HEADER "#include \"$iheader_out\"\n";
close HEADER;
+ utime(time, $ts, $header) or die "$iheader, $header";
return 1;
}
return 0;
@@ -368,7 +369,7 @@ sub fixPaths {
$dir =~ s=\\=/=g;
}
$dir =~ s,/cygdrive/([a-zA-Z])/,$1:/,g;
- return basename($file) if("$file_dir" eq "$dir");
+ return basename($file) if($file_dir eq $dir);
#guts
my $match_dir = 0;
@@ -430,7 +431,7 @@ sub fileCompare {
my $file2contents = fileContents($file2);
if (! -e $file1) { return 1; }
if (! -e $file2) { return -1; }
- return $file1contents ne $file2contents ? (stat("$file2"))[9] <=> (stat("$file1"))[9] : 0;
+ return $file1contents ne $file2contents ? (stat($file2))[9] <=> (stat($file1))[9] : 0;
}
######################################################################
@@ -467,21 +468,23 @@ sub copyFile
if ( $knowdiff || ($filecontents ne $ifilecontents) ) {
if ( $copy > 0 ) {
my $file_dir = dirname($file);
- mkpath $file_dir, !$quiet unless(-e "$file_dir");
+ mkpath $file_dir, !$quiet unless(-e $file_dir);
open(O, "> " . $file) || die "Could not open $file for writing (no write permission?)";
local $/;
binmode O;
print O $ifilecontents;
close O;
+ utime time, (stat($ifile))[9], $file;
return 1;
} elsif ( $copy < 0 ) {
my $ifile_dir = dirname($ifile);
- mkpath $ifile_dir, !$quiet unless(-e "$ifile_dir");
+ mkpath $ifile_dir, !$quiet unless(-e $ifile_dir);
open(O, "> " . $ifile) || die "Could not open $ifile for writing (no write permission?)";
local $/;
binmode O;
print O $filecontents;
close O;
+ utime time, (stat($file))[9], $ifile;
return 1;
}
}
@@ -567,102 +570,102 @@ while ( @ARGV ) {
#parse
my $arg = shift @ARGV;
- if ("$arg" eq "-h" || "$arg" eq "-help" || "$arg" eq "?") {
+ if ($arg eq "-h" || $arg eq "-help" || $arg eq "?") {
$var = "show_help";
$val = "yes";
- } elsif("$arg" eq "-copy") {
+ } elsif($arg eq "-copy") {
$var = "copy";
$val = "yes";
- } elsif("$arg" eq "-o" || "$arg" eq "-outdir") {
+ } elsif($arg eq "-o" || $arg eq "-outdir") {
$var = "output";
$val = shift @ARGV;
- } elsif("$arg" eq "-showonly" || "$arg" eq "-remove-stale" || "$arg" eq "-windows" ||
- "$arg" eq "-relative" || "$arg" eq "-check-includes") {
+ } elsif($arg eq "-showonly" || $arg eq "-remove-stale" || $arg eq "-windows" ||
+ $arg eq "-relative" || $arg eq "-check-includes") {
$var = substr($arg, 1);
$val = "yes";
- } elsif("$arg" =~ /^-no-(.*)$/) {
+ } elsif($arg =~ /^-no-(.*)$/) {
$var = $1;
$val = "no";
#these are for commandline compat
- } elsif("$arg" eq "-inc") {
+ } elsif($arg eq "-inc") {
$var = "output";
$val = shift @ARGV;
- } elsif("$arg" eq "-module") {
+ } elsif($arg eq "-module") {
$var = "module";
$val = shift @ARGV;
- } elsif("$arg" eq "-separate-module") {
+ } elsif($arg eq "-separate-module") {
$var = "separate-module";
$val = shift @ARGV;
- } elsif("$arg" eq "-show") {
+ } elsif($arg eq "-show") {
$var = "showonly";
$val = "yes";
- } elsif("$arg" eq "-quiet") {
+ } elsif($arg eq "-quiet") {
$var = "quiet";
$val = "yes";
- } elsif("$arg" eq "-base-dir") {
+ } elsif($arg eq "-base-dir") {
# skip, it's been dealt with at the top of the file
shift @ARGV;
next;
}
#do something
- if(!$var || "$var" eq "show_help") {
+ if(!$var || $var eq "show_help") {
print "Unknown option: $arg\n\n" if(!$var);
showUsage();
- } elsif ("$var" eq "copy") {
- if("$val" eq "yes") {
+ } elsif ($var eq "copy") {
+ if($val eq "yes") {
$copy_headers++;
} elsif($showonly) {
$copy_headers--;
}
- } elsif ("$var" eq "showonly") {
- if("$val" eq "yes") {
+ } elsif ($var eq "showonly") {
+ if($val eq "yes") {
$showonly++;
} elsif($showonly) {
$showonly--;
}
- } elsif ("$var" eq "quiet") {
- if("$val" eq "yes") {
+ } elsif ($var eq "quiet") {
+ if($val eq "yes") {
$quiet++;
} elsif($quiet) {
$quiet--;
}
- } elsif ("$var" eq "check-includes") {
- if("$val" eq "yes") {
+ } elsif ($var eq "check-includes") {
+ if($val eq "yes") {
$check_includes++;
} elsif($check_includes) {
$check_includes--;
}
- } elsif ("$var" eq "remove-stale") {
- if("$val" eq "yes") {
+ } elsif ($var eq "remove-stale") {
+ if($val eq "yes") {
$remove_stale++;
} elsif($remove_stale) {
$remove_stale--;
}
- } elsif ("$var" eq "windows") {
- if("$val" eq "yes") {
+ } elsif ($var eq "windows") {
+ if($val eq "yes") {
$force_win++;
} elsif($force_win) {
$force_win--;
}
- } elsif ("$var" eq "relative") {
- if("$val" eq "yes") {
+ } elsif ($var eq "relative") {
+ if($val eq "yes") {
$force_relative++;
} elsif($force_relative) {
$force_relative--;
}
- } elsif ("$var" eq "module") {
+ } elsif ($var eq "module") {
print "module :$val:\n" unless $quiet;
die "No such module: $val" unless(defined $modules{$val});
push @modules_to_sync, $val;
- } elsif ("$var" eq "separate-module") {
+ } elsif ($var eq "separate-module") {
my ($module, $prodir, $headerdir) = split(/:/, $val);
$modules{$module} = $prodir;
push @modules_to_sync, $module;
$moduleheaders{$module} = $headerdir;
$create_uic_class_map = 0;
$create_private_headers = 0;
- } elsif ("$var" eq "output") {
+ } elsif ($var eq "output") {
my $outdir = $val;
if(checkRelative($outdir)) {
$out_basedir = getcwd();
@@ -696,12 +699,11 @@ my %inject_headers;
# find the header by normal means.
%inject_headers = ( "$basedir/src/corelib/global" => ( "*qconfig.h" ) ) unless (-e "$basedir/src/corelib/global/qconfig.h");
-foreach (@modules_to_sync) {
+foreach my $lib (@modules_to_sync) {
#iteration info
- my $lib = $_;
- my $dir = "$modules{$lib}";
+ my $dir = $modules{$lib};
my $pathtoheaders = "";
- $pathtoheaders = "$moduleheaders{$lib}" if ($moduleheaders{$lib});
+ $pathtoheaders = $moduleheaders{$lib} if ($moduleheaders{$lib});
#information used after the syncing
my $pri_install_classes = "";
@@ -715,24 +717,23 @@ foreach (@modules_to_sync) {
#get dependencies
if(-e "$dir/" . basename($dir) . ".pro") {
if(open(F, "<$dir/" . basename($dir) . ".pro")) {
- while(<F>) {
- my $line = $_;
+ while(my $line = <F>) {
chomp $line;
if($line =~ /^ *QT *\+?= *([^\r\n]*)/) {
- foreach(split(/ /, "$1")) {
- $master_contents .= "#include <QtCore/QtCore>\n" if("$_" eq "core");
- $master_contents .= "#include <QtGui/QtGui>\n" if("$_" eq "gui");
- $master_contents .= "#include <QtNetwork/QtNetwork>\n" if("$_" eq "network");
- $master_contents .= "#include <QtSvg/QtSvg>\n" if("$_" eq "svg");
- $master_contents .= "#include <QtDeclarative/QtDeclarative>\n" if("$_" eq "declarative");
- $master_contents .= "#include <QtScript/QtScript>\n" if("$_" eq "script");
- $master_contents .= "#include <QtScriptTools/QtScriptTools>\n" if("$_" eq "scripttools");
- $master_contents .= "#include <Qt3Support/Qt3Support>\n" if("$_" eq "qt3support");
- $master_contents .= "#include <QtSql/QtSql>\n" if("$_" eq "sql");
- $master_contents .= "#include <QtXml/QtXml>\n" if("$_" eq "xml");
- $master_contents .= "#include <QtXmlPatterns/QtXmlPatterns>\n" if("$_" eq "xmlpatterns");
- $master_contents .= "#include <QtOpenGL/QtOpenGL>\n" if("$_" eq "opengl");
- $master_contents .= "#include <QtOpenVG/QtOpenVG>\n" if("$_" eq "openvg");
+ foreach(split(/ /, $1)) {
+ $master_contents .= "#include <QtCore/QtCore>\n" if($_ eq "core");
+ $master_contents .= "#include <QtGui/QtGui>\n" if($_ eq "gui");
+ $master_contents .= "#include <QtNetwork/QtNetwork>\n" if($_ eq "network");
+ $master_contents .= "#include <QtSvg/QtSvg>\n" if($_ eq "svg");
+ $master_contents .= "#include <QtDeclarative/QtDeclarative>\n" if($_ eq "declarative");
+ $master_contents .= "#include <QtScript/QtScript>\n" if($_ eq "script");
+ $master_contents .= "#include <QtScriptTools/QtScriptTools>\n" if($_ eq "scripttools");
+ $master_contents .= "#include <Qt3Support/Qt3Support>\n" if($_ eq "qt3support");
+ $master_contents .= "#include <QtSql/QtSql>\n" if($_ eq "sql");
+ $master_contents .= "#include <QtXml/QtXml>\n" if($_ eq "xml");
+ $master_contents .= "#include <QtXmlPatterns/QtXmlPatterns>\n" if($_ eq "xmlpatterns");
+ $master_contents .= "#include <QtOpenGL/QtOpenGL>\n" if($_ eq "opengl");
+ $master_contents .= "#include <QtOpenVG/QtOpenVG>\n" if($_ eq "openvg");
}
}
}
@@ -743,34 +744,31 @@ foreach (@modules_to_sync) {
#remove the old files
if($remove_stale) {
my @subdirs = ("$out_basedir/include/$lib");
- foreach (@subdirs) {
- my $subdir = "$_";
- if (opendir DIR, "$subdir") {
+ foreach my $subdir (@subdirs) {
+ if (opendir DIR, $subdir) {
while(my $t = readdir(DIR)) {
my $file = "$subdir/$t";
- if(-d "$file") {
- push @subdirs, "$file" unless($t eq "." || $t eq "..");
+ if(-d $file) {
+ push @subdirs, $file unless($t eq "." || $t eq "..");
} else {
- my @files = ("$file");
+ my @files = ($file);
#push @files, "$out_basedir/include/Qt/$t" if(-e "$out_basedir/include/Qt/$t");
- foreach (@files) {
- my $file = $_;
+ foreach my $file (@files) {
my $remove_file = 0;
if(open(F, "<$file")) {
- while(<F>) {
- my $line = $_;
+ while(my $line = <F>) {
chomp $line;
if($line =~ /^\#include \"([^\"]*)\"$/) {
my $include = $1;
$include = $subdir . "/" . $include unless(substr($include, 0, 1) eq "/");
- $remove_file = 1 unless(-e "$include");
+ $remove_file = 1 unless(-e $include);
} else {
$remove_file = 0;
last;
}
}
close(F);
- unlink "$file" if($remove_file);
+ unlink $file if($remove_file);
}
}
}
@@ -782,15 +780,13 @@ foreach (@modules_to_sync) {
}
#create the new ones
- foreach (split(/;/, $dir)) {
- my $current_dir = "$_";
+ foreach my $current_dir (split(/;/, $dir)) {
my $headers_dir = $current_dir;
$headers_dir .= "/$pathtoheaders" if ($pathtoheaders);
#calc subdirs
my @subdirs = ($headers_dir);
- foreach (@subdirs) {
- my $subdir = "$_";
- opendir DIR, "$subdir" or next;
+ foreach my $subdir (@subdirs) {
+ opendir DIR, $subdir or next;
while(my $t = readdir(DIR)) {
push @subdirs, "$subdir/$t" if(-d "$subdir/$t" && !($t eq ".") &&
!($t eq "..") && !($t eq ".obj") &&
@@ -801,16 +797,14 @@ foreach (@modules_to_sync) {
}
#calc files and "copy" them
- foreach (@subdirs) {
- my $subdir = "$_";
- my @headers = findFiles("$subdir", "^[-a-z0-9_]*\\.h\$" , 0);
+ foreach my $subdir (@subdirs) {
+ my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0);
push @headers, $inject_headers{$subdir} if (defined $inject_headers{$subdir});
- foreach (@headers) {
- my $header = "$_";
+ foreach my $header (@headers) {
my $shadow = ($header =~ s/^\*//);
- $header = 0 if("$header" =~ /^ui_.*.h/);
+ $header = 0 if($header =~ /^ui_.*.h/);
foreach (@ignore_headers) {
- $header = 0 if("$header" eq "$_");
+ $header = 0 if($header eq $_);
}
if($header) {
my $header_copies = 0;
@@ -820,7 +814,7 @@ foreach (@modules_to_sync) {
$public_header = 0;
} else {
foreach (@ignore_for_master_contents) {
- $public_header = 0 if("$header" eq "$_");
+ $public_header = 0 if($header eq $_);
}
}
@@ -833,13 +827,14 @@ foreach (@modules_to_sync) {
print "SYMBOL: $_\n";
}
} else {
+ my $ts = (stat($iheader))[9];
#find out all the places it goes..
my @headers;
if ($public_header) {
@headers = ( "$out_basedir/include/$lib/$header" );
# write forwarding headers to include/Qt
- if ("$lib" ne "phonon" && "$subdir" =~ /^$basedir\/src/) {
+ if ($lib ne "phonon" && $subdir =~ /^$basedir\/src/) {
my $file_name = "$out_basedir/include/Qt/$header";
my $file_op = '>';
my $header_content = '';
@@ -852,7 +847,7 @@ foreach (@modules_to_sync) {
" #if defined(__GNUC__)\n" .
" #warning \"$warning_msg\"\n" .
" #elif defined(_MSC_VER)\n" .
- " #pragma message \"WARNING: $warning_msg\"\n" .
+ " #pragma message(\"WARNING: $warning_msg\")\n" .
" #endif\n".
"#endif\n\n";
}
@@ -862,27 +857,27 @@ foreach (@modules_to_sync) {
close HEADERFILE;
}
- foreach(@classes) {
+ foreach my $full_class (@classes) {
my $header_base = basename($header);
- my $class = $_;
# Strip namespaces:
+ my $class = $full_class;
$class =~ s/^.*:://;
# if ($class =~ m/::/) {
# class =~ s,::,/,g;
# }
- $class_lib_map_contents .= "QT_CLASS_LIB($_, $lib, $header_base)\n";
- $header_copies++ if(syncHeader("$out_basedir/include/$lib/$class", "$out_basedir/include/$lib/$header", 0));
+ $class_lib_map_contents .= "QT_CLASS_LIB($full_class, $lib, $header_base)\n";
+ $header_copies++ if(syncHeader("$out_basedir/include/$lib/$class", "$out_basedir/include/$lib/$header", 0, $ts));
# KDE-Compat headers for Phonon
if ($lib eq "phonon") {
- $header_copies++ if (syncHeader("$out_basedir/include/phonon_compat/Phonon/$class", "$out_basedir/include/$lib/$header", 0));
+ $header_copies++ if (syncHeader("$out_basedir/include/phonon_compat/Phonon/$class", "$out_basedir/include/$lib/$header", 0, $ts));
}
}
} elsif ($create_private_headers) {
@headers = ( "$out_basedir/include/$lib/private/$header" );
}
foreach(@headers) { #sync them
- $header_copies++ if(syncHeader($_, $iheader, $copy_headers));
+ $header_copies++ if(syncHeader($_, $iheader, $copy_headers, $ts));
}
if($public_header) {
@@ -892,8 +887,7 @@ foreach (@modules_to_sync) {
#deal with the install directives
if($public_header) {
my $pri_install_iheader = fixPaths($iheader, $current_dir);
- foreach(@classes) {
- my $class = $_;
+ foreach my $class (@classes) {
# Strip namespaces:
$class =~ s/^.*:://;
# if ($class =~ m/::/) {
@@ -928,8 +922,8 @@ foreach (@modules_to_sync) {
foreach my $master_include (@master_includes) {
#generate the "master" include file
my @tmp = split(/;/,$modules{$lib});
- $pri_install_files .= fixPaths($master_include, "$tmp[0]") . " "; #get the master file installed too
- if($master_include && -e "$master_include") {
+ $pri_install_files .= fixPaths($master_include, $tmp[0]) . " "; #get the master file installed too
+ if($master_include && -e $master_include) {
open MASTERINCLUDE, "<$master_include";
local $/;
binmode MASTERINCLUDE;
@@ -943,7 +937,7 @@ foreach (@modules_to_sync) {
mkpath $master_dir, !$quiet;
print "header (master) created for $lib\n" unless $quiet;
open MASTERINCLUDE, ">$master_include";
- print MASTERINCLUDE "$master_contents";
+ print MASTERINCLUDE $master_contents;
close MASTERINCLUDE;
}
}
@@ -954,7 +948,7 @@ foreach (@modules_to_sync) {
$headers_pri_contents .= "SYNCQT.HEADER_CLASSES = $pri_install_classes\n";
$headers_pri_contents .= "SYNCQT.PRIVATE_HEADER_FILES = $pri_install_pfiles\n";
my $headers_pri_file = "$out_basedir/include/$lib/headers.pri";
- if(-e "$headers_pri_file") {
+ if(-e $headers_pri_file) {
open HEADERS_PRI_FILE, "<$headers_pri_file";
local $/;
binmode HEADERS_PRI_FILE;
@@ -968,14 +962,14 @@ foreach (@modules_to_sync) {
mkpath $headers_pri_dir, !$quiet;
print "headers.pri file created for $lib\n" unless $quiet;
open HEADERS_PRI_FILE, ">$headers_pri_file";
- print HEADERS_PRI_FILE "$headers_pri_contents";
+ print HEADERS_PRI_FILE $headers_pri_contents;
close HEADERS_PRI_FILE;
}
}
}
unless($showonly || !$create_uic_class_map) {
my $class_lib_map = "$out_basedir/src/tools/uic/qclass_lib_map.h";
- if(-e "$class_lib_map") {
+ if(-e $class_lib_map) {
open CLASS_LIB_MAP, "<$class_lib_map";
local $/;
binmode CLASS_LIB_MAP;
@@ -988,21 +982,17 @@ unless($showonly || !$create_uic_class_map) {
my $class_lib_map_dir = dirname($class_lib_map);
mkpath $class_lib_map_dir, !$quiet;
open CLASS_LIB_MAP, ">$class_lib_map";
- print CLASS_LIB_MAP "$class_lib_map_contents";
+ print CLASS_LIB_MAP $class_lib_map_contents;
close CLASS_LIB_MAP;
}
}
if($check_includes) {
- for (keys(%modules)) {
- #iteration info
- my $lib = $_;
- {
+ for my $lib (keys(%modules)) {
#calc subdirs
my @subdirs = ($modules{$lib});
- foreach (@subdirs) {
- my $subdir = "$_";
- opendir DIR, "$subdir" or die "Huh, directory ".$subdir." cannot be opened.";
+ foreach my $subdir (@subdirs) {
+ opendir DIR, $subdir or die "Huh, directory ".$subdir." cannot be opened.";
while(my $t = readdir(DIR)) {
push @subdirs, "$subdir/$t" if(-d "$subdir/$t" && !($t eq ".") &&
!($t eq "..") && !($t eq ".obj") &&
@@ -1012,22 +1002,20 @@ if($check_includes) {
closedir DIR;
}
- foreach (@subdirs) {
- my $subdir = "$_";
+ foreach my $subdir (@subdirs) {
my $header_skip_qt_module_test = 0;
foreach(@ignore_for_qt_module_check) {
foreach (split(/;/, $_)) {
- $header_skip_qt_module_test = 1 if ("$subdir" =~ /^$_/);
+ $header_skip_qt_module_test = 1 if ($subdir =~ /^$_/);
}
}
- my @headers = findFiles("$subdir", "^[-a-z0-9_]*\\.h\$" , 0);
- foreach (@headers) {
- my $header = "$_";
+ my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0);
+ foreach my $header (@headers) {
my $header_skip_qt_begin_header_test = 0;
my $header_skip_qt_begin_namespace_test = 0;
- $header = 0 if("$header" =~ /^ui_.*.h/);
+ $header = 0 if($header =~ /^ui_.*.h/);
foreach (@ignore_headers) {
- $header = 0 if("$header" eq "$_");
+ $header = 0 if($header eq $_);
}
if($header) {
my $public_header = $header;
@@ -1035,17 +1023,17 @@ if($check_includes) {
$public_header = 0;
} else {
foreach (@ignore_for_master_contents) {
- $public_header = 0 if("$header" eq "$_");
+ $public_header = 0 if($header eq $_);
}
if($public_header) {
foreach (@ignore_for_include_check) {
- $public_header = 0 if("$header" eq "$_");
+ $public_header = 0 if($header eq $_);
}
foreach(@ignore_for_qt_begin_header_check) {
- $header_skip_qt_begin_header_test = 1 if ("$header" eq "$_");
+ $header_skip_qt_begin_header_test = 1 if ($header eq $_);
}
foreach(@ignore_for_qt_begin_namespace_check) {
- $header_skip_qt_begin_namespace_test = 1 if ("$header" eq "$_");
+ $header_skip_qt_begin_namespace_test = 1 if ($header eq $_);
}
}
}
@@ -1074,8 +1062,7 @@ if($check_includes) {
$include = 0;
}
if($include) {
- for (keys(%modules)) {
- my $trylib = $_;
+ for my $trylib (keys(%modules)) {
if(-e "$out_basedir/include/$trylib/$include") {
print "WARNING: $iheader includes $include when it should include $trylib/$include\n";
}
@@ -1124,7 +1111,6 @@ if($check_includes) {
}
}
}
- }
}
}
diff --git a/configure b/configure
index 94a0c0ff53..d252f51dbf 100755
--- a/configure
+++ b/configure
@@ -1550,9 +1550,6 @@ while [ "$#" -gt 0 ]; do
solaris-64)
PLATFORM=solaris-cc-64
;;
- solaris-64)
- PLATFORM=solaris-cc-64
- ;;
openunix-cc)
PLATFORM=unixware-cc
;;
@@ -2449,7 +2446,7 @@ fi
# detect build style
if [ "$CFG_DEBUG" = "auto" ]; then
- if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
CFG_DEBUG_RELEASE=yes
CFG_DEBUG=yes
elif [ "$CFG_DEV" = "yes" ]; then
@@ -2532,18 +2529,26 @@ if [ "$OPT_SHADOW" = "yes" ]; then
ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
rm -f "$outpath/mkspecs/default"
+ ShadowMkspecs()
+ {
+ rm -rf "$outpath/mkspecs/$1"
+ if [ "$UNAME_SYSTEM" = "Linux" ]; then
+ # This works with GNU coreutils, and is needed for ScratchBox
+ cp -rs "$relpath/mkspecs/$1" "$outpath/mkspecs/$1"
+ else
+ # A simple "cp -rs" doesn't work on Mac. :(
+ find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
+ find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | xargs -n 1 -I % ln -s "$relpath/%" "$outpath/%"
+ fi
+ }
+
# Special case for mkspecs/features directory.
# To be able to place .prf files into a shadow build directory,
# we're creating links for files only. The directory structure is reproduced.
- rm -rf "$outpath/mkspecs/features"
- if [ "$UNAME_SYSTEM" = "Linux" ]; then
- # This works with GNU coreutils, and is needed for ScratchBox
- cp -rs "$relpath/mkspecs/features" "$outpath/mkspecs/features"
- else
- # A simple "cp -rs" doesn't work on Mac. :(
- find "$relpath/mkspecs/features" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
- find "$relpath/mkspecs/features" -type f | sed "s,^$relpath/,," | xargs -n 1 -I % ln -s "$relpath/%" "$outpath/%"
- fi
+ ShadowMkspecs features
+
+ # The modules dir is special, too.
+ ShadowMkspecs modules
# symlink the doc directory
rm -rf "$outpath/doc"
@@ -2985,7 +2990,7 @@ if [ -z "${CFG_HOST_ARCH}" ]; then
;;
i86pc)
case "$PLATFORM" in
- *-64)
+ *-64*)
if [ "$OPT_VERBOSE" = "yes" ]; then
echo " 64-bit AMD 80x86 (x86_64)"
fi
@@ -6414,9 +6419,13 @@ fi
# find if the platform supports IPv6
if [ "$CFG_IPV6" != "no" ]; then
- if [ "$XPLATFORM" = "symbian-sbsv2" ]; then
- #IPV6 should always be enabled for Symbian release
- CFG_IPV6=yes
+ #
+ # We accidently enabled IPv6 for Qt Symbian in 4.6.x. However the underlying OpenC does not fully support IPV6.
+ # Therefore for 4.7.1 and following we disable it until OpenC either supports it or we have the native Qt
+ # symbian socket engine.
+ #
+ if echo "$XPLATFORM" | grep symbian > /dev/null; then
+ CFG_IPV6=no
elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
CFG_IPV6=yes
else
@@ -6920,7 +6929,11 @@ if [ "$CFG_EMBEDDED" = "nacl" ]; then
rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
fi
-QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
+if [ "$XPLATFORM_MINGW" != "yes" ]; then
+ # Do not set this here for Windows. Let qmake do it so
+ # debug and release precompiled headers are kept separate.
+ QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
+fi
QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
@@ -7404,10 +7417,12 @@ if [ "$CFG_WEBKIT" = "auto" ]; then
fi
if [ "$CFG_WEBKIT" = "yes" ]; then
- QT_CONFIG="$QT_CONFIG webkit"
+ # This include takes care of adding "webkit" to QT_CONFIG.
+ cp -f "$relpath/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri" "$outpath/mkspecs/modules/qt_webkit_version.pri"
# The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
CFG_WEBKIT="yes"
else
+ rm -f "$outpath/mkspecs/modules/qt_webkit_version.pri"
CFG_WEBKIT="no"
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WEBKIT"
fi
@@ -7518,6 +7533,7 @@ fi
# some compilers generate binary incompatible code between different versions,
# so we need to generate a build key that is different between these compilers
+COMPAT_COMPILER=
case "$COMPILER" in
g++*)
# GNU C++
@@ -7551,6 +7567,22 @@ g++*)
esac
[ '!' -z "$COMPILER_VERSION" ] && COMPILER="g++-${COMPILER_VERSION}"
;;
+icc*)
+ # The Intel CC compiler on Unix systems matches the ABI of the g++
+ # that is found on PATH
+ COMPILER="icc"
+ COMPAT_COMPILER="g++-4"
+ case "`g++ -dumpversion` 2>/dev/null" in
+ 2.95.*)
+ COMPAT_COMPILER="g++-2.95.*"
+ ;;
+ 3.*)
+ COMPAT_COMPILER="g++-3.*"
+ ;;
+ *)
+ ;;
+ esac
+ ;;
*)
#
;;
@@ -7693,9 +7725,20 @@ if [ "$QT_CROSS_COMPILE" = "no" ]; then
QT_BUILD_KEY_COMPAT="$QT_BUILD_KEY_COMPAT $QT_NAMESPACE"
fi
fi
+
+# is this compiler compatible with some other "standard" build key
+QT_BUILD_KEY_COMPAT_COMPILER=
+if [ ! -z "$COMPAT_COMPILER" ]; then
+ QT_BUILD_KEY_COMPAT_COMPILER="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPAT_COMPILER $BUILD_OPTIONS"
+ if [ -n "$QT_NAMESPACE" ]; then
+ QT_BUILD_KEY_COMPAT_COMPILER="$QT_BUILD_KEY_COMPAT_COMPILER $QT_NAMESPACE"
+ fi
+fi
+
# strip out leading/trailing/extra whitespace
QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
QT_BUILD_KEY_COMPAT=`echo $QT_BUILD_KEY_COMPAT | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
+QT_BUILD_KEY_COMPAT_COMPILER=`echo $QT_BUILD_KEY_COMPAT_COMPILER | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
#-------------------------------------------------------------------------------
# part of configuration information goes into qconfig.h
@@ -7744,6 +7787,10 @@ if [ -n "$QT_BUILD_KEY_COMPAT" ]; then
echo "#define QT_BUILD_KEY_COMPAT \"$QT_BUILD_KEY_COMPAT\"" \
>> "$outpath/src/corelib/global/qconfig.h.new"
fi
+if [ -n "$QT_BUILD_KEY_COMPAT_COMPILER" ]; then
+ echo "#define QT_BUILD_KEY_COMPAT2 \"$QT_BUILD_KEY_COMPAT_COMPILER\"" \
+ >> "$outpath/src/corelib/global/qconfig.h.new"
+fi
echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
diff --git a/configure.exe b/configure.exe
index c5bff854d8..18c9004c48 100755
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/demos/browser/downloadmanager.cpp b/demos/browser/downloadmanager.cpp
index 876ec1deb8..ab68209fa6 100644
--- a/demos/browser/downloadmanager.cpp
+++ b/demos/browser/downloadmanager.cpp
@@ -282,7 +282,7 @@ void DownloadItem::updateInfoLabel()
remaining = tr("- %4 %5 remaining")
.arg(timeRemaining)
.arg(timeRemainingString);
- info = QString(tr("%1 of %2 (%3/sec) %4"))
+ info = tr("%1 of %2 (%3/sec) %4")
.arg(dataString(m_bytesReceived))
.arg(bytesTotal == 0 ? tr("?") : dataString(bytesTotal))
.arg(dataString((int)speed))
diff --git a/demos/browser/settings.cpp b/demos/browser/settings.cpp
index 5ceca67e0f..fba781b05d 100644
--- a/demos/browser/settings.cpp
+++ b/demos/browser/settings.cpp
@@ -89,7 +89,7 @@ void SettingsDialog::loadFromSettings()
{
QSettings settings;
settings.beginGroup(QLatin1String("MainWindow"));
- QString defaultHome = QLatin1String("http://qt.nokia.com");
+ QString defaultHome = QLatin1String("http://doc.qt.nokia.com");
homeLineEdit->setText(settings.value(QLatin1String("home"), defaultHome).toString());
settings.endGroup();
diff --git a/demos/declarative/calculator/Core/calculator.js b/demos/declarative/calculator/Core/calculator.js
index 16cc309c13..7c363c7f30 100644
--- a/demos/declarative/calculator/Core/calculator.js
+++ b/demos/declarative/calculator/Core/calculator.js
@@ -74,6 +74,11 @@ function doOperation(op) {
memory = display.text.valueOf()
} else if (op == leftArrow) {
display.text = display.text.toString().slice(0, -1)
+ if (display.text.length == 0) {
+ display.text = "0"
+ }
+ } else if (op == "Off") {
+ Qt.quit();
} else if (op == "C") {
display.text = "0"
} else if (op == "AC") {
@@ -82,10 +87,5 @@ function doOperation(op) {
lastOp = ""
display.text ="0"
}
-
- if (op == rotateRight)
- main.state = "orientation " + Orientation.Landscape
- if (op == rotateLeft)
- main.state = ''
}
diff --git a/demos/declarative/calculator/calculator.qml b/demos/declarative/calculator/calculator.qml
index 288455b418..68c922b02c 100644
--- a/demos/declarative/calculator/calculator.qml
+++ b/demos/declarative/calculator/calculator.qml
@@ -58,7 +58,7 @@ Rectangle {
property string plusminus : "\u00b1"
function doOp(operation) { CalcEngine.doOperation(operation) }
-
+
Item {
id: main
state: "orientation " + runtime.orientation
@@ -70,8 +70,10 @@ Rectangle {
anchors { fill: parent; topMargin: 6; bottomMargin: 6; leftMargin: 6; rightMargin: 6 }
- Row {
- Display { id: display; width: box.width; height: 64 }
+ Display {
+ id: display
+ width: box.width-3
+ height: 64
}
Column {
@@ -82,11 +84,7 @@ Rectangle {
Row {
spacing: 6
-
- Button {
- id: rotateButton
- width: column.w; height: column.h; color: 'purple'; operation: rotateRight
- }
+ Button { width: column.w; height: column.h; color: 'purple'; operation: "Off" }
Button { width: column.w; height: column.h; color: 'purple'; operation: leftArrow }
Button { width: column.w; height: column.h; color: 'purple'; operation: "C" }
Button { width: column.w; height: column.h; color: 'purple'; operation: "AC" }
@@ -103,7 +101,7 @@ Rectangle {
}
Grid {
- id: grid; rows: 4; columns: 5; spacing: 6
+ id: grid; rows: 5; columns: 5; spacing: 6
property real w: (box.width / columns) - ((spacing * (columns - 1)) / columns)
diff --git a/demos/declarative/flickr/common/Progress.qml b/demos/declarative/flickr/common/Progress.qml
index 99e1a7b6a8..23bffb9ad5 100644
--- a/demos/declarative/flickr/common/Progress.qml
+++ b/demos/declarative/flickr/common/Progress.qml
@@ -68,6 +68,6 @@ Item {
text: Math.round(progress * 100) + "%"
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
- color: "white"; font.bold: true
+ color: "white"; font.bold: true; font.pixelSize: 15
}
}
diff --git a/demos/declarative/flickr/common/Slider.qml b/demos/declarative/flickr/common/Slider.qml
index 4353f8d0c6..faa2e5fadb 100644
--- a/demos/declarative/flickr/common/Slider.qml
+++ b/demos/declarative/flickr/common/Slider.qml
@@ -45,11 +45,24 @@ Item {
id: slider; width: 400; height: 16
// value is read/write.
- property real value
- onValueChanged: { handle.x = 2 + (value - minimum) * slider.xMax / (maximum - minimum); }
+ property real value: 1
+ onValueChanged: updatePos();
property real maximum: 1
property real minimum: 1
- property int xMax: slider.width - handle.width - 4
+ property int xMax: width - handle.width - 4
+ onXMaxChanged: updatePos();
+ onMinimumChanged: updatePos();
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = 2 + (value - minimum) * slider.xMax / (maximum - minimum);
+ pos = Math.min(pos, width - handle.width - 2);
+ pos = Math.max(pos, 2);
+ handle.x = pos;
+ } else {
+ handle.x = 2;
+ }
+ }
Rectangle {
anchors.fill: parent
@@ -62,13 +75,14 @@ Item {
Rectangle {
id: handle; smooth: true
- x: slider.width / 2 - handle.width / 2; y: 2; width: 30; height: slider.height-4; radius: 6
+ y: 2; width: 30; height: slider.height-4; radius: 6
gradient: Gradient {
GradientStop { position: 0.0; color: "lightgray" }
GradientStop { position: 1.0; color: "gray" }
}
MouseArea {
+ id: mouse
anchors.fill: parent; drag.target: parent
drag.axis: Drag.XAxis; drag.minimumX: 2; drag.maximumX: slider.xMax+2
onPositionChanged: { value = (maximum - minimum) * (handle.x-2) / slider.xMax + minimum; }
diff --git a/demos/declarative/flickr/mobile/Button.qml b/demos/declarative/flickr/mobile/Button.qml
index 93a6661216..6228606ee8 100644
--- a/demos/declarative/flickr/mobile/Button.qml
+++ b/demos/declarative/flickr/mobile/Button.qml
@@ -66,7 +66,7 @@ Item {
}
Text {
color: "white"
- anchors.centerIn: buttonImage; font.bold: true
+ anchors.centerIn: buttonImage; font.bold: true; font.pixelSize: 15
text: container.text; style: Text.Raised; styleColor: "black"
}
states: [
diff --git a/demos/declarative/flickr/mobile/ImageDetails.qml b/demos/declarative/flickr/mobile/ImageDetails.qml
index ff902ce903..6408fc6659 100644
--- a/demos/declarative/flickr/mobile/ImageDetails.qml
+++ b/demos/declarative/flickr/mobile/ImageDetails.qml
@@ -96,7 +96,7 @@ Flipable {
Rectangle { anchors.fill: parent; color: "black"; opacity: 0.4 }
Common.Progress {
- anchors.centerIn: parent; width: 200; height: 18
+ anchors.centerIn: parent; width: 200; height: 22
progress: bigImage.progress; visible: bigImage.status != Image.Ready
}
@@ -104,6 +104,24 @@ Flipable {
id: flickable; anchors.fill: parent; clip: true
contentWidth: imageContainer.width; contentHeight: imageContainer.height
+ function updateMinimumScale() {
+ if (bigImage.status == Image.Ready && bigImage.width != 0) {
+ slider.minimum = Math.min(flickable.width / bigImage.width, flickable.height / bigImage.height);
+ if (bigImage.width * slider.value > flickable.width) {
+ var xoff = (flickable.width/2 + flickable.contentX) * slider.value / prevScale;
+ flickable.contentX = xoff - flickable.width/2;
+ }
+ if (bigImage.height * slider.value > flickable.height) {
+ var yoff = (flickable.height/2 + flickable.contentY) * slider.value / prevScale;
+ flickable.contentY = yoff - flickable.height/2;
+ }
+ prevScale = slider.value;
+ }
+ }
+
+ onWidthChanged: updateMinimumScale()
+ onHeightChanged: updateMinimumScale()
+
Item {
id: imageContainer
width: Math.max(bigImage.width * bigImage.scale, flickable.width);
@@ -114,8 +132,8 @@ Flipable {
anchors.centerIn: parent; smooth: !flickable.movingVertically
onStatusChanged : {
// Default scale shows the entire image.
- if (status == Image.Ready && width != 0) {
- slider.minimum = Math.min(flickable.width / width, flickable.height / height);
+ if (bigImage.status == Image.Ready && bigImage.width != 0) {
+ slider.minimum = Math.min(flickable.width / bigImage.width, flickable.height / bigImage.height);
prevScale = Math.min(slider.minimum, 1);
slider.value = prevScale;
}
diff --git a/demos/declarative/flickr/mobile/ListDelegate.qml b/demos/declarative/flickr/mobile/ListDelegate.qml
index 3dd2868ff9..9ec02e159a 100644
--- a/demos/declarative/flickr/mobile/ListDelegate.qml
+++ b/demos/declarative/flickr/mobile/ListDelegate.qml
@@ -55,9 +55,9 @@ Component {
}
Column {
x: 92; width: wrapper.ListView.view.width - 95; y: 15; spacing: 2
- Text { text: title; color: "white"; width: parent.width; font.bold: true; elide: Text.ElideRight; style: Text.Raised; styleColor: "black" }
- Text { text: photoAuthor; width: parent.width; elide: Text.ElideLeft; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
- Text { text: photoDate; width: parent.width; elide: Text.ElideRight; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
+ Text { text: title; color: "white"; width: parent.width; font.pixelSize: 14; font.bold: true; elide: Text.ElideRight; style: Text.Raised; styleColor: "black" }
+ Text { text: photoAuthor; width: parent.width; font.pixelSize: 14; elide: Text.ElideLeft; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
+ Text { text: photoDate; width: parent.width; font.pixelSize: 14; elide: Text.ElideRight; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
}
}
}
diff --git a/demos/declarative/flickr/mobile/TitleBar.qml b/demos/declarative/flickr/mobile/TitleBar.qml
index 335c315e4e..60ca4dcb65 100644
--- a/demos/declarative/flickr/mobile/TitleBar.qml
+++ b/demos/declarative/flickr/mobile/TitleBar.qml
@@ -78,7 +78,7 @@ Item {
}
elide: Text.ElideLeft
text: (rssModel.tags=="" ? untaggedString : taggedString + rssModel.tags)
- font.bold: true; color: "White"; style: Text.Raised; styleColor: "Black"
+ font.bold: true; font.pixelSize: 15; color: "White"; style: Text.Raised; styleColor: "Black"
}
Button {
diff --git a/demos/declarative/minehunt/MinehuntCore/pics/No-Ones-Laughing-3.jpg b/demos/declarative/minehunt/MinehuntCore/pics/No-Ones-Laughing-3.jpg
deleted file mode 100644
index 445567fbda..0000000000
--- a/demos/declarative/minehunt/MinehuntCore/pics/No-Ones-Laughing-3.jpg
+++ /dev/null
Binary files differ
diff --git a/demos/declarative/minehunt/MinehuntCore/pics/background.png b/demos/declarative/minehunt/MinehuntCore/pics/background.png
new file mode 100644
index 0000000000..3734a27744
--- /dev/null
+++ b/demos/declarative/minehunt/MinehuntCore/pics/background.png
Binary files differ
diff --git a/demos/declarative/minehunt/MinehuntCore/pics/quit.png b/demos/declarative/minehunt/MinehuntCore/pics/quit.png
new file mode 100644
index 0000000000..b822057d4e
--- /dev/null
+++ b/demos/declarative/minehunt/MinehuntCore/pics/quit.png
Binary files differ
diff --git a/demos/declarative/minehunt/main.cpp b/demos/declarative/minehunt/main.cpp
index fc223dddfc..8bbaee9cfc 100644
--- a/demos/declarative/minehunt/main.cpp
+++ b/demos/declarative/minehunt/main.cpp
@@ -59,6 +59,7 @@ int main(int argc, char *argv[])
#endif
canvas.engine()->rootContext()->setContextObject(game);
canvas.setSource(QString("minehunt.qml"));
+ QObject::connect(canvas.engine(), SIGNAL(quit()), &app, SLOT(quit()));
#ifdef Q_OS_SYMBIAN
canvas.showFullScreen();
diff --git a/demos/declarative/minehunt/minehunt.pro b/demos/declarative/minehunt/minehunt.pro
index 1d56013a4b..7a491ab6fc 100644
--- a/demos/declarative/minehunt/minehunt.pro
+++ b/demos/declarative/minehunt/minehunt.pro
@@ -15,6 +15,7 @@ INSTALLS = sources target
symbian:{
TARGET.EPOCALLOWDLLDATA = 1
+ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
qmlminehuntfiles.sources = MinehuntCore minehunt.qml
DEPLOYMENT = qmlminehuntfiles
diff --git a/demos/declarative/minehunt/minehunt.qml b/demos/declarative/minehunt/minehunt.qml
index 136f56ada9..4accb527f8 100644
--- a/demos/declarative/minehunt/minehunt.qml
+++ b/demos/declarative/minehunt/minehunt.qml
@@ -49,7 +49,7 @@ Item {
width: 450; height: 450
- Image { source: "MinehuntCore/pics/No-Ones-Laughing-3.jpg"; anchors.fill: parent; fillMode: Image.Tile }
+ Image { source: "MinehuntCore/pics/background.png"; anchors.fill: parent; fillMode: Image.Tile }
Grid {
anchors.horizontalCenter: parent.horizontalCenter
@@ -67,6 +67,18 @@ Item {
x: 20; spacing: 20
anchors.bottom: field.bottom; anchors.bottomMargin: 15
+ Image {
+ source: "MinehuntCore/pics/quit.png"
+ scale: quitMouse.pressed ? 0.8 : 1.0
+ smooth: quitMouse.pressed
+ y: 10
+ MouseArea {
+ id: quitMouse
+ anchors.fill: parent
+ anchors.margins: -20
+ onClicked: Qt.quit()
+ }
+ }
Column {
spacing: 2
Image { source: "MinehuntCore/pics/bomb-color.png" }
diff --git a/demos/declarative/photoviewer/photoviewer.qml b/demos/declarative/photoviewer/photoviewer.qml
index 4ed31050af..3072ea2b09 100644
--- a/demos/declarative/photoviewer/photoviewer.qml
+++ b/demos/declarative/photoviewer/photoviewer.qml
@@ -81,6 +81,11 @@ Rectangle {
onClicked: mainWindow.editMode = !mainWindow.editMode
anchors.horizontalCenter: parent.horizontalCenter
}
+ Button {
+ id: quitButton; label: qsTr("Quit"); rotation: -2;
+ onClicked: Qt.quit()
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
}
Rectangle {
diff --git a/demos/declarative/rssnews/rssnews.qml b/demos/declarative/rssnews/rssnews.qml
index def3e2cb4c..fb5b5a3ede 100644
--- a/demos/declarative/rssnews/rssnews.qml
+++ b/demos/declarative/rssnews/rssnews.qml
@@ -71,6 +71,7 @@ Rectangle {
id: categories
anchors.fill: parent
model: rssFeeds
+ footer: quitButtonDelegate
delegate: CategoryDelegate {}
highlight: Rectangle { color: "steelblue" }
highlightMoveSpeed: 9999999
@@ -87,7 +88,24 @@ Rectangle {
delegate: NewsDelegate {}
}
}
-
+ Component {
+ id: quitButtonDelegate
+ Item {
+ width: categories.width; height: 60
+ Text {
+ text: "Quit"
+ font { family: "Helvetica"; pixelSize: 16; bold: true }
+ anchors {
+ left: parent.left; leftMargin: 15
+ verticalCenter: parent.verticalCenter
+ }
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: Qt.quit()
+ }
+ }
+ }
ScrollBar { scrollArea: list; height: list.height; width: 8; anchors.right: window.right }
Rectangle { x: 220; height: window.height; width: 1; color: "#cccccc" }
}
diff --git a/demos/declarative/samegame/SamegameCore/samegame.js b/demos/declarative/samegame/SamegameCore/samegame.js
index aa1b359815..9266767738 100755
--- a/demos/declarative/samegame/SamegameCore/samegame.js
+++ b/demos/declarative/samegame/SamegameCore/samegame.js
@@ -151,7 +151,8 @@ function victoryCheck()
gameDuration = new Date() - gameDuration;
nameInputDialog.show("You won! Please enter your name: ");
nameInputDialog.initialWidth = nameInputDialog.text.width + 20;
- nameInputDialog.width = nameInputDialog.initialWidth;
+ if(nameInputDialog.name == "")
+ nameInputDialog.width = nameInputDialog.initialWidth;
nameInputDialog.text.opacity = 0;//Just a spacer
}
}
diff --git a/demos/declarative/samegame/samegame.qml b/demos/declarative/samegame/samegame.qml
index 9504fb653d..3e9c50523c 100644
--- a/demos/declarative/samegame/samegame.qml
+++ b/demos/declarative/samegame/samegame.qml
@@ -82,6 +82,7 @@ Rectangle {
id: nameInputDialog
property int initialWidth: 0
+ property alias name: nameInputText.text
anchors.centerIn: parent
z: 22;
diff --git a/demos/declarative/snake/content/Cookie.qml b/demos/declarative/snake/content/Cookie.qml
index e67a7afa66..eb57fd215a 100644
--- a/demos/declarative/snake/content/Cookie.qml
+++ b/demos/declarative/snake/content/Cookie.qml
@@ -59,7 +59,6 @@ Item {
anchors.fill: parent
source: "pics/cookie.png"
opacity: 0
- Behavior on opacity { NumberAnimation { duration: 100 } }
Text {
font.bold: true
anchors.verticalCenter: parent.verticalCenter
@@ -87,4 +86,9 @@ Item {
PropertyChanges { target: img; opacity: 0 }
}
]
+ transitions: [
+ Transition {
+ NumberAnimation { target: img; property: "opacity"; duration: 100 }
+ }
+ ]
}
diff --git a/demos/declarative/snake/content/Link.qml b/demos/declarative/snake/content/Link.qml
index 9aa6006d89..942008d02d 100644
--- a/demos/declarative/snake/content/Link.qml
+++ b/demos/declarative/snake/content/Link.qml
@@ -86,7 +86,6 @@ Item { id:link
}
opacity: 0
- Behavior on opacity { NumberAnimation { duration: 200 } }
}
@@ -114,4 +113,11 @@ Item { id:link
PropertyChanges { target: img; opacity: 0 }
}
]
+
+ transitions: [
+ Transition {
+ NumberAnimation { target: img; property: "opacity"; duration: 200 }
+ }
+ ]
+
}
diff --git a/demos/declarative/snake/content/snake.js b/demos/declarative/snake/content/snake.js
index fab7834d19..c2e9d3aa29 100644
--- a/demos/declarative/snake/content/snake.js
+++ b/demos/declarative/snake/content/snake.js
@@ -35,7 +35,7 @@ function startNewGame()
if (heartbeat.running) {
endGame();
startNewGameTimer.running = true;
- state = "starting";
+ state = "";
return;
}
diff --git a/demos/declarative/snake/snake.qml b/demos/declarative/snake/snake.qml
index ed3bac9880..4d989df453 100644
--- a/demos/declarative/snake/snake.qml
+++ b/demos/declarative/snake/snake.qml
@@ -106,7 +106,6 @@ Rectangle {
anchors.fill: parent
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
- Behavior on opacity { NumberAnimation { duration: 500 } }
Text {
color: "white"
@@ -194,6 +193,12 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter
}
+ Content.Button {
+ text: "Quit"
+ anchors { left: btnA.right; leftMargin: 3; verticalCenter: parent.verticalCenter }
+ onClicked: Qt.quit();
+ }
+
Text {
color: activePalette.text
text: "Score: " + score; font.bold: true
@@ -230,7 +235,10 @@ Rectangle {
from: "*"
to: "starting"
NumberAnimation { target: progressIndicator; property: "width"; duration: 1000 }
-
+ NumberAnimation { target: title; property: "opacity"; duration: 500 }
+ },
+ Transition {
+ NumberAnimation { target: title; property: "opacity"; duration: 500 }
}
]
diff --git a/demos/declarative/twitter/TwitterCore/AuthView.qml b/demos/declarative/twitter/TwitterCore/AuthView.qml
deleted file mode 100644
index 0d05debe7d..0000000000
--- a/demos/declarative/twitter/TwitterCore/AuthView.qml
+++ /dev/null
@@ -1,146 +0,0 @@
-/****************************************************************************
-**
-** 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 QtDeclarative module 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: wrapper
- Column {
- anchors.centerIn: parent
- spacing: 20
- Column{
- spacing: 4
- Text {
- text: "Screen name:"
- font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
- horizontalAlignment: Qt.AlignRight
- }
- Item {
- width: 220
- height: 28
- BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
- TextInput{
- id: nameIn
- width: parent.width - 8
- anchors.centerIn: parent
- maximumLength:21
- font.pixelSize: 16;
- font.bold: true
- color: "#151515"; selectionColor: "green"
- KeyNavigation.tab: passIn
- KeyNavigation.backtab: guest
- focus: true
- }
- }
- }
- Column{
- spacing: 4
- Text {
- text: "Password:"
- font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
- horizontalAlignment: Qt.AlignRight
- }
- Item {
- width: 220
- height: 28
- BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
- TextInput{
- id: passIn
- width: parent.width - 8
- anchors.centerIn: parent
- maximumLength:21
- echoMode: TextInput.Password
- font.pixelSize: 16;
- font.bold: true
- color: "#151515"; selectionColor: "green"
- KeyNavigation.tab: login
- KeyNavigation.backtab: nameIn
- onAccepted: login.doLogin();
- }
- }
- }
- Row{
- spacing: 10
- Button {
- width: 100
- height: 32
- id: login
- keyUsing: true;
- function doLogin(){
- rssModel.authName=nameIn.text;
- rssModel.authPass=passIn.text;
- rssModel.tags='my timeline';
- screen.focus = true;
- }
- text: "Log in"
- KeyNavigation.right: guest
- KeyNavigation.tab: guest
- KeyNavigation.backtab: passIn
- Keys.onReturnPressed: login.doLogin();
- Keys.onEnterPressed: login.doLogin();
- Keys.onSelectPressed: login.doLogin();
- Keys.onSpacePressed: login.doLogin();
- onClicked: login.doLogin();
- }
- Button {
- width: 100
- height: 32
- id: guest
- keyUsing: true;
- function doGuest()
- {
- rssModel.authName='-';
- screen.focus = true;
- screen.setMode(true);
- }
- text: "Guest"
- KeyNavigation.left: login
- KeyNavigation.tab: nameIn
- KeyNavigation.backtab: login
- Keys.onReturnPressed: guest.doGuest();
- Keys.onEnterPressed: guest.doGuest();
- Keys.onSelectPressed: guest.doGuest();
- Keys.onSpacePressed: guest.doGuest();
- onClicked: guest.doGuest();
- }
- }
- }
-}
diff --git a/demos/declarative/twitter/TwitterCore/Button.qml b/demos/declarative/twitter/TwitterCore/Button.qml
index d326c643a2..437b013e8f 100644
--- a/demos/declarative/twitter/TwitterCore/Button.qml
+++ b/demos/declarative/twitter/TwitterCore/Button.qml
@@ -67,7 +67,7 @@ Item {
}
Text {
id: btnText
- color: if(container.keyUsing){"#DDDDDD";} else {"#FFFFFF";}
+ color: if(container.keyUsing){"#D0D0D0";} else {"#FFFFFF";}
anchors.centerIn: buttonImage; font.bold: true
text: container.text; style: Text.Raised; styleColor: "black"
font.pixelSize: 12
diff --git a/demos/declarative/twitter/TwitterCore/FatDelegate.qml b/demos/declarative/twitter/TwitterCore/FatDelegate.qml
index ff03b0b566..27dd300318 100644
--- a/demos/declarative/twitter/TwitterCore/FatDelegate.qml
+++ b/demos/declarative/twitter/TwitterCore/FatDelegate.qml
@@ -44,11 +44,10 @@ import Qt 4.7
Component {
id: listDelegate
Item {
- id: wrapper; width: wrapper.ListView.view.width; height: if(txt.height > 58){txt.height+8}else{58}//50+4+4
+ id: wrapper; width: wrapper.ListView.view.width; height: if(txt.height > 60){txt.height+10}else{60} //50+5+5
function handleLink(link){
if(link.slice(0,3) == 'app'){
screen.setUser(link.slice(7));
- screen.setMode(true);
}else if(link.slice(0,4) == 'http'){
Qt.openUrlExternally(link);
}
@@ -58,26 +57,47 @@ Component {
var ret2 = ret.replace(/http:\/\/[^ \n\t]+/g, '<a href="$&">$&</a>');//surrounds http links with html link tags
return ret2;
}
+
+ // Strip away paranthesis
+ function userName(str) {
+ var user = str.replace(/\([\S|\s]*\)/gi, "");
+ return user.trim();
+ }
+
Item {
id: moveMe; height: parent.height
Rectangle {
id: blackRect
color: "black"; opacity: wrapper.ListView.index % 2 ? 0.2 : 0.3; height: wrapper.height-2; width: wrapper.width; y: 1
}
- Rectangle {
- id: whiteRect; x: 6; width: 50; height: 50; color: "white"; smooth: true
+ Item {
+ id: image; x: 6; width: 48; height: 48; smooth: true
anchors.verticalCenter: parent.verticalCenter
Loading { x: 1; y: 1; width: 48; height: 48; visible: realImage.status != Image.Ready }
- Image { id: realImage; source: userImage; x: 1; y: 1; width:48; height:48 }
+ Image {
+ id: realImage;
+ source: userImage; x: 1; y: 1;
+ width:48; height:48; opacity:0 ;
+ onStatusChanged: {
+ if(status==Image.Ready)
+ image.state="loaded"
+ }
+ }
+ states: State {
+ name: "loaded";
+ PropertyChanges { target: realImage ; opacity:1 }
+ }
+ transitions: Transition { NumberAnimation { target: realImage; property: "opacity"; duration: 200 } }
+
}
Text { id:txt; y:4; x: 56
text: '<html><style type="text/css">a:link {color:"#aaccaa"}; a:visited {color:"#336633"}</style>'
- + '<a href="app://@'+userScreenName+'"><b>'+userScreenName + "</b></a> from " +source
- + "<br /><b>" + wrapper.addTags(statusText) + "</b></html>";
+ + '<a href="app://@'+userName(name)+'"><b>'+userName(name) + "</b></a> from " +source
+ + "<br /><b>" + statusText + "</b></html>";
textFormat: Qt.RichText
color: "#cccccc"; style: Text.Raised; styleColor: "black"; wrapMode: Text.WordWrap
- anchors.left: whiteRect.right; anchors.right: blackRect.right; anchors.leftMargin: 6; anchors.rightMargin: 6
+ anchors.left: image.right; anchors.right: blackRect.right; anchors.leftMargin: 6; anchors.rightMargin: 6
onLinkActivated: wrapper.handleLink(link)
}
}
diff --git a/demos/declarative/twitter/TwitterCore/HomeTitleBar.qml b/demos/declarative/twitter/TwitterCore/HomeTitleBar.qml
deleted file mode 100644
index 56f31b13c3..0000000000
--- a/demos/declarative/twitter/TwitterCore/HomeTitleBar.qml
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
-**
-** 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 QtDeclarative module 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: titleBar
-
- signal update()
- onYChanged: state="" //When switching titlebars
-
- BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 }
- Item {
- id: container
- width: (parent.width * 2) - 55 ; height: parent.height
-
- function accept() {
- if(rssModel.authName == '' || rssModel.authPass == '')
- return false;//Can't login like that
-
- var postData = "status=" + editor.text;
- var postman = new XMLHttpRequest();
- postman.open("POST", "http://twitter.com/statuses/update.xml", true, rssModel.authName, rssModel.authPass);
- postman.onreadystatechange = function() {
- if (postman.readyState == postman.DONE) {
- titleBar.update();
- }
- }
- postman.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- postman.send(postData);
-
- editor.text = ""
- titleBar.state = ""
- }
-
- Rectangle {
- x: 6; width: 50; height: 50; color: "white"; smooth: true
- anchors.verticalCenter: parent.verticalCenter
-
- UserModel { user: rssModel.authName; id: userModel }
- Component { id: imgDelegate;
- Item {
- Loading { width:48; height:48; visible: realImage.status != Image.Ready }
- Image { source: image; width:48; height:48; id: realImage }
- }
- }
- ListView { model: userModel.model; x:1; y:1; delegate: imgDelegate }
- }
-
- Text {
- id: categoryText
- anchors.left: parent.left; anchors.right: tagButton.left
- anchors.leftMargin: 58; anchors.rightMargin: 10
- anchors.verticalCenter: parent.verticalCenter
- elide: Text.ElideLeft
- text: "Timeline for " + rssModel.authName
- font.pixelSize: 12; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
- }
-
- Button {
- id: tagButton; x: titleBar.width - 90; width: 85; height: 32; text: "New Post..."
- anchors.verticalCenter: parent.verticalCenter;
- onClicked: if (titleBar.state == "Posting") container.accept(); else titleBar.state = "Posting"
- }
-
- Text {
- id: charsLeftText; anchors.horizontalCenter: tagButton.horizontalCenter;
- anchors.top: tagButton.bottom; anchors.topMargin: 2
- text: {140 - editor.text.length;} visible: titleBar.state == "Posting"
- font.pointSize: 10; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
- }
- Item {
- id: txtEdit;
- anchors.left: tagButton.right; anchors.leftMargin: 5; y: 4
- anchors.right: parent.right; anchors.rightMargin: 40; height: parent.height - 9
- BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
-
- Binding {//TODO: Can this be a function, which also resets the cursor? And flashes?
- when: editor.text.length > 140
- target: editor
- property: "text"
- value: editor.text.slice(0,140)
- }
- TextEdit {
- id: editor
- anchors.left: parent.left;
- anchors.leftMargin: 8;
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 4;
- cursorVisible: true; font.bold: true
- width: parent.width - 12
- height: parent.height - 8
- font.pixelSize: 12
- wrapMode: TextEdit.Wrap
- color: "#151515"; selectionColor: "green"
- }
- Keys.forwardTo: [(returnKey), (editor)]
- Item {
- id: returnKey
- Keys.onReturnPressed: container.accept()
- Keys.onEnterPressed: container.accept()
- Keys.onEscapePressed: titleBar.state = ""
- }
- }
- }
- states: [
- State {
- name: "Posting"
- PropertyChanges { target: container; x: -tagButton.x + 5 }
- PropertyChanges { target: titleBar; height: 80 }
- PropertyChanges { target: tagButton; text: "OK" }
- PropertyChanges { target: tagButton; width: 28 }
- PropertyChanges { target: tagButton; height: 24 }
- PropertyChanges { target: editor; focus: true }
- }
- ]
- transitions: [
- Transition {
- from: "*"; to: "*"
- NumberAnimation { properties: "x,y,width,height"; easing.type: Easing.InOutQuad }
- }
- ]
-}
diff --git a/doc/src/snippets/declarative/qmldocuments.qml b/demos/declarative/twitter/TwitterCore/Input.qml
index c19a65874a..a33a9958e1 100644
--- a/doc/src/snippets/declarative/qmldocuments.qml
+++ b/demos/declarative/twitter/TwitterCore/Input.qml
@@ -38,29 +38,28 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-//![0]
-import Qt 4.7
-
-Rectangle {
- property alias text: textItem.text
-
- width: 100; height: 30
- border.width: 1
- radius: 5
- smooth: true
- gradient: Gradient {
- GradientStop { position: 0.0; color: "darkGray" }
- GradientStop { position: 0.5; color: "black" }
- GradientStop { position: 1.0; color: "darkGray" }
- }
+import Qt 4.7
- Text {
- id: textItem
+FocusScope {
+ id:container
+ width: 220
+ height: 28
+ BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
+ signal accepted
+ property alias text: input.text
+ property alias item:input
+ TextInput{
+ id: input
+ width: parent.width - 12
anchors.centerIn: parent
- font.pointSize: 20
- color: "white"
+ maximumLength:21
+ font.pixelSize: 16;
+ font.bold: true
+ color: "#151515"; selectionColor: "mediumseagreen"
+ focus: true
+ onAccepted:{container.accepted()}
+ text: ""
+ selectByMouse: true
}
-
}
-//![0]
diff --git a/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml b/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml
index 38d6c9cbf7..29b771354e 100644
--- a/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml
+++ b/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml
@@ -42,10 +42,6 @@
import Qt 4.7
Item {
- height: homeBar.height
- HomeTitleBar { id: homeBar; width: parent.width; height: 60;
- onUpdate: rssModel.reload()
- }
TitleBar { id: titleBar; width: parent.width; height: 60;
y: -80
untaggedString: "Latest tweets from everyone"
@@ -53,9 +49,8 @@ Item {
}
states: [
State {
- name: "search"; when: screen.userView
+ name: "search"; when: screen.state!="search"
PropertyChanges { target: titleBar; y: 0 }
- PropertyChanges { target: homeBar; y: -80 }
}
]
transitions: [
diff --git a/demos/declarative/twitter/TwitterCore/RssModel.qml b/demos/declarative/twitter/TwitterCore/RssModel.qml
index bd73200c1e..d03cdb343c 100644
--- a/demos/declarative/twitter/TwitterCore/RssModel.qml
+++ b/demos/declarative/twitter/TwitterCore/RssModel.qml
@@ -43,43 +43,34 @@ import Qt 4.7
Item { id: wrapper
property variant model: xmlModel
- property string tags : ""
- property string authName : ""
- property string authPass : ""
+ property string from : ""
+ property string to : ""
+ property string phrase : ""
+
property string mode : "everyone"
property int status: xmlModel.status
function reload() { xmlModel.reload(); }
-XmlListModel {
- id: xmlModel
+ XmlListModel {
+ id: xmlModel
- source:{
- if (wrapper.authName == ""){
- ""; //Avoid worthless calls to twitter servers
- }else if(wrapper.mode == 'user'){
- "https://"+ ((wrapper.authName!="" && wrapper.authPass!="")? (wrapper.authName+":"+wrapper.authPass+"@") : "" )+"twitter.com/statuses/user_timeline.xml?screen_name="+wrapper.tags;
- }else if(wrapper.mode == 'self'){
- "https://"+ ((wrapper.authName!="" && wrapper.authPass!="")? (wrapper.authName+":"+wrapper.authPass+"@") : "" )+"twitter.com/statuses/friends_timeline.xml";
- }else{//everyone/public
- "http://twitter.com/statuses/public_timeline.xml";
- }
- }
- query: "/statuses/status"
+ source: (from=="" && to=="" && phrase=="") ? "" :
+ 'http://search.twitter.com/search.atom?from='+from+"&to="+to+"&phrase="+phrase
- XmlRole { name: "statusText"; query: "text/string()" }
- XmlRole { name: "timestamp"; query: "created_at/string()" }
- XmlRole { name: "source"; query: "source/string()" }
- XmlRole { name: "userName"; query: "user/name/string()" }
- XmlRole { name: "userScreenName"; query: "user/screen_name/string()" }
- XmlRole { name: "userImage"; query: "user/profile_image_url/string()" }
- XmlRole { name: "userLocation"; query: "user/location/string()" }
- XmlRole { name: "userDescription"; query: "user/description/string()" }
- XmlRole { name: "userFollowers"; query: "user/followers_count/string()" }
- XmlRole { name: "userStatuses"; query: "user/statuses_count/string()" }
- //TODO: Could also get the user's color scheme, timezone and a few other things
-}
-Binding {
- property: "mode"
- target: wrapper
- value: {if(wrapper.tags==''){"everyone";}else if(wrapper.tags=='my timeline'){"self";}else{"user";}}
-}
+ namespaceDeclarations: "declare default element namespace 'http://www.w3.org/2005/Atom'; " +
+ "declare namespace twitter=\"http://api.twitter.com/\";";
+
+ query: "/feed/entry"
+
+ XmlRole { name: "statusText"; query: "content/string()" }
+ XmlRole { name: "timestamp"; query: "published/string()" }
+ XmlRole { name: "source"; query: "twitter:source/string()" }
+ XmlRole { name: "name"; query: "author/name/string()" }
+ XmlRole { name: "userImage"; query: "link[@rel = 'image']/@href/string()" }
+
+ }
+ Binding {
+ property: "mode"
+ target: wrapper
+ value: {if(wrapper.tags==''){"everyone";}else if(wrapper.tags=='my timeline'){"self";}else{"user";}}
+ }
}
diff --git a/demos/declarative/twitter/TwitterCore/SearchView.qml b/demos/declarative/twitter/TwitterCore/SearchView.qml
new file mode 100644
index 0000000000..22df374fd1
--- /dev/null
+++ b/demos/declarative/twitter/TwitterCore/SearchView.qml
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module 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
+
+FocusScope {
+ id: wrapper
+ Column {
+ anchors.centerIn: parent
+ spacing: 20
+ Column{
+ spacing: 4
+ Text {
+ text: "Posted by:"
+ font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
+ horizontalAlignment: Qt.AlignRight
+ }
+ Input{
+ id: fromIn
+ KeyNavigation.backtab: searchbutton
+ KeyNavigation.tab:toIn
+ onAccepted:searchbutton.doSearch();
+ focus: true
+ }
+ Text {
+ text: "In reply to:"
+ font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
+ horizontalAlignment: Qt.AlignRight
+ }
+ Input{
+ id: toIn
+ KeyNavigation.backtab: fromIn
+ KeyNavigation.tab:phraseIn
+ onAccepted:searchbutton.doSearch();
+ }
+ Text {
+ text: "Search phrase:"
+ font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
+ horizontalAlignment: Qt.AlignRight
+ }
+ Input{
+ id: phraseIn
+ KeyNavigation.backtab: toIn
+ KeyNavigation.tab:searchbutton
+ onAccepted:searchbutton.doSearch();
+ text: "Qt Quick"
+ }
+ }
+ Button {
+ width: 100
+ height: 32
+ id: searchbutton
+ keyUsing: true;
+ opacity: 1
+ text: "Search"
+ KeyNavigation.tab: fromIn
+ Keys.onReturnPressed: searchbutton.doSearch();
+ Keys.onEnterPressed: searchbutton.doSearch();
+ Keys.onSelectPressed: searchbutton.doSearch();
+ Keys.onSpacePressed: searchbutton.doSearch();
+ onClicked: searchbutton.doSearch();
+
+ function doSearch() {
+ // Search ! allowed
+ if (wrapper.state=="invalidinput")
+ return;
+
+ rssModel.from=fromIn.text;
+ rssModel.to= toIn.text;
+ rssModel.phrase = phraseIn.text;
+ screen.focus = true;
+ screen.state = ""
+ }
+ }
+ }
+ states:
+ State {
+ name: "invalidinput"
+ when: fromIn.text=="" && toIn.text=="" && phraseIn.text==""
+ PropertyChanges { target: searchbutton ; opacity: 0.6 ; }
+ }
+ transitions:
+ Transition {
+ NumberAnimation { target: searchbutton; property: "opacity"; duration: 200 }
+ }
+}
diff --git a/demos/declarative/twitter/TwitterCore/TitleBar.qml b/demos/declarative/twitter/TwitterCore/TitleBar.qml
index 558bc180ff..70de81dbef 100644
--- a/demos/declarative/twitter/TwitterCore/TitleBar.qml
+++ b/demos/declarative/twitter/TwitterCore/TitleBar.qml
@@ -58,56 +58,69 @@ Item {
rssModel.tags = editor.text
}
+ Item {
+ id:imageBox
+ x: 6; width: 0; height: 50; smooth: true
+ anchors.verticalCenter: parent.verticalCenter
+
+ UserModel { user: rssModel.from; id: userModel }
+ Component {
+ id: imgDelegate;
+ Item {
+ id:imageitem
+ visible:true
+ Loading { width:48; height:48; visible: realImage.status != Image.Ready }
+ Image { id: realImage; source: image; width:48; height:48; opacity:0; }
+ states:
+ State {
+ name: "loaded"
+ when: (realImage.status == Image.Ready)
+ PropertyChanges { target: realImage; opacity:1 }
+ }
+ transitions: Transition {
+ NumberAnimation { target: realImage; property: "opacity"; duration: 200 }
+ }
+ }
+ }
+ ListView { id:view; model: userModel.model; x:1; y:1; delegate: imgDelegate }
+ states:
+ State {
+ when: !userModel.user==""
+ PropertyChanges { target: imageBox; width: 50; }
+ }
+ transitions:
+ Transition {
+ NumberAnimation { target: imageBox; property: "width"; duration: 200 }
+ }
+ }
+
+ Image {
+ id: quitButton
+ x: 5
+ anchors.verticalCenter: parent.verticalCenter
+ source: "images/quit.png"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: Qt.quit()
+ }
+ }
+
Text {
id: categoryText
anchors {
- left: parent.left; right: tagButton.left; leftMargin: 10; rightMargin: 10
+ left: quitButton.right; right: parent.right; leftMargin: 10; rightMargin: 10
verticalCenter: parent.verticalCenter
}
elide: Text.ElideLeft
- text: (rssModel.tags=="" ? untaggedString : taggedString + rssModel.tags)
+ text: (rssModel.from=="" ? untaggedString : taggedString + rssModel.from)
font.bold: true; color: "White"; style: Text.Raised; styleColor: "Black"
font.pixelSize: 12
}
-
- Button {
- id: tagButton; x: titleBar.width - 50; width: 45; height: 32; text: "..."
- onClicked: if (titleBar.state == "Tags") container.accept(); else titleBar.state = "Tags"
- anchors.verticalCenter: parent.verticalCenter
- }
-
- Item {
- id: lineEdit
- y: 4; height: parent.height - 9
- anchors { left: tagButton.right; leftMargin: 5; right: parent.right; rightMargin: 5 }
-
- BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
-
- TextInput {
- id: editor
- anchors {
- left: parent.left; right: parent.right; leftMargin: 10; rightMargin: 10
- verticalCenter: parent.verticalCenter
- }
- cursorVisible: true; font.bold: true
- color: "#151515"; selectionColor: "Green"
- }
-
- Keys.forwardTo: [ (returnKey), (editor)]
-
- Item {
- id: returnKey
- Keys.onReturnPressed: container.accept()
- Keys.onEnterPressed: container.accept()
- Keys.onEscapePressed: titleBar.state = ""
- }
- }
}
states: State {
name: "Tags"
PropertyChanges { target: container; x: -tagButton.x + 5 }
- PropertyChanges { target: tagButton; text: "OK" }
PropertyChanges { target: editor; focus: true }
}
diff --git a/demos/declarative/twitter/TwitterCore/ToolBar.qml b/demos/declarative/twitter/TwitterCore/ToolBar.qml
index b9cb915232..e18f5c66e8 100644
--- a/demos/declarative/twitter/TwitterCore/ToolBar.qml
+++ b/demos/declarative/twitter/TwitterCore/ToolBar.qml
@@ -48,15 +48,14 @@ Item {
property alias button2Label: button2.text
signal button1Clicked
signal button2Clicked
-
+ focus:true
BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 }
-
Button {
id: button1
anchors.left: parent.left; anchors.leftMargin: 5; y: 3; width: 140; height: 32
onClicked: toolbar.button1Clicked()
+ focus:true
}
-
Button {
id: button2
anchors.right: parent.right; anchors.rightMargin: 5; y: 3; width: 140; height: 32
diff --git a/demos/declarative/twitter/TwitterCore/UserModel.qml b/demos/declarative/twitter/TwitterCore/UserModel.qml
index e653836e48..d8ca804055 100644
--- a/demos/declarative/twitter/TwitterCore/UserModel.qml
+++ b/demos/declarative/twitter/TwitterCore/UserModel.qml
@@ -42,26 +42,24 @@
import Qt 4.7
//This "model" gets the user information about the searched user. Mainly for the icon.
-//Copied from RssModel
Item { id: wrapper
property variant model: xmlModel
property string user : ""
property int status: xmlModel.status
function reload() { xmlModel.reload(); }
-XmlListModel {
- id: xmlModel
+ XmlListModel {
+ id: xmlModel
- source: {if(user!="") {"http://twitter.com/users/show.xml?screen_name="+user;}else{"";}}
- query: "/user"
+ source: user!= "" ? "http://twitter.com/users/show.xml?screen_name="+user : ""
+ query: "/user"
- XmlRole { name: "name"; query: "name/string()" }
- XmlRole { name: "screenName"; query: "screen_name/string()" }
- XmlRole { name: "image"; query: "profile_image_url/string()" }
- XmlRole { name: "location"; query: "location/string()" }
- XmlRole { name: "description"; query: "description/string()" }
- XmlRole { name: "followers"; query: "followers_count/string()" }
- //XmlRole { name: "protected"; query: "protected/bool()" }
- //TODO: Could also get the user's color scheme, timezone and a few other things
-}
+ XmlRole { name: "name"; query: "name/string()" }
+ XmlRole { name: "screenName"; query: "screen_name/string()" }
+ XmlRole { name: "image"; query: "profile_image_url/string()" }
+ XmlRole { name: "location"; query: "location/string()" }
+ XmlRole { name: "description"; query: "description/string()" }
+ XmlRole { name: "followers"; query: "followers_count/string()" }
+ //TODO: Could also get the user's color scheme, timezone and a few other things
+ }
}
diff --git a/demos/declarative/twitter/TwitterCore/images/quit.png b/demos/declarative/twitter/TwitterCore/images/quit.png
new file mode 100644
index 0000000000..5bda1b6e0d
--- /dev/null
+++ b/demos/declarative/twitter/TwitterCore/images/quit.png
Binary files differ
diff --git a/demos/declarative/twitter/TwitterCore/qmldir b/demos/declarative/twitter/TwitterCore/qmldir
index 8b56c56330..84d85c2885 100644
--- a/demos/declarative/twitter/TwitterCore/qmldir
+++ b/demos/declarative/twitter/TwitterCore/qmldir
@@ -1,7 +1,7 @@
-AuthView 1.0 AuthView.qml
+SearchView 1.0 SearchView.qml
Button 1.0 Button.qml
+Input 1.0 Input.qml
FatDelegate 1.0 FatDelegate.qml
-HomeTitleBar 1.0 HomeTitleBar.qml
Loading 1.0 Loading.qml
MultiTitleBar 1.0 MultiTitleBar.qml
TitleBar 1.0 TitleBar.qml
diff --git a/demos/declarative/twitter/twitter.qml b/demos/declarative/twitter/twitter.qml
index 08cecb09bc..6d224a269d 100644
--- a/demos/declarative/twitter/twitter.qml
+++ b/demos/declarative/twitter/twitter.qml
@@ -46,28 +46,18 @@ Item {
id: screen; width: 320; height: 480
property bool userView : false
property variant tmpStr
- function setMode(m){
- screen.userView = m;
- if(m == false){
- rssModel.tags='my timeline';
- rssModel.reload();
- toolBar.button2Label = "View others";
- } else {
- toolBar.button2Label = "Return home";
- }
- }
function setUser(str){hack.running = true; tmpStr = str}
- function reallySetUser(){rssModel.tags = tmpStr;}
-
+ function reallySetUser(){rssModel.from = tmpStr;rssModel.to = ""; rssModel.phrase = ""}
+ state:"searchquery"
//Workaround for bug 260266
Timer{ interval: 1; running: false; repeat: false; onTriggered: screen.reallySetUser(); id:hack }
-
- //TODO: better way to return to the auth screen
- Keys.onEscapePressed: rssModel.authName=''
+ Keys.onEscapePressed: screen.state="searchquery"
+ Keys.onBacktabPressed: screen.state="searchquery"
Rectangle {
id: background
anchors.fill: parent; color: "#343434";
+ state:"searchquery"
Image { source: "TwitterCore/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 }
MouseArea {
@@ -90,8 +80,16 @@ Item {
y:60 //Below the title bars
height: 380
- Twitter.AuthView{
- id: authView
+ Text {
+ id:title
+ text: "Search Twitter"
+ anchors.horizontalCenter: parent.horizontalCenter
+ font.pixelSize: 20; font.bold: true; color: "#bbb"; style: Text.Raised; styleColor: "black"
+ opacity:0
+ }
+
+ Twitter.SearchView{
+ id: searchView
anchors.verticalCenter: parent.verticalCenter
width: parent.width; height: parent.height-60;
x: -(screen.width * 1.5)
@@ -110,31 +108,27 @@ Item {
//TODO: Use anchor changes instead of hard coding
y: screen.height - 40
width: parent.width; opacity: 0.9
- button1Label: "Update"
- button2Label: "View others"
- onButton1Clicked: rssModel.reload();
- onButton2Clicked:
+ button1Label: "New Search"
+ button2Label: "Update"
+ onButton1Clicked:
{
- if(screen.userView == true){
- screen.setMode(false);
- }else{
- rssModel.tags='';
- screen.setMode(true);
- }
+ screen.state="searchquery"
}
+ onButton2Clicked: rssModel.reload();
}
-
- states: [
- State {
- name: "unauthed"; when: rssModel.authName==""
- PropertyChanges { target: authView; x: 0 }
- PropertyChanges { target: mainView; x: -(parent.width * 1.5) }
- PropertyChanges { target: titleBar; y: -80 }
- PropertyChanges { target: toolBar; y: screen.height }
- }
- ]
- transitions: [
- Transition { NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad } }
- ]
}
+ states: [
+ State {
+ name: "searchquery";
+ PropertyChanges { target: searchView; x: 0; focus:true}
+ PropertyChanges { target: mainView; x: -(parent.width * 1.5) }
+ PropertyChanges { target: titleBar; y: -80 }
+ PropertyChanges { target: toolBar; y: screen.height }
+ PropertyChanges { target: toolBar }
+ PropertyChanges { target: title; opacity:1}
+ }
+ ]
+ transitions: [
+ Transition { NumberAnimation { properties: "x,y,opacity"; duration: 500; easing.type: Easing.InOutQuad } }
+ ]
}
diff --git a/demos/declarative/webbrowser/content/Header.qml b/demos/declarative/webbrowser/content/Header.qml
index 5abf440535..d3ccae30a7 100644
--- a/demos/declarative/webbrowser/content/Header.qml
+++ b/demos/declarative/webbrowser/content/Header.qml
@@ -51,7 +51,6 @@ Image {
x: webView.contentX < 0 ? -webView.contentX : webView.contentX > webView.contentWidth-webView.width
? -webView.contentX+webView.contentWidth-webView.width : 0
-
y: {
if (webView.progress < 1.0)
return 0;
@@ -59,7 +58,6 @@ Image {
webView.contentY < 0 ? -webView.contentY : webView.contentY > height ? -height : -webView.contentY
}
}
-
Column {
width: parent.width
@@ -101,14 +99,38 @@ Image {
Button {
id: reloadButton
- anchors { right: parent.right; rightMargin: 4 }
+ anchors { right: quitButton.left; rightMargin: 10 }
action: webView.reload; image: "pics/view-refresh.png"
visible: webView.progress == 1.0 && !header.urlChanged
}
+ Text {
+ id: quitButton
+ color: "white"
+ style: Text.Sunken
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: 18
+ width: 60
+ text: "Quit"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: Qt.quit()
+ }
+ Rectangle {
+ width: 1
+ y: 5
+ height: parent.height-10
+ anchors.right: parent.left
+ color: "darkgray"
+ }
+ }
Button {
id: stopButton
- anchors { right: parent.right; rightMargin: 4 }
+ anchors { right: quitButton.left; rightMargin: 10 }
action: webView.stop; image: "pics/edit-delete.png"
visible: webView.progress < 1.0 && !header.urlChanged
}
diff --git a/demos/declarative/webbrowser/content/pics/edit-delete.png b/demos/declarative/webbrowser/content/pics/edit-delete.png
index 351659ba4b..df2a147d24 100644
--- a/demos/declarative/webbrowser/content/pics/edit-delete.png
+++ b/demos/declarative/webbrowser/content/pics/edit-delete.png
Binary files differ
diff --git a/demos/declarative/webbrowser/content/pics/go-jump-locationbar.png b/demos/declarative/webbrowser/content/pics/go-jump-locationbar.png
index 636fe38a77..61f779ce2b 100644
--- a/demos/declarative/webbrowser/content/pics/go-jump-locationbar.png
+++ b/demos/declarative/webbrowser/content/pics/go-jump-locationbar.png
Binary files differ
diff --git a/demos/declarative/webbrowser/content/pics/go-next-view.png b/demos/declarative/webbrowser/content/pics/go-next-view.png
index 3bce02d473..a585cab80c 100644
--- a/demos/declarative/webbrowser/content/pics/go-next-view.png
+++ b/demos/declarative/webbrowser/content/pics/go-next-view.png
Binary files differ
diff --git a/demos/declarative/webbrowser/content/pics/go-previous-view.png b/demos/declarative/webbrowser/content/pics/go-previous-view.png
index 3ec011ef1c..612fb34dce 100644
--- a/demos/declarative/webbrowser/content/pics/go-previous-view.png
+++ b/demos/declarative/webbrowser/content/pics/go-previous-view.png
Binary files differ
diff --git a/demos/embedded/anomaly/src/AddressBar.cpp b/demos/embedded/anomaly/src/AddressBar.cpp
index 12523f2506..f83876e6eb 100644
--- a/demos/embedded/anomaly/src/AddressBar.cpp
+++ b/demos/embedded/anomaly/src/AddressBar.cpp
@@ -44,27 +44,11 @@
#include <QtCore>
#include <QtGui>
-class LineEdit: public QLineEdit
-{
-public:
- LineEdit(QWidget *parent = 0): QLineEdit(parent) {}
-
- void paintEvent(QPaintEvent *event) {
- QLineEdit::paintEvent(event);
- if (text().isEmpty()) {
- QPainter p(this);
- int flags = Qt::AlignLeft | Qt::AlignVCenter;
- p.setPen(palette().color(QPalette::Disabled, QPalette::Text));
- p.drawText(rect().adjusted(10, 0, 0, 0), flags, "Enter address or search terms");
- p.end();
- }
- }
-};
-
AddressBar::AddressBar(QWidget *parent)
: QWidget(parent)
{
- m_lineEdit = new LineEdit(parent);
+ m_lineEdit = new QLineEdit(parent);
+ m_lineEdit->setPlaceholderText("Enter address or search terms");
connect(m_lineEdit, SIGNAL(returnPressed()), SLOT(processAddress()));
m_toolButton = new QToolButton(parent);
m_toolButton->setText("Go");
diff --git a/demos/embedded/flightinfo/flightinfo.pro b/demos/embedded/flightinfo/flightinfo.pro
index 985cc4258d..bd21e97223 100644
--- a/demos/embedded/flightinfo/flightinfo.pro
+++ b/demos/embedded/flightinfo/flightinfo.pro
@@ -8,8 +8,6 @@ QT += network
symbian {
TARGET.UID3 = 0xA000CF74
include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
- INCLUDEPATH += $$QT_SOURCE_TREE/examples/network/qftp/
- LIBS += -lesock -lcommdb -linsock # For IAP selection
TARGET.CAPABILITY = NetworkServices
}
diff --git a/demos/embedded/qmlcalculator/qmlcalculator.cpp b/demos/embedded/qmlcalculator/qmlcalculator.cpp
index 3030e810be..6c41e61323 100644
--- a/demos/embedded/qmlcalculator/qmlcalculator.cpp
+++ b/demos/embedded/qmlcalculator/qmlcalculator.cpp
@@ -42,6 +42,7 @@
#include <QtCore/QFileInfo>
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeEngine>
#if defined(Q_OS_SYMBIAN)
#include <eikenv.h>
@@ -58,7 +59,8 @@ int main(int argc, char *argv[])
QDeclarativeView view;
view.setSource(QUrl(mainQmlApp));
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
-
+ QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
+
#if defined(QT_KEYPAD_NAVIGATION)
QApplication::setNavigationMode(Qt::NavigationModeCursorAuto);
#endif // QT_KEYPAD_NAVIGATION
diff --git a/demos/embedded/qmlclocks/qmlclocks.cpp b/demos/embedded/qmlclocks/qmlclocks.cpp
index d94cbdd359..a09801b329 100644
--- a/demos/embedded/qmlclocks/qmlclocks.cpp
+++ b/demos/embedded/qmlclocks/qmlclocks.cpp
@@ -42,6 +42,7 @@
#include <QtCore/QFileInfo>
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeEngine>
#if defined(Q_OS_SYMBIAN)
#include <eikenv.h>
@@ -58,6 +59,7 @@ int main(int argc, char *argv[])
QDeclarativeView view;
view.setSource(QUrl(mainQmlApp));
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
#if defined(QT_KEYPAD_NAVIGATION)
QApplication::setNavigationMode(Qt::NavigationModeCursorAuto);
diff --git a/demos/embedded/qmldialcontrol/qmldialcontrol.cpp b/demos/embedded/qmldialcontrol/qmldialcontrol.cpp
index 311cee09c9..56b21d7589 100644
--- a/demos/embedded/qmldialcontrol/qmldialcontrol.cpp
+++ b/demos/embedded/qmldialcontrol/qmldialcontrol.cpp
@@ -42,6 +42,7 @@
#include <QtCore/QFileInfo>
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeEngine>
int main(int argc, char *argv[])
{
@@ -51,6 +52,7 @@ int main(int argc, char *argv[])
QDeclarativeView view;
view.setSource(QUrl(mainQmlApp));
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
#if defined(QT_KEYPAD_NAVIGATION)
QApplication::setNavigationMode(Qt::NavigationModeCursorAuto);
diff --git a/demos/embedded/qmleasing/deployment.pri b/demos/embedded/qmleasing/deployment.pri
index 984f5c803e..d3621cb75d 100644
--- a/demos/embedded/qmleasing/deployment.pri
+++ b/demos/embedded/qmleasing/deployment.pri
@@ -4,5 +4,5 @@ symbian {
qmleasing_uid3 = A000E3FE
qmleasing_files.path = $$APP_PRIVATE_DIR_BASE/$$qmleasing_uid3
}
-qmleasing_files.sources = $$qmleasing_src/easing.qml
+qmleasing_files.sources = $$qmleasing_src/easing.qml $$qmleasing_src/content
DEPLOYMENT += qmleasing_files
diff --git a/demos/embedded/qmleasing/qmleasing.cpp b/demos/embedded/qmleasing/qmleasing.cpp
index d326468d40..713fe67f4c 100644
--- a/demos/embedded/qmleasing/qmleasing.cpp
+++ b/demos/embedded/qmleasing/qmleasing.cpp
@@ -42,6 +42,7 @@
#include <QtCore/QFileInfo>
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeEngine>
int main(int argc, char *argv[])
{
@@ -51,6 +52,7 @@ int main(int argc, char *argv[])
QDeclarativeView view;
view.setSource(QUrl(mainQmlApp));
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
#if defined(QT_KEYPAD_NAVIGATION)
QApplication::setNavigationMode(Qt::NavigationModeCursorAuto);
diff --git a/demos/embedded/qmlflickr/qmlflickr.cpp b/demos/embedded/qmlflickr/qmlflickr.cpp
index 7068f88e5b..c05806c913 100644
--- a/demos/embedded/qmlflickr/qmlflickr.cpp
+++ b/demos/embedded/qmlflickr/qmlflickr.cpp
@@ -48,6 +48,7 @@
#include <QtNetwork/QNetworkConfiguration>
#include <QtNetwork/QNetworkConfigurationManager>
#include <QtNetwork/QNetworkAccessManager>
+#include <QtDeclarative/QDeclarativeEngine>
// Factory to create QNetworkAccessManagers that use the saved network configuration; otherwise
// the system default.
@@ -95,7 +96,8 @@ int main(int argc, char *argv[])
view.engine()->setNetworkAccessManagerFactory(&networkAccessManagerFactory);
view.setSource(QUrl(mainQmlApp));
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
-
+ QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
+
#if defined(Q_OS_SYMBIAN)
view.showFullScreen();
#else // Q_OS_SYMBIAN
diff --git a/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp b/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp
index 2b9db5e205..d9cf67c35a 100644
--- a/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp
+++ b/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp
@@ -96,6 +96,8 @@ int main(int argc, char *argv[])
view.setSource(QUrl(mainQmlApp));
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
+
#if defined(Q_OS_SYMBIAN)
view.showFullScreen();
#else // Q_OS_SYMBIAN
diff --git a/demos/embedded/qmltwitter/qmltwitter.cpp b/demos/embedded/qmltwitter/qmltwitter.cpp
index c53098a45a..30c46012d7 100644
--- a/demos/embedded/qmltwitter/qmltwitter.cpp
+++ b/demos/embedded/qmltwitter/qmltwitter.cpp
@@ -95,7 +95,8 @@ int main(int argc, char *argv[])
view.engine()->setNetworkAccessManagerFactory(&networkAccessManagerFactory);
view.setSource(QUrl(mainQmlApp));
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
-
+ QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
+
#if defined(Q_OS_SYMBIAN)
view.showFullScreen();
#else // Q_OS_SYMBIAN
diff --git a/demos/embedded/weatherinfo/weatherinfo.pro b/demos/embedded/weatherinfo/weatherinfo.pro
index 9addbbbea3..bc9b966cc5 100644
--- a/demos/embedded/weatherinfo/weatherinfo.pro
+++ b/demos/embedded/weatherinfo/weatherinfo.pro
@@ -7,8 +7,6 @@ QT += network svg
symbian {
TARGET.UID3 = 0xA000CF77
include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
- INCLUDEPATH += $$QT_SOURCE_TREE/examples/network/qftp/
- LIBS += -lesock -lcommdb -linsock # For IAP selection
TARGET.CAPABILITY = NetworkServices
}
diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp
index 4ae9ca1bb3..fe3c5aafbf 100644
--- a/demos/qtdemo/menumanager.cpp
+++ b/demos/qtdemo/menumanager.cpp
@@ -384,9 +384,7 @@ void MenuManager::launchQmlExample(const QString &name)
qmlRoot->setProperty("show", QVariant(true));
qmlRoot->setProperty("qmlFile", QUrl::fromLocalFile(file.fileName()));
#else
- QMessageBox::critical(0, tr("Failed to launch the example"),
- tr("This application was built without the QtDeclarative module, and therefore declarative examples have been disabled."),
- QMessageBox::Cancel);
+ exampleError(QProcess::UnknownError);
#endif
}
diff --git a/dist/changes-4.6.4 b/dist/changes-4.6.4
index 381023f869..389aa3a8f3 100644
--- a/dist/changes-4.6.4
+++ b/dist/changes-4.6.4
@@ -63,8 +63,12 @@ QtNetwork
QtOpenGL
--------
- - foo
- * bar
+ - QGLShaderProgram
+ * [QTBUG-12478] Don't resolve GLSL extensions if no shaders.
+ * [QTBUG-12591] setUniformValue(QSize) was setting (w,w) not (w,h).
+ * [QTBUG-12862] Don't #define highp/mediump/lowp if the desktop OpenGL
+ implementation has the GL_ARB_ES2_compatibility extension.
+ * [QTBUG-12554] Wrong OpenGLVersionFlags on OpenGL 4.0 systems.
QtScript
--------
diff --git a/dist/changes-4.7.0 b/dist/changes-4.7.0
index 790aabc62a..a5939e3b5f 100644
--- a/dist/changes-4.7.0
+++ b/dist/changes-4.7.0
@@ -88,7 +88,10 @@ QtGui
- QComboBox
* [QTBUG-8796] Made ForegroundRole work for all styles.
-
+
+ - QCommandLinkButton
+ * [QTBUG-5995] Fixed text and icon alignment issues.
+
- QPrinter
* Obsoleted the slightly confusing setNumCopies() and numCopies()
functions, and replaced them with setCopyCount(), copyCount() and
@@ -133,6 +136,9 @@ QtGui
* [QTBUG-7982] Added QImage::bitPlaneCount().
* [QTBUG-9072] Fixed alpha check for 1-bit-per-pixel images.
+ - QLineEdit
+ * [QTBUG-9823] Placeholder text is now correctly aligned with text.
+
- QPicture
* [QTBUG-4974] Printing QPictures containing text to a high resolution
QPrinter would in many cases cause incorrect character spacing.
@@ -286,8 +292,9 @@ Qt for Linux/X11
----------------
- QGtkStyle
* Fixed rtl issues with sliders (QTBUG-8986)
- * Fixed missing pressed appearance on scroll bar handles. (QTBUG-10396)
-
+ * Fixed missing pressed appearance on scroll bar handles. (QTBUG-10396)
+ * Fixed crash when creating QGtkStyle before QApplication. (QTBUG-10758)
+
- QFontDatabase
* [QTBUG-4428] Fixed regression when using bitmap fonts on some
Linux systems.
@@ -303,7 +310,12 @@ Qt for Linux/X11
Qt for Windows
--------------
- Popup windows now implicitly activate when shown. (QTBUG-7386)
-
+ - QComboBox [QTBUG-7552] Fix an issue where only "..." would be shown for
+ QComboBox with certain DPI settings.
+ - Fixed a problem where menus exec'ed on system tray icons did not
+ disappear. (QTBUG-7386)
+ - Improved look and feel for QWizard on Windows 7 and Vista. (QTBUG-9873),
+ (QTBUG-11974) and (QTBUG-6120)
- QLocalSocket
* Pipe handle leak fixed, when closing a QLocalSocket that still has
unwritten data. (QTBUG-7815)
@@ -315,7 +327,9 @@ Qt for Mac OS X
---------------
- QMacStyle
* Removed frame around statusbar items. (QTBUG-3574)
- * More native appearance of item view headers and frames. (QTBUG-10047)
+ * More native appearance of item view headers and frames. (QTBUG-10047)
+ * Increased spacing between tree view items. (QTBUG-10190)
+ * Removed frame around status bar items. (QTBUG-3574)
- QFontEngine
* Enable fractional metrics for the font engine on Mac in all
@@ -478,6 +492,18 @@ QtCore:
line breaking, reporting the index of the boundary at which the line
break should occur rather than the index of the character.
+QtGui:
+ - QWidget::setLayoutDirection no longer affects the text layout
+ direction (Qt::LeftToRight or Qt::RightToLeft) of QTextEdit, QLineEdit
+ and widgets based on them. The default text layout direction
+ (Qt::LayoutDirectionAuto) is now detected from keyboard layout and
+ language of the text (conforms to Unicode standards). To
+ programmatically force the text direction of a QTextEdit, you can
+ change the defaultTextOption of the QTextDocument associated with that
+ widget with a new QTextOption of different textDirection property. For
+ QLineEdit, the only way so far is sending a Qt::Key_Direction_L/R
+ keyboard event to that widget.
+
QtNetwork:
- Qt does no longer provide its own CA bundle, but uses system APIs for
retrieving the default system certificates.
diff --git a/dist/changes-4.7.1 b/dist/changes-4.7.1
new file mode 100644
index 0000000000..c8b26c277a
--- /dev/null
+++ b/dist/changes-4.7.1
@@ -0,0 +1,118 @@
+Qt 4.7.1 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 4.7.0. For more details,
+refer to the online documentation included in this distribution. The
+documentation is also available online:
+
+ http://qt.nokia.com/doc/4.7
+
+The Qt version 4.7 series is binary compatible with the 4.6.x series.
+Applications compiled for 4.6 will continue to run with 4.7.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker, the (now obsolete) Task
+Tracker, or the Merge Request queue of the public source repository.
+
+Qt Bug Tracker: http://bugreports.qt.nokia.com
+Task Tracker: http://qt.nokia.com/developer/task-tracker
+Merge Request: http://qt.gitorious.org
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Optimizations
+-------------
+
+ - Improved the benchmarking library's timing code
+ * Uses a faster access to the system clock
+
+ * See list of Important Behavior Changes below
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+QtCore
+------
+
+
+QtGui
+-----
+
+
+QtDBus
+------
+
+
+QtMultimedia
+------------
+
+
+QtNetwork
+---------
+
+
+QtOpenGL
+--------
+
+
+QtOpenVG
+--------
+
+
+QtWebKit
+--------
+
+
+QtSql
+-----
+
+
+QtSvg
+-----
+
+
+Qt Plugins
+----------
+
+
+
+****************************************************************************
+* Platform Specific Changes *
+****************************************************************************
+
+Qt for Unix (X11 and Mac OS X)
+------------------------------
+
+
+Qt for Linux/X11
+----------------
+
+
+Qt for Windows
+--------------
+
+
+Qt for Mac OS X
+---------------
+
+
+Qt for Symbian
+--------------
+
+
+
+****************************************************************************
+* Tools *
+****************************************************************************
+
+ - Designer
+
+ - uic
+
+****************************************************************************
+* Important Behavior Changes *
+****************************************************************************
+
+
diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc
index 5c025e5765..99f777764c 100644
--- a/doc/src/declarative/anchor-layout.qdoc
+++ b/doc/src/declarative/anchor-layout.qdoc
@@ -26,7 +26,7 @@
****************************************************************************/
/*!
-\page anchor-layout.html
+\page qml-anchor-layout.html
\target anchor-layout
\title Anchor-based Layout in QML
diff --git a/doc/src/declarative/codingconventions.qdoc b/doc/src/declarative/codingconventions.qdoc
index 94039204f8..aa4feefd0b 100644
--- a/doc/src/declarative/codingconventions.qdoc
+++ b/doc/src/declarative/codingconventions.qdoc
@@ -26,7 +26,7 @@
****************************************************************************/
/*!
-\page codingconventions.html
+\page qml-coding-conventions.html
\title QML Coding Conventions
This document contains the QML coding conventions that we follow in our documentation and examples and recommend that others follow.
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index e1c947381f..2f436829bf 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -34,28 +34,36 @@
\brief Qt Quick provides a declarative framework for building highly
dynamic, custom user interfaces.
-Qt Quick provides a declarative framework for building highly dynamic,
-custom user interfaces from a rich set of \l{QML Elements}{QML elements}.
-Qt Quick helps programmers and designers collaborate to
-build the fluid user interfaces that are becoming common in portable
-consumer devices, such as mobile phones, media players, set-top boxes
-and netbooks. Qt Quick consists of the QtDeclarative C++ module, QML, and
-the integration of both of these into the Qt Creator IDE. Using the QtDeclarative
-C++ module, you can load and interact with QML files from your Qt application.
-
-QML is an extension to \l{About JavaScript}{JavaScript}, that provides
-a mechanism to declaratively build an object tree of
-\l{QML Elements}{QML elements}. QML improves the integration between
-JavaScript and Qt's existing QObject-based type system, adds support for
-automatic \l{Property Binding}{property bindings} and provides
+\section1 Introduction
+
+Qt Quick is a collection of technologies that are designed to help
+developers create the kind of intuitive, modern-looking, fluid user
+interfaces that are increasingly used on mobile phones, media players,
+set-top boxes and other portable devices.
+
+Qt Quick consists of a rich set of user interface elements, a declarative
+language for describing user interfaces and a language runtime. A collection
+of C++ APIs is used to integrate these high level features with classic
+Qt applications.
+
+\section2 QML, Elements and the QtDeclarative Module
+
+User interfaces and their behavior are described using QML, an extension to
+\l{About JavaScript}{JavaScript} that lets developers and designers
+use a declarative syntax to specify each user interface in terms of
+\l{QML Elements}{QML elements}. These elements are a sophisticated set of
+graphical and behavioral building blocks that can be combined together in
+\l{QML Documents}{QML documents} to build components ranging in complexity
+from simple buttons and sliders, to complete Internet-enabled applications.
+
+QML improves the integration between JavaScript and Qt's existing
+QObject-based type system, adds support for automatic
+\l{Property Binding}{property bindings} and provides
\l{Network Transparency}{network transparency} at the language level.
-The \l{QML Elements}{QML elements} are a sophisticated set of
-graphical and behavioral building blocks. These different elements
-are combined together in \l{QML Documents}{QML documents} to build
-components ranging in complexity from simple buttons and sliders, to
-complete Internet-enabled applications like a photo browser for the
-popular \l{http://www.flickr.com}{Flickr} photo-sharing site.
+The QtDeclarative module implements the interface between the QML language
+and the elements available to it. It also provides a C++ API that can be
+used to load and interact with QML files from within Qt applications.
Qt Quick builds on \l{QML for Qt programmers}{Qt's existing strengths}.
QML can be be used to incrementally extend an existing application or
@@ -67,32 +75,55 @@ Module.
\list
\o \l{Introduction to the QML language}
-\o \l{QML Tutorial}{Tutorial: 'Hello World'}
-\o \l{QML Advanced Tutorial}{Tutorial: 'Same Game'}
-\o \l{QML Examples and Demos}
\o \l{QML for Qt Programmers}
\o \l{Getting Started Programming with QML}
\o \l{Beginning Qt Quick}
\endlist
-\section1 Core QML Features
+\list
+\o \l{QML Tutorial}{Tutorial: "Hello World"}
+\o \l{QML Advanced Tutorial}{Tutorial: "Same Game"}
+\o \l{QML Examples and Demos}
+\endlist
+
+\section1 QML Concepts
+
\list
\o \l{QML Documents}
\o \l{Property Binding}
-\o \l{Network Transparency}
\o \l{QML Scope}
-\o \l{Integrating JavaScript}
-\o \l{Data Models}
+\o \l{QML Modules}
\o \l{Anchor-based Layout in QML}
+\endlist
+
+\section1 User Interaction
+
+\list
+\o \l{Keyboard Focus in QML}
\o \l{QML States}
\o \l{QML Animation}
-\o \l{Keyboard Focus in QML}
-\o \l{QML Modules}
+\endlist
+
+\section1 Handling Data
+
+\list
+\o \l{Using QML Positioner and Repeater Items}
+\o \l{QML Data Models}
+\o \l{Presenting Data with QML}
+\o \l{Network Transparency}
+\endlist
+
+\section1 Architecture
+
+\list
+\o \l{Qt Declarative UI Runtime}
+\o \l{Integrating JavaScript}
\o \l{Extending types from QML}
\o \l{Dynamic Object Management in QML}
\endlist
\section1 Using QML with C++
+
\list
\o \l{Qt Declarative UI Runtime}
\o \l{Using QML in C++ Applications}
@@ -102,6 +133,7 @@ Module.
\endlist
\section1 Reference
+
\list
\o \l{QML Elements}
\o \l{QML Global Object}
@@ -113,4 +145,12 @@ Module.
\o \l{QML Performance}
\o \l{QML Coding Conventions}
\endlist
+
+\section1 Online Examples
+
+\list
+\o Forum Nokia:
+\l{http://wiki.forum.nokia.com/index.php/Qt_Quick_examples_for_porting}{Qt Quick
+examples for porting}
+\endlist
*/
diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc
index 94abe10081..252b96432c 100644
--- a/doc/src/declarative/elements.qdoc
+++ b/doc/src/declarative/elements.qdoc
@@ -29,12 +29,13 @@
\page qdeclarativeelements.html
\target elements
\title QML Elements
+ \brief A dictionary of standard QML elements.
- This is a dictionary of all the QML elements available in the \l
- {QtDeclarative} {Qt Declarative} module.
+ This is a dictionary of all standard QML elements made available
+ in the QtDeclarative module.
- To see the QML elements listed by
- functional area, \l{Groups Of Related QML Elements} {look here}.
+ To see the QML elements listed by functional area, see the
+ \l{Groups Of Related QML Elements} page.
\generatelist qmlclasses
diff --git a/doc/src/declarative/extending-tutorial.qdoc b/doc/src/declarative/extending-tutorial.qdoc
index d128d0f77f..349ac3003b 100644
--- a/doc/src/declarative/extending-tutorial.qdoc
+++ b/doc/src/declarative/extending-tutorial.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
-
\page qml-extending-tutorial-index.html
\title Tutorial: Writing QML extensions with C++
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index 5c4d5e7a78..0cc989d487 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -674,6 +674,16 @@ declaring a new property, and the corresponding C++ type.
\row \o variant \o QVariant
\endtable
+From QML you can also declare object and list properties using any element name
+like this:
+
+\code
+ property QtObject objectProperty
+ property Item itemProperty
+ property MyCustomType customProperty
+ property list<Item> listOfItemsProperty
+\endcode
+
QML supports two methods for adding a new property to a type: a new property
definition, and a property alias.
@@ -965,6 +975,20 @@ Item {
}
\endcode
+This may be connected to via QObject::connect() or called directly from C++ using
+QMetaObject::invokeMethod():
+
+\code
+ QDeclarativeEngine engine;
+ QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile("main.qml"));
+ QObject *object = component.create(context);
+ QVariant str("Hello");
+ QMetaObject::invokeMethod(object, "say", Q_ARG(QVariant, str));
+\endcode
+
+Return values of type QVariant are also supported via Q_RETURN_ARG.
+
\section1 Defining new Components
\target components
diff --git a/doc/src/declarative/javascriptblocks.qdoc b/doc/src/declarative/javascriptblocks.qdoc
index 18da3d212d..d2906901ba 100644
--- a/doc/src/declarative/javascriptblocks.qdoc
+++ b/doc/src/declarative/javascriptblocks.qdoc
@@ -173,6 +173,40 @@ handler to execute at startup, they are run sequentially in an undefined order.
Likewise, the \l {Component::onDestruction} attached property is triggered on
component destruction.
+
+\section1 Property Assignment vs Property Binding
+
+When working with both QML and JavaScript, it is important to differentiate between
+QML \l {Property Binding} and JavaScript value assignment. In QML, a property
+binding is created using the \e {property: value} syntax:
+
+\code
+Rectangle {
+ width: otherItem.width
+}
+\endcode
+
+The \c width of the above \l Rectangle is updated whenever \c otherItem.width changes. On the other
+hand, take the following JavaScript code snippet, that runs when the \l Rectangle is created:
+
+\code
+Rectangle {
+
+ Component.onCompleted: {
+ width = otherItem.width;
+ }
+}
+\endcode
+
+The \c width of this \l Rectangle is \e assigned the value of \c otherItem.width using the
+\e {property = value} syntax in JavaScript. Unlike the QML \e {property: value} syntax, this
+does not invoke QML property binding; the \c rectangle.width property is set to the value
+of \c otherItem.width at the time of the assignment and will not be updated if that value
+changes.
+
+See \l {Property Binding} for more information.
+
+
\section1 QML JavaScript Restrictions
QML executes standard JavaScript code, with the following restrictions:
diff --git a/doc/src/declarative/pics/flipable.gif b/doc/src/declarative/pics/flipable.gif
index 6386f06b5d..da37b2b470 100644
--- a/doc/src/declarative/pics/flipable.gif
+++ b/doc/src/declarative/pics/flipable.gif
Binary files differ
diff --git a/doc/src/declarative/pics/spacing_a.png b/doc/src/declarative/pics/spacing_a.png
deleted file mode 100644
index c0fe8954c2..0000000000
--- a/doc/src/declarative/pics/spacing_a.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/declarative/pics/spacing_b.png b/doc/src/declarative/pics/spacing_b.png
deleted file mode 100644
index 24cf640e4f..0000000000
--- a/doc/src/declarative/pics/spacing_b.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/declarative/propertybinding.qdoc b/doc/src/declarative/propertybinding.qdoc
index 552b9e4987..314bf678cb 100644
--- a/doc/src/declarative/propertybinding.qdoc
+++ b/doc/src/declarative/propertybinding.qdoc
@@ -94,10 +94,29 @@ Rectangle {
}
\endcode
-Imperatively assigning a value directly to a property will also implicitly remove a binding
-on a property. A property can only have one value at a time, and if code explicitly sets
-this value the binding must be removed. The \l Rectangle in the example below will have
-a width of 13, regardless of the otherItem's width.
+
+\section1 Effects of Property Assignment in JavaScript
+
+Assigning a property value from JavaScript does \e not create a property binding.
+For example:
+
+\code
+Rectangle {
+
+ Component.onCompleted: {
+ width = otherItem.width;
+ }
+}
+\endcode
+
+Instead of creating a property binding, this simply sets the \c width of the \l Rectangle
+to the value of \c other.width at the time the JavaScript code is invoked. See
+\l {Property Assignment vs Property Binding} for more details.
+
+Also note that assigning a value to a property that is currently bound will remove the binding.
+A property can only have one value at a time, and if any code explicitly sets
+this value, the binding is removed. The \l Rectangle in the example below will have
+a width of 13, regardless of the \c otherItem's width.
\code
Rectangle {
@@ -109,7 +128,9 @@ Rectangle {
}
\endcode
-There is no way to create a property binding directly from imperative JavaScript code.
+There is no way to create a property binding directly from imperative JavaScript code,
+although it is possible to set up a \l Binding object (shown below).
+
\section1 Binding Element
@@ -126,5 +147,7 @@ Binding {
value: slider.value
}
\endqml
+
+
*/
diff --git a/doc/src/declarative/qdeclarativedocument.qdoc b/doc/src/declarative/qdeclarativedocument.qdoc
index 068297a3d7..8ca6c11777 100644
--- a/doc/src/declarative/qdeclarativedocument.qdoc
+++ b/doc/src/declarative/qdeclarativedocument.qdoc
@@ -28,34 +28,17 @@
/*!
\page qdeclarativedocuments.html
\title QML Documents
+\brief A description of QML documents and the kind of content they contain.
-A QML document is a block of QML source code. QML documents generally correspond to files
-stored on a disk or network resource, but can also be constructed directly from text data.
+\section1 Introduction
-Here is a simple QML document:
+A QML document is a block of QML source code. QML documents generally correspond to files
+stored on a disk or at a location on a network, but they can also be constructed directly
+from text data.
-\code
-import Qt 4.7
+Here is a simple QML document:
-Rectangle {
- width: 240; height: 320;
-
- resources: [
- Component {
- id: contactDelegate
- Text {
- text: modelData.firstName + " " + modelData.lastName
- }
- }
- ]
-
- ListView {
- anchors.fill: parent
- model: contactModel
- delegate: contactDelegate
- }
-}
-\endcode
+\snippet doc/src/snippets/declarative/qml-documents/non-trivial.qml document
QML documents are always encoded in UTF-8 format.
@@ -96,7 +79,7 @@ Each instance is created with a different value for its \c text property:
\o application.qml
\row
-\o \snippet doc/src/snippets/declarative/qmldocuments.qml 0
+\o \snippet doc/src/snippets/declarative/qml-documents/qmldocuments.qml document
\o
\qml
import Qt 4.7
@@ -153,39 +136,9 @@ These final two examples are behaviorally identical to the original document.
\table
\row
\o
-\code
-import Qt 4.7
-
-Rectangle {
- width: 240; height: 320;
-
- ListView {
- anchors.fill: parent
- model: contactModel
- delegate: Component {
- Text {
- text: modelData.firstName + " " + modelData.lastName
- }
- }
- }
-}
-\endcode
+\snippet doc/src/snippets/declarative/qml-documents/inline-component.qml document
\o
-\code
-import Qt 4.7
-
-Rectangle {
- width: 240; height: 320;
-
- ListView {
- anchors.fill: parent
- model: contactModel
- delegate: Text {
- text: modelData.firstName + " " + modelData.lastName
- }
- }
-}
-\endcode
+\snippet doc/src/snippets/declarative/qml-documents/inline-text-component.qml document
\endtable
\sa QDeclarativeComponent
diff --git a/doc/src/declarative/qdeclarativemodels.qdoc b/doc/src/declarative/qdeclarativemodels.qdoc
index 173002a7d2..7548c966ec 100644
--- a/doc/src/declarative/qdeclarativemodels.qdoc
+++ b/doc/src/declarative/qdeclarativemodels.qdoc
@@ -28,7 +28,7 @@
/*!
\page qdeclarativemodels.html
\target qmlmodels
-\title Data Models
+\title QML Data Models
QML items such as ListView, GridView and \l Repeater require Data Models
that provide the data to be displayed.
@@ -41,30 +41,7 @@ delegate may bind to. Here is a ListModel with two roles, \e type and \e age,
and a ListView with a delegate that binds to these roles to display their
values:
-\qml
-import Qt 4.7
-
-Item {
- width: 200; height: 250
-
- ListModel {
- id: myModel
- ListElement { type: "Dog"; age: 8 }
- ListElement { type: "Cat"; age: 5 }
- }
-
- Component {
- id: myDelegate
- Text { text: type + ", " + age }
- }
-
- ListView {
- anchors.fill: parent
- model: myModel
- delegate: myDelegate
- }
-}
-\endqml
+\snippet doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml document
If there is a naming clash between the model's properties and the delegate's
properties, the roles can be accessed with the qualified \e model name instead.
@@ -91,6 +68,10 @@ QML provides several types of data models among the built-in set of
QML elements. In addition, models can be created with C++ and then
made available to QML components.
+The views used to access data models are described in \l{Presenting Data with QML}.
+The use of positioner items to arrange items from a model is covered in
+\l{Using QML Positioner and Repeater Items}.
+
\section1 QML Data Models
@@ -99,38 +80,12 @@ made available to QML components.
ListModel is a simple hierarchy of elements specified in QML. The
available roles are specified by the \l ListElement properties.
-\code
-ListModel {
- id: fruitModel
-
- ListElement {
- name: "Apple"
- cost: 2.45
- }
- ListElement {
- name: "Orange"
- cost: 3.25
- }
- ListElement {
- name: "Banana"
- cost: 1.95
- }
-}
-\endcode
+\snippet doc/src/snippets/declarative/qml-data-models/listelements.qml model
The above model has two roles, \e name and \e cost. These can be bound
to by a ListView delegate, for example:
-\code
-ListView {
- width: 200; height: 250
- model: fruitModel
- delegate: Row {
- Text { text: "Fruit: " + name }
- Text { text: "Cost: $" + cost }
- }
-}
-\endcode
+\snippet doc/src/snippets/declarative/qml-data-models/listelements.qml view
ListModel provides methods to manipulate the ListModel directly via JavaScript.
In this case, the first item inserted determines the roles available
@@ -138,16 +93,9 @@ to any views that are using the model. For example, if an empty ListModel is
created and populated via JavaScript, the roles provided by the first
insertion are the only roles that will be shown in the view:
-\code
-Item {
- ListModel { id: fruitModel }
-
- MouseArea {
- anchors.fill: parent
- onClicked: fruitModel.append({"cost": 5.95, "name":"Pizza"})
- }
-}
-\endcode
+\snippet doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml model
+\dots
+\snippet doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml mouse area
When the MouseArea is clicked, \c fruitModel will have two roles, \e cost and \e name.
Even if subsequent roles are added, only the first two will be handled by views
@@ -515,3 +463,84 @@ a function in the model, e.g.:
updated, and that \e{value} holds the new value.
*/
+
+/*!
+\page qml-presenting-data.html
+\title Presenting Data with QML
+
+\section1 Introduction
+
+Qt Quick contains a set of standard items that can be used to present data in a
+number of different ways. For simple user interfaces,
+\l{Using QML Positioner and Repeater Items#Repeaters}{Repeaters} can be used
+in combination with
+\l{Using QML Positioner and Repeater Items#Positioners}{Positioners}
+to obtain pieces of data and arrange them in a user interface. However, when
+large quantities of data are involved, it is often better to use models with
+the standard views since these contain many built-in display and navigation
+features.
+
+\section1 Views
+
+Views are scrolling containers for collections of items. They are feature-rich,
+supporting many of the use cases found in typical applications, and can be
+customized to meet requirements on style and behavior.
+
+A set of standard views are provided in the basic set of Qt Quick
+graphical elements:
+
+\list
+\o \l{#ListView}{ListView} arranges items in a horizontal or vertical list
+\o \l{#GridView}{GridView} arranges items in a grid within the available space
+\o \l{#PathView}{PathView} arranges items on a path
+\endlist
+
+Unlike these items, \l WebView is not a fully-featured view item, and needs
+to be combined with a \l Flickable item to create a view that performs like
+a Web browser.
+
+\section2 ListView
+
+\l ListView shows a classic list of items with horizontal or vertical placing
+of items.
+
+\beginfloatright
+\inlineimage qml-listview-snippet.png
+\endfloat
+
+The following example shows a minimal ListView displaying a sequence of
+numbers (using an \l{QML Data Models#An Integer}{integer as a model}).
+A simple delegate is used to define an items for each piece of data in the
+model.
+
+\clearfloat
+\snippet doc/src/snippets/declarative/listview/listview-snippet.qml document
+
+
+
+\section2 GridView
+
+\l GridView displays items in a grid like an file manager's icon view.
+
+\section2 PathView
+
+\l PathView displays items on a path, where the selection remains in
+the same place and the items move around it.
+
+\section1 Decorating Views
+
+\section2 Headers and Footers
+
+\section2 Sections
+
+\section2 Navigation
+
+In traditional user interfaces, views can be scrolled using standard
+controls, such as scroll bars and arrow buttons. In some situations, it
+is also possible to drag the view directly by pressing and holding a
+mouse button while moving the cursor. In touch-based user interfaces,
+this dragging action is often complemented with a flicking action, where
+scrolling continues after the user has stopped touching the view.
+
+\section1 Further Reading
+*/
diff --git a/doc/src/declarative/qml-intro.qdoc b/doc/src/declarative/qml-intro.qdoc
index 69dd500139..b77611c8bf 100644
--- a/doc/src/declarative/qml-intro.qdoc
+++ b/doc/src/declarative/qml-intro.qdoc
@@ -47,7 +47,7 @@ Javascript is easier to learn than C++ and can be embedded into the QML
files or imported from a separate file.
\bold{In QML the types of various 'objects' are referred to as \l {QML
-Elements}{ elements}}.
+Elements}{elements}}.
An element usually has various \e properties that help define the element. For
example, if we created an element called Circle then the radius of the circle
@@ -56,9 +56,14 @@ would be a property.
\section1 A First Look
-The basic syntax of an \l {QML Elements}{element} is
+The basic syntax of an \l{QML Elements}{element} is
-\snippet doc/src/snippets/declarative/qml-intro/basic-syntax.qml basic syntax
+\qml
+SomeElement {
+ id: myObject
+ ... some other things here ...
+}
+\endqml
Here we are defining a new object. We specify its 'type' first as SomeElement.
Then within matching braces { ... } we specify the various parts of our
@@ -82,7 +87,7 @@ want a rectangle that is 500 pixels by 400 pixels in the x and y directions
We can implement this \l Rectangle with these properties this way
-\quotefile doc/src/snippets/declarative/qml-intro/rectangle.qml
+\snippet doc/src/snippets/declarative/qml-intro/rectangle.qml document
This is a valid QML script. To run it, copy it and save it to a file, say
myexample.qml, and on the command line run the following command:
@@ -113,7 +118,7 @@ Text is handled by a different element called \l Text. We need to create a
property to "Hello World!". So to set the text to "Hello world" and the
background colour to light gray,
-\quotefile doc/src/snippets/declarative/qml-intro/hello-world1.qml
+\snippet doc/src/snippets/declarative/qml-intro/hello-world1.qml document
\section1 Hello World Again
@@ -172,7 +177,7 @@ text, also make it 150 by 150 pixels in size,
Adding the Hello World example, with the text and the image example we can
write a simple piece of QML that starts to look a bit better.
-\quotefile doc/src/snippets/declarative/qml-intro/hello-world5.qml
+\snippet doc/src/snippets/declarative/qml-intro/hello-world5.qml document
The result is still quite simple
@@ -203,7 +208,7 @@ If we want to position an image at the bottom of the rectangle it is
inside. I have to specify that the bottom of the image is also at the
bottom of the rectangle
-\quotefile doc/src/snippets/declarative/qml-intro/anchors1.qml
+\snippet doc/src/snippets/declarative/qml-intro/anchors1.qml document
This places the logo at the bottom left of the window.
@@ -222,7 +227,7 @@ the bottomMargin property is used. So the new actions for the script are
Encoded into QML the script becomes
-\quotefile doc/src/snippets/declarative/qml-intro/anchors2.qml
+\snippet doc/src/snippets/declarative/qml-intro/anchors2.qml document
Run this and resize the window. You will see that now the position of the
image adjusts during the resize.
@@ -282,7 +287,7 @@ vertically by a factor of 1.5 and by 1.2 horizontally.
Using the example above as the basis for this we have,
-\quotefile doc/src/snippets/declarative/qml-intro/transformations1.qml
+\snippet doc/src/snippets/declarative/qml-intro/transformations1.qml document
The code block in \c image1 starting with \c transform specifies that the
\l {Item::transform}{transform} property will be a Rotation through -90
@@ -320,7 +325,7 @@ from \l Item. The rotation property is a real number that specifies the
angle in a clockwise direction for the rotation of the object. Here is the
code for our animated rotating image.
-\quotefile doc/src/snippets/declarative/number-animation1.qml
+\snippet doc/src/snippets/declarative/qml-intro/number-animation1.qml document
The \c {transformOrigin: Item.Center} is redundant since this is the default
axis of rotation anyway. But if you change \c Center to \c BottomRight you
@@ -333,7 +338,7 @@ combination. For example, if the task had been to animate the rotation
about the y-axis passing through the center of the image then the following
code would do it.
-\quotefile doc/src/snippets/declarative/number-animation2.qml
+\snippet doc/src/snippets/declarative/qml-intro/number-animation2.qml document
Here there is a rectangle 600 by 400 pixels. Placed within that rectangle
is an image 100 by 100 pixels. It is rotated about the center of the image
@@ -362,7 +367,7 @@ will be animating the position and the size of the image.
First create two images
-\quotefile doc/src/snippets/declarative/sequential-animation1.qml
+\snippet doc/src/snippets/declarative/qml-intro/sequential-animation1.qml document
We will add to 'image1' a SequentialAnimation from x = 20 to the target of
x = 450. The 'from' values will be used because we will be repeating the
@@ -375,7 +380,7 @@ between the x values and over a given duration. After the NumberAnimation
there will be a PauseAnimation that will pause the animation for 500
milliseconds (half a second) simply for the visual effect.
-\snippet doc/src/snippets/declarative/sequential-animation2.qml adding a sequential animation
+\snippet doc/src/snippets/declarative/qml-intro/sequential-animation2.qml adding a sequential animation
A similar block of code is written for the animation of the 'y' value of
the position.
@@ -390,7 +395,7 @@ and image1 to 1 and image2 to 2 then image2 will be in the foreground and
image1 in the background. When image1 passes image2 it will pass behind it.
The completed code looks like
-\quotefile doc/src/snippets/declarative/sequential-animation3.qml
+\snippet doc/src/snippets/declarative/qml-intro/sequential-animation3.qml document
The \c {easing.type} has many options, expressed as a string. It specifies the
kind of equation that describes the acceleration of the property value, not
@@ -439,9 +444,6 @@ delivers some of the best examples that illustrate these new elements.
\endtable
-
-
-
\section1 Using States
A state is a defined set of values in the configuration of an object and
@@ -471,7 +473,7 @@ will be the default state. We will just go to 'night' by clicking and
holding the left mouse button down, releasing the mouse button will reverse
the process
-\quotefile doc/src/snippets/declarative/states1.qml
+\snippet doc/src/snippets/declarative/qml-intro/states1.qml document
Several new things appear in this sample. Firstly, we use a \l MouseArea
element to detect mouse clicks in the \e mainRectangle. Secondly, we use
@@ -549,15 +551,15 @@ needle_shadow have the same default \e x and \e y values but the rotation origin
for the needle is slightly different so that a shadow will be evident as the
needle moves.
-\snippet ../../examples/declarative/ui-components/dialcontrol/content/Dial.qml needle_shadow
+\snippet examples/declarative/ui-components/dialcontrol/content/Dial.qml needle_shadow
And the needle
-\snippet ../../examples/declarative/ui-components/dialcontrol/content/Dial.qml needle
+\snippet examples/declarative/ui-components/dialcontrol/content/Dial.qml needle
The final image is the overlay which simply has a position defined.
-\snippet ../../examples/declarative/ui-components/dialcontrol/content/Dial.qml overlay
+\snippet examples/declarative/ui-components/dialcontrol/content/Dial.qml overlay
\e {dialcontrol.qml} in the \e {examples/declarative/ui-components/dialcontrol} directory is the
main file of the example. It defines the visual environment that the Dial
@@ -565,17 +567,14 @@ will fit into. Because the \e Dial component and the images live in the \e
content sub-directory we will have to import this into \e dialcontrol.qml. So the
start of the file looks like
- \code
- import Qt 4.7
- import "content"
- \endcode
+\snippet examples/declarative/ui-components/dialcontrol/dialcontrol.qml imports
The visual space is bound by a 300 by 300 pixel \l Rectangle which is given
a gray color. Inside this rectangle is our component \e Dial and a \l Rectangle.
Inside the rectangle called 'container' is another rectangle with the
interesting name 'slider'.
-\snippet ../../examples/declarative/ui-components/dialcontrol/dialcontrol.qml 0
+\snippet examples/declarative/ui-components/dialcontrol/dialcontrol.qml 0
The Dial component, named 'dial, is \e anchored to the center of the main
rectangle. The \c value attribute of 'dial' is set to a value based on the
@@ -584,15 +583,7 @@ rectangle. The \c value attribute of 'dial' is set to a value based on the
the rotation of the needle image. Notice this piece of code in Dial where
the change in \c value modifies the position of the needle.
- \code
- angle: Math.min(Math.max(-130, root.value*2.6 - 130), 133)
- Behavior on angle {
- SpringAnimation {
- spring: 1.4
- damping: .15
- }
- }
- \endcode
+\snippet examples/declarative/ui-components/dialcontrol/content/Dial.qml needle angle
This is part of the \c needleRotation that rotates the needle and causes the
rotation of its shadow. \l SpringAnimation is an element that modifies the value
diff --git a/doc/src/declarative/qmlruntime.qdoc b/doc/src/declarative/qmlruntime.qdoc
index d44e774aa0..9a84237726 100644
--- a/doc/src/declarative/qmlruntime.qdoc
+++ b/doc/src/declarative/qmlruntime.qdoc
@@ -104,20 +104,22 @@ can be constructed directly instead. In this case, \c application.qml is
loaded as a QDeclarativeComponent instance rather than placed into a view:
\code
- #include <QCoreApplication>
+ #include <QApplication>
#include <QDeclarativeEngine>
+ #include <QDeclarativeContext>
+ #include <QDeclarativeComponent>
int main(int argc, char *argv[])
{
- QCoreApplication app(argc, argv);
+ QApplication app(argc, argv);
QDeclarativeEngine engine;
- QDeclarativeContext *windowContext = new QDeclarativeContext(engine.rootContext());
+ QDeclarativeContext *objectContext = new QDeclarativeContext(engine.rootContext());
QDeclarativeComponent component(&engine, "application.qml");
- QObject *window = component.create(windowContext);
+ QObject *object = component.create(objectContext);
- // ... delete window and windowContext when necessary
+ // ... delete object and objectContext when necessary
return app.exec();
}
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index baa30fc067..f4becf832a 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -1079,27 +1079,27 @@
\target BLD_INF_RULES
\section1 BLD_INF_RULES
-
+
\e {This is only used on the Symbian platform.}
-
+
Generic \c bld.inf file content can be specified with \c BLD_INF_RULES variables.
The section of \c bld.inf file where each rule goes is appended to
\c BLD_INF_RULES with a dot.
-
+
For example:
-
+
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 146
-
+
This will add the specified statements to the \c prj_exports section of the
generated \c bld.inf file.
-
+
It is also possible to add multiple rows in a single block. Each double
quoted string will be placed on a new row in the generated \c bld.inf file.
-
+
For example:
-
+
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 143
-
+
Any rules you define will be added after automatically generated
rules in each section.
@@ -1274,7 +1274,7 @@
the contents of the \l{#QMAKE_BUNDLE_DATA}{QMAKE_BUNDLE_DATA} variable.
These options only have an effect on the Symbian platform:
-
+
\table 95%
\header \o Option \o Description
\row \o stdbinary \o Builds an Open C binary (i.e. STDDLL, STDEXE, or STDLIB,
@@ -1286,7 +1286,7 @@
Note that this only affects automatically generated bld.inf content;
the content added via \c BLD_INF_RULES variable is not affected.
\endtable
-
+
These options have an effect on Linux/Unix platforms:
\table 95%
@@ -1353,7 +1353,7 @@
The default deployment target path for Windows CE is
\c{%CSIDL_PROGRAM_FILES%\target}, which usually gets expanded to
\c{\Program Files\target}. For the Symbian platform, the default target
-is the application private directory on the drive it is installed to.
+ is the application private directory on the drive it is installed to.
It is also possible to specify multiple \c sources to be deployed on
target \c paths. In addition, different variables can be used for
@@ -1366,7 +1366,7 @@ is the application private directory on the drive it is installed to.
\note In Windows CE all linked Qt libraries will be deployed to the path
specified by \c{myFiles.path}. On Symbian platform all libraries and executables
will always be deployed to the \\sys\\bin of the installation drive.
-
+
Since the Symbian platform build system automatically moves binaries to certain
directories under the epoc32 directory, custom plugins, executables or
dynamically loadable libraries need special handling. When deploying
@@ -1389,7 +1389,7 @@ is the application private directory on the drive it is installed to.
\c pkg_postrules or \c pkg_prerules are not parsed by qmake, so they
should be in a format understood by Symbian package generation tools.
Please consult the Symbian platform documentation for correct syntax.
-
+
For example, to deploy DLL and add a new dependency:
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 140
@@ -1397,7 +1397,7 @@ is the application private directory on the drive it is installed to.
Please note that \c pkg_prerules can also replace default statements in
pkg file. If no pkg_prerules is defined, qmake makes sure that PKG file
syntax is correct and it contains all mandatory statements such as:
-
+
\list
\o languages, for example \BR
&EN,FR
@@ -1407,7 +1407,7 @@ is the application private directory on the drive it is installed to.
%{"Vendor-EN", ..., "Vendor-FR"}
:"Unique vendor name"
\endlist
-
+
If you decide to override any of these statements, you need to pay
attention that also other statements stay valid. For example if you
override languages statement, you must override also package-header
@@ -1419,7 +1419,7 @@ is the application private directory on the drive it is installed to.
- e.g. if a specific device is required to run the application or
more languages need to be supported by the package file. The supported
\c default_deployment rules that can be disabled are:
-
+
\list
\o pkg_depends_qt
\o pkg_depends_webkit
@@ -1427,9 +1427,9 @@ is the application private directory on the drive it is installed to.
\endlist
For example:
-
+
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 141
-
+
On the Symbian platform, you can use \c{DEPLOYMENT.installer_header}
variable to generate smart installer wrapper for your application.
If you specify just UID of the installer package as the value, then
@@ -1454,10 +1454,10 @@ is the application private directory on the drive it is installed to.
\note In Windows CE, No plugins will be deployed automatically.
If the application depends on plugins, these plugins have to be specified
manually.
-
+
\note On the Symbian platform, all plugins supported by this variable
-will be deployed by default with Qt libraries, so generally using this
-variable is not needed.
+ will be deployed by default with Qt libraries, so generally using this
+ variable is not needed.
For example:
@@ -1561,14 +1561,14 @@ variable is not needed.
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 34
See also \l{#SOURCES}{SOURCES}.
-
+
\target ICON
\section1 ICON
-
+
This variable is used only in MAC and the Symbian platform to set the application icon.
Please see \l{Setting the Application Icon}{the application icon documentation}
for more information.
-
+
\target INCLUDEPATH
\section1 INCLUDEPATH
@@ -1657,7 +1657,7 @@ variable is not needed.
file name suffix.
\bold{Note:} On the Symbian platform, the build system makes a
-distinction between shared and
+ distinction between shared and
static libraries. In most cases, qmake will figure out which library you
are refering to, but in some cases you may have to specify it explicitly to
get the expected behavior. This typically happens if you are building a
@@ -1693,6 +1693,8 @@ distinction between shared and
for building a project. The value of this variable is typically
handled by \c qmake or \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
+ \bold{Note:} On the Symbian platform, this variable is ignored.
+
\target MAKEFILE_GENERATOR
\section1 MAKEFILE_GENERATOR
@@ -1702,28 +1704,28 @@ distinction between shared and
\target MMP_RULES
\section1 MMP_RULES
-
+
\e {This is only used on the Symbian platform.}
-
+
Generic MMP file content can be specified with this variable.
-
+
For example:
-
+
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 137
-
+
This will add the specified statement to the end of the generated MMP file.
-
+
It is also possible to add multiple rows in a single block. Each double
quoted string will be placed on a new row in the generated MMP file.
-
+
For example:
-
+
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 138
-
+
If you need to include a hash (\c{#}) character inside the
\c MMP_RULES statement, it can be done with the variable
\c LITERAL_HASH as follows:
-
+
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 139
There is also a convenience function for adding conditional rules
@@ -2031,8 +2033,8 @@ distinction between shared and
respectively.
\bold{Note:} On the Symbian platform, this variable can be used to pass
-architecture specific options to each compiler in the Symbian build system.
-For example:
+ architecture specific options to each compiler in the Symbian build system.
+ For example:
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 131
@@ -2374,10 +2376,10 @@ For example:
\section1 QMAKE_LFLAGS_RPATH
\e {This is used on Unix platforms only.}
-
+
Library paths in this definition are added to the executable at link
time so that the added paths will be preferentially searched at runtime.
-
+
\section1 QMAKE_LFLAGS_QT_DLL
This variable contains link flags when building programs that
@@ -2716,7 +2718,7 @@ For example:
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 45
\section1 QMAKE_RPATH
-
+
\e {This is used on Unix platforms only.}
Is equivalent to \l QMAKE_LFLAGS_RPATH.
@@ -2870,30 +2872,30 @@ For example:
This variable contains the name of the resource file for the application.
The value of this variable is typically handled by \c qmake or
\l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
-
+
\target RSS_RULES
\section1 RSS_RULES
-
+
\e {This is only used on the Symbian platform.}
-
+
Generic RSS file content can be specified with this variable. The syntax is
similar to \c MMP_RULES and \c BLD_INF_RULES.
-
+
For example:
-
+
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 144
-
+
This will add the specified statement to the end of the \c APP_REGISTRATION_INFO
resource struct in the generated registration resource file.
As an impact of this statement, the application will not be visible in application shell.
-
+
It is also possible to add multiple rows in a single block. Each double
quoted string will be placed on a new row in the registration resource file.
-
+
For example:
-
+
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 145
-
+
This example will install the application to MyFolder in the Symbian
platform application shell. In addition it will make the application to
be launched in background.
@@ -2933,7 +2935,7 @@ For example:
\section1 S60_VERSION
\e {This is only used on the Symbian platform.}
-
+
Contains the version number of the underlying S60 SDK; e.g. "5.0".
\target SIGNATURE_FILE
@@ -2969,8 +2971,9 @@ For example:
\section1 SUBDIRS
This variable, when used with the \l{#TEMPLATE}{\c subdirs template}
- contains the names of all subdirectories that contain parts of the project
- that need be built. Each subdirectory must contain its own project file.
+ contains the names of all subdirectories or project files that contain
+ parts of the project that need be built. Each subdirectory specified
+ using this variable must contain its own project file.
For example:
diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc
index b140562457..745baa33a6 100644
--- a/doc/src/examples/qml-examples.qdoc
+++ b/doc/src/examples/qml-examples.qdoc
@@ -230,7 +230,7 @@
*/
/*!
- \title Internationlization Example
+ \title Internationalization Example
\example declarative/i18n
This example shows how to enable text translation in QML.
@@ -375,7 +375,7 @@
\title Models and Views: WebView Example
\example declarative/modelviews/webview
- These examples shows how to use the WebView element.
+ These examples show how to use the WebView element.
\table
\row
diff --git a/doc/src/examples/qml-twitter.qdoc b/doc/src/examples/qml-twitter.qdoc
index 8a0de00780..c3182a0d5b 100644
--- a/doc/src/examples/qml-twitter.qdoc
+++ b/doc/src/examples/qml-twitter.qdoc
@@ -29,8 +29,8 @@
\title Twitter Mobile
\example demos/declarative/twitter
- This demo shows how to write a mobile Twitter client in QML. Use it to
- tweet us(@qtbynokia) how much you like our demos!
+ This demo shows how to write a mobile Twitter search client in QML. Use it to
+ see what people think about Qt Quick!
\image qml-twitter-demo.png
*/
diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc
index 708c44e696..e8c85e6139 100644
--- a/doc/src/getting-started/examples.qdoc
+++ b/doc/src/getting-started/examples.qdoc
@@ -255,6 +255,7 @@
\o \l{graphicsview/flowlayout}{Flow Layout}
\o \l{graphicsview/simpleanchorlayout}{Simple Anchor Layout}
\o \l{graphicsview/weatheranchorlayout}{Weather Anchor Layout}
+ \o \l{graphicsview/basicgraphicslayouts}{Basic Graphics Layouts}
\endlist
Some examples demonstrate the use of graphics effects with canvas items.
@@ -471,6 +472,7 @@
\o \l{network/googlesuggest}{Google Suggest}
\o \l{network/bearercloud}{Bearer Cloud}\raisedaster
\o \l{network/bearermonitor}{Bearer Monitor}
+ \o \l{network/securesocketclient}{Secure Socket Client}
\endlist
Examples marked with an asterisk (*) are fully documented.
@@ -609,6 +611,7 @@
\o \l{sql/querymodel}{Query Model}
\o \l{sql/relationaltablemodel}{Relational Table Model}
\o \l{sql/tablemodel}{Table Model}
+ \o \l{sql/masterdetail}{Master Detail}
\o \l{sql/sqlwidgetmapper}{SQL Widget Mapper}\raisedaster
\endlist
@@ -633,6 +636,7 @@
\o \l{xml/streambookmarks}{QXmlStream Bookmarks}\raisedaster
\o \l{xml/rsslisting}{RSS-Listing}
\o \l{xml/xmlstreamlint}{XML Stream Lint Example}\raisedaster
+ \o \l{xml/htmlinfo}{XML HTML Info}
\endlist
The XQuery/XPath and XML Schema engines in the QtXmlPatterns modules
diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc
index a19d281f4b..6cef316570 100644
--- a/doc/src/getting-started/gettingstartedqml.qdoc
+++ b/doc/src/getting-started/gettingstartedqml.qdoc
@@ -296,8 +296,8 @@
\section2 Using Data Models and Views
- QML has different \l {Data Models}{data views} that display
- \l {Data Models}{data models}. Our menu bar will display the menus in a list,
+ QML has different \l{QML Data Models}{data views} that display
+ \l{QML Data Models}{data models}. Our menu bar will display the menus in a list,
with a header that displays a row of menu names. The list of menus are declared
inside a \c VisualItemModel. The \l{VisualItemModel}{\c VisualItemModel}
element contains items that already have views such as \c Rectangle elements
@@ -404,13 +404,9 @@
\image qml-texteditor2_menubar.png
- */
+ \section1 Building a Text Editor
- /*!
- \page qml-textEditor3.html
- \title Building a Text Editor
-
- \section1 Declaring a TextArea
+ \section2 Declaring a TextArea
Our text editor is not a text editor if it didn't contain an editable text area.
QML's \l {TextEdit}{TextEdit} element allows the declaration of a multi-line
@@ -451,7 +447,7 @@
}
\endcode
- \section1 Combining Components for the Text Editor
+ \section2 Combining Components for the Text Editor
We are now ready to create the layout of our text editor using QML. The text
editor has two components, the menu bar we created and the text area. QML allows
@@ -494,12 +490,8 @@
\image qml-texteditor3_texteditor.png
- */
-
- /*!
- \page qml-textEditor4
- \title Decorating the Text Editor
- \section1 Implementing a Drawer Interface
+ \section1 Decorating the Text Editor
+ \section2 Implementing a Drawer Interface
Our text editor looks simple and we need to decorate it. Using QML, we can declare
transitions and animate our text editor. Our menu bar is occupying one-third of the
@@ -652,7 +644,7 @@
The first color starts at \c 0.0 and the last color is at \c 1.0.
- \section2 Where to Go from Here
+ \section3 Where to Go from Here
We are finished building the user interface of a very simple text editor.
Going forward, the user interface is complete, and we can implement the
@@ -661,7 +653,7 @@
\image qml-texteditor4_texteditor.png
- \section1 Extending QML using Qt C++
+ \section2 Extending QML using Qt C++
Now that we have our text editor layout, we may now implement the text editor
functionalities in C++. Using QML with C++ enables us to create our application
@@ -672,7 +664,7 @@
we shall implement the load and save functions in C++ and export it as a plugin.
This way, we only need to load the QML file directly instead of running an executable.
- \section2 Exposing C++ Classes to QML
+ \section3 Exposing C++ Classes to QML
We will be implementing file loading and saving using Qt and C++. C++ classes
and functions can be used in QML by registering them. The class also needs to be
@@ -687,7 +679,7 @@
\o A \c qmldir file telling the qmlviewer tool where to find the plugin
\endlist
- \section2 Building a Qt Plugin
+ \section3 Building a Qt Plugin
To build a plugin, we need to set the following in a Qt project file. First,
the necessary sources, headers, and Qt modules need to be added into our
@@ -721,7 +713,7 @@
parent's \c plugins directory.
- \section2 Registering a Class into QML
+ \section3 Registering a Class into QML
\code
In dialogPlugin.h:
@@ -771,7 +763,7 @@
file to generate the necessary meta-object code.
- \section2 Creating QML Properties in a C++ class
+ \section3 Creating QML Properties in a C++ class
We can create QML elements and properties using C++ and
\l {The Meta-Object System}{Qt's Meta-Object System}. We can implement
@@ -820,11 +812,11 @@
The \c files list property is a list of all the filtered files in a directory.
The \c Directory class is implemented to filter out invalid text files; only
- files with a \c .txt extension are valid. Further, \l {QLists}{QLists} can be
- used in QML files by declaring them as a \c QDeclarativeListProperty in C++.
- The templated object needs to inherit from a \l {QObject}{QObject}, therefore,
- the \c File class must also inherit from \c QObject. In the \c Directory class,
- the list of \c File objects is stored in a \c QList called \c m_fileList.
+ files with a \c .txt extension are valid. Further, \l{QList}s can be
+ used in QML files by declaring them as a QDeclarativeListProperty in C++.
+ The templated object needs to inherit from a QObject, therefore,
+ the \c File class must also inherit from QObject. In the \c Directory class,
+ the list of \c File objects is stored in a QList called \c m_fileList.
\code
class File : public QObject{
@@ -925,7 +917,7 @@
\c make to build and transfer the plugin to the \c plugins directory.
- \section2 Importing a Plugin in QML
+ \section3 Importing a Plugin in QML
The qmlviewer tool imports files that are in the same directory as the
application. We can also create a \c qmldir file containing the locations of
@@ -948,7 +940,7 @@
\c TARGET field in the project file. The compiled plugin is in the \c plugins directory.
- \section2 Integrating a File Dialog into the File Menu
+ \section3 Integrating a File Dialog into the File Menu
Our \c FileMenu needs to display the \c FileDialog element, containing a list of
the text files in a directory thus allowing the user to select the file by
@@ -1038,7 +1030,7 @@
\image qml-texteditor5_filemenu.png
- \section1 Text Editor Completion
+ \section2 Text Editor Completion
\image qml-texteditor5_newfile.png
diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc
index 629d8b7e98..708f166316 100644
--- a/doc/src/getting-started/installation.qdoc
+++ b/doc/src/getting-started/installation.qdoc
@@ -1211,9 +1211,9 @@ applications using Qt for Symbian can start right away.}
Qt for the Symbian platform requires the following software installed on your development PC:
\list
- \o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/}{Carbide.c++ v2.0.0 or higher}
+ \o \l{http://www.forum.nokia.com/Library/Tools_and_downloads/Other/Carbide.c++/}{Carbide.c++ v2.3.0 or higher recommended}.
\list
- \o \bold{Note:} It may be necessary to update the Carbide compiler.
+ \o \bold{Note:} It may be necessary to update the Carbide compiler depending on Carbide version.
See \l{http://pepper.troll.no/s60prereleases/patches/}{here} for instructions how to check your
compiler version and how to patch it, if needed.
\endlist
@@ -1223,18 +1223,18 @@ applications using Qt for Symbian can start right away.}
but that version is no longer available from ActiveState. However, Qt for Symbian has been successfully
compiled using both 5.8.x and 5.10.x versions.
\endlist
- \o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/S60SDK/}{S60 Platform SDK 3rd Edition FP1 or higher}
+ \o \l{http://www.forum.nokia.com/info/sw.nokia.com/id/ec866fab-4b76-49f6-b5a5-af0631419e9c/S60_All_in_One_SDKs.html}{S60 Platform SDK 3rd Edition FP1 or higher}
\list
\o \bold{Note:} Users of \bold{S60 Platform SDK 3rd Edition FP1} also need special update. The update can be found
\l{http://pepper.troll.no/s60prereleases/patches/}{here}.
\endlist
- \o \l{http://www.forum.nokia.com/main/resources/technologies/openc_cpp/}{Open C/C++ v1.6.0 or higher}.
+ \o \l{http://www.forum.nokia.com/info/sw.nokia.com/id/91d89929-fb8c-4d66-bea0-227e42df9053/Open_C_SDK_Plug-In.html}{Open C/C++ v1.7.5 or higher}.
Install this to all Symbian SDKs you plan to use Qt with.
\o Building Qt tools from scratch requires \l{http://www.mingw.org/}{MinGW 3.4.5 or higher}, or another windows compiler.
\list
\o \bold{Note:} This is not required if you are using pre-built binary package.
\endlist
- \o Building Qt libraries requires \l{http://www.arm.com/products/DevTools/RVCT.html}{RVCT} version 2.2 (build 686 or later),
+ \o Building Qt libraries requires \l{http://www.arm.com/products/tools/software-development-tools.php}{RVCT} version 2.2 (build 686 or later),
which is not available free of charge. Usage of later versions of RVCT, including the 3.x and 4.x series, is not supported
in this release.
\endlist
diff --git a/doc/src/getting-started/known-issues.qdoc b/doc/src/getting-started/known-issues.qdoc
index 0fa23f691d..0c2d8d838e 100644
--- a/doc/src/getting-started/known-issues.qdoc
+++ b/doc/src/getting-started/known-issues.qdoc
@@ -63,10 +63,6 @@
\list
- \o Performing a new install of the Qt 4.6 beta on Snow Leopard
- triggers a bug in the installer that causes the install to fail.
- Updating an existing Qt installation works fine.
-
\o There are two workarounds, either disable spotlight for the target
drive during the install, or do a custom install where you deselect
documentation and examples. Run the installer again as a full
diff --git a/doc/src/images/qml-borderimage-normal-image.png b/doc/src/images/qml-borderimage-normal-image.png
new file mode 100644
index 0000000000..ae7460a7d7
--- /dev/null
+++ b/doc/src/images/qml-borderimage-normal-image.png
Binary files differ
diff --git a/doc/src/images/qml-borderimage-scaled.png b/doc/src/images/qml-borderimage-scaled.png
new file mode 100644
index 0000000000..8035c79f37
--- /dev/null
+++ b/doc/src/images/qml-borderimage-scaled.png
Binary files differ
diff --git a/doc/src/images/qml-borderimage-tiled.png b/doc/src/images/qml-borderimage-tiled.png
new file mode 100644
index 0000000000..14883d0dd6
--- /dev/null
+++ b/doc/src/images/qml-borderimage-tiled.png
Binary files differ
diff --git a/doc/src/images/qml-flow-snippet.png b/doc/src/images/qml-flow-snippet.png
new file mode 100644
index 0000000000..af873d1b4f
--- /dev/null
+++ b/doc/src/images/qml-flow-snippet.png
Binary files differ
diff --git a/doc/src/images/qml-flow-text1.png b/doc/src/images/qml-flow-text1.png
new file mode 100644
index 0000000000..99ce7523ca
--- /dev/null
+++ b/doc/src/images/qml-flow-text1.png
Binary files differ
diff --git a/doc/src/images/qml-flow-text2.png b/doc/src/images/qml-flow-text2.png
new file mode 100644
index 0000000000..844e0def93
--- /dev/null
+++ b/doc/src/images/qml-flow-text2.png
Binary files differ
diff --git a/doc/src/images/qml-grid-no-spacing.png b/doc/src/images/qml-grid-no-spacing.png
new file mode 100644
index 0000000000..c2092e0bf9
--- /dev/null
+++ b/doc/src/images/qml-grid-no-spacing.png
Binary files differ
diff --git a/doc/src/images/qml-grid-spacing.png b/doc/src/images/qml-grid-spacing.png
new file mode 100644
index 0000000000..1083bee59f
--- /dev/null
+++ b/doc/src/images/qml-grid-spacing.png
Binary files differ
diff --git a/doc/src/images/qml-image-example.png b/doc/src/images/qml-image-example.png
index c1951c0dae..8d9846f8f5 100644
--- a/doc/src/images/qml-image-example.png
+++ b/doc/src/images/qml-image-example.png
Binary files differ
diff --git a/doc/src/images/qml-listview-snippet.png b/doc/src/images/qml-listview-snippet.png
new file mode 100644
index 0000000000..0ee0ffcd0e
--- /dev/null
+++ b/doc/src/images/qml-listview-snippet.png
Binary files differ
diff --git a/doc/src/images/qml-repeater-grid-index.png b/doc/src/images/qml-repeater-grid-index.png
new file mode 100644
index 0000000000..44aed24f55
--- /dev/null
+++ b/doc/src/images/qml-repeater-grid-index.png
Binary files differ
diff --git a/doc/src/images/qml-row.png b/doc/src/images/qml-row.png
new file mode 100644
index 0000000000..30d9caad7c
--- /dev/null
+++ b/doc/src/images/qml-row.png
Binary files differ
diff --git a/doc/src/images/symbian-draw-pixmap-sequence.png b/doc/src/images/symbian-draw-pixmap-sequence.png
new file mode 100644
index 0000000000..05e3739201
--- /dev/null
+++ b/doc/src/images/symbian-draw-pixmap-sequence.png
Binary files differ
diff --git a/doc/src/images/symbian-qt-draw-pixmap-sequence.png b/doc/src/images/symbian-qt-draw-pixmap-sequence.png
new file mode 100644
index 0000000000..f7546f4f73
--- /dev/null
+++ b/doc/src/images/symbian-qt-draw-pixmap-sequence.png
Binary files differ
diff --git a/doc/src/images/symbian-qt-rendering-stack-non-screenplay.png b/doc/src/images/symbian-qt-rendering-stack-non-screenplay.png
new file mode 100644
index 0000000000..9e1997de70
--- /dev/null
+++ b/doc/src/images/symbian-qt-rendering-stack-non-screenplay.png
Binary files differ
diff --git a/doc/src/images/symbian-rendering-stack-non-screenplay.png b/doc/src/images/symbian-rendering-stack-non-screenplay.png
new file mode 100644
index 0000000000..80cb0783a0
--- /dev/null
+++ b/doc/src/images/symbian-rendering-stack-non-screenplay.png
Binary files differ
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index e45892fabc..edb4d1ea68 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -77,7 +77,7 @@
<ul>
<li><a href="qtquick.html">Qt Quick</a></li>
<li><a href="qdeclarativeintroduction.html">Introduction to QML</a></li>
- <li><a href="qdeclarativeelements.html">QML Elements</a></li>
+ <li><a href="qmlelements.html">QML Elements</a></li>
<li><a href="qdeclarativeexamples.html">QML Examples and Demos</a></li>
</ul>
</div>
@@ -99,7 +99,7 @@
<li><a href="linguist-manual.html">Qt Linguist</a></li>
<li><a href="assistant-manual.html">Qt Assistant</a></li>
<li><a href="qmake-manual.html">Qt qmake</a></li>
- <li><a href="http://doc.qt.nokia.com/qtsimulator-1.0/simulator-description.html">Qt Simulator</a></li>
+ <li><a href="http://doc.qt.nokia.com/qtsimulator-1.0/index.html">Qt Simulator</a></li>
<li><a href="http://qt.nokia.com/developer/eclipse-integration">Eclipse Integration</a></li>
<li><a href="http://qt.nokia.com/products/appdev">Add-On Products and Services</a></li>
<li><a href="qvfb.html">Virtual Framebuffer</a></li>
diff --git a/doc/src/legal/3rdparty.qdoc b/doc/src/legal/3rdparty.qdoc
index e7133e383b..db6ff7c530 100644
--- a/doc/src/legal/3rdparty.qdoc
+++ b/doc/src/legal/3rdparty.qdoc
@@ -683,4 +683,36 @@
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ \hr
+
+ jquery 1.4.2.js Copyright 2010 John Resig
+ This software is dual licensed under the MIT or GPL version 2 licenses.
+ Nokia has used the software herein under the MIT license.
+
+ jquery includes Sizzle.js Copyright 2010 The Dojo Foundaton and is
+ licensed under the MIT, BSD and GPL licenses. Nokia has used this
+ software herein under the MIT license.
+
+ The MIT License
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+
*/
diff --git a/doc/src/platforms/compiler-notes.qdoc b/doc/src/platforms/compiler-notes.qdoc
index c6ecd68897..3870e8fa6f 100644
--- a/doc/src/platforms/compiler-notes.qdoc
+++ b/doc/src/platforms/compiler-notes.qdoc
@@ -68,7 +68,7 @@
\endtable
* WebKit is only supported as a dynamically built library. Static linkage is not supported.
-
+
\target GCC
\section1 GCC
@@ -115,6 +115,7 @@
\section2 Solaris
Please use GCC 3.4.2 or later.
+ Please not that WebKit is not supported for Solaris, regardless of which compiler is used.
\section2 Mac OS X
diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc
index 94b98566b3..6f533ae74f 100644
--- a/doc/src/platforms/platform-notes.qdoc
+++ b/doc/src/platforms/platform-notes.qdoc
@@ -526,6 +526,56 @@
platform in use. If available, it is loaded in preference over the MMF
plugin. If the Helix plugin fails to load, the MMF plugin, if present on
the device, will be loaded instead.
+
+ \section1 UI Performance in devices prior to Symbian^3
+
+ Qt uses the QPainter class to perform low-level painting on widgets and
+ other paint devices. QPainter provides functions to draw complex shapes,
+ aligned text and pixmaps. It can also do vector path clipping, coordinate
+ transformations and Porter-Duff composition. If the underlying graphics
+ architecture does not support all of these operations then Qt uses the
+ raster graphics system for rendering.
+
+ Most of the Symbian devices prior to Symbian^3 use a non-ScreenPlay
+ graphics architecture which does not have native support for all functions
+ provided by QPainter. In non-ScreenPlay devices Qt uses the raster
+ graphics system by default which has a performance penalty when compared
+ to native Symbian rendering.
+
+ In order to be able to perform all functions provided by QPainter, the
+ raster graphics system needs to have pixel level framebuffer access. To
+ make this possible in non-ScreenPlay devices Qt has to create an
+ additional offscreen buffer that is the target for all Qt rendering
+ operations. Qt renders the widget tree to the offscreen buffer and the
+ offscreen buffer is blitted to the framebuffer via Symbian Window Server.
+
+ The following table shows the rendering stacks of native Symbian and Qt in
+ non-ScreenPlay devices.
+
+ \table
+ \header \o Symbian
+ \o Qt
+ \row \o \image symbian-rendering-stack-non-screenplay.png
+ \o \image symbian-qt-rendering-stack-non-screenplay.png
+ \endtable
+
+ The following diagrams show a simplified sequence of drawing a pixmap in
+ a non-ScreenPlay device.
+
+ \table
+ \header \o Symbian
+ \row \o \image symbian-draw-pixmap-sequence.png
+ \endtable
+
+ \table
+ \header \o Qt
+ \row \o \image symbian-qt-draw-pixmap-sequence.png
+ \endtable
+
+ When compared to a native Symbian application, Qt does an additional blit
+ to the offscreen buffer before drawing to the framebuffer. That is the
+ performance penalty which needs to be paid to get all functionality
+ provided by QPainter in non-ScreenPlay architecture.
*/
/*!
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index bb80ae5d14..83cd89b4ce 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -64,45 +64,44 @@
\row \o Linux (32 and 64-bit)
\o gcc 4.2
\row \o Microsoft Windows XP
- \o gcc 4.4 (MinGW) (32-bit), MSVC 2003, 2005 (32 and 64-bit)
+ \o gcc 4.4 (MinGW) (32-bit), MSVC 2005 (32 and 64-bit)
\row \o Microsoft Windows Vista
\o MSVC 2005, 2008
\row \o Microsoft Windows Vista 64bit
\o MSVC 2008
- \row \o Apple Mac OS X 10.5 "Leopard" x86_64 (Carbon, Cocoa 32 and 64bit)
+ \row \o Microsoft Windows 7
+ \o MSVC 2008
+ \row \o Apple Mac OS X 10.6 "Snow Leopard"
+ \o As provided by Apple
+ \row \o Apple Mac OS X 10.5 "Leopard" x86_64 (Cocoa 32 and 64bit)
\o As provided by Apple
\row \o Embedded Linux QWS (ARM)
\o gcc (\l{http://www.codesourcery.com/}{Codesourcery version)}
\row \o Windows CE 5.0 (ARMv4i, x86, MIPS)
\o MSVC 2005 WinCE 5.0 Standard (x86, pocket, smart, mipsii)
- \row \o Symbian (Symbian/S60 3.1, 3.2 and 5.0)
+ \row \o Symbian (Symbian/S60 5.0)
\o RVCT 2.2 [build 686 or later], WINSCW 3.2.5 [build 482 or later], GCCE (for applications)
\endtable
\section1 Tier 2 Platforms
- Tier 2 platforms are subjected to our unit test suite and other internal testing
- tools prior to release of new product versions. Qt users should note, however,
- that errors may be present in released product versions for Tier 2 platforms and,
- subject to resource availability, known errors in Tier 2 platforms may or may not
- be corrected prior to new version releases.
+ Tier 2 platforms are subject to ad hoc and internal testing. However, Qt users
+ should note that errors may be present in released product versions for Tier 2
+ platforms and, subject to resource availability, known errors in Tier 2 platforms
+ may or may not be corrected prior to new version releases.
\table
\header \o Platform
\o Compilers
- \row \o Windows XP, Vista
- \o gcc 3.4.2 (MinGW)
\row \o Windows 7
- \o MSVC 2008
- \row \o Apple Mac OS X 10.6 "Snow Leopard"
+ \o MSVC 2010
+ \row \o Apple Mac OS X 10.4 "Tiger" (Carbon)
\o As provided by Apple
- \row \o Apple Mac OS X 10.4 "Tiger"
+ \row \o Apple Mac OS X 10.5 "Leopard" (Carbon)
\o As provided by Apple
- \row \o HPUXi 11.11
- \o aCC 3.57, gcc 3.4
\row \o HPUXi 11.23
\o aCC 6.10
- \row \o Solaris 10 (UltraSparc, x86)
+ \row \o Solaris 10 UltraSparc
\o Sun Studio 12
\row \o AIX 6
\o Power5 xlC 7
@@ -114,8 +113,14 @@
\o gcc (\l{http://www.codesourcery.com/}{Codesourcery version)}
\row \o Embedded Linux X11 (ARM)
\o gcc (\l{http://www.scratchbox.org/}{Scratchbox)}
+ \row \o Windows CE 5.0 (ARMv4i, x86, MIPS)
+ \o MSVC 2005 WinCE 5.0 Standard (x86, pocket, smart, mipsii)
\row \o Windows CE 6.0 (ARMv4i, x86, MIPS)
\o MSVC 2008 WinCE 6.0 Professional
+ \row \o Maemo 5(Linux, ARM, X11)
+ \o gcc (\l{http://www.scratchbox.org/}{Scratchbox)}
+ \row \o Symbian (Symbian/S60 3.1, 3.2)
+ \o RVCT 2.2 [build 686 or later], WINSCW 3.2.5 [build 482 or later], GCCE (for applications)
\endtable
\section1 Tier 3 Platforms (Not supported by Nokia)
@@ -142,20 +147,12 @@
implied warranties of merchantability, fitness for a particular purpose, title and
non-infringement with regard to the Licensed Software.
- \section1 Planned Changes for Qt 4.7
+ \section1 Planned Changes for Qt 4.8
The following changes to the list of supported platforms are at time of publishing
- planned for Qt 4.7:
+ planned for Qt 4.8:
\list
- \o Upgrade Windows 7 to Tier 1
- \o Upgrade Mac OS X 10.6 to Tier 1
- \o Add support for Visual Studio 2010 (Tier 2)
- \o Move support for Carbon implementation of Qt on Mac OS X from Tier 1 to Tier 2
- \o Drop support for MinGW 3.4
- \o Drop support for Visual Studio 2003
- \o Drop support for HP-UX on PA-RISC
- \o Drop support for Windows Mobile 5
- \o Drop support for OpenGL ES Common Lite 1.0
+ \o Plans not yet released
\endlist
*/
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 701707eb88..fafe007a05 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -219,6 +219,7 @@
\row \o -o \o Creates only unsigned package.
\row \o -s \o Generates stub sis for ROM.
\row \o -n <name> \o Specifies the final sis name.
+ \row \o -g \o Treat gcce platform as armv5.
\endtable
Execute the \c{createpackage.pl} script without any
diff --git a/doc/src/platforms/x11overlays.qdoc b/doc/src/platforms/x11overlays.qdoc
index 1a03ea69f8..949a500dad 100644
--- a/doc/src/platforms/x11overlays.qdoc
+++ b/doc/src/platforms/x11overlays.qdoc
@@ -28,6 +28,7 @@
/*!
\page x11overlays.html
\title How to Use X11 Overlays with Qt
+ \ingroup best-practices
X11 overlays are a powerful mechanism for drawing
annotations etc., on top of an image without destroying it, thus saving
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index a88b32612b..8684ad2312 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -475,7 +475,8 @@
\i Qt Creator has been improved to support interactive editing of
QML UIs through drag-and-drop. The text editor supports the QML
syntax and provides authoring assistance such as auto-completion,
- error lookup, help lookup and easy preview of QML UI's.
+ error lookup, help lookup and easy preview of QML UI's. The Qt
+ Quick features in Qt Creator will be released with Qt Creator 2.1
\endlist
\section1 Network Bearer Management
diff --git a/doc/src/snippets/declarative/anchoranimation.qml b/doc/src/snippets/declarative/anchoranimation.qml
index 6c7aaf67c5..9a7b8ff84c 100644
--- a/doc/src/snippets/declarative/anchoranimation.qml
+++ b/doc/src/snippets/declarative/anchoranimation.qml
@@ -37,6 +37,7 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+
//![0]
import Qt 4.7
diff --git a/doc/src/snippets/declarative/anchorchanges.qml b/doc/src/snippets/declarative/anchorchanges.qml
index 993618bc98..3f1142130d 100644
--- a/doc/src/snippets/declarative/anchorchanges.qml
+++ b/doc/src/snippets/declarative/anchorchanges.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/animatedimage.qml b/doc/src/snippets/declarative/animatedimage.qml
new file mode 100644
index 0000000000..bf5d61157f
--- /dev/null
+++ b/doc/src/snippets/declarative/animatedimage.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// This snippet should be turned into an example and put in
+// examples/declarative/imageelements/animatedimage
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ width: animation.width; height: animation.height + 8
+
+ AnimatedImage { id: animation; source: "animation.gif" }
+
+ Rectangle {
+ property int frames: animation.frameCount
+
+ width: 4; height: 8
+ x: (animation.width - width) * animation.currentFrame / frames
+ y: animation.height
+ color: "red"
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/behavior.qml b/doc/src/snippets/declarative/behavior.qml
index 420dfc44ea..4260e38cd4 100644
--- a/doc/src/snippets/declarative/behavior.qml
+++ b/doc/src/snippets/declarative/behavior.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/borderimage.qml b/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml
index 447ad92030..cc3ae2fc44 100644
--- a/doc/src/snippets/declarative/borderimage.qml
+++ b/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml
@@ -43,27 +43,39 @@ import Qt 4.7
Rectangle {
id: page
color: "white"
- width: 520; height: 280
+ width: 180; height: 180
- Row {
- anchors.centerIn: parent
- spacing: 50
-//! [0]
+//! [scaled border image]
BorderImage {
width: 180; height: 180
border { left: 30; top: 30; right: 30; bottom: 30 }
horizontalTileMode: BorderImage.Stretch
verticalTileMode: BorderImage.Stretch
- source: "content/colors.png"
+ source: "pics/borderframe.png"
}
+//! [scaled border image]
-BorderImage {
- width: 180; height: 180
- border { left: 30; top: 30; right: 30; bottom: 30 }
- horizontalTileMode: BorderImage.Round
- verticalTileMode: BorderImage.Round
- source: "content/colors.png"
-}
-//! [0]
+ Rectangle {
+ x: 30; y: 0
+ width: 1; height: 180
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 150; y: 0
+ width: 1; height: 180
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 0; y: 30
+ width: 180; height: 1
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 0; y: 150
+ width: 180; height: 1
+ color: "gray"
}
}
diff --git a/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml b/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml
new file mode 100644
index 0000000000..e79281417b
--- /dev/null
+++ b/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ id: page
+ color: "white"
+ width: 180; height: 180
+
+//! [tiled border image]
+BorderImage {
+ width: 180; height: 180
+ border { left: 30; top: 30; right: 30; bottom: 30 }
+ horizontalTileMode: BorderImage.Repeat
+ verticalTileMode: BorderImage.Repeat
+ source: "pics/borderframe.png"
+}
+//! [tiled border image]
+
+ Rectangle {
+ x: 30; y: 0
+ width: 1; height: 180
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 150; y: 0
+ width: 1; height: 180
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 0; y: 30
+ width: 180; height: 1
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 0; y: 150
+ width: 180; height: 1
+ color: "gray"
+ }
+}
diff --git a/doc/src/snippets/declarative/borderimage/normal-image.qml b/doc/src/snippets/declarative/borderimage/normal-image.qml
new file mode 100644
index 0000000000..76ec6e2584
--- /dev/null
+++ b/doc/src/snippets/declarative/borderimage/normal-image.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ id: page
+ color: "white"
+ width: 120; height: 120
+
+//! [normal image]
+Image {
+ source: "pics/borderframe.png"
+}
+//! [normal image]
+
+ Rectangle {
+ x: 30; y: 0
+ width: 1; height: 120
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 90; y: 0
+ width: 1; height: 120
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 0; y: 30
+ width: 200; height: 1
+ color: "gray"
+ }
+
+ Rectangle {
+ x: 0; y: 90
+ width: 200; height: 1
+ color: "gray"
+ }
+}
diff --git a/doc/src/snippets/declarative/borderimage/pics/borderframe.png b/doc/src/snippets/declarative/borderimage/pics/borderframe.png
new file mode 100644
index 0000000000..97a9452d5c
--- /dev/null
+++ b/doc/src/snippets/declarative/borderimage/pics/borderframe.png
Binary files differ
diff --git a/doc/src/snippets/declarative/borderimage/pics/borderframe.svg b/doc/src/snippets/declarative/borderimage/pics/borderframe.svg
new file mode 100644
index 0000000000..9286c8291c
--- /dev/null
+++ b/doc/src/snippets/declarative/borderimage/pics/borderframe.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<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"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="borderframe.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="219.40254"
+ inkscape:cy="802.84271"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1226"
+ inkscape:window-height="668"
+ inkscape:window-x="220"
+ inkscape:window-y="284">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2383"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <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>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none"
+ d="M 120,102.36218 C 120,77.362186 145,77.362186 145,102.36218 L 195,102.36218 L 220,77.362186 L 245,102.36218 L 295,102.36218 C 295,77.362186 320,77.362186 320,102.36218 C 345,102.36218 345,127.36218 320,127.36218 L 320,177.36218 L 345,202.36218 L 320,227.36218 L 320,277.36218 C 345,277.36218 345,302.36218 320,302.36218 C 320,327.36218 295,327.36218 295,302.36218 L 245,302.36218 L 220,327.36218 L 195,302.36218 L 145,302.36218 C 145,327.36218 120,327.36218 120,302.36218 C 95,302.36218 95,277.36218 120,277.36218 L 120,227.36218 L 95,202.36218 L 120,177.36218 L 120,127.36218 C 95,127.36218 95,102.36218 120,102.36218 z"
+ id="rect2387"
+ sodipodi:nodetypes="ccccccccccccccccccccccccc" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccccccc"
+ id="path3160"
+ d="M 130,112.3622 C 130,89.862207 130,92.362183 140,112.36218 L 197.5,112.3622 L 220,89.862207 L 242.5,112.3622 L 300,112.36218 C 310,92.362183 310,89.862207 310,112.3622 C 332.5,112.3622 330,112.36218 310,122.36218 L 310,179.8622 L 332.5,202.3622 L 310,224.8622 L 310,282.36218 C 330,292.36218 332.5,292.3622 310,292.3622 C 310,314.8622 310,312.36218 300,292.36218 L 242.5,292.3622 L 220,314.8622 L 197.5,292.3622 L 140,292.36218 C 130,312.36218 130,314.8622 130,292.3622 C 107.5,292.3622 110,292.36218 130,282.36218 L 130,224.8622 L 107.5,202.3622 L 130,179.8622 L 130,122.36218 C 110,112.36218 107.5,112.3622 130,112.3622 z"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+</svg>
diff --git a/doc/src/snippets/declarative/coloranimation.qml b/doc/src/snippets/declarative/coloranimation.qml
index 4e35f229a9..7e8e9fe580 100644
--- a/doc/src/snippets/declarative/coloranimation.qml
+++ b/doc/src/snippets/declarative/coloranimation.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/column/column.qml b/doc/src/snippets/declarative/column/column.qml
new file mode 100644
index 0000000000..e372cfd4bc
--- /dev/null
+++ b/doc/src/snippets/declarative/column/column.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Item {
+ width: 310; height: 170
+
+ Column {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+
+ spacing: 5
+
+ Rectangle { color: "lightblue"; radius: 10.0
+ width: 300; height: 50
+ Text { anchors.fill: parent
+ font.pointSize: 32; text: "Books" } }
+ Rectangle { color: "gold"; radius: 10.0
+ width: 300; height: 50
+ Text { anchors.fill: parent
+ font.pointSize: 32; text: "Music" } }
+ Rectangle { color: "lightgreen"; radius: 10.0
+ width: 300; height: 50
+ Text { anchors.fill: parent
+ font.pointSize: 32; text: "Movies" } }
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/column/vertical-positioner-transition.qml b/doc/src/snippets/declarative/column/vertical-positioner-transition.qml
new file mode 100644
index 0000000000..7785776815
--- /dev/null
+++ b/doc/src/snippets/declarative/column/vertical-positioner-transition.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** 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 documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+//! [document]
+Column {
+ spacing: 2
+ Rectangle { color: "red"; width: 50; height: 50 }
+ Rectangle { id: rect1; color: "green"; width: 20; height: 50 }
+ Rectangle { color: "blue"; width: 50; height: 20 }
+
+ //![transitions]
+ add: Transition {
+ NumberAnimation { properties: "opacity"; duration: 1000 }
+ }
+ //![transitions]
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect1.opacity = 0
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/column/vertical-positioner.qml b/doc/src/snippets/declarative/column/vertical-positioner.qml
new file mode 100644
index 0000000000..27b09c1078
--- /dev/null
+++ b/doc/src/snippets/declarative/column/vertical-positioner.qml
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+//! [document]
+Column {
+ spacing: 2
+ Rectangle { color: "red"; width: 50; height: 50 }
+ Rectangle { color: "green"; width: 20; height: 50 }
+ Rectangle { color: "blue"; width: 50; height: 20 }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/component.qml b/doc/src/snippets/declarative/component.qml
index 09c4aa2324..a0ab28c72e 100644
--- a/doc/src/snippets/declarative/component.qml
+++ b/doc/src/snippets/declarative/component.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/examples/tutorials/modelview/2_formatting/modelview.cpp b/doc/src/snippets/declarative/flickable.qml
index 9a5ce64c96..d7a163b475 100644
--- a/examples/tutorials/modelview/2_formatting/modelview.cpp
+++ b/doc/src/snippets/declarative/flickable.qml
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the examples of the Qt Toolkit.
+** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -38,15 +38,13 @@
**
****************************************************************************/
-#include <QTableView>
-#include "modelview.h"
-#include "mymodel.h"
+//! [document]
+import Qt 4.7
-ModelView::ModelView(QWidget *parent)
- : QMainWindow(parent)
-{
- tableView = new QTableView(this);
- setCentralWidget(tableView);
- tableView->setModel(new MyModel(this));
-}
+Flickable {
+ width: 200; height: 200
+ contentWidth: image.width; contentHeight: image.height
+ Image { id: image; source: "bigImage.png" }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/flipable.qml b/doc/src/snippets/declarative/flipable/flipable.qml
index c2ecbbe1b9..c2ecbbe1b9 100644
--- a/doc/src/snippets/declarative/flipable.qml
+++ b/doc/src/snippets/declarative/flipable/flipable.qml
diff --git a/doc/src/snippets/declarative/flow-diagram.qml b/doc/src/snippets/declarative/flow-diagram.qml
new file mode 100644
index 0000000000..80506b9b76
--- /dev/null
+++ b/doc/src/snippets/declarative/flow-diagram.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ color: "lightblue"
+ width: 300; height: 200
+
+//! [flow item]
+ Flow {
+ anchors.fill: parent
+ anchors.margins: 4
+ spacing: 10
+
+ Repeater {
+ id: repeater
+ model: {
+ var strings = ["Text", "items", "flowing", "inside", "a",
+ "Flow", "item"];
+ strings;
+ }
+
+ Rectangle {
+ color: "white"
+ width: textItem.width + 4
+ height: textItem.height + 4
+ Text {
+ id: textItem
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: repeater.model[index]
+ font.pixelSize: 40
+ }
+ }
+ }
+ }
+//! [flow item]
+}
diff --git a/doc/src/snippets/declarative/flow.qml b/doc/src/snippets/declarative/flow.qml
new file mode 100644
index 0000000000..77db683164
--- /dev/null
+++ b/doc/src/snippets/declarative/flow.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ color: "lightblue"
+ width: 300; height: 200
+
+//! [flow item]
+ Flow {
+ anchors.fill: parent
+ anchors.margins: 4
+ spacing: 10
+
+ Text { text: "Text"; font.pixelSize: 40 }
+ Text { text: "items"; font.pixelSize: 40 }
+ Text { text: "flowing"; font.pixelSize: 40 }
+ Text { text: "inside"; font.pixelSize: 40 }
+ Text { text: "a"; font.pixelSize: 40 }
+ Text { text: "Flow"; font.pixelSize: 40 }
+ Text { text: "item"; font.pixelSize: 40 }
+ }
+//! [flow item]
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/grid/grid-items.qml b/doc/src/snippets/declarative/grid/grid-items.qml
new file mode 100644
index 0000000000..50997584a0
--- /dev/null
+++ b/doc/src/snippets/declarative/grid/grid-items.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ width: 112; height: 112
+ color: "#303030"
+
+ Grid {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ columns: 2
+ spacing: 6
+
+ Rectangle { color: "#aa6666"; width: 50; height: 50 }
+ Rectangle { color: "#aaaa66"; width: 50; height: 50 }
+ Rectangle { color: "#9999aa"; width: 50; height: 50 }
+ Rectangle { color: "#6666aa"; width: 50; height: 50 }
+ }
+}
diff --git a/doc/src/snippets/declarative/grid/grid-no-spacing.qml b/doc/src/snippets/declarative/grid/grid-no-spacing.qml
new file mode 100644
index 0000000000..f04c24234c
--- /dev/null
+++ b/doc/src/snippets/declarative/grid/grid-no-spacing.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ width: 112; height: 112
+ color: "#303030"
+
+ Grid {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ columns: 2
+
+ Rectangle { color: "#aa6666"; width: 50; height: 50 }
+ Rectangle { color: "#aaaa66"; width: 50; height: 50 }
+ Rectangle { color: "#9999aa"; width: 50; height: 50 }
+ Rectangle { color: "#6666aa"; width: 50; height: 50 }
+ }
+}
diff --git a/doc/src/snippets/declarative/grid/grid-spacing.qml b/doc/src/snippets/declarative/grid/grid-spacing.qml
new file mode 100644
index 0000000000..8715977fa3
--- /dev/null
+++ b/doc/src/snippets/declarative/grid/grid-spacing.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ width: 112; height: 112
+ color: "#303030"
+
+ Grid {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ columns: 2
+ spacing: 6
+
+ Rectangle { color: "#aa6666"; width: 50; height: 50 }
+ Rectangle { color: "#aaaa66"; width: 50; height: 50 }
+ Rectangle { color: "#9999aa"; width: 50; height: 50 }
+ Rectangle { color: "#6666aa"; width: 50; height: 50 }
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/grid/grid.qml b/doc/src/snippets/declarative/grid/grid.qml
new file mode 100644
index 0000000000..d57b4b2b3d
--- /dev/null
+++ b/doc/src/snippets/declarative/grid/grid.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Grid {
+ columns: 3
+ spacing: 2
+ Rectangle { color: "red"; width: 50; height: 50 }
+ Rectangle { color: "green"; width: 20; height: 50 }
+ Rectangle { color: "blue"; width: 50; height: 20 }
+ Rectangle { color: "cyan"; width: 50; height: 50 }
+ Rectangle { color: "magenta"; width: 10; height: 10 }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/image.qml b/doc/src/snippets/declarative/image.qml
new file mode 100644
index 0000000000..42efb8ff99
--- /dev/null
+++ b/doc/src/snippets/declarative/image.qml
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Image {
+ source: "pics/qtlogo.png"
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/listmodel-modify.qml b/doc/src/snippets/declarative/listmodel-modify.qml
index 03fb31415f..8f381f74c0 100644
--- a/doc/src/snippets/declarative/listmodel-modify.qml
+++ b/doc/src/snippets/declarative/listmodel-modify.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/listmodel-nested.qml b/doc/src/snippets/declarative/listmodel-nested.qml
index 4ae43ff370..3d876a303c 100644
--- a/doc/src/snippets/declarative/listmodel-nested.qml
+++ b/doc/src/snippets/declarative/listmodel-nested.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/listmodel-simple.qml b/doc/src/snippets/declarative/listmodel-simple.qml
index 00b8cb00d3..382fd134a4 100644
--- a/doc/src/snippets/declarative/listmodel-simple.qml
+++ b/doc/src/snippets/declarative/listmodel-simple.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/listview/listview-snippet.qml b/doc/src/snippets/declarative/listview/listview-snippet.qml
new file mode 100644
index 0000000000..c510472632
--- /dev/null
+++ b/doc/src/snippets/declarative/listview/listview-snippet.qml
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+ListView {
+ width: 50; height: 200
+ model: 4
+ delegate: Text {
+ text: index;
+ font.pixelSize: 40
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/numberanimation.qml b/doc/src/snippets/declarative/numberanimation.qml
index 57d23b17f0..0a1d5a491d 100644
--- a/doc/src/snippets/declarative/numberanimation.qml
+++ b/doc/src/snippets/declarative/numberanimation.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/parallelanimation.qml b/doc/src/snippets/declarative/parallelanimation.qml
index d823b4f46c..a8e80cd6c8 100644
--- a/doc/src/snippets/declarative/parallelanimation.qml
+++ b/doc/src/snippets/declarative/parallelanimation.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/parentanimation.qml b/doc/src/snippets/declarative/parentanimation.qml
index 7f11a438a2..506eff4dc9 100644
--- a/doc/src/snippets/declarative/parentanimation.qml
+++ b/doc/src/snippets/declarative/parentanimation.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/parentchange.qml b/doc/src/snippets/declarative/parentchange.qml
index ea508322c8..c704f1256a 100644
--- a/doc/src/snippets/declarative/parentchange.qml
+++ b/doc/src/snippets/declarative/parentchange.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/pics/qtlogo.png b/doc/src/snippets/declarative/pics/qtlogo.png
new file mode 100644
index 0000000000..4f68e162de
--- /dev/null
+++ b/doc/src/snippets/declarative/pics/qtlogo.png
Binary files differ
diff --git a/doc/src/snippets/declarative/propertyaction.qml b/doc/src/snippets/declarative/propertyaction.qml
index 1a154691d9..ff299f1ed4 100644
--- a/doc/src/snippets/declarative/propertyaction.qml
+++ b/doc/src/snippets/declarative/propertyaction.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/propertyanimation.qml b/doc/src/snippets/declarative/propertyanimation.qml
index 059cde5372..55ea9f6ea8 100644
--- a/doc/src/snippets/declarative/propertyanimation.qml
+++ b/doc/src/snippets/declarative/propertyanimation.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/propertychanges.qml b/doc/src/snippets/declarative/propertychanges.qml
index 9f119bf5c3..5959e5494d 100644
--- a/doc/src/snippets/declarative/propertychanges.qml
+++ b/doc/src/snippets/declarative/propertychanges.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml b/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml
new file mode 100644
index 0000000000..72e27f35d3
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Item {
+ width: 200; height: 250
+
+ //! [model]
+ ListModel { id: fruitModel }
+ //! [model]
+
+ //! [view]
+ ListView {
+ anchors.fill: parent
+ model: fruitModel
+ delegate: Row {
+ Text { text: "Fruit: " + name }
+ Text { text: "Cost: $" + cost }
+ }
+ }
+ //! [view]
+
+ //! [mouse area]
+ MouseArea {
+ anchors.fill: parent
+ onClicked: fruitModel.append({"cost": 5.95, "name":"Pizza"})
+ }
+ //! [mouse area]
+}
diff --git a/doc/src/snippets/declarative/qml-data-models/listelements.qml b/doc/src/snippets/declarative/qml-data-models/listelements.qml
new file mode 100644
index 0000000000..d9cea81d91
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-data-models/listelements.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Item {
+ width: 200; height: 250
+
+ //! [model]
+ ListModel {
+ id: fruitModel
+
+ ListElement {
+ name: "Apple"
+ cost: 2.45
+ }
+ ListElement {
+ name: "Orange"
+ cost: 3.25
+ }
+ ListElement {
+ name: "Banana"
+ cost: 1.95
+ }
+ }
+ //! [model]
+
+ //! [view]
+ ListView {
+ anchors.fill: parent
+ model: fruitModel
+ delegate: Row {
+ Text { text: "Fruit: " + name }
+ Text { text: "Cost: $" + cost }
+ }
+ }
+ //! [view]
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml b/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml
new file mode 100644
index 0000000000..92107f130e
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Item {
+ width: 200; height: 250
+
+ ListModel {
+ id: myModel
+ ListElement { type: "Dog"; age: 8 }
+ ListElement { type: "Cat"; age: 5 }
+ }
+
+ Component {
+ id: myDelegate
+ Text { text: type + ", " + age }
+ }
+
+ ListView {
+ anchors.fill: parent
+ model: myModel
+ delegate: myDelegate
+ }
+}
+//! [document]
diff --git a/examples/tutorials/modelview/4_headers/modelview.cpp b/doc/src/snippets/declarative/qml-documents/inline-component.qml
index 449dbbcc41..9233bbf6ea 100644
--- a/examples/tutorials/modelview/4_headers/modelview.cpp
+++ b/doc/src/snippets/declarative/qml-documents/inline-component.qml
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the examples of the Qt Toolkit.
+** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -38,17 +38,20 @@
**
****************************************************************************/
-#include <QTableView>
-#include <QHeaderView>
-#include "modelview.h"
-#include "mymodel.h"
+//! [document]
+import Qt 4.7
-ModelView::ModelView(QWidget *parent)
- : QMainWindow(parent)
-{
- tableView = new QTableView(this);
- setCentralWidget(tableView);
- tableView->setModel(new MyModel(this));
- tableView->verticalHeader()->hide();
-}
+Rectangle {
+ width: 240; height: 320;
+ ListView {
+ anchors.fill: parent
+ model: contactModel
+ delegate: Component {
+ Text {
+ text: modelData.firstName + " " + modelData.lastName
+ }
+ }
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-documents/inline-text-component.qml b/doc/src/snippets/declarative/qml-documents/inline-text-component.qml
new file mode 100644
index 0000000000..83ba213250
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-documents/inline-text-component.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ width: 240; height: 320;
+
+ ListView {
+ anchors.fill: parent
+ model: contactModel
+ delegate: Text {
+ text: modelData.firstName + " " + modelData.lastName
+ }
+ }
+}
+//! [document]
diff --git a/examples/tutorials/modelview/1_readonly/modelview.h b/doc/src/snippets/declarative/qml-documents/non-trivial.qml
index cc14d9056b..eb2364b3da 100644
--- a/examples/tutorials/modelview/1_readonly/modelview.h
+++ b/doc/src/snippets/declarative/qml-documents/non-trivial.qml
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the examples of the Qt Toolkit.
+** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -38,24 +38,25 @@
**
****************************************************************************/
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
+//! [document]
+import Qt 4.7
-//! [Quoting ModelView Tutorial]
-// modelview.h
-#include <QtGui/QMainWindow>
+Rectangle {
+ width: 240; height: 320;
-QT_FORWARD_DECLARE_CLASS(QTableView)
+ resources: [
+ Component {
+ id: contactDelegate
+ Text {
+ text: modelData.firstName + " " + modelData.lastName
+ }
+ }
+ ]
-class ModelView : public QMainWindow
-{
- Q_OBJECT
-private:
- QTableView *tableView;
-public:
- ModelView(QWidget *parent = 0);
-
-};
-//! [Quoting ModelView Tutorial]
-
-#endif // MODELVIEW_H
+ ListView {
+ anchors.fill: parent
+ model: contactModel
+ delegate: contactDelegate
+ }
+}
+//! [document]
diff --git a/examples/tutorials/modelview/4_headers/modelview.h b/doc/src/snippets/declarative/qml-documents/qmldocuments.qml
index 03f99c0fad..cd0a1f7d9c 100644
--- a/examples/tutorials/modelview/4_headers/modelview.h
+++ b/doc/src/snippets/declarative/qml-documents/qmldocuments.qml
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the examples of the Qt Toolkit.
+** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -38,21 +38,29 @@
**
****************************************************************************/
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
+//! [document]
+import Qt 4.7
-#include <QtGui/QMainWindow>
+Rectangle {
+ property alias text: textItem.text
-QT_FORWARD_DECLARE_CLASS(QTableView)
+ width: 100; height: 30
+ border.width: 1
+ radius: 5
+ smooth: true
-class ModelView : public QMainWindow
-{
- Q_OBJECT
-private:
- QTableView *tableView;
-public:
- ModelView(QWidget *parent = 0);
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "darkGray" }
+ GradientStop { position: 0.5; color: "black" }
+ GradientStop { position: 1.0; color: "darkGray" }
+ }
-};
+ Text {
+ id: textItem
+ anchors.centerIn: parent
+ font.pointSize: 20
+ color: "white"
+ }
-#endif // MODELVIEW_H
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/anchors1.qml b/doc/src/snippets/declarative/qml-intro/anchors1.qml
new file mode 100644
index 0000000000..c1158b8171
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/anchors1.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ id: myWin
+ width: 500
+ height: 400
+
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ width: 150; height: 150
+ anchors.bottom: myWin.bottom
+ }
+}
+//! [document]
diff --git a/examples/tutorials/modelview/1_readonly/modelview.cpp b/doc/src/snippets/declarative/qml-intro/anchors2.qml
index 91a97bf205..a7d4922770 100644
--- a/examples/tutorials/modelview/1_readonly/modelview.cpp
+++ b/doc/src/snippets/declarative/qml-intro/anchors2.qml
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the examples of the Qt Toolkit.
+** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -38,17 +38,21 @@
**
****************************************************************************/
-//! [Quoting ModelView Tutorial]
-// modelview.cpp
-#include <QTableView>
-#include "modelview.h"
-#include "mymodel.h"
+//! [document]
+import Qt 4.7
-ModelView::ModelView(QWidget *parent)
- : QMainWindow(parent)
-{
- tableView = new QTableView(this);
- setCentralWidget(tableView);
- tableView->setModel(new MyModel(this));
+Rectangle {
+ id: myWin
+ width: 500
+ height: 400
+
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ width: 150; height: 150
+ anchors.bottom: myWin.bottom
+ anchors.horizontalCenter: myWin.horizontalCenter
+ anchors.bottomMargin: 10
+ }
}
-//! [Quoting ModelView Tutorial]
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/anchors3.qml b/doc/src/snippets/declarative/qml-intro/anchors3.qml
new file mode 100644
index 0000000000..a2e0f0379b
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/anchors3.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ id: myWin
+ width: 500
+ height: 400
+
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ width: 150; height: 150
+ anchors.bottom: myWin.bottom
+ anchors.horizontalCenter: myWin.horizontalCenter
+ anchors.bottomMargin: 10
+ }
+
+//! [adding some text]
+ Text {
+ text: "<h2>The Qt Logo</h2>"
+ anchors.bottom: image1.top
+ anchors.horizontalCenter: myWin.horizontalCenter
+ anchors.bottomMargin: 15
+ }
+//! [adding some text]
+}
diff --git a/examples/tutorials/modelview/3_changingmodel/modelview.cpp b/doc/src/snippets/declarative/qml-intro/hello-world1.qml
index 9a5ce64c96..9b91049998 100644
--- a/examples/tutorials/modelview/3_changingmodel/modelview.cpp
+++ b/doc/src/snippets/declarative/qml-intro/hello-world1.qml
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the examples of the Qt Toolkit.
+** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -38,15 +38,16 @@
**
****************************************************************************/
-#include <QTableView>
-#include "modelview.h"
-#include "mymodel.h"
+//! [document]
+import Qt 4.7
-ModelView::ModelView(QWidget *parent)
- : QMainWindow(parent)
-{
- tableView = new QTableView(this);
- setCentralWidget(tableView);
- tableView->setModel(new MyModel(this));
-}
+Rectangle {
+ id: myRectangle
+ width: 500
+ height: 400
+
+ Text { text: "Hello World!" }
+ color: "lightgray"
+}
+//! [document]
diff --git a/examples/tutorials/modelview/2_formatting/modelview.h b/doc/src/snippets/declarative/qml-intro/hello-world2.qml
index b2943ac621..ddc10174da 100644
--- a/examples/tutorials/modelview/2_formatting/modelview.h
+++ b/doc/src/snippets/declarative/qml-intro/hello-world2.qml
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the examples of the Qt Toolkit.
+** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -38,20 +38,19 @@
**
****************************************************************************/
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
+import Qt 4.7
-#include <QtGui/QMainWindow>
+Rectangle {
+ id: myRectangle
+ width: 500
+ height: 400
-QT_FORWARD_DECLARE_CLASS(QTableView)
+//! [updated text]
+ Text {
+ text: "<h2>Hello World</h2>"; color: "darkgreen"
+ x: 100; y:100
+ }
+//! [updated text]
-class ModelView : public QMainWindow
-{
- Q_OBJECT
-private:
- QTableView *tableView;
-public:
- ModelView(QWidget *parent = 0);
-};
-
-#endif // MODELVIEW_H
+ color: "lightgray"
+}
diff --git a/examples/tutorials/modelview/3_changingmodel/modelview.h b/doc/src/snippets/declarative/qml-intro/hello-world3.qml
index b2943ac621..f1102c2665 100644
--- a/examples/tutorials/modelview/3_changingmodel/modelview.h
+++ b/doc/src/snippets/declarative/qml-intro/hello-world3.qml
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the examples of the Qt Toolkit.
+** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -38,20 +38,20 @@
**
****************************************************************************/
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
+import Qt 4.7
-#include <QtGui/QMainWindow>
+Rectangle {
+ id: myRectangle
+ width: 500
+ height: 400
-QT_FORWARD_DECLARE_CLASS(QTableView)
+//! [updated text]
+ Text {
+ text: "<h1>Hello world again</h1>"
+ color: "#002288"
+ x: 100; y: 100
+ }
+//! [updated text]
-class ModelView : public QMainWindow
-{
- Q_OBJECT
-private:
- QTableView *tableView;
-public:
- ModelView(QWidget *parent = 0);
-};
-
-#endif // MODELVIEW_H
+ color: "lightgray"
+}
diff --git a/doc/src/snippets/declarative/qml-intro/hello-world4.qml b/doc/src/snippets/declarative/qml-intro/hello-world4.qml
new file mode 100644
index 0000000000..9656ff84dc
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/hello-world4.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ id: myRectangle
+ width: 500
+ height: 400
+
+ Text {
+ text: "<h1>Hello world again</h1>"
+ color: "#002288"
+ x: 100; y: 100
+ }
+
+//! [added an image]
+ Image {
+ source: "images/qt-logo.svg"
+ }
+//! [added an image]
+
+ color: "lightgray"
+}
diff --git a/doc/src/snippets/declarative/qml-intro/hello-world5.qml b/doc/src/snippets/declarative/qml-intro/hello-world5.qml
new file mode 100644
index 0000000000..b816e09c41
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/hello-world5.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ id: myRectangle
+ width: 500
+ height: 400
+
+ Text {
+ text: "<h1>Hello world again</h1>"
+ color: "#002288"
+ x: 100; y: 100
+ }
+
+//! [positioning the image]
+ Image {
+ source: "images/qt-logo.svg"
+ x: 100; y: 150
+ width: 150; height: 150
+ }
+//! [positioning the image]
+
+ color: "lightgray"
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/images/qt-logo.svg b/doc/src/snippets/declarative/qml-intro/images/qt-logo.svg
new file mode 100644
index 0000000000..8c018be6a2
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/images/qt-logo.svg
@@ -0,0 +1,104 @@
+<?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"
+ clip-rule="evenodd"
+ stroke-miterlimit="10"
+ viewBox="0 0 174.35 209.78"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ width="744.09186"
+ height="895.29858"
+ sodipodi:docname="qt-logo.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="stroke-miterlimit:10">
+ <metadata
+ id="metadata29">
+ <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>
+ <sodipodi:namedview
+ inkscape:window-height="668"
+ inkscape:window-width="722"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="0.12195802"
+ inkscape:cx="525.6108"
+ inkscape:cy="-287.87189"
+ inkscape:window-x="476"
+ inkscape:window-y="228"
+ inkscape:current-layer="svg2" />
+ <desc
+ id="desc4">SVG generated by Lineform</desc>
+ <defs
+ id="defs6">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective31" />
+ </defs>
+ <g
+ id="g8"
+ transform="translate(-1.5304326e-4,-3.775985e-4)">
+ <path
+ d="M 43.08,0.36 C 40.94,0 38.84,-0.08 36.81,0.08 L 36.8,0.08 C 36.8,0.08 22.92,1.02 22.29,1.07 C 9.62,2.08 0,12.5 0,26.89 L 0,196.55 L 14.19,209.78 L 156.79,185.81 C 166.6,184.11 174.35,172.54 174.35,160.04 L 174.35,21.88 L 43.08,0.36"
+ id="path10"
+ style="fill:#0c481e" />
+ <path
+ d="M 174.35,160.04 C 174.35,172.54 166.6,184.11 156.79,185.82 L 14.19,209.78 L 14.19,25.99 C 14.19,9.27 27.53,-2.21 43.08,0.36 L 174.35,21.88 L 174.35,160.04"
+ id="path12"
+ style="fill:#66b036" />
+ <path
+ d="M 130.42,45.91 L 141.94,47.15 L 141.94,67.36 L 154.9,68.28 L 154.9,80.96 L 141.94,80.36 L 141.94,126.69 C 141.94,130.72 142.38,133.31 143.28,134.48 C 144.08,135.55 145.32,136.07 146.99,136.07 C 147.15,136.07 147.32,136.07 147.48,136.06 C 150.03,135.91 152.81,135.13 155.83,133.75 L 155.83,145.4 C 150.69,147.65 145.65,149 140.7,149.42 C 139.99,149.47 139.29,149.5 138.62,149.5 C 134.14,149.5 130.72,148.2 128.38,145.57 C 125.65,142.52 124.29,137.62 124.29,130.9 L 124.29,79.54 L 118.06,79.26 L 118.06,65.67 L 125.65,66.22 L 130.42,45.91"
+ id="path14"
+ style="fill:#ffffff" />
+ <path
+ d="M 154.9,80.96 L 141.94,80.36 L 141.94,80.64 L 148.88,80.96 L 154.9,80.96"
+ id="path16"
+ style="fill:#0c481e" />
+ <path
+ d="M 144.64,135.6 C 145.3,135.92 146.07,136.07 146.99,136.07 C 147.15,136.07 147.32,136.07 147.48,136.06 C 150.03,135.91 152.81,135.13 155.83,133.75 L 149.81,133.75 C 147.99,134.58 146.28,135.21 144.64,135.6"
+ id="path18"
+ style="fill:#0c481e" />
+ <path
+ d="M 128.38,145.57 C 125.65,142.52 124.29,137.62 124.29,130.9 L 124.29,79.54 L 118.06,79.26 L 118.06,65.67 L 112.05,65.67 L 112.05,68.71 C 112.92,71.98 113.6,75.53 114.11,79.35 L 118.28,79.54 L 118.28,130.9 C 118.28,137.62 119.64,142.52 122.37,145.57 C 124.71,148.2 128.13,149.5 132.61,149.5 L 138.62,149.5 C 134.14,149.5 130.72,148.2 128.38,145.57 z M 130.42,45.91 L 124.41,45.91 L 119.74,65.79 L 125.65,66.22 L 130.42,45.91"
+ id="path20"
+ style="fill:#0c481e" />
+ <path
+ d="M 91.15,132.4 C 93.5,126.36 94.66,114.49 94.66,96.79 C 94.66,80.9 93.51,69.97 91.18,63.98 C 88.84,57.95 85.35,54.69 80.66,54.28 C 80.3,54.25 79.95,54.23 79.6,54.23 C 75.26,54.23 71.92,56.77 69.59,61.86 C 67.07,67.4 65.8,78.9 65.8,96.3 C 65.8,113.11 67.04,125.05 69.54,132.05 C 71.89,138.72 75.41,142.03 80.04,142.03 C 80.25,142.03 80.45,142.02 80.66,142.01 C 85.29,141.71 88.78,138.51 91.15,132.4 M 109.13,136.15 C 105.01,145.86 98.73,152.21 90.14,155.15 C 91.01,159.6 92.32,162.6 94.06,164.17 C 95.41,165.39 97.49,165.99 100.28,165.99 C 101.09,165.99 101.96,165.94 102.87,165.84 L 102.87,178.96 L 96.91,179.75 C 95.16,179.97 93.49,180.09 91.91,180.09 C 86.69,180.09 82.47,178.82 79.29,176.26 C 75.08,172.89 71.98,166.37 69.99,156.73 C 60.86,154.78 53.73,148.97 48.8,139.23 C 43.8,129.32 41.25,114.83 41.25,95.89 C 41.25,75.46 44.74,60.38 51.6,50.81 C 57.38,42.75 65.46,38.78 75.62,38.78 C 77.24,38.78 78.93,38.88 80.66,39.08 C 92.61,40.46 101.28,46.1 106.92,55.87 C 112.46,65.43 115.17,79.14 115.17,97.13 C 115.17,113.62 113.17,126.58 109.13,136.15"
+ id="path22"
+ style="fill:#ffffff" />
+ <path
+ d="M 100.28,165.99 C 101.09,165.99 101.95,165.94 102.87,165.84 L 98.04,165.84 C 98.71,165.94 99.49,165.99 100.28,165.99"
+ id="path24"
+ style="fill:#0c481e" />
+ <path
+ d="M 84.85,63.98 C 87.19,69.97 88.34,80.9 88.34,96.79 C 88.34,114.49 87.18,126.36 84.82,132.4 C 82.93,137.28 80.3,140.31 76.96,141.48 C 77.93,141.84 78.96,142.03 80.04,142.03 C 80.25,142.03 80.45,142.02 80.66,142.01 C 85.29,141.71 88.78,138.51 91.15,132.4 C 93.5,126.36 94.66,114.49 94.66,96.79 C 94.66,80.9 93.51,69.97 91.18,63.98 C 88.84,57.95 85.35,54.69 80.66,54.28 C 80.3,54.25 79.95,54.23 79.6,54.23 C 78.51,54.23 77.48,54.39 76.52,54.72 L 76.52,54.72 C 80.12,55.83 82.89,58.93 84.85,63.98 z M 82.51,178.25 C 82.4,178.2 82.28,178.15 82.17,178.09 C 82.16,178.09 82.15,178.08 82.14,178.08 C 82.03,178.03 81.93,177.97 81.83,177.92 C 81.81,177.91 81.79,177.9 81.77,177.89 C 81.68,177.84 81.59,177.79 81.49,177.74 C 81.46,177.72 81.44,177.71 81.41,177.69 C 81.33,177.65 81.24,177.6 81.16,177.55 C 81.12,177.53 81.09,177.51 81.05,177.48 C 80.98,177.44 80.91,177.4 80.84,177.36 C 80.79,177.33 80.74,177.3 80.7,177.27 C 80.64,177.23 80.58,177.19 80.52,177.15 C 80.46,177.12 80.41,177.08 80.35,177.04 C 80.3,177.01 80.25,176.98 80.2,176.94 C 80.14,176.9 80.07,176.85 80.01,176.81 C 79.97,176.78 79.93,176.75 79.89,176.72 C 79.82,176.67 79.74,176.61 79.67,176.55 C 79.64,176.54 79.61,176.52 79.59,176.5 C 79.49,176.42 79.39,176.34 79.29,176.26 C 75.08,172.89 71.98,166.37 69.99,156.73 C 60.86,154.78 53.73,148.97 48.8,139.23 C 43.8,129.32 41.25,114.83 41.25,95.89 C 41.25,75.46 44.74,60.38 51.6,50.81 C 57.38,42.75 65.46,38.78 75.62,38.78 C 75.65,38.78 69.27,38.77 69.27,38.77 L 69.27,38.78 C 59.12,38.78 51.05,42.75 45.27,50.81 C 38.41,60.38 34.92,75.46 34.92,95.89 C 34.92,114.83 37.47,129.32 42.47,139.23 C 47.41,148.97 54.53,154.78 63.67,156.73 C 65.65,166.37 68.76,172.89 72.96,176.26 C 76.14,178.82 80.36,180.09 85.58,180.09 C 85.68,180.09 85.78,180.09 85.88,180.09 L 91.42,180.09 C 88.01,180.03 85.04,179.43 82.52,178.26 C 82.51,178.26 82.51,178.26 82.51,178.25"
+ id="path26"
+ style="fill:#0c481e" />
+ </g>
+</svg>
diff --git a/doc/src/snippets/declarative/qml-intro/number-animation1.qml b/doc/src/snippets/declarative/qml-intro/number-animation1.qml
new file mode 100644
index 0000000000..7b405e4c3d
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/number-animation1.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ id: mainRec
+ width: 600
+ height: 400
+
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ x: 200; y: 100
+ width: 100; height: 100
+
+ // Animate a rotation
+ transformOrigin: Item.Center
+ NumberAnimation on rotation {
+ from: 0; to: 360
+ duration: 2000
+ loops: Animation.Infinite
+ }
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/number-animation2.qml b/doc/src/snippets/declarative/qml-intro/number-animation2.qml
new file mode 100644
index 0000000000..f109f76170
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/number-animation2.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ id: mainRec
+ width: 600
+ height: 400
+
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ x: 200; y: 100
+ width: 100; height: 100
+
+ // Animate a rotation
+ transform: Rotation {
+ origin.x: 50; origin.y: 50; axis {x:0; y:1; z:0} angle:0
+ NumberAnimation on angle {
+ from: 0; to: 360;
+ duration: 3000;
+ loops: Animation.Infinite
+ }
+ }
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/rectangle.qml b/doc/src/snippets/declarative/qml-intro/rectangle.qml
new file mode 100644
index 0000000000..007881316f
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/rectangle.qml
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+// This is a comment. And below myRectangle is defined.
+Rectangle {
+ id: myRectangle
+ width: 500
+ height: 400
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml
new file mode 100644
index 0000000000..7ae2fde0da
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ id: mainRec
+ width: 600
+ height: 400
+ z: 0
+
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ x: 20; y: 20 ; z: 1
+ width: 100; height: 100
+ }
+
+ Image {
+ id: image2
+ source: "images/qt-logo.svg"
+ width: 100; height: 100
+ x: (mainRec.width - 100)/2; y: (mainRec.height - 100)/2
+ z: 2
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml
new file mode 100644
index 0000000000..ac0f3f53d6
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ id: mainRec
+ width: 600
+ height: 400
+ z: 0
+
+//! [adding a sequential animation]
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ width: 100; height: 100
+
+ SequentialAnimation on x {
+ loops: Animation.Infinite
+ NumberAnimation {
+ from: 20; to: 450; easing.type: "InOutQuad";
+ duration: 2000
+ }
+ PauseAnimation { duration: 500 }
+ }
+ }
+//! [adding a sequential animation]
+
+ Image {
+ id: image2
+ source: "images/qt-logo.svg"
+ width: 100; height: 100
+ x: (mainRec.width - 100)/2; y: (mainRec.height - 100)/2
+ z: 2
+ }
+}
diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml
new file mode 100644
index 0000000000..97c574b4ed
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ id: mainRec
+ width: 600
+ height: 400
+ z: 0
+
+ Image {
+ id: image2
+ source: "images/qt-logo.svg"
+ width: 100; height: 100
+ x: (mainRec.width - 100)/2; y: (mainRec.height - 100)/2
+ z: 2
+ }
+
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ x: 20; y: 20 ; z: 1
+ width: 100; height: 100
+
+ SequentialAnimation on x {
+ loops: Animation.Infinite
+ NumberAnimation {
+ from: 20; to: 450
+ easing.type: "InOutQuad"; duration: 2000
+ }
+ PauseAnimation { duration: 500 }
+ }
+
+ SequentialAnimation on y {
+ loops: Animation.Infinite
+ NumberAnimation {
+ from: 20; to: 250
+ easing.type: "InOutQuad"; duration: 2000
+ }
+ PauseAnimation { duration: 500 }
+ }
+
+ SequentialAnimation on scale {
+ loops: Animation.Infinite
+ NumberAnimation { from: 1; to: 0.5; duration: 1000 }
+ NumberAnimation { from: 0.5; to: 1; duration: 1000 }
+ PauseAnimation { duration: 500 }
+ }
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/states1.qml b/doc/src/snippets/declarative/qml-intro/states1.qml
new file mode 100644
index 0000000000..9619eb7ed5
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/states1.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ id: mainRectangle
+ width: 600
+ height: 400
+ color: "black"
+
+ Rectangle {
+ id: sky
+ width: 600
+ height: 200
+ y: 0
+ color: "lightblue"
+ }
+
+ Rectangle {
+ id: ground
+ width: 600; height: 200
+ y: 200
+ color: "green"
+ }
+
+ MouseArea {
+ id: mousearea
+ anchors.fill: mainRectangle
+ }
+
+ states: [ State {
+ name: "night"
+ when: mousearea.pressed == true
+ PropertyChanges { target: sky; color: "darkblue" }
+ PropertyChanges { target: ground; color: "black" }
+ },
+ State {
+ name: "daylight"
+ when: mousearea.pressed == false
+ PropertyChanges { target: sky; color: "lightblue" }
+ PropertyChanges { target: ground; color: "green" }
+ }
+ ]
+
+ transitions: [ Transition {
+ from: "daylight"; to: "night"
+ ColorAnimation { duration: 1000 }
+ },
+ Transition {
+ from: "night"; to: "daylight"
+ ColorAnimation { duration: 500 }
+ }
+ ]
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qml-intro/transformations1.qml b/doc/src/snippets/declarative/qml-intro/transformations1.qml
new file mode 100644
index 0000000000..b4a16923ae
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-intro/transformations1.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ id: myWin
+ width: 500
+ height: 400
+
+ Image {
+ id: image1
+ source: "images/qt-logo.svg"
+ width: 150; height: 150
+ anchors.bottom: myWin.bottom
+ anchors.horizontalCenter: myWin.horizontalCenter
+ anchors.bottomMargin: 10
+
+ transform: Rotation {
+ origin.x: 75; origin.y: 75
+ axis{ x: 0; y: 0; z:1 } angle: -90
+ }
+
+ }
+
+ Text {
+ text: "<h2>The Qt Logo -- taking it easy</h2>"
+ anchors.bottom: image1.top
+ anchors.horizontalCenter: myWin.horizontalCenter
+ anchors.bottomMargin: 15
+
+ transform: [
+ Scale { xScale: 1.5; yScale: 1.2 } ,
+
+ Rotation {
+ origin.x: 75; origin.y: 75
+ axis{ x: 0; y: 0; z:1 } angle: -45
+ }
+ ]
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/qtobject.qml b/doc/src/snippets/declarative/qtobject.qml
index 970fa16645..bd48390439 100644
--- a/doc/src/snippets/declarative/qtobject.qml
+++ b/doc/src/snippets/declarative/qtobject.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml b/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml
new file mode 100644
index 0000000000..106550eb89
--- /dev/null
+++ b/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ width: 400; height: 400; color: "black"
+
+ Grid {
+ x: 5; y: 5
+ rows: 5; columns: 5; spacing: 10
+
+ Repeater { model: 24
+ Rectangle { width: 70; height: 70
+ color: "lightgreen"
+
+ Text { text: index
+ font.pointSize: 30
+ anchors.centerIn: parent } }
+ }
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/repeater.qml b/doc/src/snippets/declarative/repeaters/repeater.qml
index d71fd298ba..d71fd298ba 100644
--- a/doc/src/snippets/declarative/repeater.qml
+++ b/doc/src/snippets/declarative/repeaters/repeater.qml
diff --git a/doc/src/snippets/declarative/rotationanimation.qml b/doc/src/snippets/declarative/rotationanimation.qml
index b56cb3f373..a0f635478c 100644
--- a/doc/src/snippets/declarative/rotationanimation.qml
+++ b/doc/src/snippets/declarative/rotationanimation.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/row.qml b/doc/src/snippets/declarative/row.qml
new file mode 100644
index 0000000000..bd2db164c5
--- /dev/null
+++ b/doc/src/snippets/declarative/row.qml
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Rectangle {
+ width: 320; height: 110
+ color: "#c0c0c0"
+
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+
+ spacing: 5
+
+ Rectangle { width: 100; height: 100; radius: 20.0
+ color: "#024c1c" }
+ Rectangle { width: 100; height: 100; radius: 20.0
+ color: "#42a51c" }
+ Rectangle { width: 100; height: 100; radius: 20.0
+ color: "white" }
+ }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/row/row.qml b/doc/src/snippets/declarative/row/row.qml
new file mode 100644
index 0000000000..c863243e8f
--- /dev/null
+++ b/doc/src/snippets/declarative/row/row.qml
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [document]
+import Qt 4.7
+
+Row {
+ spacing: 2
+ Rectangle { color: "red"; width: 50; height: 50 }
+ Rectangle { color: "green"; width: 20; height: 50 }
+ Rectangle { color: "blue"; width: 50; height: 20 }
+}
+//! [document]
diff --git a/doc/src/snippets/declarative/sequentialanimation.qml b/doc/src/snippets/declarative/sequentialanimation.qml
index a15f7f3076..bf73be53fa 100644
--- a/doc/src/snippets/declarative/sequentialanimation.qml
+++ b/doc/src/snippets/declarative/sequentialanimation.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/state-when.qml b/doc/src/snippets/declarative/state-when.qml
index 6d3bb75245..8e38f82634 100644
--- a/doc/src/snippets/declarative/state-when.qml
+++ b/doc/src/snippets/declarative/state-when.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/state.qml b/doc/src/snippets/declarative/state.qml
index ce2653b616..5f43947ffe 100644
--- a/doc/src/snippets/declarative/state.qml
+++ b/doc/src/snippets/declarative/state.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/states.qml b/doc/src/snippets/declarative/states.qml
index 127e3a7f76..1f9dc2c90d 100644
--- a/doc/src/snippets/declarative/states.qml
+++ b/doc/src/snippets/declarative/states.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/systempalette.qml b/doc/src/snippets/declarative/systempalette.qml
index 98b333e25e..cf5c902d15 100644
--- a/doc/src/snippets/declarative/systempalette.qml
+++ b/doc/src/snippets/declarative/systempalette.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/transition-from-to.qml b/doc/src/snippets/declarative/transition-from-to.qml
index 615de17712..09949fce00 100644
--- a/doc/src/snippets/declarative/transition-from-to.qml
+++ b/doc/src/snippets/declarative/transition-from-to.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/transition-reversible.qml b/doc/src/snippets/declarative/transition-reversible.qml
index 8a7b69abcb..367ad4994a 100644
--- a/doc/src/snippets/declarative/transition-reversible.qml
+++ b/doc/src/snippets/declarative/transition-reversible.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/transition.qml b/doc/src/snippets/declarative/transition.qml
index 098d509c6c..a79e483f98 100644
--- a/doc/src/snippets/declarative/transition.qml
+++ b/doc/src/snippets/declarative/transition.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/visualdatamodel.qml b/doc/src/snippets/declarative/visualdatamodel.qml
index cdde5131b2..231e4dd2ef 100644
--- a/doc/src/snippets/declarative/visualdatamodel.qml
+++ b/doc/src/snippets/declarative/visualdatamodel.qml
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp b/doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp
index 174adee24f..8d8004d8d3 100644
--- a/doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp
+++ b/doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp
@@ -6,35 +6,34 @@
**
** This file is part of the QtDeclarative module 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_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/doc/src/snippets/declarative/~image-fillmode.qml b/doc/src/snippets/declarative/~image-fillmode.qml
new file mode 100644
index 0000000000..cee26c49ee
--- /dev/null
+++ b/doc/src/snippets/declarative/~image-fillmode.qml
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Image {
+ source: "pics/qtlogo.png"
+ width: 20; height: 20
+}
diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css
index 9afff03f25..6cc1cb6b5b 100755
--- a/doc/src/template/style/style.css
+++ b/doc/src/template/style/style.css
@@ -35,6 +35,10 @@
{
list-style: none;
}
+ ol li
+ {
+ list-style: decimal;
+ }
caption, th
{
text-align: left;
@@ -790,13 +794,12 @@
padding-left:12px;
}
-
-
-
-
-
-
-
+ .wrap .content ol li
+ {
+ background:none;
+ margin-bottom: 10px;
+ padding-left:0px;
+ }
.content li:hover {}
diff --git a/doc/src/tutorials/modelview.qdoc b/doc/src/tutorials/modelview.qdoc
index b39a01c64d..65f66743f0 100755..100644
--- a/doc/src/tutorials/modelview.qdoc
+++ b/doc/src/tutorials/modelview.qdoc
@@ -29,22 +29,28 @@
\page modelview.html
\startpage {index.html}{Qt Reference Documentation}
- \nextpage {modelview-part1.html}{Introduction}
\title Model/View Contents
\brief An introduction to ModelView programming
- This tutorial gives an introduction to ModelView programming using the Qt
- cross-platform framework.
+ Every UI developer should know about ModelView programming and the goal of
+ this tutorial is to provide you with an easily understandable introduction
+ to this topic.
+
+ Table, list and tree widgets are components frequently used in GUIs. There
+ are 2 different ways how these widgets can access their data. The
+ traditional way involves widgets which include internal containers for
+ storing data. This approach is very intuitive, however, in many non-trivial
+ applications, it leads to data synchronization issues.
+ The second approach is model/view programming, in
+ which widgets do not maintain internal data containers. They access external
+ data through a standardized interface and therefore avoid data duplication.
+ This may seem complicated at first, but once you take a closer look, it is
+ not only easy to grasp, but the many benefits of model/view programming also
+ become clearer.
\image treeview.png
- \omit
- It doesn't cover everything; the emphasis is on teaching the programming
- philosophy of Model/View programming, and Qt's features are introduced as
- needed. Some commonly used features are never used in this tutorial.
- \endomit
-
In the process, we will learn about some basic technologies provided by Qt,
such as:
@@ -52,38 +58,29 @@
\o The difference between standard and model/view widgets
\o Adapters betweeen forms and models
\o Developing a simple model/view application
+ \o Predefined models
\o Intermediate topics such as:
\list
\o Tree views
\o Selection
- \o Predefined models
\o Delegates
\o Debugging with model test
\endlist
\endlist
- If you are completely new to Qt, please read \l{How to Learn Qt} if you
- have not already done so.
-
- The tutorial's source code is located in Qt's \c examples/tutorials/modelview
- directory.
+ You will also learn whether your new application can be written easier with
+ model/view programming or if classic widgets will work just as well.
- \list 1
- \o \l{modelview-part1.html}{Introduction}
- \o \l{modelview-part2.html}{Developing a Simple Model/View Application}
- \o \l{modelview-part3.html}{Intermediate Topics}
- \o \l{modelview-part4.html}{Good Sources of Additional Information}
- \endlist
+ This tutorial includes example code for you to edit and integrate into your
+ project. The tutorial's source code is located in Qt's
+ \c examples/tutorials/modelview directory.
+ For more detailed information you may also want to look at the
+ \l{model-view-programming.html}{reference documentation}
-*/
+ If you are completely new to Qt, please read \l{How to Learn Qt} if you
+ have not already done so.
-/*!
- \page modelview-part1.html
- \contentspage {modelview.html}{Model/View Contents}
- \previouspage {modelview.html}{Model/View Contents}
- \nextpage {modelview-part2.html}{Developing a Simple Model/View Application}
- \title An Introduction to Model/View Programming
\section1 1. Introduction
@@ -104,16 +101,16 @@
\section2 1.1 Standard Widgets
Let's have a closer look at a standard table widget. A table widget is a 2D
- array of the data elements that the user can change. The table widget can
- be integrated into a program flow by reading and writing the data elements
- that the table widget provides. This method is very intuitive and useful in
- many applications.
+ array of the data elements that the user can change. The table widget can be
+ integrated into a program flow by reading and writing the data elements that
+ the table widget provides. This method is very intuitive and useful in many
+ applications.
Displaying and editing a database table with a standard table widget can be
problematic. Two copies of the data have to be coordinated: one outside the
- widget; one inside the widget. The developer needs to know where up-to-date
- data is so the both copies contain the most recent data. The tight coupling
- of presentation and data makes it harder to write unit tests.
+ widget; one inside the widget. The developer is responsible for
+ synchronizing both versions. The tight coupling of presentation and data
+ makes it harder to write unit tests.
\section2 1.2 Model/View to the Rescue
@@ -121,14 +118,14 @@
architecture. Model/view eliminates the data consistency problems that may
occur with standard widgets. Model/view also makes it easier to use more
than one view of the same data because one model can be passed on to many
- views. The most important difference is that model/view widgets do not
- store data behind the table cells. In fact, they operate directly from your
- data. Since view classes do not know your data's structure, you need to
- provide a wrapper to make your data conform to the QAbstractItemModel
- interface. A view uses this interface to read from and write to your data
- and any class that implements QAbstractItemModel is a model. Once the view
- receives a pointer to a model, it will read and display its content and be
- its editor.
+ views. The most important difference is that model/view widgets do not store
+ data behind the table cells. In fact, they operate directly from your data.
+ Since view classes do not know your data's structure, you need to provide a
+ wrapper to make your data conform to the QAbstractItemModel interface. A
+ view uses this interface to read from and write to your data. Any instance
+ of a class that implements QAbstractItemModel is said to be a model. Once
+ the view receives a pointer to a model, it will read and display its content
+ and be its editor.
\section2 1.3 Overview of the Model/View Widgets
@@ -138,9 +135,10 @@
\table
\header
\o Widget
- \o Standard Widget (a convenience class with data in
- the widget)
- \o Model/View View Class (for use with external data)
+ \o Standard Widget\br
+ (an item based convenience class)
+ \o Model/View View Class\br
+ (for use with external data)
\row
\o \inlineimage listview.png
\o \l QListWidget
@@ -167,47 +165,26 @@
Having adapters between forms and models can come in handy.
- We often prefer editing data stored in tables (e.g. in database tables) in
- forms rather than in tables. There is no direct model/view counterpart for
- separating data and views for widgets that operate on one value instead of
- a dataset, so we need an adapter in order to connect the form to the source
- of data.
+ We can edit data stored in tables directly from within the table itself, but
+ it's much more comfortable to edit data in text fields. There is no direct
+ model/view counterpart that separates data and views for widgets that
+ operate on one value (QLineEdit, QCheckBox ...) instead of a dataset, so we
+ need an adapter in order to connect the form to the source of data.
\l QDataWidgetMapper is a great solution because it maps form widgets to a
- table row and it makes it very easy to build forms for database tables.
+ table row and makes it very easy to build forms for database tables.
\image widgetmapper.png
- Another example of an adapter is QCompleter. Qt has QCompleter for
- providing auto-completions in Qt widgets such as QComboBox and, as shown
- below, QLineEdit. QCompleter uses a model as its data source, so QCompleter,
- in itself, is a very handy adapter.
+ Another example of an adapter is \l QCompleter. Qt has \l QCompleter for
+ providing auto-completions in Qt widgets such as \l QComboBox and, as shown
+ below, \l QLineEdit. \l QCompleter uses a model as its data source.
\image qcompleter.png
-*/
-
-/*!
- \page modelview-part2-main-cpp.html
- \title main.cpp
- \quotefile tutorials/modelview/1_readonly/main.cpp
-*/
-/*!
- \page modelview-part2.html
- \contentspage {modelview-index.html}{Model/View Contents}
- \previouspage {modelview-part1.html}{Introduction}
- \nextpage {modelview-part3.html}{Intermediate Topics}
- \title Model/View Chapter 2 - A Simple Model/View Application
\section1 2. A Simple Model/View Application
-
- If you want to develop a model/view application, where should you start? We
- recommend starting with a simple example and extending it step-by-step.
- This makes understanding the architecture a lot easier. Trying to
- understand the model/view architecture in detail before invoking the IDE
- has proven to be less convenient for many developers. It is substantially
- easier to start with a simple model/view application that has demo data.
- Give it a try! Simply replace the data in the examples below with your own.
+ If you want to develop a model/view application, where should you start? We recommend starting with a simple example and extending it step-by-step. This makes understanding the architecture a lot easier. Trying to understand the model/view architecture in detail before invoking the IDE has proven to be less convenient for many developers. It is substantially easier to start with a simple model/view application that has demo data. Give it a try! Simply replace the data in the examples below with your own.
Below are 7 very simple and independent applications that show different
sides of model/view programming. The source code can be found inside the
@@ -216,58 +193,55 @@
\section2 2.1 A Read Only Table
We start with an application that uses a QTableView to show data. We will
- add editing capabilities later.
+ add editing capabilities later.
+ (file source: examples/tutorials/modelview/1_readonly/main.cpp)
\snippet examples/tutorials/modelview/1_readonly/main.cpp Quoting ModelView Tutorial
We have the usual \l {modelview-part2-main-cpp.html}{main()} function:
- \snippet examples/tutorials/modelview/1_readonly/modelview.h Quoting ModelView Tutorial
-
- The application is a \l QMainWindow that holds a \l QTableView.
-
- \snippet examples/tutorials/modelview/1_readonly/modelview.cpp Quoting ModelView Tutorial
-
- Here is the interesting part: We use
- \l{QTableView::setModel()}{tableView->setModel(new MyModel(this));} to
- instantiate the Model and pass its pointer to \l {QTableView}{tableView()}.
- \l{QTableView}{tableView} will invoke the methods of the pointer it has
- received to find out two things:
+ Here is the interesting part: We create an instance of MyModel and use
+ \l{QTableView::setModel()}{tableView.setModel(&myModel);} to pass a
+ pointer of it to to \l{QTableView}{tableView}. \l{QTableView}{tableView}
+ will invoke the methods of the pointer it has received to find out two
+ things:
\list
- \o How many rows and columns should be displayed
- \o What content should be printed into each cell.
+ \o How many rows and columns should be displayed.
+ \o What content should be printed into each cell.
\endlist
- The model needs some code to respond to this.
+ The model needs some code to respond to this.
We have a table data set, so let's start with QAbstractTableModel since it
- is easier to use.
+ is easier to use than the more general QAbstractItemModel.
+ (file source: examples/tutorials/modelview/1_readonly/mymodel.h)
\snippet examples/tutorials/modelview/1_readonly/mymodel.h Quoting ModelView Tutorial
QAbstractTableModel requires the implementation of three abstract methods.
+ (file source: examples/tutorials/modelview/1_readonly/mymodel.cpp)
\snippet examples/tutorials/modelview/1_readonly/mymodel.cpp Quoting ModelView Tutorial
- The number of rows and columns is set by
+ The number of rows and columns is provided by
\l{QAbstractItemModel::rowCount()}{MyModel::rowCount()} and
- \l{QAbstractItemModel::columnCount()}{MyModel::columnCount()}.
- When the view has to know what the cell's text is, it calls the method.
- Row and column information is specified with parameter \c index and the
- role is set to \l{Qt::ItemDataRole}{Qt::DisplayRole}. Other roles are
- covered in the next section. In our example, the data that should be
- displayed is generated. In a real application, \c MyModel would have a
- member called \c MyData, which serves as the target for all reading and
- writing operations.
+ \l{QAbstractItemModel::columnCount()}{MyModel::columnCount()}. When the view
+ has to know what the cell's text is, it calls the method
+ \l{QAbstractItemModel::data()}{MyModel::data()}. Row and column information
+ is specified with parameter \c index and the role is set to
+ \l{Qt::ItemDataRole}{Qt::DisplayRole}. Other roles are covered in the next
+ section. In our example, the data that should be displayed is generated. In
+ a real application, \c MyModel would have a member called \c MyData, which
+ serves as the target for all reading and writing operations.
This small example demonstrates the passive nature of a model. The model
does not know when it will be used or which data is needed. It simply
- provides data each time the view requests it.
+ provides data each time the view requests it.
- What happens when the model 's data needs to be changed? How does the view
- know when data changes and needs to be read again? The model has to emit a
- signal that indicates what range of cells has changed. This will be
+ What happens when the model's data needs to be changed? How does the view
+ realize that data has changed and needs to be read again? The model has to
+ emit a signal that indicates what range of cells has changed. This will be
demonstrated in section 2.3.
\section2 2.2 Extending the Read Only Example with Roles
@@ -276,12 +250,14 @@
controls the text's appearance. When we slightly change the model, we get
the following result: \image readonlytable_role.png
- In fact, nothing except for the \l{QAbstractItemModel::}{data()}
- method needs to be changed to set fonts, background colour, alignment and a
+ In fact, nothing except for the \l{QAbstractItemModel::}{data()} method
+ needs to be changed to set fonts, background colour, alignment and a
checkbox.
- Here is the \l{QAbstractItemModel::data()}{data()} method that produces the
- result shown above:
+ Below is the \l{QAbstractItemModel::data()}{data()} method that produces the
+ result shown above. The difference is that this time we use parameter int
+ role to return different pieces of information depending on its value.
+ (file source: examples/tutorials/modelview/2_formatting/mymodel.cpp)
\snippet examples/tutorials/modelview/2_formatting/mymodel.cpp Quoting ModelView Tutorial
Each formatting property will be requested from the model with a separate
@@ -290,42 +266,45 @@
\table
\header
- \o Role (enum Qt::ItemDataRole )
+ \o \l{Qt::ItemDataRole}{enum Qt::ItemDataRole}
\o Meaning
- \o Type
+ \o Type
\row
- \o \l{Qt::ItemDataRole}{Qt::DisplayRole}
+ \o \l{Qt::ItemDataRole}{}Qt::DisplayRole
\o text
\o QString
\row
- \o Qt::FontRole
+ \o \l{Qt::ItemDataRole}{Qt::FontRole}
\o font
\o QFont
\row
- \o Qt::BackgroundRole
+ \o \l{Qt::ItemDataRole}{BackgroundRole}
\o brush for the background of the cell
\o QBrush
\row
- \o Qt::TextAlignmentRole
+ \o \l{Qt::ItemDataRole}{Qt::TextAlignmentRole}
\o text alignment
- \o enum Qt::AlignmentFlag
+ \o \l{Qt::AlignmentFlag}{enum Qt::AlignmentFlag}
\row
- \o {1, 3} Qt::CheckStateRole
+ \o {1, 3} \l{Qt::ItemDataRole}{Qt::CheckStateRole}
\o {1, 3} suppresses checkboxes with \l{QVariant}{QVariant()},
- sets checkboxes with Qt::Checked or Qt::Unchecked
- \o {1, 3} \l{Qt::ItemDataRole}{enum Qt::ItemDataRole}
+
+ sets checkboxes with \l{Qt::CheckState}{Qt::Checked}
+
+ or \l{Qt::CheckState}{Qt::Unchecked}
+ \o {1, 3} \l{Qt::ItemDataRole}{enum Qt::ItemDataRole}
\endtable
Refer to the Qt namespace documentation to learn more about the
- Qt::ItemDataRole enum's capabilities.
+ \l{Qt::ItemDataRole}{Qt::ItemDataRole} enum's capabilities.
- Now we need to determine how using a seperated model impacts the
+ Now we need to determine how using a separated model impacts the
application's performance, so let's trace how often the view calls the
- \l{QAbstractItemModel::}{data()} method. In order to track how often
- the view calls the model, we have put a debug statement in the
- \l{QAbstractItemModel::}{data()} method, which logs onto stdio. In
- our small example, \l{QAbstractItemModel::}{data()} will be called 42
- times.
+ \l{QAbstractItemModel::}{data()} method. In order to track how often the
+ view calls the model, we have put a debug statement in the
+ \l{QAbstractItemModel::}{data()} method, which logs onto the error output
+ stream. In our small example, \l{QAbstractItemModel::}{data()} will be
+ called 42 times.
Each time you hover the cursor over the field,
\l{QAbstractItemModel::}{data()} will be called again \mdash 7 times for
each cell. That's why it is important to make sure that your data is
@@ -339,6 +318,7 @@
We still have a read only table, but this time the content changes every
second because we are showing the current time.
+ (file source: examples/tutorials/modelview/3_changingmodel/mymodel.cpp)
\snippet examples/tutorials/modelview/3_changingmodel/mymodel.cpp quoting mymodel_QVariant
Something is missing to make the clock tick. We need to tell the view every
@@ -346,17 +326,18 @@
this with a timer. In the constructor, we set its interval to 1 second and
connect its timeout signal.
+ (file source: examples/tutorials/modelview/3_changingmodel/mymodel.cpp)
\snippet examples/tutorials/modelview/3_changingmodel/mymodel.cpp quoting mymodel_a
Here is the corresponding slot:
+ (file source: examples/tutorials/modelview/3_changingmodel/mymodel.cpp)
\snippet examples/tutorials/modelview/3_changingmodel/mymodel.cpp quoting mymodel_b
We ask the view to read the data in the top left cell again by emitting the
\l{QAbstractItemModel::}{dataChanged()} signal. Note that we did not
- explicitly connect the \l{QAbstractItemModel::}{dataChanged()} signal to
- the view. This happened automatically when we called
- \l{QTableView::}{setModel()}.
+ explicitly connect the \l{QAbstractItemModel::}{dataChanged()} signal to the
+ view. This happened automatically when we called \l{QTableView::}{setModel()}.
\section2 2.4 Setting up Headers for Columns and Rows
@@ -366,60 +347,58 @@
The header content, however, is set via the model, so we reimplement the
\l{QAbstractItemModel::headerData()}{headerData()} method:
+ (file source: examples/tutorials/modelview/4_headers/mymodel.cpp)
\snippet examples/tutorials/modelview/4_headers/mymodel.cpp quoting mymodel_c
+ Note that method \l{QAbstractItemModel::headerData()}{headerData()} also has
+ a parameter role which has the same meaning as in
+ \l{QAbstractItemModel::data()}{MyModel::data()}.
\section2 2.5 The Minimal Editing Example
In this example, we are going to build an application that automatically
- populates a window title with content by repeating values entered into
- table cells.
+ populates a window title with content by repeating values entered into table
+ cells. To be able to access the window title easily we put the QTableView in
+ a QMainWindow.
- The model decides whether editing capabilities are available . We only have
+ The model decides whether editing capabilities are available. We only have
to modify the model in order for the available editing capabilities to be
enabled. This is done by reimplementing the following virtual methods:
\l{QAbstractItemModel::}{setData()} and \l{QAbstractItemModel::}{flags()}.
+ (file source: examples/tutorials/modelview/5_edit/mymodel.h)
\snippet examples/tutorials/modelview/5_edit/mymodel.h Quoting ModelView Tutorial
- We use \c QStringList m_gridData to store our data. This makes
- \c m_gridData the core of MyModel. The rest of \c MyModel acts like a
- wrapper and adapts \c m_gridData to the QAbstractItemModel interface. We
- have also introduced the \c editCompleted() signal,
- which makes it possible to transfer the modified text to the window title.
-
- \snippet examples/tutorials/modelview/5_edit/mymodel.cpp quoting mymodel_d
-
- In the constructor, we fill \c QStringList gridData with 6 items (one item
- for every field in the table):
+ We use \c the two-dimensional array QString \c m_gridData to store our data.
+ This makes \c m_gridData the core of \c MyModel. The rest of \c MyModel acts
+ like a wrapper and adapts \c m_gridData to the QAbstractItemModel
+ interface. We have also introduced the \c editCompleted() signal, which
+ makes it possible to transfer the modified text to the window title.
+ (file source: examples/tutorials/modelview/5_edit/mymodel.cpp)
\snippet examples/tutorials/modelview/5_edit/mymodel.cpp quoting mymodel_e
\l{QAbstractItemModel::setData()}{setData()} will be called each time the
user edits a cell. The \c index parameter tells us which field has been
edited and \c value provides the result of the editing process. The role
- will always be set to \c Qt::EditRole because our cells only contain text.
+ will always be set to \l Qt::EditRole because our cells only contain text.
If a checkbox were present and user permissions are set to allow the
checkbox to be selected, calls would also be made with the role set to
- \c Qt::CheckStateRole.
+ \l Qt::CheckStateRole.
+ (file source: examples/tutorials/modelview/5_edit/mymodel.cpp)
\snippet examples/tutorials/modelview/5_edit/mymodel.cpp quoting mymodel_f
Various properties of a cell can be adjusted with
- \l{QAbstractItemModel::flags()}{flags()}. Returning
- \c Qt::ItemIsEditable | \c Qt::ItemIsEnabled is enough to show an editor
- that a cell has been selected. If editing one cell modifies more data than
- the data in that particular cell, the model must emit a
- \l{QAbstractItemModel::}{dataChanged()} signal in order for the data that
- has been changed to be read.
-*/
+ \l{QAbstractItemModel::flags()}{flags()}.
+
+ Returning \l{Qt::ItemFlag}{Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled}
+ is enough to show an editor that a cell can be selected.
+
+ If editing one cell modifies more data than the data in that particular
+ cell, the model must emit a \l{QAbstractItemModel::}{dataChanged()} signal
+ in order for the data that has been changed to be read.
-/*!
- \page modelview-part3.html
- \contentspage {modelview-index.html}{Model/View Contents}
- \previouspage {modelview-part2.html}{Developing a Simple Model/View Application}
- \nextpage {modelview-part4.html}{Good Sources of Additional Information}
- \title Model/View Chapter 3 - Intermediate Topics
\section1 3. Intermediate Topics
@@ -429,28 +408,30 @@
Simply replace QTableView with QTreeView, which results in a read/write
tree. No changes have to be made to the model. The tree won't have any
hierarchies because there aren't any hierarchies in the model itself.
- \image dummy_tree.png
+ \image dummy_tree.png
QListView, QTableView and QTreeView all use a model abstraction, which is a
merged list, table and tree. This makes it possible to use several different
types of view classes from the same model.
- \image list_table_tree.png
+ \image list_table_tree.png
This is how our example model looks so far:
- \image example_model.png
+ \image example_model.png
We want to present a real tree. We have wrapped our data in the examples
above in order to make a model. This time we use QStandardItemModel, which
is a container for hierarchical data that also implements
QAbstractItemModel. To show a tree, QStandardItemModel must be populated
- with \l{QStandardItem}{QStandardItems}, which are able to hold all the
- standard properties of items like text, fonts, checkboxes or brushes.
+ with \l{QStandardItem}s, which are able to hold all the standard properties
+ of items like text, fonts, checkboxes or brushes.
+
\image tree_2_with_algorithm.png
- \snippet examples/tutorials/modelview/6_treeview/modelview.cpp Quoting ModelView Tutorial
+ (file source: examples/tutorials/modelview/6_treeview/mainwindow.cpp)
+ \snippet examples/tutorials/modelview/6_treeview/mainwindow.cpp Quoting ModelView Tutorial
We simply instantiate a QStandardItemModel and add a couple of
\l{QStandardItem}{QStandardItems} to the constructor. We can then make a
@@ -462,42 +443,45 @@
We want to access a selected item's content in order to output it into the
window title together with the hierarchy level.
+
\image selection2.png
So let's create a couple of items:
- \snippet examples/tutorials/modelview/7_selections/modelview.cpp quoting modelview_a
+ (file source: examples/tutorials/modelview/7_selections/mainwindow.cpp)
+ \snippet examples/tutorials/modelview/7_selections/mainwindow.cpp quoting modelview_a
Views manage selections within a separate selection model, which can be
- retrieved with the \l{QAbstractItemView::}{selectionModel()}
- method. We retrieve the selection Model in order to connect a slot to its
+ retrieved with the \l{QAbstractItemView::}{selectionModel()} method. We
+ retrieve the selection Model in order to connect a slot to its
\l{QAbstractItemView::}{selectionChanged()} signal.
- \snippet examples/tutorials/modelview/7_selections/modelview.cpp quoting modelview_b
+ (file source: examples/tutorials/modelview/7_selections/mainwindow.cpp)
+ \snippet examples/tutorials/modelview/7_selections/mainwindow.cpp quoting modelview_b
- We get the model index that corresponds to the selection by calling
+ We get the model index that corresponds to the selection by calling
\l{QItemSelectionModel::currentIndex()}{treeView->selectionModel()->currentIndex()}
and we get the the field's string by using the model index. Then we just
- calculate the item's \c hierarchyLevel. Top level items do not have
- parents and the \l{QAbstractItemModel::}{parent()} method will return a
- default constructed \l{QModelIndex}{QModelIndex()}. This is why we use the
+ calculate the item's \c hierarchyLevel. Top level items do not have parents
+ and the \l{QAbstractItemModel::}{parent()} method will return a default
+ constructed \l{QModelIndex}{QModelIndex()}. This is why we use the
\l{QAbstractItemModel::}{parent()} method to iterate to the top level while
counting the steps performed during iteration.
The selection model (as shown above) can be retrieved, but it can also be
set with \l{QAbstractItemView}{QAbstractItemView::setSelectionModel}. This
is how it's possible to have 3 view classes with synchronised selections
- because only one instance of a selection model is used. The instance of a
- selection model is retrieved from the first view class with
- \l{QAbstractItemView::}{selectionModel()} and the result is assigned to the
- second and third view class with \l{QAbstractItemView::}{setSelectionModel()}.
+ because only one instance of a selection model is used. To share a selection
+ model between 3 views use \l{QAbstractItemView::}{selectionModel()} and
+ assign the result to the second and third view class with
+ \l{QAbstractItemView::}{setSelectionModel()}.
\section2 3.3 Predefined Models
- The typical way to use model/view is to wrap specific data to make it
- usable with view classes. Qt, however, also provides predefined models for
- common underlying data structures. If one of the available data structures
- is suitable for your application, a predefined model can be a good choice.
+ The typical way to use model/view is to wrap specific data to make it usable
+ with view classes. Qt, however, also provides predefined models for common
+ underlying data structures. If one of the available data structures is
+ suitable for your application, a predefined model can be a good choice.
\table
\row
@@ -531,26 +515,26 @@
and is edited as text or a checkbox. The component that provides these
presentation and editing services is called a \e delegate. We are only just
beginning to work with the delegate because the view uses a default
- delegate. But imagine that we want to have a different editor.(e.g. a
+ delegate. But imagine that we want to have a different editor (e.g., a
slider or a drop down list) Or imagine that we want to present data as
- graphics. Let's take a look at an example called
- \l{Star Delegate Example}{Star Delegate}, in which stars are used to show
- a rating:
+ graphics.
+ Let's take a look at an example called \l{Star Delegate Example}{Star
+ Delegate}, in which stars are used to show a rating:
+
\image stardelegate.png
- The view has a method that replaces the default delegate and installs a
- custom delegate. This method is called
- \l{QAbstractItemView::}{setItemDelegate()}. A new delegate can be written
- by creating a class that inherits from QStyledItemDelegate. In order to
- write a delegate that displays stars and has no input capabilities, we only
- need to overwrite 2 methods.
+ The view has a \l{QAbstractItemView::}{setItemDelegate()} method that
+ replaces the default delegate and installs a custom delegate.
+ A new delegate can be written by creating a class that inherits from
+ QStyledItemDelegate. In order to write a delegate that displays stars and
+ has no input capabilities, we only need to override 2 methods.
\code
class StarDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
- StarDelegate(QWidget *parent = 0);
+ StarDelegate(QWidget *parent = 0);
void paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &index) const;
QSize sizeHint(const QStyleOptionViewItem &option,
@@ -558,16 +542,28 @@
};
\endcode
- \l{QStyledItemDelegate::}{paint()} draws stars depending on the content
- of the underlying data. The data can be looked up with parameter
- \l{QModelIndex::data()}{index.data()}.
- \l{QAbstractItemDelegate::}{sizeHint()} specifies each star's dimensions
- so the the cell will provide enough height and width to accommodate the
- stars.
+ \l{QStyledItemDelegate::}{paint()} draws stars depending on the content of
+ the underlying data. The data can be looked up by calling
+ \l{QModelIndex::data()}{index.data()}. The delegate's
+ \l{QAbstractItemDelegate::}{sizeHint()} method is used to obtain each
+ star's dimensions, so the the cell will provide enough height and width to
+ accommodate the stars.
Writing custom delegates is the right choice if you want to show your data
- with a custom graphical representation inside the grid of the view class.
- If you want to leave the grid, you can write a custom view class.
+ with a custom graphical representation inside the grid of the view class. If
+ you want to leave the grid, you would not use a custom delegate but a custom
+ view class.
+
+ Other references to delegates in Qt Documentation:
+
+ \list
+ \o \l{Spin Box Delegate Example}
+ \o \l{QAbstractItemDelegate}{QAbstractItemDelegate Class Reference}
+ \o \l{QSqlRelationalDelegate}{QSqlRelationalDelegate Class Reference}
+ \o \l{QStyledItemDelegate}{QStyledItemDelegate Class Reference}
+ \o \l{QItemDelegate}{QItemDelegate Class Reference}
+ \endlist
+
\section2 3.5 Debugging with ModelTest
@@ -575,9 +571,9 @@
Inconsistencies in the model can cause the application to crash. Since the
model is hit by numerous calls from the view, it is hard to find out which
call has crashed the application and which operation has introduced the
- problem.
+ problem.
- Qt provides software called
+ Qt Labs provides software called
\l{http://labs.qt.nokia.com/page/Projects/Itemview/Modeltest}{ModelTest},
which checks models while your programming is running. Every time the model
is changed, ModelTest scans the model and reports errors with an assert.
@@ -586,57 +582,9 @@
Unlike view classes, ModelTest uses out of range indexes to test the model.
This means your application may crash with ModelTest even if it runs
- perfectly without it. So you also need to handle all of the indexes that
- are out of range when using ModelTest.
-
-
- \section2 3.6 Model/View NG
-
- \raw HTML
- <table style="background-color:white;border:none;font: normal 13px/1.2 Verdana;">
- <tr><td align="left" valign="top" style="background-color:white;border:none;padding:5px;">
- \endraw
-
- \raw HTML
- <!-- wrap content table p has 0 padding and the padding for p outside of the table is 5px-->
- \endraw
-
- Model/View was introduced in Qt 4.0 and is a frequently used technology.
- Feedback from developers and new development trends have shown that there
- is a need to further develop the model/view technology. Therefore a
- research project originated at Nokia is looking into ways to go beyond the
- current implementation.
-
- One limitation of model/view is that view classes are basically all fixed
- grids. It is possible, but really hard to make a list view with icons
- placed on a curve; or cells expanding on mouse over events to show
- additional information.
- In order to achieve graphically rich view experiences, Model/View NG will
- use QGraphicsView to render elements. Nodel/View NG also aims to make
- model/view programming more intuitive. One way to achieve this is to have
- separate models for lists, tables and trees. The current model abstraction
- is complex because it is capable of representing a list, a table or a tree.
-
- Model/View NG is a research project. You are welcome to checkout the source
- code, monitor progress and take part in discussions at the following
- address: \l{http://labs.qt.nokia.com/page/Projects/Itemview/ItemviewsNG}
-
- \raw HTML
- </td><td align="right" valign="top">
- \endraw
-
- \inlineimage path.png
-
- \raw HTML
- </td></tr></table>
- \endraw
-*/
+ perfectly without it. So you also need to handle all of the indexes that are
+ out of range when using ModelTest.
-/*!
- \page modelview-part4.html
- \contentspage {modelview-index.html}{Model/View Contents}
- \previouspage {modelview-part3.html}{Intermediate Topics}
- \title Model/View Chapter 4 - Good Sources of Additional Information
\section1 4. Good Sources of Additional Information
@@ -666,10 +614,10 @@
\table
\header
- \o example name
- \o view class used
- \o model used
- \o aspects touched
+ \o Example name
+ \o View class used
+ \o Model used
+ \o Aspects covered
\o
\row
\o Team Leaders
@@ -695,26 +643,26 @@
\o QTableView
\o custom model based on
QAbstractTableModel
- \o read only
+ \o Read only
\o Book 1, Chapter 10, Figure 10.10
\row
\o Cities
\o QTableView
- \o custom model based on
+ \o Custom model based on
QAbstractTableModel
- \o read / write
+ \o Read / write
\o Book 1, Chapter 10, Figure 10.12
\row
\o Boolean Parser
\o QTreeView
- \o custom model based on
+ \o Custom model based on
QAbstractItemModel
- \o read only
+ \o Read only
\o Book 1, Chapter 10, Figure 10.14
\row
\o Track Editor
\o {2, 1} QTableWidget
- \o custom delegate providing a custom editor
+ \o Custom delegate providing a custom editor
\o Book 1, Chapter 10, Figure 10.15
\row
@@ -723,47 +671,47 @@
QTableView
QTreeView
\o QDirModel
- \o demonstrates the use of multiple views
+ \o Demonstrates the use of multiple views
\o Book2, Chapter 8.2
\row
\o Address Book
\o QListView
QTableView
QTreeView
- \o custom model based on
+ \o Custom model based on
QAbstractTableModel
- \o read / write
+ \o Read / write
\o Book2, Chapter 8.4
\row
\o Address Book with sorting
\o
\o QProxyModel
- \o introducing sort and filter capabilities
+ \o Introducing sort and filter capabilities
\o Book2, Chapter 8.5
\row
\o Address Book
with checkboxes
\o
\o
- \o introducing checkboxes in model/view
+ \o Introducing checkboxes in model/view
\o Book2, Chapter 8.6
\row
\o Address Book with transposed grid
\o
- \o custom proxy Model based on QAbstractProxyModel
- \o introducing a custom model
+ \o Custom proxy Model based on QAbstractProxyModel
+ \o Introducing a custom model
\o Book2, Chapter 8.7
\row
\o Address Book with drag and drop
\o
\o
- \o introducing drag and drop support
+ \o Introducing drag and drop support
\o Book2, Chapter 8.8
\row
\o Address Book with custom editor
\o
\o
- \o introducing custom delegates
+ \o Introducing custom delegates
\o Book2, Chapter 8.9
\row
\o Views
@@ -771,51 +719,51 @@
QTableView
QTreeView
\o QStandardItemModel
- \o read only
+ \o Read only
\o Book 3, Chapter 5, figure 5-3
\row
\o Bardelegate
\o QTableView
\o
- \o custom delegate for presentation based on QAbstractItemDelegate
+ \o Custom delegate for presentation based on QAbstractItemDelegate
\o Book 3, Chapter 5, figure 5-5
\row
\o Editdelegate
\o QTableView
\o
- \o custom delegate for editing based on QAbstractItemDelegate
+ \o Custom delegate for editing based on QAbstractItemDelegate
\o Book 3, Chapter 5, figure 5-6
\row
\o Singleitemview
- \o custom view based on QAbstractItemView
+ \o Custom view based on QAbstractItemView
\o
- \o custom view
+ \o Custom view
\o Book 3,
Chapter 5,
figure 5-7
\row
\o listmodel
\o QTableView
- \o custom Model based on QAbstractTableModel
- \o read only
+ \o Custom Model based on QAbstractTableModel
+ \o Read only
\o Book 3, Chapter 5, Figure 5-8
\row
\o treemodel
\o QTreeView
- \o custom Model based on QAbstractItemModel
- \o read only
+ \o Custom Model based on QAbstractItemModel
+ \o Read only
\o Book 3, Chapter 5, Figure 5-10
\row
\o edit integers
\o QListView
- \o custom Model based on QAbstractListModel
- \o read / write
+ \o Custom Model based on QAbstractListModel
+ \o Read / write
\o Book 3, Chapter 5, Listing 5-37, Figure 5-11
\row
\o sorting
\o QTableView
\o QSortFilterProxyModel applied to QStringListModel
- \o demonstrates sorting
+ \o Demonstrates sorting
\o Book 3, Chapter 5, Figure 5-12
\endtable
@@ -823,19 +771,20 @@
\section2 4.2 Qt Documentation
Qt 4.7 comes with 17 examples and 2 Demonstrations for model/view.
- The examples can be found here: \l{Item Views Examples}
+ The examples can be found on the \l{Item Views Examples} page.
+
\table
\header
\o Example name
\o View class used
\o Model used
- \o Aspects touched
+ \o Aspects covered
\row
\o Address Book
\o QTableView
\o QAbstractTableModel
QSortFilterProxyModel
- \o usage of QSortFilterProxyModel to generate different
+ \o Usage of QSortFilterProxyModel to generate different
subsets from one data pool
\row
\o Basic Sort/Filter Model
@@ -845,41 +794,41 @@
\o
\row
\o Chart
- \o custom view
+ \o Custom view
\o QStandardItemModel
- \o designing custom views that cooperate with selection models
+ \o Designing custom views that cooperate with selection models
\row
\o Color Editor Factory
\o {2, 1} QTableWidget
- \o enhancing the standard delegate with a new custom editor to choose colours
+ \o Enhancing the standard delegate with a new custom editor to choose colours
\row
\o Combo Widget Mapper
\o QDataWidgetMapper to map QLineEdit, QTextEdit and QComboBox
\o QStandardItemModel
- \o shows how a QComboBox can serve as a view class
+ \o Shows how a QComboBox can serve as a view class
\row
\o Custom Sort/Filter Model
\o QTreeView
\o QStandardItemModel
QSortFilterProxyModel
- \o subclass QSortFilterProxyModel for advanced sorting and filtering
+ \o Subclass QSortFilterProxyModel for advanced sorting and filtering
\row
\o Dir View
\o QTreeView
\o QDirModel
- \o very small example to demonstrate how to assign a model to a view
+ \o Very small example to demonstrate how to assign a model to a view
\row
\o Editable Tree Model
\o QTreeView
- \o custom tree model
- \o comprehensive example for working with trees, demonstrates
+ \o Custom tree model
+ \o Comprehensive example for working with trees, demonstrates
editing cells and tree structure with an underlying custom
model
\row
\o Fetch More
\o QListView
- \o custom list model
- \o dynamically changing model
+ \o Custom list model
+ \o Dynamically changing model
\row
\o Frozen Column
\o QTableView
@@ -888,47 +837,47 @@
\row
\o Pixelator
\o QTableView
- \o custom table model
- \o implementation of a custom delegate
+ \o Custom table model
+ \o Implementation of a custom delegate
\row
\o Puzzle
\o QListView
- \o custom list model
- \o model/view with drag and drop
+ \o Custom list model
+ \o Model/view with drag and drop
\row
\o Simple DOM Model
\o QTreeView
- \o custom tree model
- \o read only example for a custom tree model
+ \o Custom tree model
+ \o Read only example for a custom tree model
\row
\o Simple Tree Model
\o QTreeView
- \o custom tree model
- \o read only example for a custom tree model
+ \o Custom tree model
+ \o Read only example for a custom tree model
\row
\o Simple Widget Mapper
\o QDataWidgetMapper to map QLineEdit, QTextEdit and QSpinBox
\o QStandardItemModel
- \o basic QDataWidgetMapper usage
+ \o Basic QDataWidgetMapper usage
\row
\o Spin Box Delegate
\o QTableView
\o QStandardItemModel
- \o custom delegate that uses a spin box as a cell editor
+ \o Custom delegate that uses a spin box as a cell editor
\row
\o Star Delegate
\o {2, 1} QTableWidget
- \o comprehensive custom delegate example.
+ \o Comprehensive custom delegate example.
\endtable
- \l{Qt Demonstrations}{Demonstrations} are similar to examples except
- that no walkthrough is provided for the code. Demonstrations are also
- sometimes more feature rich.
+ \l{Qt Demonstrations}{Demonstrations} are similar to examples except that no
+ walkthrough is provided for the code. Demonstrations are typically more
+ feature rich than examples.
\list
\o The \bold Interview demonstration shows the same model and
selection being shared between three different views.
- \o Demonstration \bold Spreadsheet demonstrates the use of a
+ \o The \bold Spreadsheet demonstration illustrates the use of a
table view as a spreadsheet, using custom delegates to render
each item according to the type of data it contains.
\endlist
@@ -936,3 +885,9 @@
A \l{Model/View Programming}{reference document} for model/view technology
is also available.
*/
+
+/*!
+ \page modelview-part2-main-cpp.html
+ \title main.cpp
+ \quotefile tutorials/modelview/1_readonly/main.cpp
+*/
diff --git a/examples/declarative/animation/easing/content/QuitButton.qml b/examples/declarative/animation/easing/content/QuitButton.qml
new file mode 100644
index 0000000000..039694d757
--- /dev/null
+++ b/examples/declarative/animation/easing/content/QuitButton.qml
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+Image {
+ source: "quit.png"
+ scale: quitMouse.pressed ? 0.8 : 1.0
+ smooth: quitMouse.pressed
+ MouseArea {
+ id: quitMouse
+ anchors.fill: parent
+ anchors.margins: -10
+ onClicked: Qt.quit()
+ }
+} \ No newline at end of file
diff --git a/examples/declarative/animation/easing/content/quit.png b/examples/declarative/animation/easing/content/quit.png
new file mode 100644
index 0000000000..b822057d4e
--- /dev/null
+++ b/examples/declarative/animation/easing/content/quit.png
Binary files differ
diff --git a/examples/declarative/animation/easing/easing.qml b/examples/declarative/animation/easing/easing.qml
index 9cdbad142b..b53cb9817c 100644
--- a/examples/declarative/animation/easing/easing.qml
+++ b/examples/declarative/animation/easing/easing.qml
@@ -39,6 +39,7 @@
****************************************************************************/
import Qt 4.7
+import "content"
Rectangle {
id: window
@@ -134,11 +135,23 @@ Rectangle {
}
Flickable {
- anchors.fill: parent; contentHeight: layout.height
-
+ anchors.fill: parent
+ contentHeight: layout.height
+ Rectangle {
+ id: titlePane
+ color: "#444444"
+ height: 35
+ anchors { top: parent.top; left: parent.left; right: parent.right }
+ QuitButton {
+ id: quitButton
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+ }
+ }
Column {
id: layout
- anchors.left: parent.left; anchors.right: parent.right
+ anchors { top: titlePane.bottom; topMargin: 10; left: parent.left; right: parent.right }
Repeater { model: easingTypes; delegate: delegate }
}
}
diff --git a/examples/declarative/animation/states/qt-logo.png b/examples/declarative/animation/states/qt-logo.png
new file mode 100644
index 0000000000..14ddf2a028
--- /dev/null
+++ b/examples/declarative/animation/states/qt-logo.png
Binary files differ
diff --git a/examples/declarative/animation/states/states.qml b/examples/declarative/animation/states/states.qml
index 77101d0396..34cdae322c 100644
--- a/examples/declarative/animation/states/states.qml
+++ b/examples/declarative/animation/states/states.qml
@@ -48,14 +48,14 @@ Rectangle {
Image {
id: userIcon
x: topLeftRect.x; y: topLeftRect.y
- source: "user.png"
+ source: "qt-logo.png"
}
Rectangle {
id: topLeftRect
anchors { left: parent.left; top: parent.top; leftMargin: 10; topMargin: 20 }
- width: 64; height: 64
+ width: 46; height: 54
color: "Transparent"; border.color: "Gray"; radius: 6
// Clicking in here sets the state to the default state, returning the image to
@@ -67,7 +67,7 @@ Rectangle {
id: middleRightRect
anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 20 }
- width: 64; height: 64
+ width: 46; height: 54
color: "Transparent"; border.color: "Gray"; radius: 6
// Clicking in here sets the state to 'middleRight'
@@ -78,7 +78,7 @@ Rectangle {
id: bottomLeftRect
anchors { left: parent.left; bottom: parent.bottom; leftMargin: 10; bottomMargin: 20 }
- width: 64; height: 64
+ width: 46; height: 54
color: "Transparent"; border.color: "Gray"; radius: 6
// Clicking in here sets the state to 'bottomLeft'
diff --git a/examples/declarative/animation/states/transitions.qml b/examples/declarative/animation/states/transitions.qml
index 1df60ae557..884779cb4a 100644
--- a/examples/declarative/animation/states/transitions.qml
+++ b/examples/declarative/animation/states/transitions.qml
@@ -54,14 +54,14 @@ Rectangle {
Image {
id: userIcon
x: topLeftRect.x; y: topLeftRect.y
- source: "user.png"
+ source: "qt-logo.png"
}
Rectangle {
id: topLeftRect
anchors { left: parent.left; top: parent.top; leftMargin: 10; topMargin: 20 }
- width: 64; height: 64
+ width: 46; height: 54
color: "Transparent"; border.color: "Gray"; radius: 6
// Clicking in here sets the state to the default state, returning the image to
@@ -73,7 +73,7 @@ Rectangle {
id: middleRightRect
anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 20 }
- width: 64; height: 64
+ width: 46; height: 54
color: "Transparent"; border.color: "Gray"; radius: 6
// Clicking in here sets the state to 'middleRight'
@@ -84,7 +84,7 @@ Rectangle {
id: bottomLeftRect
anchors { left: parent.left; bottom: parent.bottom; leftMargin: 10; bottomMargin: 20 }
- width: 64; height: 64
+ width: 46; height: 54
color: "Transparent"; border.color: "Gray"; radius: 6
// Clicking in here sets the state to 'bottomLeft'
diff --git a/examples/declarative/animation/states/user.png b/examples/declarative/animation/states/user.png
deleted file mode 100644
index dd7d7a2417..0000000000
--- a/examples/declarative/animation/states/user.png
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/imageelements/image/ImageCell.qml b/examples/declarative/imageelements/image/ImageCell.qml
index bd232b9502..71a17fea3e 100644
--- a/examples/declarative/imageelements/image/ImageCell.qml
+++ b/examples/declarative/imageelements/image/ImageCell.qml
@@ -48,7 +48,7 @@ Item {
Image {
id: image
width: parent.width; height: parent.height - captionItem.height
- source: "face-smile.png"
+ source: "qt-logo.png"
clip: true // only makes a difference if mode is PreserveAspectCrop
smooth: true
}
diff --git a/examples/declarative/imageelements/image/face-smile.png b/examples/declarative/imageelements/image/face-smile.png
deleted file mode 100644
index 3d66d72578..0000000000
--- a/examples/declarative/imageelements/image/face-smile.png
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/imageelements/image/qt-logo.png b/examples/declarative/imageelements/image/qt-logo.png
new file mode 100644
index 0000000000..14ddf2a028
--- /dev/null
+++ b/examples/declarative/imageelements/image/qt-logo.png
Binary files differ
diff --git a/examples/declarative/modelviews/listview/content/pics/arrow-down.png b/examples/declarative/modelviews/listview/content/pics/arrow-down.png
deleted file mode 100644
index 63331a575a..0000000000
--- a/examples/declarative/modelviews/listview/content/pics/arrow-down.png
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/modelviews/listview/content/pics/arrow-up.png b/examples/declarative/modelviews/listview/content/pics/arrow-up.png
deleted file mode 100644
index 4459024ea8..0000000000
--- a/examples/declarative/modelviews/listview/content/pics/arrow-up.png
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/modelviews/listview/content/pics/list-delete.png b/examples/declarative/modelviews/listview/content/pics/list-delete.png
deleted file mode 100644
index 9640f6b055..0000000000
--- a/examples/declarative/modelviews/listview/content/pics/list-delete.png
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/positioners/add.png b/examples/declarative/positioners/add.png
index f29d84b492..1ee45423e3 100644
--- a/examples/declarative/positioners/add.png
+++ b/examples/declarative/positioners/add.png
Binary files differ
diff --git a/examples/declarative/positioners/del.png b/examples/declarative/positioners/del.png
index 1d753a3bc5..8d2eaed523 100644
--- a/examples/declarative/positioners/del.png
+++ b/examples/declarative/positioners/del.png
Binary files differ
diff --git a/examples/declarative/toys/clocks/clocks.qml b/examples/declarative/toys/clocks/clocks.qml
index 124e391cbf..82a1dbfcbb 100644
--- a/examples/declarative/toys/clocks/clocks.qml
+++ b/examples/declarative/toys/clocks/clocks.qml
@@ -51,4 +51,9 @@ Rectangle {
Clock { city: "Mumbai"; shift: 5.5 }
Clock { city: "Tokyo"; shift: 9 }
}
+ QuitButton {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.margins: 10
+ }
}
diff --git a/examples/declarative/toys/clocks/content/QuitButton.qml b/examples/declarative/toys/clocks/content/QuitButton.qml
new file mode 100644
index 0000000000..039694d757
--- /dev/null
+++ b/examples/declarative/toys/clocks/content/QuitButton.qml
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+Image {
+ source: "quit.png"
+ scale: quitMouse.pressed ? 0.8 : 1.0
+ smooth: quitMouse.pressed
+ MouseArea {
+ id: quitMouse
+ anchors.fill: parent
+ anchors.margins: -10
+ onClicked: Qt.quit()
+ }
+} \ No newline at end of file
diff --git a/examples/declarative/toys/clocks/content/quit.png b/examples/declarative/toys/clocks/content/quit.png
new file mode 100644
index 0000000000..b822057d4e
--- /dev/null
+++ b/examples/declarative/toys/clocks/content/quit.png
Binary files differ
diff --git a/examples/declarative/tutorials/samegame/samegame4/content/samegame.js b/examples/declarative/tutorials/samegame/samegame4/content/samegame.js
index b1f427c8d7..79ff0c19b1 100755
--- a/examples/declarative/tutorials/samegame/samegame4/content/samegame.js
+++ b/examples/declarative/tutorials/samegame/samegame4/content/samegame.js
@@ -127,7 +127,7 @@ function shuffleDown() {
} else {
if (fallDist > 0) {
var obj = board[index(column, row)];
- obj.y += fallDist * gameCanvas.blockSize;
+ obj.y = (row + fallDist) * gameCanvas.blockSize;
board[index(column, row + fallDist)] = obj;
board[index(column, row)] = null;
}
@@ -145,7 +145,7 @@ function shuffleDown() {
obj = board[index(column, row)];
if (obj == null)
continue;
- obj.x -= fallDist * gameCanvas.blockSize;
+ obj.x = (fallDist - column) * gameCanvas.blockSize;
board[index(column - fallDist, row)] = obj;
board[index(column, row)] = null;
}
diff --git a/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml b/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml
new file mode 100644
index 0000000000..039694d757
--- /dev/null
+++ b/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+Image {
+ source: "quit.png"
+ scale: quitMouse.pressed ? 0.8 : 1.0
+ smooth: quitMouse.pressed
+ MouseArea {
+ id: quitMouse
+ anchors.fill: parent
+ anchors.margins: -10
+ onClicked: Qt.quit()
+ }
+} \ No newline at end of file
diff --git a/examples/declarative/ui-components/dialcontrol/content/quit.png b/examples/declarative/ui-components/dialcontrol/content/quit.png
new file mode 100644
index 0000000000..b822057d4e
--- /dev/null
+++ b/examples/declarative/ui-components/dialcontrol/content/quit.png
Binary files differ
diff --git a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml
index 46cc3e6f4e..a7da5c6c4d 100644
--- a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml
+++ b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml
@@ -88,5 +88,10 @@ Rectangle {
}
}
}
+ QuitButton {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.margins: 10
+ }
}
//! [0]
diff --git a/examples/examples.pro b/examples/examples.pro
index 1fdd774e71..f233aba410 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -19,7 +19,6 @@ SUBDIRS = \
linguist \
mainwindows \
painting \
- qtconcurrent \
richtext \
sql \
tools \
@@ -67,6 +66,7 @@ contains(QT_CONFIG, declarative): SUBDIRS += declarative
win32: SUBDIRS += activeqt
contains(QT_CONFIG, xmlpatterns):!contains(QT_CONFIG, no-gui): SUBDIRS += xmlpatterns
contains(DEFINES, QT_NO_CURSOR): SUBDIRS -= mainwindows
+contains(QT_CONFIG, concurrent): SUBDIRS += qtconcurrent
# install
sources.files = README *.pro
diff --git a/examples/sql/masterdetail/mainwindow.cpp b/examples/sql/masterdetail/mainwindow.cpp
index b8c9df6d75..2ef8ad0ef4 100644
--- a/examples/sql/masterdetail/mainwindow.cpp
+++ b/examples/sql/masterdetail/mainwindow.cpp
@@ -189,9 +189,9 @@ void MainWindow::deleteAlbum()
QMessageBox::StandardButton button;
button = QMessageBox::question(this, tr("Delete Album"),
- QString(tr("Are you sure you want to " \
- "delete '%1' by '%2'?"))
- .arg(title).arg(artist),
+ tr("Are you sure you want to "
+ "delete '%1' by '%2'?")
+ .arg(title, artist),
QMessageBox::Yes | QMessageBox::No);
if (button == QMessageBox::Yes) {
diff --git a/examples/tools/treemodelcompleter/mainwindow.cpp b/examples/tools/treemodelcompleter/mainwindow.cpp
index 0448e9d5be..cfe003a52a 100644
--- a/examples/tools/treemodelcompleter/mainwindow.cpp
+++ b/examples/tools/treemodelcompleter/mainwindow.cpp
@@ -241,6 +241,6 @@ void MainWindow::changeCase(int cs)
void MainWindow::updateContentsLabel(const QString& sep)
{
- contentsLabel->setText(QString(tr("Type path from model above with items at each level separated by a '%1'")).arg(sep));
+ contentsLabel->setText(tr("Type path from model above with items at each level separated by a '%1'").arg(sep));
}
diff --git a/examples/tutorials/modelview/1_readonly/1_readonly.pro b/examples/tutorials/modelview/1_readonly/1_readonly.pro
index 1162d5adfa..3ecebc2de2 100644..100755
--- a/examples/tutorials/modelview/1_readonly/1_readonly.pro
+++ b/examples/tutorials/modelview/1_readonly/1_readonly.pro
@@ -3,8 +3,15 @@ TARGET = mv_readonly
TEMPLATE = app
SOURCES += main.cpp \
- modelview.cpp \
mymodel.cpp
-HEADERS += modelview.h \
- mymodel.h
+HEADERS += mymodel.h
+
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/1_readonly
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 1_readonly.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/1_readonly
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/tutorials/modelview/1_readonly/main.cpp b/examples/tutorials/modelview/1_readonly/main.cpp
index fb4726aa69..2143854a93 100644..100755
--- a/examples/tutorials/modelview/1_readonly/main.cpp
+++ b/examples/tutorials/modelview/1_readonly/main.cpp
@@ -41,13 +41,16 @@
//! [Quoting ModelView Tutorial]
// main.cpp
#include <QtGui/QApplication>
-#include "modelview.h"
+#include <QtGui/QTableView>
+#include "mymodel.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
- ModelView w;
- w.show();
+ QTableView tableView;
+ MyModel myModel(0);
+ tableView.setModel( &myModel );
+ tableView.show();
return a.exec();
}
//! [Quoting ModelView Tutorial]
diff --git a/examples/tutorials/modelview/1_readonly/mymodel.cpp b/examples/tutorials/modelview/1_readonly/mymodel.cpp
index 394605abc9..394605abc9 100644..100755
--- a/examples/tutorials/modelview/1_readonly/mymodel.cpp
+++ b/examples/tutorials/modelview/1_readonly/mymodel.cpp
diff --git a/examples/tutorials/modelview/1_readonly/mymodel.h b/examples/tutorials/modelview/1_readonly/mymodel.h
index 6065f6e7c0..6065f6e7c0 100644..100755
--- a/examples/tutorials/modelview/1_readonly/mymodel.h
+++ b/examples/tutorials/modelview/1_readonly/mymodel.h
diff --git a/examples/tutorials/modelview/2_formatting/2_formatting.pro b/examples/tutorials/modelview/2_formatting/2_formatting.pro
index 7e70d81113..c6ad27c906 100644..100755
--- a/examples/tutorials/modelview/2_formatting/2_formatting.pro
+++ b/examples/tutorials/modelview/2_formatting/2_formatting.pro
@@ -3,8 +3,14 @@ TARGET = mv_formatting
TEMPLATE = app
SOURCES += main.cpp \
- modelview.cpp \
mymodel.cpp
-HEADERS += modelview.h \
- mymodel.h
+HEADERS += mymodel.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/2_formatting
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 2_formatting.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/2_formatting
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/tutorials/modelview/2_formatting/main.cpp b/examples/tutorials/modelview/2_formatting/main.cpp
index 7be212e398..2143854a93 100644..100755
--- a/examples/tutorials/modelview/2_formatting/main.cpp
+++ b/examples/tutorials/modelview/2_formatting/main.cpp
@@ -38,13 +38,19 @@
**
****************************************************************************/
+//! [Quoting ModelView Tutorial]
+// main.cpp
#include <QtGui/QApplication>
-#include "modelview.h"
+#include <QtGui/QTableView>
+#include "mymodel.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
- ModelView w;
- w.show();
+ QTableView tableView;
+ MyModel myModel(0);
+ tableView.setModel( &myModel );
+ tableView.show();
return a.exec();
}
+//! [Quoting ModelView Tutorial]
diff --git a/examples/tutorials/modelview/2_formatting/mymodel.cpp b/examples/tutorials/modelview/2_formatting/mymodel.cpp
index f7ff504ef2..2d2556c2f7 100644..100755
--- a/examples/tutorials/modelview/2_formatting/mymodel.cpp
+++ b/examples/tutorials/modelview/2_formatting/mymodel.cpp
@@ -43,8 +43,6 @@
#include "mymodel.h"
#include <QDebug>
-//! [Quoting ModelView Tutorial]
-// mymodel.cpp
MyModel::MyModel(QObject *parent)
:QAbstractTableModel(parent)
{
@@ -60,6 +58,8 @@ int MyModel::columnCount(const QModelIndex & /*parent */) const
return 3;
}
+//! [Quoting ModelView Tutorial]
+// mymodel.cpp
QVariant MyModel::data(const QModelIndex &index, int role) const
{
int row = index.row();
@@ -89,7 +89,7 @@ QVariant MyModel::data(const QModelIndex &index, int role) const
if (row == 1 && col == 2) //change background only for cell(1,2)
{
- QBrush redBackground = QBrush(Qt::red);
+ QBrush redBackground(Qt::red);
return redBackground;
}
break;
diff --git a/examples/tutorials/modelview/2_formatting/mymodel.h b/examples/tutorials/modelview/2_formatting/mymodel.h
index 4dc405a805..4dc405a805 100644..100755
--- a/examples/tutorials/modelview/2_formatting/mymodel.h
+++ b/examples/tutorials/modelview/2_formatting/mymodel.h
diff --git a/examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro b/examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro
index d61ee4c953..e977731971 100644..100755
--- a/examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro
+++ b/examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro
@@ -3,8 +3,14 @@ TARGET = mv_changingmodel
TEMPLATE = app
SOURCES += main.cpp \
- modelview.cpp \
mymodel.cpp
-HEADERS += modelview.h \
- mymodel.h
+HEADERS += mymodel.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/3_changingmodel
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 3_changingmodel.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/3_changingmodel
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/tutorials/modelview/3_changingmodel/main.cpp b/examples/tutorials/modelview/3_changingmodel/main.cpp
index 7be212e398..3b6061a564 100644..100755
--- a/examples/tutorials/modelview/3_changingmodel/main.cpp
+++ b/examples/tutorials/modelview/3_changingmodel/main.cpp
@@ -39,12 +39,15 @@
****************************************************************************/
#include <QtGui/QApplication>
-#include "modelview.h"
+#include <QtGui/QTableView>
+#include "mymodel.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
- ModelView w;
- w.show();
+ QTableView tableView;
+ MyModel myModel(0);
+ tableView.setModel( &myModel );
+ tableView.show();
return a.exec();
}
diff --git a/examples/tutorials/modelview/3_changingmodel/mymodel.cpp b/examples/tutorials/modelview/3_changingmodel/mymodel.cpp
index 42915b09f1..42915b09f1 100644..100755
--- a/examples/tutorials/modelview/3_changingmodel/mymodel.cpp
+++ b/examples/tutorials/modelview/3_changingmodel/mymodel.cpp
diff --git a/examples/tutorials/modelview/3_changingmodel/mymodel.h b/examples/tutorials/modelview/3_changingmodel/mymodel.h
index 01ad88d068..87c3dba5f8 100644..100755
--- a/examples/tutorials/modelview/3_changingmodel/mymodel.h
+++ b/examples/tutorials/modelview/3_changingmodel/mymodel.h
@@ -42,8 +42,7 @@
#define MYMODEL_H
#include <QAbstractTableModel>
-
-QT_FORWARD_DECLARE_CLASS(QTimer)
+#include <QTimer>
class MyModel : public QAbstractTableModel
{
diff --git a/examples/tutorials/modelview/4_headers/4_headers.pro b/examples/tutorials/modelview/4_headers/4_headers.pro
index d6f8d23a6d..f6c60b275f 100644..100755
--- a/examples/tutorials/modelview/4_headers/4_headers.pro
+++ b/examples/tutorials/modelview/4_headers/4_headers.pro
@@ -2,9 +2,15 @@ TARGET = mv_headers
TEMPLATE = app
-SOURCES += main.cpp \
- modelview.cpp \
+SOURCES += main.cpp \
mymodel.cpp
-HEADERS += modelview.h \
- mymodel.h
+HEADERS += mymodel.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/4_headers
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 4_headers.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/4_headers
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/tutorials/modelview/4_headers/main.cpp b/examples/tutorials/modelview/4_headers/main.cpp
index 7be212e398..5f5d05fd45 100644..100755
--- a/examples/tutorials/modelview/4_headers/main.cpp
+++ b/examples/tutorials/modelview/4_headers/main.cpp
@@ -39,12 +39,15 @@
****************************************************************************/
#include <QtGui/QApplication>
-#include "modelview.h"
+#include <QtGui/QTableView>
+#include "mymodel.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
- ModelView w;
- w.show();
+ QTableView tableView;
+ MyModel myModel(0);
+ tableView.setModel( &myModel );
+ tableView.show();
return a.exec();
-}
+} \ No newline at end of file
diff --git a/examples/tutorials/modelview/4_headers/mymodel.cpp b/examples/tutorials/modelview/4_headers/mymodel.cpp
index e6f977d012..e6f977d012 100644..100755
--- a/examples/tutorials/modelview/4_headers/mymodel.cpp
+++ b/examples/tutorials/modelview/4_headers/mymodel.cpp
diff --git a/examples/tutorials/modelview/4_headers/mymodel.h b/examples/tutorials/modelview/4_headers/mymodel.h
index ada3169039..ada3169039 100644..100755
--- a/examples/tutorials/modelview/4_headers/mymodel.h
+++ b/examples/tutorials/modelview/4_headers/mymodel.h
diff --git a/examples/tutorials/modelview/5_edit/5_edit.pro b/examples/tutorials/modelview/5_edit/5_edit.pro
index e18c59610e..2ef343f078 100644..100755
--- a/examples/tutorials/modelview/5_edit/5_edit.pro
+++ b/examples/tutorials/modelview/5_edit/5_edit.pro
@@ -3,8 +3,16 @@ TARGET = mv_edit
TEMPLATE = app
SOURCES += main.cpp \
- modelview.cpp \
+ mainwindow.cpp \
mymodel.cpp
-HEADERS += modelview.h \
+HEADERS += mainwindow.h \
mymodel.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/5_edit
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 5_edit.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/5_edit
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/tutorials/modelview/5_edit/main.cpp b/examples/tutorials/modelview/5_edit/main.cpp
index 7be212e398..59e82ef2fd 100644..100755
--- a/examples/tutorials/modelview/5_edit/main.cpp
+++ b/examples/tutorials/modelview/5_edit/main.cpp
@@ -39,12 +39,12 @@
****************************************************************************/
#include <QtGui/QApplication>
-#include "modelview.h"
+#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
- ModelView w;
+ MainWindow w;
w.show();
return a.exec();
}
diff --git a/examples/tutorials/modelview/5_edit/modelview.cpp b/examples/tutorials/modelview/5_edit/mainwindow.cpp
index a6c6ef533f..542f3d6e0b 100644..100755
--- a/examples/tutorials/modelview/5_edit/modelview.cpp
+++ b/examples/tutorials/modelview/5_edit/mainwindow.cpp
@@ -39,10 +39,10 @@
****************************************************************************/
#include <QTableView>
-#include "modelview.h"
+#include "mainwindow.h"
#include "mymodel.h"
-ModelView::ModelView(QWidget *parent)
+MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
tableView = new QTableView(this);
@@ -54,7 +54,7 @@ ModelView::ModelView(QWidget *parent)
connect(myModel, SIGNAL(editCompleted(const QString &)), this, SLOT(setWindowTitle(const QString &)));
}
-void ModelView::showWindowTitle(const QString & title)
+void MainWindow::showWindowTitle(const QString & title)
{
setWindowTitle(title);
}
diff --git a/examples/tutorials/modelview/5_edit/modelview.h b/examples/tutorials/modelview/5_edit/mainwindow.h
index 069107b8ce..ac5b77b10d 100644..100755
--- a/examples/tutorials/modelview/5_edit/modelview.h
+++ b/examples/tutorials/modelview/5_edit/mainwindow.h
@@ -38,22 +38,21 @@
**
****************************************************************************/
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
#include <QtGui/QMainWindow>
+#include <QtGui/QTableView>
-QT_FORWARD_DECLARE_CLASS(QTableView)
-
-class ModelView : public QMainWindow
+class MainWindow : public QMainWindow
{
Q_OBJECT
private:
QTableView *tableView;
public:
- ModelView(QWidget *parent = 0);
+ MainWindow(QWidget *parent = 0);
public slots:
void showWindowTitle(const QString & title);
};
-#endif // MODELVIEW_H
+#endif // MAINWINDOW_H
diff --git a/examples/tutorials/modelview/5_edit/mymodel.cpp b/examples/tutorials/modelview/5_edit/mymodel.cpp
index 67181ca94d..e2fd391b09 100644..100755
--- a/examples/tutorials/modelview/5_edit/mymodel.cpp
+++ b/examples/tutorials/modelview/5_edit/mymodel.cpp
@@ -38,62 +38,64 @@
**
****************************************************************************/
-//! [quoting mymodel_d]
+
#include "mymodel.h"
-const int COLS= 3;
-const int ROWS= 2;
MyModel::MyModel(QObject *parent)
:QAbstractTableModel(parent)
{
- //gridData needs to have 6 element, one for each table cell
- m_gridData << "1/1" << "1/2" << "1/3" << "2/1" << "2/2" << "2/3" ;
}
-//! [quoting mymodel_d]
-//! [quoting mymodel_e]
+//-----------------------------------------------------------------
int MyModel::rowCount(const QModelIndex & /*parent*/) const
{
return ROWS;
}
+//-----------------------------------------------------------------
int MyModel::columnCount(const QModelIndex & /*parent*/) const
{
return COLS;
}
+//-----------------------------------------------------------------
QVariant MyModel::data(const QModelIndex &index, int role) const
{
if (role == Qt::DisplayRole)
{
- return m_gridData[modelIndexToOffset(index)];
+ return m_gridData[index.row()][index.column()];
}
return QVariant();
}
-//! [quoting mymodel_e]
//-----------------------------------------------------------------
-
-//! [quoting mymodel_f]
+//! [quoting mymodel_e]
bool MyModel::setData(const QModelIndex & index, const QVariant & value, int role)
{
if (role == Qt::EditRole)
{
- m_gridData[modelIndexToOffset(index)] = value.toString();
- emit editCompleted(m_gridData.join(" | "));
+ //save value from editor to member m_gridData
+ m_gridData[index.row()][index.column()] = value.toString();
+ //for presentation purposes only: build and emit a joined string
+ QString result;
+ for(int row= 0; row < ROWS; row++)
+ {
+ for(int col= 0; col < COLS; col++)
+ {
+ result += m_gridData[row][col] + " ";
+ }
+ }
+ emit editCompleted( result );
}
return true;
}
+//! [quoting mymodel_e]
+//-----------------------------------------------------------------
+//! [quoting mymodel_f]
Qt::ItemFlags MyModel::flags(const QModelIndex & /*index*/) const
{
return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled ;
}
-
-//convert row and column information to array offset
-int MyModel::modelIndexToOffset(const QModelIndex & index) const
-{
- return index.row()*COLS + index.column();
-}
//! [quoting mymodel_f]
diff --git a/examples/tutorials/modelview/5_edit/mymodel.h b/examples/tutorials/modelview/5_edit/mymodel.h
index 0d2a1b881f..574808ed00 100644..100755
--- a/examples/tutorials/modelview/5_edit/mymodel.h
+++ b/examples/tutorials/modelview/5_edit/mymodel.h
@@ -44,7 +44,11 @@
//! [Quoting ModelView Tutorial]
// mymodel.h
#include <QAbstractTableModel>
-#include <QStringList>
+#include <QString>
+
+const int COLS= 3;
+const int ROWS= 2;
+
class MyModel : public QAbstractTableModel
{
@@ -57,8 +61,7 @@ public:
bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
Qt::ItemFlags flags(const QModelIndex & index) const ;
private:
- QStringList m_gridData; //holds text entered into QTableView
- int modelIndexToOffset(const QModelIndex & index) const;
+ QString m_gridData[ROWS][COLS]; //holds text entered into QTableView
signals:
void editCompleted(const QString &);
};
diff --git a/examples/tutorials/modelview/6_treeview/6_treeview.pro b/examples/tutorials/modelview/6_treeview/6_treeview.pro
index 6d078be2d5..e79ef200d4 100644..100755
--- a/examples/tutorials/modelview/6_treeview/6_treeview.pro
+++ b/examples/tutorials/modelview/6_treeview/6_treeview.pro
@@ -1,5 +1,13 @@
TARGET = mv_tree
TEMPLATE = app
SOURCES += main.cpp \
- modelview.cpp
-HEADERS += modelview.h
+ mainwindow.cpp
+HEADERS += mainwindow.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/6_treeview
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 6_treeview.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/6_treeview
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/tutorials/modelview/6_treeview/main.cpp b/examples/tutorials/modelview/6_treeview/main.cpp
index 7be212e398..59e82ef2fd 100644..100755
--- a/examples/tutorials/modelview/6_treeview/main.cpp
+++ b/examples/tutorials/modelview/6_treeview/main.cpp
@@ -39,12 +39,12 @@
****************************************************************************/
#include <QtGui/QApplication>
-#include "modelview.h"
+#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
- ModelView w;
+ MainWindow w;
w.show();
return a.exec();
}
diff --git a/examples/tutorials/modelview/6_treeview/modelview.cpp b/examples/tutorials/modelview/6_treeview/mainwindow.cpp
index 772dbdd1d3..a105232866 100644..100755
--- a/examples/tutorials/modelview/6_treeview/modelview.cpp
+++ b/examples/tutorials/modelview/6_treeview/mainwindow.cpp
@@ -43,40 +43,40 @@
#include <QTreeView>
#include <QStandardItemModel>
#include <QStandardItem>
-#include "modelview.h"
+#include "mainwindow.h"
const int ROWS = 2;
const int COLUMNS = 3;
-ModelView::ModelView(QWidget *parent)
+MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
treeView = new QTreeView(this);
setCentralWidget(treeView);
standardModel = new QStandardItemModel ;
- QList<QStandardItem *> preparedColumn =prepareColumn("first", "second", "third");
+ QList<QStandardItem *> preparedRow =prepareRow("first", "second", "third");
QStandardItem *item = standardModel->invisibleRootItem();
// adding a row to the invisible root item produces a root element
- item->appendRow(preparedColumn);
+ item->appendRow(preparedRow);
- QList<QStandardItem *> secondRow =prepareColumn("111", "222", "333");
+ QList<QStandardItem *> secondRow =prepareRow("111", "222", "333");
// adding a row to an item starts a subtree
- preparedColumn.first()->appendRow(secondRow);
+ preparedRow.first()->appendRow(secondRow);
treeView->setModel(standardModel);
treeView->expandAll();
}
-QList<QStandardItem *> ModelView::prepareColumn(const QString &first,
+QList<QStandardItem *> MainWindow::prepareRow(const QString &first,
const QString &second,
const QString &third)
{
- QList<QStandardItem *> colItems;
- colItems << new QStandardItem(first);
- colItems << new QStandardItem(second);
- colItems << new QStandardItem(third);
- return colItems;
+ QList<QStandardItem *> rowItems;
+ rowItems << new QStandardItem(first);
+ rowItems << new QStandardItem(second);
+ rowItems << new QStandardItem(third);
+ return rowItems;
}
//! [Quoting ModelView Tutorial]
diff --git a/examples/tutorials/modelview/6_treeview/modelview.h b/examples/tutorials/modelview/6_treeview/mainwindow.h
index 55f3470115..4c4ddb0bf3 100644..100755
--- a/examples/tutorials/modelview/6_treeview/modelview.h
+++ b/examples/tutorials/modelview/6_treeview/mainwindow.h
@@ -38,28 +38,25 @@
**
****************************************************************************/
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
#include <QtGui/QMainWindow>
+#include <QtGui/QTreeView>
+#include <QtGui/QStandardItemModel>
-QT_BEGIN_NAMESPACE
-class QTreeView; //forward declaration
-class QStandardItemModel;
-class QStandardItem;
-QT_END_NAMESPACE
-class ModelView : public QMainWindow
+class MainWindow : public QMainWindow
{
Q_OBJECT
private:
QTreeView *treeView;
QStandardItemModel *standardModel;
- QList<QStandardItem *> prepareColumn(const QString &first,
- const QString &second,
- const QString &third);
+ QList<QStandardItem *> prepareRow( const QString &first,
+ const QString &second,
+ const QString &third );
public:
- ModelView(QWidget *parent = 0);
+ MainWindow(QWidget *parent = 0);
};
-#endif // MODELVIEW_H
+#endif // MAINWINDOW_H
diff --git a/examples/tutorials/modelview/7_selections/7_selections.pro b/examples/tutorials/modelview/7_selections/7_selections.pro
index 952641c6d2..6945bf77b3 100644..100755
--- a/examples/tutorials/modelview/7_selections/7_selections.pro
+++ b/examples/tutorials/modelview/7_selections/7_selections.pro
@@ -1,5 +1,13 @@
TARGET = mv_selections
TEMPLATE = app
SOURCES += main.cpp \
- modelview.cpp
-HEADERS += modelview.h
+ mainwindow.cpp
+HEADERS += mainwindow.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/7_selections
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 7_selections.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/7_selections
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/tutorials/modelview/7_selections/main.cpp b/examples/tutorials/modelview/7_selections/main.cpp
index 7be212e398..59e82ef2fd 100644..100755
--- a/examples/tutorials/modelview/7_selections/main.cpp
+++ b/examples/tutorials/modelview/7_selections/main.cpp
@@ -39,12 +39,12 @@
****************************************************************************/
#include <QtGui/QApplication>
-#include "modelview.h"
+#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
- ModelView w;
+ MainWindow w;
w.show();
return a.exec();
}
diff --git a/examples/tutorials/modelview/7_selections/modelview.cpp b/examples/tutorials/modelview/7_selections/mainwindow.cpp
index 3b373c6bd6..cb096336bc 100644..100755
--- a/examples/tutorials/modelview/7_selections/modelview.cpp
+++ b/examples/tutorials/modelview/7_selections/mainwindow.cpp
@@ -42,9 +42,9 @@
#include <QTreeView>
#include <QStandardItemModel>
#include <QItemSelectionModel>
-#include "modelview.h"
+#include "mainwindow.h"
-ModelView::ModelView(QWidget *parent)
+MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
treeView = new QTreeView(this);
@@ -87,10 +87,12 @@ ModelView::ModelView(QWidget *parent)
//------------------------------------------------------------------------------------
//! [quoting modelview_b]
-void ModelView::selectionChangedSlot(const QItemSelection & /*newSelection*/, const QItemSelection & /*oldSelection*/)
+void MainWindow::selectionChangedSlot(const QItemSelection & /*newSelection*/, const QItemSelection & /*oldSelection*/)
{
+ //get the text of the selected item
const QModelIndex index = treeView->selectionModel()->currentIndex();
QString selectedText = index.data(Qt::DisplayRole).toString();
+ //find out the hierarchy level of the selected item
int hierarchyLevel=1;
QModelIndex seekRoot = index;
while(seekRoot.parent() != QModelIndex())
diff --git a/examples/tutorials/modelview/7_selections/modelview.h b/examples/tutorials/modelview/7_selections/mainwindow.h
index d20797e6b1..a8f8488175 100644..100755
--- a/examples/tutorials/modelview/7_selections/modelview.h
+++ b/examples/tutorials/modelview/7_selections/mainwindow.h
@@ -38,18 +38,15 @@
**
****************************************************************************/
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
#include <QtGui/QMainWindow>
+#include <QtGui/QTreeView>
+#include <QtGui/QStandardItemModel>
-QT_BEGIN_NAMESPACE
-class QTreeView; //forward declaration
-class QStandardItemModel;
-class QItemSelection;
-QT_END_NAMESPACE
-class ModelView : public QMainWindow
+class MainWindow : public QMainWindow
{
Q_OBJECT
private:
@@ -58,7 +55,7 @@ private:
private slots:
void selectionChangedSlot(const QItemSelection & newSelection, const QItemSelection & oldSelection);
public:
- ModelView(QWidget *parent = 0);
+ MainWindow(QWidget *parent = 0);
};
-#endif // MODELVIEW_H
+#endif // MAINWINDOW_H
diff --git a/examples/tutorials/modelview/modelview.pro b/examples/tutorials/modelview/modelview.pro
index 7f684bac18..50f5c3ae77 100644..100755
--- a/examples/tutorials/modelview/modelview.pro
+++ b/examples/tutorials/modelview/modelview.pro
@@ -1,5 +1,4 @@
-TEMPLATE = subdirs
-
+TEMPLATE = subdirs
SUBDIRS = 1_readonly \
2_formatting \
3_changingmodel \
@@ -8,3 +7,10 @@ SUBDIRS = 1_readonly \
6_treeview \
7_selections
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS modelview.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/xmlpatterns/filetree/mainwindow.cpp b/examples/xmlpatterns/filetree/mainwindow.cpp
index 5b9b0c3ff0..85348f3e11 100644
--- a/examples/xmlpatterns/filetree/mainwindow.cpp
+++ b/examples/xmlpatterns/filetree/mainwindow.cpp
@@ -140,7 +140,7 @@ void MainWindow::loadDirectory(const QString &directory)
QXmlFormatter formatter(query, &buffer);
query.evaluateTo(&formatter);
- treeInfo->setText((QString(tr("Model of %1 output as XML.")).arg(directory)));
+ treeInfo->setText(tr("Model of %1 output as XML.").arg(directory));
fileTree->setText(QString::fromLatin1(output.constData()));
evaluateResult();
//! [6]
diff --git a/mkspecs/common/symbian/symbian-mmp.conf b/mkspecs/common/symbian/symbian-mmp.conf
index 4230ad7ae8..52927816c6 100644
--- a/mkspecs/common/symbian/symbian-mmp.conf
+++ b/mkspecs/common/symbian/symbian-mmp.conf
@@ -55,3 +55,15 @@ symbian {
}
}
}
+
+# Variables for replacing equivalent QMAKE_* variables in bld.inf for FLM execution of commands
+symbian-sbsv2 {
+ QMAKE_SBSV2_COPY = $(GNUCP)
+ QMAKE_SBSV2_COPY_DIR = $(GNUCP) -r
+ QMAKE_SBSV2_MOVE = $(GNUMV)
+ QMAKE_SBSV2_DEL_FILE = $(GNURM) -f
+ QMAKE_SBSV2_MKDIR = $(GNUMKDIR)
+ QMAKE_SBSV2_DEL_DIR = $(GNURMDIR)
+ QMAKE_SBSV2_DEL_TREE = $(GNURM) -rf
+}
+
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 04b81b0c2d..beef193620 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -117,11 +117,12 @@ QMAKE_GZIP = gzip -9f
QT_ARCH = symbian
+load(qt_config)
+
# These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS
QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins
QT_IMPORTS_BASE_DIR = /resource/qt/imports
-load(qt_config)
load(symbian/platform_paths)
# The Symbian^3 PDK does not necessarily contain the required sis files.
@@ -174,3 +175,21 @@ pkg_platform_dependencies = \
DEPLOYMENT += default_deployment
+defineReplace(symbianRemoveSpecialCharacters) {
+ # Produce identical string to what SymbianCommonGenerator::removeSpecialCharacters and
+ # SymbianCommonGenerator::removeEpocSpecialCharacters produce
+
+ fixedStr = $$1
+
+ fixedStr = $$replace(fixedStr, /,_)
+ fixedStr = $$replace(fixedStr, \\\\,_)
+ fixedStr = $$replace(fixedStr, " ",_)
+ symbian-abld|symbian-sbsv2 {
+ fixedStr = $$replace(fixedStr, -,_)
+ fixedStr = $$replace(fixedStr, \\.,_)
+ fixedStr = $$replace(fixedStr, :,_)
+ }
+
+ return ($$fixedStr)
+}
+
diff --git a/mkspecs/features/sis_targets.prf b/mkspecs/features/sis_targets.prf
index abdf2d435a..800a04cb77 100644
--- a/mkspecs/features/sis_targets.prf
+++ b/mkspecs/features/sis_targets.prf
@@ -10,10 +10,19 @@ else:!equals(DEPLOYMENT, default_deployment) {
}
equals(GENERATE_SIS_TARGETS, true) {
+
+ baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
+
symbian-abld|symbian-sbsv2 {
+ symbian-sbsv2 {
+ CONVERT_GCCE_PARAM = -g
+ } else {
+ CONVERT_GCCE_PARAM =
+ }
+
make_cache_name = .make.cache
sis_target.target = sis
- sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+ sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
$(if $(wildcard $$make_cache_name), \
$(MAKE) -f $(MAKEFILE) ok_sis MAKEFILES=$$make_cache_name \
, \
@@ -28,11 +37,11 @@ equals(GENERATE_SIS_TARGETS, true) {
)
ok_sis_target.target = ok_sis
- ok_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
+ ok_sis_target.commands = createpackage.bat $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \
$(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
unsigned_sis_target.target = unsigned_sis
- unsigned_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+ unsigned_sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
$(if $(wildcard $$make_cache_name), \
$(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
, \
@@ -47,21 +56,21 @@ equals(GENERATE_SIS_TARGETS, true) {
)
ok_unsigned_sis_target.target = ok_unsigned_sis
- ok_unsigned_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) -o $$basename(TARGET)_template.pkg $(QT_SIS_TARGET)
+ ok_unsigned_sis_target.commands = createpackage.bat $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg $(QT_SIS_TARGET)
- target_sis_target.target = $$basename(TARGET).sis
+ target_sis_target.target = $${baseTarget}.sis
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
installer_sis_target.target = installer_sis
- installer_sis_target.commands = $(if $(wildcard $$basename(TARGET)_installer.pkg), \
+ installer_sis_target.commands = $(if $(wildcard $${baseTarget}_installer.pkg), \
$(MAKE) -f $(MAKEFILE) ok_installer_sis \
, \
$(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
- installer_sis_target.depends = $$basename(TARGET).sis
+ installer_sis_target.depends = $${baseTarget}.sis
ok_installer_sis_target.target = ok_installer_sis
- ok_installer_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_installer.pkg - \
+ ok_installer_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
fail_sis_nopkg_target.target = fail_sis_nopkg
@@ -71,7 +80,7 @@ equals(GENERATE_SIS_TARGETS, true) {
fail_sis_nocache_target.commands = "$(error Project has to be built or QT_SIS_TARGET environment variable has to be set before calling 'SIS' target)"
stub_sis_target.target = stub_sis
- stub_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+ stub_sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
$(if $(wildcard $$make_cache_name), \
$(MAKE) -f $(MAKEFILE) ok_stub_sis MAKEFILES=$$make_cache_name \
, \
@@ -86,7 +95,7 @@ equals(GENERATE_SIS_TARGETS, true) {
)
ok_stub_sis_target.target = ok_stub_sis
- ok_stub_sis_target.commands = createpackage.bat -s $(QT_SIS_OPTIONS) $$basename(TARGET)_stub.pkg \
+ ok_stub_sis_target.commands = createpackage.bat -s $(QT_SIS_OPTIONS) $${baseTarget}_stub.pkg \
$(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
QMAKE_EXTRA_TARGETS += sis_target \
@@ -128,7 +137,6 @@ equals(GENERATE_SIS_TARGETS, true) {
sis_destdir = $$DESTDIR
isEmpty(sis_destdir):sis_destdir = .
- baseTarget = $$basename(TARGET)
!equals(TARGET, "$$baseTarget"):sis_destdir = $$sis_destdir/$$dirname(TARGET)
sis_target.target = sis
diff --git a/mkspecs/features/symbian/application_icon.prf b/mkspecs/features/symbian/application_icon.prf
index c5654d92be..9a9395a526 100644
--- a/mkspecs/features/symbian/application_icon.prf
+++ b/mkspecs/features/symbian/application_icon.prf
@@ -14,20 +14,7 @@ contains( CONFIG, no_icon ) {
warning("Only first icon specified in ICON variable is used: $$ICON")
}
- # Try to produce indentical string to fixedTarget in SymbianMakefileGenerator, replaced chars taken
- # from SymbianCommonGenerator::removeSpecialCharacters.
- #
- # Note: it is not a major problem even baseTarget is not 100% identical to fixedTarget since qmake
- # only uses filename from RSS_RULES.icon_file when referring to icon file name.
- baseTarget = $$basename(TARGET)
- baseTarget = $$replace(baseTarget, /,_)
- baseTarget = $$replace(baseTarget, \\\\,_)
- baseTarget = $$replace(baseTarget, " ",_)
- symbian-abld|symbian-sbsv2 {
- baseTarget = $$replace(baseTarget, -,_)
- baseTarget = $$replace(baseTarget, \\.,_)
- baseTarget = $$replace(baseTarget, :,_)
- }
+ baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
# Note: symbian-sbsv2 builds can't utilize extra compiler for mifconv, so ICON handling is done in code
!symbian-sbsv2 {
diff --git a/mkspecs/features/symbian/run_on_phone.prf b/mkspecs/features/symbian/run_on_phone.prf
index f77369cb1a..d8452773da 100644
--- a/mkspecs/features/symbian/run_on_phone.prf
+++ b/mkspecs/features/symbian/run_on_phone.prf
@@ -11,19 +11,21 @@ else:!equals(DEPLOYMENT, default_deployment) {
}
equals(GENERATE_RUN_TARGETS, true) {
+ baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
+ sis_file = $${baseTarget}.sis
symbian-abld|symbian-sbsv2 {
sis_destdir =
- sis_file = $$basename(TARGET).sis
} else {
sis_destdir = $$DESTDIR
- sis_file = $${TARGET}.sis
+ isEmpty(sis_destdir):sis_destdir = .
+ !equals(TARGET, "$$baseTarget"):sis_destdir = $$sis_destdir/$$dirname(TARGET)
!isEmpty(sis_destdir):!contains(sis_destdir, "[/\\\\]$"):sis_destdir = $${sis_destdir}/
contains(QMAKE_HOST.os, "Windows"):sis_destdir = $$replace(sis_destdir, "/", "\\")
}
contains(SYMBIAN_PLATFORMS, "WINSCW"):contains(TEMPLATE, "app") {
run_target.target = run
- run_target.commands = call "$${EPOCROOT}epoc32/release/winscw/udeb/$$basename(TARGET).exe" $(QT_RUN_OPTIONS)
+ run_target.commands = call "$${EPOCROOT}epoc32/release/winscw/udeb/$${baseTarget}.exe" $(QT_RUN_OPTIONS)
QMAKE_EXTRA_TARGETS += run_target
}
@@ -31,7 +33,7 @@ equals(GENERATE_RUN_TARGETS, true) {
runonphone_target.target = runonphone
runonphone_target.depends = sis
runonphone_target.commands = runonphone $(QT_RUN_ON_PHONE_OPTIONS) --sis "$${sis_destdir}$${sis_file}"
- contains(TEMPLATE, "app"):runonphone_target.commands += "$$basename(TARGET).exe" $(QT_RUN_OPTIONS)
+ contains(TEMPLATE, "app"):runonphone_target.commands += "$${baseTarget}.exe" $(QT_RUN_OPTIONS)
QMAKE_EXTRA_TARGETS += runonphone_target
}
diff --git a/mkspecs/features/symbian/symbian_building.prf b/mkspecs/features/symbian/symbian_building.prf
index 374fe215e8..0b621a3a0f 100644
--- a/mkspecs/features/symbian/symbian_building.prf
+++ b/mkspecs/features/symbian/symbian_building.prf
@@ -35,7 +35,7 @@ symbianDestdir=$$DESTDIR
isEmpty(symbianDestdir) {
symbianDestdir = .
}
-baseTarget = $$basename(TARGET)
+baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
!equals(TARGET, "$$baseTarget"):symbianDestdir = $$symbianDestdir/$$dirname(TARGET)
contains(QMAKE_CFLAGS, "--thumb")|contains(QMAKE_CXXFLAGS, "--thumb")|contains(QMAKE_CFLAGS, "-mthumb")|contains(QMAKE_CXXFLAGS, "-mthumb") {
@@ -114,14 +114,9 @@ isEmpty(capability): capability = "None"
capability = "--capability=$$capability"
contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
- !isEmpty(QMAKE_POST_LINK) {
- # No way to honor the '@' :-(
- QMAKE_POST_LINK = $$replace(QMAKE_POST_LINK, "^@", "")
- QMAKE_POST_LINK = && $$QMAKE_POST_LINK
- }
-
contains(CONFIG, plugin):QMAKE_ELF2E32_FLAGS += --definput=plugin_commonu.def
+ !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
QMAKE_POST_LINK = $$QMAKE_MOVE $$symbianDestdir/$${baseTarget}.dll $$symbianDestdir/$${baseTarget}.sym \
&& $$QMAKE_ELF2E32_WRAPPER --version=$$decVersion \
--sid=$$TARGET.SID \
@@ -166,11 +161,7 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
}
contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") {
- !isEmpty(QMAKE_POST_LINK) {
- # No way to honor the '@' :-(
- QMAKE_POST_LINK = $$replace(QMAKE_POST_LINK, "^@", "")
- QMAKE_POST_LINK = && $$QMAKE_POST_LINK
- }
+ !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
QMAKE_POST_LINK = $$QMAKE_MOVE $$symbianDestdir/$${baseTarget} $$symbianDestdir/$${baseTarget}.sym \
&& $$QMAKE_ELF2E32_WRAPPER --version $$decVersion \
--sid=$$TARGET.SID \
@@ -262,49 +253,45 @@ symbianresources.CONFIG = no_link target_predeps
QMAKE_EXTRA_COMPILERS += symbianresources
contains(TEMPLATE, "app"):!contains(CONFIG, "no_icon") {
- baseResourceTarget = $$basename(TARGET)
- # If you change this, also see application_icon.prf
- baseResourceTarget = $$replace(baseResourceTarget, " ",_)
-
# Make our own extra target in order to get dependencies for generated
# files right. This also avoids the warning about files not found.
- symbianGenResource.target = $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg
+ symbianGenResource.target = $${symbian_resources_RCC_DIR}/$${baseTarget}.rsg
symbianGenResource.commands = cpp -nostdinc -undef \
$$symbian_resources_INCLUDES \
$$symbian_resources_DEFINES \
- $${baseResourceTarget}.rss \
- -o $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rpp \
+ $${baseTarget}.rss \
+ -o $${symbian_resources_RCC_DIR}/$${baseTarget}.rpp \
&& rcomp -u -m045,046,047 \
- -s$${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rpp \
- -o$${symbianDestdir}/$${baseResourceTarget}.rsc \
- -h$${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg \
- -i$${baseResourceTarget}.rss
- silent:symbianGenResource.commands = @echo rcomp $${baseResourceTarget}.rss && $$symbianGenResource.commands
- symbianGenResource.depends = $${baseResourceTarget}.rss
- PRE_TARGETDEPS += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg
- QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg
- QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rpp
- QMAKE_DISTCLEAN += $${baseResourceTarget}.rss
- QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseResourceTarget}.rsc
-
- symbianGenRegResource.target = $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rsg
+ -s$${symbian_resources_RCC_DIR}/$${baseTarget}.rpp \
+ -o$${symbianDestdir}/$${baseTarget}.rsc \
+ -h$${symbian_resources_RCC_DIR}/$${baseTarget}.rsg \
+ -i$${baseTarget}.rss
+ silent:symbianGenResource.commands = @echo rcomp $${baseTarget}.rss && $$symbianGenResource.commands
+ symbianGenResource.depends = $${baseTarget}.rss
+ PRE_TARGETDEPS += $${symbian_resources_RCC_DIR}/$${baseTarget}.rsg
+ QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseTarget}.rsg
+ QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseTarget}.rpp
+ QMAKE_DISTCLEAN += $${baseTarget}.rss
+ QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseTarget}.rsc
+
+ symbianGenRegResource.target = $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rsg
symbianGenRegResource.commands = cpp -nostdinc -undef \
$$symbian_resources_INCLUDES \
$$symbian_resources_DEFINES \
- $${baseResourceTarget}_reg.rss \
- -o $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rpp \
+ $${baseTarget}_reg.rss \
+ -o $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rpp \
&& rcomp -u -m045,046,047 \
- -s$${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rpp \
- -o$${symbianDestdir}/$${baseResourceTarget}_reg.rsc \
- -h$${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rsg \
- -i$${baseResourceTarget}_reg.rss
- silent:symbianGenRegResource.commands = @echo rcomp $${baseResourceTarget}_reg.rss && $$symbianGenRegResource.commands
- symbianGenRegResource.depends = $${baseResourceTarget}_reg.rss $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg
- PRE_TARGETDEPS += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rsg
- QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rsg
- QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rpp
- QMAKE_DISTCLEAN += $${baseResourceTarget}_reg.rss
- QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseResourceTarget}_reg.rsc
+ -s$${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rpp \
+ -o$${symbianDestdir}/$${baseTarget}_reg.rsc \
+ -h$${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rsg \
+ -i$${baseTarget}_reg.rss
+ silent:symbianGenRegResource.commands = @echo rcomp $${baseTarget}_reg.rss && $$symbianGenRegResource.commands
+ symbianGenRegResource.depends = $${baseTarget}_reg.rss $${symbian_resources_RCC_DIR}/$${baseTarget}.rsg
+ PRE_TARGETDEPS += $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rsg
+ QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rsg
+ QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rpp
+ QMAKE_DISTCLEAN += $${baseTarget}_reg.rss
+ QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseTarget}_reg.rsc
# Trick to get qmake to create the RCC_DIR for us.
symbianRccDirCreation.input = SOURCES
@@ -321,3 +308,5 @@ contains(TEMPLATE, "app"):!contains(CONFIG, "no_icon") {
# Generated pkg files
QMAKE_DISTCLEAN += $${baseTarget}_template.pkg
+QMAKE_DISTCLEAN += $${baseTarget}_installer.pkg
+QMAKE_DISTCLEAN += $${baseTarget}_stub.pkg
diff --git a/mkspecs/features/unix/separate_debug_info.prf b/mkspecs/features/unix/separate_debug_info.prf
index 40d52cbfc6..8843c6d2a8 100644
--- a/mkspecs/features/unix/separate_debug_info.prf
+++ b/mkspecs/features/unix/separate_debug_info.prf
@@ -1,8 +1,9 @@
!separate_debug_info_nocopy:!staticlib:!static:!contains(TEMPLATE, subdirs):!isEmpty(QMAKE_OBJCOPY) {
- QMAKE_SEPARATE_DEBUG_INFO = (test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\" ; targ=`basename $(TARGET)`; $$QMAKE_OBJCOPY --only-keep-debug \"\$\$targ\" \"\$\$targ.debug\" && $$QMAKE_OBJCOPY --strip-debug \"\$\$targ\" && $$QMAKE_OBJCOPY --add-gnu-debuglink=\"\$\$targ.debug\" \"\$\$targ\" && chmod -x \"\$\$targ.debug\" ) ;
+ QMAKE_SEPARATE_DEBUG_INFO = test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\" ; targ=`basename $(TARGET)`; $$QMAKE_OBJCOPY --only-keep-debug \"\$\$targ\" \"\$\$targ.debug\" && $$QMAKE_OBJCOPY --strip-debug \"\$\$targ\" && $$QMAKE_OBJCOPY --add-gnu-debuglink=\"\$\$targ.debug\" \"\$\$targ\" && chmod -x \"\$\$targ.debug\"
QMAKE_INSTALL_SEPARATE_DEBUG_INFO = test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\" ; $(INSTALL_FILE) `basename $(TARGET)`.debug $(INSTALL_ROOT)/\$\$target_path/
+ !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
QMAKE_POST_LINK = $$QMAKE_SEPARATE_DEBUG_INFO $$QMAKE_POST_LINK
silent:QMAKE_POST_LINK = @echo creating $@.debug && $$QMAKE_POST_LINK
diff --git a/mkspecs/features/vxworks.prf b/mkspecs/features/vxworks.prf
index a910c69d20..e257cd7ed1 100644
--- a/mkspecs/features/vxworks.prf
+++ b/mkspecs/features/vxworks.prf
@@ -22,20 +22,20 @@ isEmpty(VXWORKS_MUNCH_TOOL):VXWORKS_MUNCH_TOOL = $(WIND_BASE)/host/resource/huti
shared|!staticlib:!lib {
*-dcc {
- VXWORKS_MUNCH_CMD = (targ=`basename $(TARGET)`; \
+ VXWORKS_MUNCH_CMD = targ=`basename $(TARGET)`; \
ddump -Ng \"$(TARGET)\" | tclsh $$VXWORKS_MUNCH_TOOL -c $$VXWORKS_ARCH_MUNCH >\"$(OBJECTS_DIR)/\$\${targ}_ctdt.c\" && \
$$QMAKE_CC -c $$QMAKE_CFLAGS \"$(OBJECTS_DIR)/\$\${targ}_ctdt.c\" -o \"$(OBJECTS_DIR)/\$\${targ}_ctdt.o\" && \
$$QMAKE_LINK $$QMAKE_LFLAGS -X -r5 -r4 \"$(OBJECTS_DIR)/\$\${targ}_ctdt.o\" \"$(TARGET)\" -o \"$(TARGET).munched\" && \
mv \"$(TARGET).munched\" \"$(TARGET)\" && \
- chmod +x \"$(TARGET)\")
+ chmod +x \"$(TARGET)\"
}
*-g++ {
- VXWORKS_MUNCH_CMD = (targ=`basename $(TARGET)`; \
+ VXWORKS_MUNCH_CMD = targ=`basename $(TARGET)`; \
nm \"$(DESTDIR)$(TARGET)\" | tclsh $$VXWORKS_MUNCH_TOOL -c $$VXWORKS_ARCH_MUNCH >\"$(OBJECTS_DIR)/\$\${targ}_ctdt.c\" && \
$$QMAKE_CC -c $$QMAKE_CFLAGS -fdollars-in-identifiers \"$(OBJECTS_DIR)/\$\${targ}_ctdt.c\" -o \"$(OBJECTS_DIR)/\$\${targ}_ctdt.o\" && \
$$QMAKE_LINK $$QMAKE_LFLAGS -nostdlib -Wl,-X -T $(WIND_BASE)/target/h/tool/gnu/ldscripts/link.OUT \"$(OBJECTS_DIR)/\$\${targ}_ctdt.o\" \"$(DESTDIR)$(TARGET)\" -o \"$(DESTDIR)$(TARGET).munched\" && \
mv \"$(DESTDIR)$(TARGET).munched\" \"$(DESTDIR)$(TARGET)\" && \
- chmod +x \"$(DESTDIR)$(TARGET)\")
+ chmod +x \"$(DESTDIR)$(TARGET)\"
}
# We need to create a dummy lib.a in case someone links against this lib.
@@ -48,7 +48,8 @@ shared|!staticlib:!lib {
VXWORKS_MUNCH_CMD += (atarg=`basename $(TARGET) .so.$${VERSION}`.a ; touch \"$(DESTDIR)\$\${atarg}\")
}
- QMAKE_POST_LINK = $$VXWORKS_MUNCH_CMD $$QMAKE_POST_LINK
+ !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
+ QMAKE_POST_LINK = $$VXWORKS_MUNCH_CMD$$QMAKE_POST_LINK
silent:QMAKE_POST_LINK = @echo creating $@.$$VXWORKS_MUNCH_EXT && $$QMAKE_POST_LINK
isEmpty(DESTDIR) {
diff --git a/mkspecs/features/win32/embed_manifest_dll.prf b/mkspecs/features/win32/embed_manifest_dll.prf
index 7305c040e8..e8711da272 100644
--- a/mkspecs/features/win32/embed_manifest_dll.prf
+++ b/mkspecs/features/win32/embed_manifest_dll.prf
@@ -6,8 +6,7 @@ isEmpty(MANIFEST_DIR):MANIFEST_DIR = .
NOPATH_TARGET ~= s,\\\\,/,g # Change to single type separators
NOPATH_TARGET ~= s,^(.*/)+,, # Remove all paths
QMAKE_LFLAGS += /MANIFEST $$quote(/MANIFESTFILE:\"$${MANIFEST_DIR}\\$${NOPATH_TARGET}.intermediate.manifest\")
- QMAKE_PREV_POST_LINK = $$QMAKE_POST_LINK
- QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" -outputresource:$(DESTDIR_TARGET);2$$escape_expand(\\n\\t))
- QMAKE_POST_LINK += $$QMAKE_PREV_POST_LINK
+ !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
+ QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" -outputresource:$(DESTDIR_TARGET);2$$escape_expand(\\n\\t))$$QMAKE_POST_LINK
QMAKE_CLEAN += \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\"
}
diff --git a/mkspecs/features/win32/embed_manifest_exe.prf b/mkspecs/features/win32/embed_manifest_exe.prf
index 5b37a6dcc5..2d1c09b462 100644
--- a/mkspecs/features/win32/embed_manifest_exe.prf
+++ b/mkspecs/features/win32/embed_manifest_exe.prf
@@ -6,8 +6,7 @@ if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*):!equals(TEMPLATE_PREFIX, "vc
NOPATH_TARGET ~= s,\\\\,/,g # Change to single type separators
NOPATH_TARGET ~= s,^(.*/)+,, # Remove all paths
QMAKE_LFLAGS += /MANIFEST $$quote(/MANIFESTFILE:\"$${MANIFEST_DIR}\\$${NOPATH_TARGET}.intermediate.manifest\")
- QMAKE_PREV_POST_LINK = $$QMAKE_POST_LINK
- QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" -outputresource:$(DESTDIR_TARGET);1$$escape_expand(\\n\\t))
- QMAKE_POST_LINK += $$QMAKE_PREV_POST_LINK
+ !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
+ QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" -outputresource:$(DESTDIR_TARGET);1$$escape_expand(\\n\\t))$$QMAKE_POST_LINK
QMAKE_CLEAN += \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\"
}
diff --git a/mkspecs/features/win32/msvc_mp.prf b/mkspecs/features/win32/msvc_mp.prf
new file mode 100644
index 0000000000..d6dea14db9
--- /dev/null
+++ b/mkspecs/features/win32/msvc_mp.prf
@@ -0,0 +1,2 @@
+QMAKE_CFLAGS += $$QMAKE_CFLAGS_MP
+QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_MP
diff --git a/mkspecs/modules/README b/mkspecs/modules/README
new file mode 100644
index 0000000000..f095982e47
--- /dev/null
+++ b/mkspecs/modules/README
@@ -0,0 +1,3 @@
+Externally provided Qt modules may drop a qmake file here to become part of
+the current Qt configuration. The file name must follow the pattern
+"qt_<module>.pri". It must contain a "QT_CONFIG += <module>" statement.
diff --git a/mkspecs/modules/qt_webkit_version.pri b/mkspecs/modules/qt_webkit_version.pri
deleted file mode 100644
index ffd192c315..0000000000
--- a/mkspecs/modules/qt_webkit_version.pri
+++ /dev/null
@@ -1,4 +0,0 @@
-QT_WEBKIT_VERSION = 4.7.0
-QT_WEBKIT_MAJOR_VERSION = 4
-QT_WEBKIT_MINOR_VERSION = 7
-QT_WEBKIT_PATCH_VERSION = 0
diff --git a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
index 47c3f1e84d..21638ea95b 100644
--- a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
+++ b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
@@ -38,7 +38,7 @@ $(STORE_BUILD_TARGET):
echo "# make sis target." >> $(CACHE_FILENAME) && \
echo "# Version : " >> $(CACHE_FILENAME) && \
echo "# ==============================================================================" >> $(CACHE_FILENAME) && \
- echo QT_SIS_TARGET ?= $(VISUAL_CFG)-$(VARIANTPLATFORM) >> $(CACHE_FILENAME)
+ echo QT_SIS_TARGET ?= $(VISUAL_CFG)-$(PLATFORM_PATH) >> $(CACHE_FILENAME)
$(call endrule,qmake_store_build)
endef
diff --git a/mkspecs/symbian-sbsv2/flm/qt/qt.xml b/mkspecs/symbian-sbsv2/flm/qt/qt.xml
index 12857a2171..0f7db3cfe6 100644
--- a/mkspecs/symbian-sbsv2/flm/qt/qt.xml
+++ b/mkspecs/symbian-sbsv2/flm/qt/qt.xml
@@ -37,6 +37,5 @@
<interface name="qt.qmake_store_build" extends="Symbian.UserFLM"
flm="qmake_store_build.flm">
- <param name='VARIANTPLATFORM' />
</interface>
</build>
diff --git a/mkspecs/win32-msvc2008/qmake.conf b/mkspecs/win32-msvc2008/qmake.conf
index 9805e906b4..9a69aaa497 100644
--- a/mkspecs/win32-msvc2008/qmake.conf
+++ b/mkspecs/win32-msvc2008/qmake.conf
@@ -23,6 +23,7 @@ QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_DEBUG = -Zi -MDd
QMAKE_CFLAGS_YACC =
QMAKE_CFLAGS_LTCG = -GL
+QMAKE_CFLAGS_MP = -MP
QMAKE_CXX = $$QMAKE_CC
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
@@ -32,6 +33,7 @@ QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+QMAKE_CXXFLAGS_MP = $$QMAKE_CFLAGS_MP
QMAKE_CXXFLAGS_STL_ON = -EHsc
QMAKE_CXXFLAGS_STL_OFF =
QMAKE_CXXFLAGS_RTTI_ON = -GR
diff --git a/mkspecs/win32-msvc2010/qmake.conf b/mkspecs/win32-msvc2010/qmake.conf
index 28d4d3cc41..8331c142fe 100644
--- a/mkspecs/win32-msvc2010/qmake.conf
+++ b/mkspecs/win32-msvc2010/qmake.conf
@@ -23,6 +23,7 @@ QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_DEBUG = -Zi -MDd
QMAKE_CFLAGS_YACC =
QMAKE_CFLAGS_LTCG = -GL
+QMAKE_CFLAGS_MP = -MP
QMAKE_CXX = $$QMAKE_CC
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
@@ -32,6 +33,7 @@ QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+QMAKE_CXXFLAGS_MP = $$QMAKE_CFLAGS_MP
QMAKE_CXXFLAGS_STL_ON = -EHsc
QMAKE_CXXFLAGS_STL_OFF =
QMAKE_CXXFLAGS_RTTI_ON = -GR
diff --git a/projects.pro b/projects.pro
index 373b04975e..f94e1de565 100644
--- a/projects.pro
+++ b/projects.pro
@@ -159,11 +159,13 @@ INSTALLS += qmake
#mkspecs
mkspecs.path=$$[QT_INSTALL_DATA]/mkspecs
-mkspecs.files=$$QT_BUILD_TREE/mkspecs/qconfig.pri $$QT_SOURCE_TREE/mkspecs/*
+mkspecs.files=$$QT_BUILD_TREE/mkspecs/qconfig.pri $$files($$QT_SOURCE_TREE/mkspecs/*)
+mkspecs.files -= $$QT_SOURCE_TREE/mkspecs/modules
unix {
DEFAULT_QMAKESPEC = $$QMAKESPEC
DEFAULT_QMAKESPEC ~= s,^.*mkspecs/,,g
mkspecs.commands += $(DEL_FILE) $(INSTALL_ROOT)$$mkspecs.path/default; $(SYMLINK) $$DEFAULT_QMAKESPEC $(INSTALL_ROOT)$$mkspecs.path/default
+ mkspecs.files -= $$QT_SOURCE_TREE/mkspecs/default
}
win32:!equals(QT_BUILD_TREE, $$QT_SOURCE_TREE) {
# When shadow building on Windows, the default mkspec only exists in the build tree.
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index b58757cb3e..4d0121c02b 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -23,11 +23,14 @@ LINK = link
# specific stuff for VS2005
#
!if "$(QMAKESPEC)" == "win32-msvc2005"
-CFLAGS = /Zc:wchar_t-
+CFLAGS_EXTRA = /Zc:wchar_t-
+!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010"
+CFLAGS_EXTRA = /MP
!endif
-CFLAGS = -c -Fo$@ \
+CFLAGS_BARE = -c -Fo./ \
-W3 -nologo -O2 \
+ $(CFLAGS_EXTRA) \
-I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -Igenerators\symbian \
-I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore \
-I$(SOURCE_PATH)\include -I$(SOURCE_PATH)\include\QtCore \
@@ -37,38 +40,19 @@ CFLAGS = -c -Fo$@ \
-I$(SOURCE_PATH)\tools\shared \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL \
-DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD \
- -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED \
- $(CFLAGS)
-CXXFLAGS = $(CFLAGS)
+ -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED
+CFLAGS = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch $(CFLAGS_BARE) $(CFLAGS)
+
+CXXFLAGS_BARE = $(CFLAGS_BARE)
+CXXFLAGS = $(CFLAGS)
+
LFLAGS =
LIBS = ole32.lib advapi32.lib
LINKQMAKE = $(LINK) $(LFLAGS) -OUT:qmake.exe $(OBJS) $(QTOBJS) $(LIBS)
ADDCLEAN = vc60.pdb vc70.pdb qmake.pdb qmake.ilk
-!ELSE
-#
-# specific stuff for Borland make
-#
-!if !$d(BCB)
-BCB = $(MAKEDIR)\..
-!endif
-CXX = bcc32
-CFLAGS = -c -o$@ \
- -tWR -w -w-hid -w-use -O1 \
- -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -Igenerators\symbian \
- -I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore \
- -I$(SOURCE_PATH)\include -I$(SOURCE_PATH)\include\QtCore \
- -I$(BUILD_PATH)\src\corelib\global \
- -I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \
- -I$(SOURCE_PATH)\tools\shared \
- -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL \
- -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD \
- -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT
-CXXFLAGS = $(CFLAGS)
-LFLAGS = -L$(BCB)\lib -c -x -Gn -ap -Tpe c0x32.obj
-LIBS = import32.lib cw32i.lib
-LINKQMAKE = ilink32 $(LFLAGS) $(OBJS) $(QTOBJS), qmake.exe,,$(LIBS)
-ADDCLEAN = qmake.tds
+!ELSE
+!ERROR Unsupported compiler for this Makefile
!ENDIF
#qmake code
@@ -100,6 +84,7 @@ QTOBJS= \
qtemporaryfile.obj \
qabstractfileengine.obj \
qfsfileengine_win.obj \
+ qsystemlibrary.obj \
qfsfileengine_iterator_win.obj \
qfileinfo.obj \
qglobal.obj \
@@ -133,81 +118,15 @@ QTOBJS= \
first all: qmake.exe
qmake.exe: $(OBJS) $(QTOBJS)
- $(LINKQMAKE)
+ $(LINKQMAKE) qmake_pch.obj
-copy qmake.exe $(BUILD_PATH)\bin\qmake.exe
clean::
- -del qbitarray.obj
- -del qbuffer.obj
- -del qcryptographichash.obj
- -del qlinkedlist.obj
- -del qfsfileengine.obj
- -del qfsfileengine_iterator.obj
- -del qbytearray.obj
- -del qvsnprintf.obj
- -del qbytearraymatcher.obj
- -del qdatetime.obj
- -del qdir.obj
- -del qdiriterator.obj
- -del qfile.obj
- -del qtemporaryfile.obj
- -del qabstractfileengine.obj
- -del qfsfileengine_win.obj
- -del qfsfileengine_iterator_win.obj
- -del qfileinfo.obj
- -del qglobal.obj
- -del qhash.obj
- -del qiodevice.obj
- -del qlist.obj
- -del qlocale.obj
- -del qmalloc.obj
- -del qmap.obj
- -del qregexp.obj
- -del qtextcodec.obj
- -del qutfcodec.obj
- -del qstring.obj
- -del qstringlist.obj
- -del qtextstream.obj
- -del qdatastream.obj
- -del quuid.obj
- -del qvector.obj
- -del qsettings.obj
- -del qlibraryinfo.obj
- -del qvariant.obj
- -del qurl.obj
- -del qsettings_win.obj
- -del qmetatype.obj
- -del project.obj
- -del main.obj
- -del makefile.obj
- -del unixmake.obj
- -del unixmake2.obj
- -del mingw_make.obj
- -del option.obj
- -del winmakefile.obj
- -del projectgenerator.obj
- -del property.obj
- -del meta.obj
- -del makefiledeps.obj
- -del metamakefile.obj
- -del xmloutput.obj
- -del borland_bmake.obj
- -del msvc_nmake.obj
- -del msvc_vcproj.obj
- -del msvc_vcxproj.obj
- -del msvc_objectmodel.obj
- -del msbuild_objectmodel.obj
- -del symmake.obj
- -del symmake_abld.obj
- -del symmake_sbsv2.obj
- -del symbiancommon.obj
- -del initprojectdeploy_symbian.obj
- -del registry.obj
- -del epocroot.obj
- -del pbuilder_pbx.obj
- -del qxmlstream.obj
- -del qxmlutils.obj
- -del qnumeric.obj
+ -del $(QTOBJS)
+ -del $(OBJS)
+ -del qmake_pch.obj
+ -del qmake_pch.pch
+ -del qsystemlibrary.obj
-del vc60.pdb
-del vc70.pdb
-del qmake.pdb
@@ -229,227 +148,60 @@ distclean:: clean
.cxx.obj:
$(CXX) $(CXXFLAGS) $<
-qsettings_win.obj: $(SOURCE_PATH)\src\corelib\io\qsettings_win.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qsettings_win.cpp
-
-qsettings.obj: $(SOURCE_PATH)\src\corelib\io\qsettings.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qsettings.cpp
-
-qlibraryinfo.obj: $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp
-
-qnumeric.obj: $(SOURCE_PATH)\src\corelib\global\qnumeric.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\global\qnumeric.cpp
-
-qvariant.obj: $(SOURCE_PATH)\src\corelib\kernel\qvariant.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\kernel\qvariant.cpp
-
-qurl.obj: $(SOURCE_PATH)\src\corelib\io\qurl.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qurl.cpp
-
-qtextstream.obj: $(SOURCE_PATH)\src\corelib\io\qtextstream.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qtextstream.cpp
-
-qdatastream.obj: $(SOURCE_PATH)\src\corelib\io\qdatastream.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qdatastream.cpp
-
-qiodevice.obj: $(SOURCE_PATH)\src\corelib\io\qiodevice.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qiodevice.cpp
-
-qmalloc.obj: $(SOURCE_PATH)\src\corelib\global\qmalloc.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\global\qmalloc.cpp
-
-qglobal.obj: $(SOURCE_PATH)\src\corelib\global\qglobal.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\global\qglobal.cpp
-
-qhash.obj: $(SOURCE_PATH)\src\corelib\tools\qhash.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qhash.cpp
-
-qbytearray.obj: $(SOURCE_PATH)\src\corelib\tools\qbytearray.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qbytearray.cpp
-
-qcryptographichash.obj: $(SOURCE_PATH)\src\corelib\tools\qcryptographichash.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qcryptographichash.cpp
-
-qvsnprintf.obj: $(SOURCE_PATH)\src\corelib\tools\qvsnprintf.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qvsnprintf.cpp
-
-qbytearraymatcher.obj: $(SOURCE_PATH)\src\corelib\tools\qbytearraymatcher.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qbytearraymatcher.cpp
-
-qchar.obj: $(SOURCE_PATH)\src\corelib\tools\qchar.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qchar.cpp
-
-qutfcodec.obj: $(SOURCE_PATH)\src\corelib\codecs\qutfcodec.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\codecs\qutfcodec.cpp
-
-qstring.obj: $(SOURCE_PATH)\src\corelib\tools\qstring.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qstring.cpp
-
-qstringmatcher.obj: $(SOURCE_PATH)\src\corelib\tools\qstringmatcher.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qstringmatcher.cpp
-
-qlocale.obj: $(SOURCE_PATH)\src\corelib\tools\qlocale.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qlocale.cpp
-
-quuid.obj: $(SOURCE_PATH)\src\corelib\plugin\quuid.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\plugin\quuid.cpp
-
-qbuffer.obj: $(SOURCE_PATH)\src\corelib\io\qbuffer.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qbuffer.cpp
-
-qlist.obj: $(SOURCE_PATH)\src\corelib\tools\qlist.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qlist.cpp
-
-qlinkedlist.obj: $(SOURCE_PATH)\src\corelib\tools\qlinkedlist.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qlinkedlist.cpp
-
-qfile.obj: $(SOURCE_PATH)\src\corelib\io\qfile.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfile.cpp
-
-qtemporaryfile.obj: $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp
-
-qfsfileengine_win.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp
-
-qfsfileengine_iterator_win.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator_win.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator_win.cpp
-
-qfsfileengine.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine.cpp
-
-qfsfileengine_iterator.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator.cpp
-
-qabstractfileengine.obj: $(SOURCE_PATH)\src\corelib\io\qabstractfileengine.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qabstractfileengine.cpp
-
-qtextcodec.obj: $(SOURCE_PATH)\src\corelib\codecs\qtextcodec.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\codecs\qtextcodec.cpp
+$(OBJS): qmake_pch.obj
-qregexp.obj: $(SOURCE_PATH)\src\corelib\tools\qregexp.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qregexp.cpp
+qsystemlibrary.obj: $(SOURCE_PATH)\src\corelib\plugin\qsystemlibrary.cpp
+ $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\plugin\qsystemlibrary.cpp
-qvector.obj: $(SOURCE_PATH)\src\corelib\tools\qvector.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qvector.cpp
+$(QTOBJS): qmake_pch.obj
-qbitarray.obj: $(SOURCE_PATH)\src\corelib\tools\qbitarray.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qbitarray.cpp
+qmake_pch.obj:
+ $(CXX) $(CXXFLAGS_BARE) -c -Yc -Fpqmake_pch.pch -TP qmake_pch.h
-qdir.obj: $(SOURCE_PATH)\src\corelib\io\qdir.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qdir.cpp
-
-qdiriterator.obj: $(SOURCE_PATH)\src\corelib\io\qdiriterator.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qdiriterator.cpp
-
-qmetatype.obj: $(SOURCE_PATH)\src\corelib\kernel\qmetatype.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\kernel\qmetatype.cpp
-
-qfileinfo.obj: $(SOURCE_PATH)\src\corelib\io\qfileinfo.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfileinfo.cpp
-
-qdatetime.obj: $(SOURCE_PATH)\src\corelib\tools\qdatetime.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qdatetime.cpp
-
-qstringlist.obj: $(SOURCE_PATH)\src\corelib\tools\qstringlist.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qstringlist.cpp
-
-qmap.obj: $(SOURCE_PATH)\src\corelib\tools\qmap.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qmap.cpp
-
-qunicodetables.obj: $(SOURCE_PATH)\src\corelib\tools\qunicodetables.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qunicodetables.cpp
-
-makefile.obj: $(SOURCE_PATH)/qmake/generators\makefile.cpp
- $(CXX) $(CXXFLAGS) generators\makefile.cpp
-
-unixmake.obj: $(SOURCE_PATH)/qmake/generators\unix\unixmake.cpp
- $(CXX) $(CXXFLAGS) generators\unix\unixmake.cpp
-
-unixmake2.obj: $(SOURCE_PATH)/qmake/generators\unix\unixmake2.cpp
- $(CXX) $(CXXFLAGS) generators\unix\unixmake2.cpp
-
-winmakefile.obj: $(SOURCE_PATH)/qmake/generators/win32/winmakefile.cpp
- $(CXX) $(CXXFLAGS) generators/win32/winmakefile.cpp
-
-borland_bmake.obj: $(SOURCE_PATH)/qmake/generators/win32/borland_bmake.cpp
- $(CXX) $(CXXFLAGS) generators/win32/borland_bmake.cpp
-
-mingw_make.obj: $(SOURCE_PATH)/qmake/generators/win32/mingw_make.cpp
- $(CXX) $(CXXFLAGS) generators/win32/mingw_make.cpp
-
-msvc_nmake.obj: $(SOURCE_PATH)/qmake/generators/win32/msvc_nmake.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msvc_nmake.cpp
-
-msvc_vcproj.obj: $(SOURCE_PATH)/qmake/generators/win32/msvc_vcproj.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msvc_vcproj.cpp
-
-msvc_vcxproj.obj: $(SOURCE_PATH)/qmake/generators/win32/msvc_vcxproj.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msvc_vcxproj.cpp
-
-msvc_objectmodel.obj: $(SOURCE_PATH)/qmake/generators/win32/msvc_objectmodel.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msvc_objectmodel.cpp
-
-msbuild_objectmodel.obj: $(SOURCE_PATH)/qmake/generators/win32/msbuild_objectmodel.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msbuild_objectmodel.cpp
-
-symmake.obj: $(SOURCE_PATH)/qmake/generators/symbian/symmake.cpp
- $(CXX) $(CXXFLAGS) generators/symbian/symmake.cpp
-
-symmake_abld.obj: $(SOURCE_PATH)/qmake/generators/symbian/symmake_abld.cpp
- $(CXX) $(CXXFLAGS) generators/symbian/symmake_abld.cpp
-
-symmake_sbsv2.obj: $(SOURCE_PATH)/qmake/generators/symbian/symmake_sbsv2.cpp
- $(CXX) $(CXXFLAGS) generators/symbian/symmake_sbsv2.cpp
-
-symbiancommon.obj: $(SOURCE_PATH)/qmake/generators/symbian/symbiancommon.cpp
- $(CXX) $(CXXFLAGS) generators/symbian/symbiancommon.cpp
-
-initprojectdeploy_symbian.obj: $(SOURCE_PATH)/qmake/generators/symbian/initprojectdeploy_symbian.cpp
- $(CXX) $(CXXFLAGS) generators/symbian/initprojectdeploy_symbian.cpp
+{$(SOURCE_PATH)\qmake\generators\mac}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-registry.obj: $(SOURCE_PATH)/tools/shared/windows/registry.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/tools/shared/windows/registry.cpp
+{$(SOURCE_PATH)\qmake\generators\symbian}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-epocroot.obj: $(SOURCE_PATH)/tools/shared/symbian/epocroot.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/tools/shared/symbian/epocroot.cpp
+{$(SOURCE_PATH)\qmake\generators\unix}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-md5.obj: $(SOURCE_PATH)\src\3rdparty\md5\md5.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\3rdparty\md5\md5.cpp
+{$(SOURCE_PATH)\qmake\generators\win32}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-project.obj: $(SOURCE_PATH)/qmake/project.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
- $(CXX) $(CXXFLAGS) project.cpp
+{$(SOURCE_PATH)\qmake\generators}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-meta.obj: $(SOURCE_PATH)/qmake/meta.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
- $(CXX) $(CXXFLAGS) meta.cpp
+{$(SOURCE_PATH)\qmake}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-main.obj: $(SOURCE_PATH)/qmake/main.cpp $(SOURCE_PATH)/qmake/project.h
- $(CXX) $(CXXFLAGS) main.cpp
+{$(SOURCE_PATH)\src\3rdparty\md5}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-option.obj: $(SOURCE_PATH)/qmake/option.cpp $(SOURCE_PATH)/qmake/option.h
- $(CXX) $(CXXFLAGS) option.cpp
+{$(SOURCE_PATH)\src\corelib\codecs}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-property.obj: $(SOURCE_PATH)/qmake/property.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
- $(CXX) $(CXXFLAGS) property.cpp
+{$(SOURCE_PATH)\src\corelib\global}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-projectgenerator.obj: $(SOURCE_PATH)/qmake/generators/projectgenerator.cpp
- $(CXX) $(CXXFLAGS) generators/projectgenerator.cpp
+{$(SOURCE_PATH)\src\corelib\io}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-pbuilder_pbx.obj: $(SOURCE_PATH)/qmake/generators/mac/pbuilder_pbx.cpp
- $(CXX) $(CXXFLAGS) generators/mac/pbuilder_pbx.cpp
+{$(SOURCE_PATH)\src\corelib\kernel}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-makefiledeps.obj: $(SOURCE_PATH)/qmake/generators/makefiledeps.cpp
- $(CXX) $(CXXFLAGS) generators/makefiledeps.cpp
+{$(SOURCE_PATH)\src\corelib\plugin}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-metamakefile.obj: $(SOURCE_PATH)/qmake/generators/metamakefile.cpp
- $(CXX) $(CXXFLAGS) generators/metamakefile.cpp
+{$(SOURCE_PATH)\src\corelib\tools}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-xmloutput.obj: $(SOURCE_PATH)/qmake/generators/xmloutput.cpp
- $(CXX) $(CXXFLAGS) generators/xmloutput.cpp
+{$(SOURCE_PATH)\src\corelib\xml}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-qxmlstream.obj: $(SOURCE_PATH)\src\corelib\xml\qxmlstream.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\xml\qxmlstream.cpp
+{$(SOURCE_PATH)\tools\shared\symbian}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
-qxmlutils.obj: $(SOURCE_PATH)\src\corelib\xml\qxmlutils.cpp
- $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\xml\qxmlutils.cpp
+{$(SOURCE_PATH)\tools\shared\windows}.cpp{}.obj::
+ $(CXX) $(CXXFLAGS) $<
diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++
index e52b8c6951..f313f9ef0b 100644
--- a/qmake/Makefile.win32-g++
+++ b/qmake/Makefile.win32-g++
@@ -79,6 +79,7 @@ QTOBJS= \
qutfcodec.o \
qstring.o \
qstringlist.o \
+ qsystemlibrary.o \
qtextstream.o \
quuid.o \
qvector.o \
@@ -234,6 +235,9 @@ qdatetime.o: $(SOURCE_PATH)/src/corelib/tools/qdatetime.cpp
qstringlist.o: $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp
$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp
+qsystemlibrary.o: $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp
+ $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp
+
qmap.o: $(SOURCE_PATH)/src/corelib/tools/qmap.cpp
$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qmap.cpp
diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh
index e4e2e6a3c9..af5428877d 100644
--- a/qmake/Makefile.win32-g++-sh
+++ b/qmake/Makefile.win32-g++-sh
@@ -79,6 +79,7 @@ QTOBJS= \
qutfcodec.o \
qstring.o \
qstringlist.o \
+ qsystemlibrary.o \
qtextstream.o \
quuid.o \
qvector.o \
@@ -233,6 +234,9 @@ qdatetime.o: $(SOURCE_PATH)/src/corelib/tools/qdatetime.cpp
qstringlist.o: $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp
$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp
+qsystemlibrary.o: $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp
+ $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp
+
qmap.o: $(SOURCE_PATH)/src/corelib/tools/qmap.cpp
$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qmap.cpp
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 852471df42..c7b147398b 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -466,14 +466,37 @@ MakefileGenerator::init()
if(!project->isEmpty("QMAKE_SUBSTITUTES")) {
const QStringList &subs = v["QMAKE_SUBSTITUTES"];
for(int i = 0; i < subs.size(); ++i) {
- if(!subs.at(i).endsWith(".in")) {
- warn_msg(WarnLogic, "Substitute '%s' does not end with '.in'",
- subs.at(i).toLatin1().constData());
- continue;
+ QString inn = subs.at(i) + ".input", outn = subs.at(i) + ".output";
+ if (v.contains(inn) || v.contains(outn)) {
+ if (!v.contains(inn) || !v.contains(outn)) {
+ warn_msg(WarnLogic, "Substitute '%s' has only one of .input and .output",
+ subs.at(i).toLatin1().constData());
+ continue;
+ }
+ const QStringList &tinn = v[inn], &toutn = v[outn];
+ if (tinn.length() != 1) {
+ warn_msg(WarnLogic, "Substitute '%s.input' does not have exactly one value",
+ subs.at(i).toLatin1().constData());
+ continue;
+ }
+ if (toutn.length() != 1) {
+ warn_msg(WarnLogic, "Substitute '%s.output' does not have exactly one value",
+ subs.at(i).toLatin1().constData());
+ continue;
+ }
+ inn = tinn.first();
+ outn = toutn.first();
+ } else {
+ inn = subs.at(i);
+ if(!inn.endsWith(".in")) {
+ warn_msg(WarnLogic, "Substitute '%s' does not end with '.in'",
+ inn.toLatin1().constData());
+ continue;
+ }
+ outn = inn.left(inn.length()-3);
}
- QFile in(fileFixify(subs.at(i)));
- QFile out(fileFixify(subs.at(i).left(subs.at(i).length()-3),
- qmake_getpwd(), Option::output_dir));
+ QFile in(fileFixify(inn));
+ QFile out(fileFixify(outn, qmake_getpwd(), Option::output_dir));
if(in.open(QFile::ReadOnly)) {
QString contents;
QStack<int> state;
@@ -528,7 +551,7 @@ MakefileGenerator::init()
if(out.exists() && out.open(QFile::ReadOnly)) {
QString old = QString::fromUtf8(out.readAll());
if(contents == old) {
- v["QMAKE_INTERNAL_INCLUDED_FILES"].append(subs.at(i));
+ v["QMAKE_INTERNAL_INCLUDED_FILES"].append(in.fileName());
continue;
}
out.close();
@@ -540,7 +563,7 @@ MakefileGenerator::init()
}
mkdir(QFileInfo(out).absolutePath());
if(out.open(QFile::WriteOnly)) {
- v["QMAKE_INTERNAL_INCLUDED_FILES"].append(subs.at(i));
+ v["QMAKE_INTERNAL_INCLUDED_FILES"].append(in.fileName());
out.write(contents.toUtf8());
} else {
warn_msg(WarnLogic, "Cannot open substitute for output '%s'",
diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp
index d124b02d9a..a60ae076b9 100644
--- a/qmake/generators/symbian/symbiancommon.cpp
+++ b/qmake/generators/symbian/symbiancommon.cpp
@@ -129,7 +129,7 @@ bool SymbianCommonGenerator::containsStartWithItem(const QChar &c, const QString
void SymbianCommonGenerator::removeSpecialCharacters(QString& str)
{
- // When modifying this method check also application_icon.prf
+ // When modifying this method check also symbianRemoveSpecialCharacters in symbian.conf
str.replace(QString("/"), QString("_"));
str.replace(QString("\\"), QString("_"));
str.replace(QString(" "), QString("_"));
@@ -137,7 +137,7 @@ void SymbianCommonGenerator::removeSpecialCharacters(QString& str)
void SymbianCommonGenerator::removeEpocSpecialCharacters(QString& str)
{
- // When modifying this method check also application_icon.prf
+ // When modifying this method check also symbianRemoveSpecialCharacters in symbian.conf
str.replace(QString("-"), QString("_"));
str.replace(QString(":"), QString("_"));
str.replace(QString("."), QString("_"));
@@ -154,13 +154,8 @@ QString romPath(const QString& path)
void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocBuild)
{
QMakeProject *project = generator->project;
- QString pkgTarget = project->first("QMAKE_ORIG_TARGET");
- if (pkgTarget.isEmpty())
- pkgTarget = project->first("TARGET");
- pkgTarget = generator->unescapeFilePath(pkgTarget);
- pkgTarget = removePathSeparators(pkgTarget);
QString pkgFilename = Option::output_dir + QLatin1Char('/') +
- QString("%1_template.pkg").arg(pkgTarget);
+ QString("%1_template.pkg").arg(fixedTarget);
QFile pkgFile(pkgFilename);
if (!pkgFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
@@ -169,7 +164,7 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
}
QString stubPkgFileName = Option::output_dir + QLatin1Char('/') +
- QString("%1_stub.pkg").arg(pkgTarget);
+ QString("%1_stub.pkg").arg(fixedTarget);
QFile stubPkgFile(stubPkgFileName);
if (!stubPkgFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
@@ -193,7 +188,7 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
// Header info
QString wrapperPkgFilename = Option::output_dir + QLatin1Char('/') + QString("%1_installer.%2")
- .arg(pkgTarget).arg("pkg");
+ .arg(fixedTarget).arg("pkg");
QString headerComment = "; %1 generated by qmake at %2\n"
"; This file is generated by qmake and should not be modified by the user\n"
@@ -275,6 +270,20 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
if (success)
applicationVersion = QString("%1,%2,%3").arg(major).arg(minor).arg(patch);
+ // Append package build version number if it is set
+ QString pkgBuildVersion = project->first("DEPLOYMENT.pkg_build_version");
+ if (!pkgBuildVersion.isEmpty()) {
+ success = false;
+ uint build = pkgBuildVersion.toUInt(&success);
+ if (success && build < 100) {
+ if (pkgBuildVersion.size() == 1)
+ pkgBuildVersion.prepend(QLatin1Char('0'));
+ applicationVersion.append(pkgBuildVersion);
+ } else {
+ fprintf(stderr, "Warning: Invalid DEPLOYMENT.pkg_build_version (%s), must be a number between 0 - 99\n", qPrintable(pkgBuildVersion));
+ }
+ }
+
// Package header
QString sisHeader = "; SIS header: name, uid, version\n#{\"%1\"},(%2),%3\n\n";
QString visualTarget = generator->escapeFilePath(project->first("TARGET"));
@@ -521,7 +530,7 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
// Wrapped files deployment
QString currentPath = qmake_getpwd();
- QString sisName = QString("%1.sis").arg(pkgTarget);
+ QString sisName = QString("%1.sis").arg(fixedTarget);
twf << "\"" << currentPath << "/" << sisName << "\" - \"c:\\private\\2002CCCE\\import\\" << sisName << "\"" << endl;
QString bootStrapPath = QLibraryInfo::location(QLibraryInfo::PrefixPath);
@@ -538,7 +547,7 @@ QString SymbianCommonGenerator::removePathSeparators(QString &file)
if (QDir::separator().unicode() != '/')
ret.replace(QDir::separator(), QLatin1Char('/'));
- if (ret.indexOf(QLatin1Char('/')) > 0)
+ if (ret.indexOf(QLatin1Char('/')) >= 0)
ret.remove(0, ret.lastIndexOf(QLatin1Char('/')) + 1);
return ret;
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp
index cf6bd1388e..0b0033a79b 100644
--- a/qmake/generators/symbian/symmake.cpp
+++ b/qmake/generators/symbian/symmake.cpp
@@ -272,7 +272,8 @@ void SymbianMakefileGenerator::init()
project->values("QMAKE_LIBS") += escapeFilePaths(project->values("LIBS"));
project->values("QMAKE_LIBS_PRIVATE") += escapeFilePaths(project->values("LIBS_PRIVATE"));
- // bld.inf
+ // Disallow renaming of bld.inf.
+ project->values("MAKEFILE").clear();
project->values("MAKEFILE") += BLD_INF_FILENAME;
// .mmp
diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index 036eb1d99a..c66c1b8ca0 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -202,10 +202,18 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
QString genericClause = " -c %1_%2" + testClause;
QString winscwClause = " -c winscw_%1.mwccinc" + testClause;
QString gcceClause;
- if (QString::compare(gcceVersion(), UNDETECTED_GCCE_VERSION) == 0)
- allPlatforms.removeAll(PLATFORM_GCCE);
- else
- gcceClause = " -c arm.v5.%1." + gcceVersion() + ".release_gcce" + testClause;
+ bool stripArmv5 = false;
+
+ if (allPlatforms.contains(PLATFORM_GCCE)) {
+ if (QString::compare(gcceVersion(), UNDETECTED_GCCE_VERSION) == 0) {
+ allPlatforms.removeAll(PLATFORM_GCCE);
+ } else {
+ gcceClause = " -c arm.v5.%1." + gcceVersion() + testClause;
+ // Since gcce building is enabled, do not add armv5 for any sbs command
+ // that also contains gcce, because those will build same targets.
+ stripArmv5 = true;
+ }
+ }
QStringList allClauses;
QStringList debugClauses;
@@ -216,14 +224,15 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
releasePlatforms.removeAll(PLATFORM_WINSCW); // No release for emulator
foreach(QString item, debugPlatforms) {
- debugClauses << configClause(item, debugBuild, winscwClause, gcceClause, genericClause);
+ if (item != PLATFORM_ARMV5 || !stripArmv5)
+ debugClauses << configClause(item, debugBuild, winscwClause, gcceClause, genericClause);
}
foreach(QString item, releasePlatforms) {
- releaseClauses << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause);
+ if (item != PLATFORM_ARMV5 || !stripArmv5)
+ releaseClauses << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause);
}
allClauses << debugClauses << releaseClauses;
-
QTextStream t(&wrapperFile);
t << "# ==============================================================================" << endl;
@@ -404,6 +413,28 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
}
}
+ QMap<QString, QString> commandsToReplace;
+ commandsToReplace.insert(project->values("QMAKE_COPY").join(" "),
+ project->values("QMAKE_SBSV2_COPY").join(" "));
+ commandsToReplace.insert(project->values("QMAKE_COPY_DIR").join(" "),
+ project->values("QMAKE_SBSV2_COPY_DIR").join(" "));
+ commandsToReplace.insert(project->values("QMAKE_MOVE").join(" "),
+ project->values("QMAKE_SBSV2_MOVE").join(" "));
+ commandsToReplace.insert(project->values("QMAKE_DEL_FILE").join(" "),
+ project->values("QMAKE_SBSV2_DEL_FILE").join(" "));
+ commandsToReplace.insert(project->values("QMAKE_MKDIR").join(" "),
+ project->values("QMAKE_SBSV2_MKDIR").join(" "));
+ commandsToReplace.insert(project->values("QMAKE_DEL_DIR").join(" "),
+ project->values("QMAKE_SBSV2_DEL_DIR").join(" "));
+ commandsToReplace.insert(project->values("QMAKE_DEL_TREE").join(" "),
+ project->values("QMAKE_SBSV2_DEL_TREE").join(" "));
+
+ // If commandItem starts with any $$QMAKE_* commands, do a replace for SBS equivalent
+ // Command replacement is done only for the start of the command or right after
+ // concatenation operators (&& and ||), as otherwise unwanted replacements might occur.
+ static QString cmdFind("(^|&&\\s*|\\|\\|\\s*)%1");
+ static QString cmdReplace("\\1%1");
+
// Write extra compilers and targets to initialize QMAKE_ET_* variables
// Cache results to avoid duplicate calls when creating wrapper makefile
QTextStream extraCompilerStream(&extraCompilersCache);
@@ -415,13 +446,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
// are not necessary.
QStringList allPreDeps;
foreach(QString item, project->values("PRE_TARGETDEPS")) {
- // Predeps get mangled in windows, so fix them to more sbsv2 friendly format
-#if defined(Q_OS_WIN)
- if (item.mid(1, 1) == ":")
- item = item.mid(0, 1).toUpper().append(item.mid(1)); // Fix drive to uppercase
-#endif
- item.replace("\\", "/");
- allPreDeps << escapeDependencyPath(item);
+ allPreDeps.append(fileInfo(item).absoluteFilePath());
}
foreach (QString item, project->values("GENERATED_SOURCES")) {
@@ -451,7 +476,6 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
QStringList deps = project->values(QLatin1String("QMAKE_INTERNAL_ET_PARSED_DEPS.") + item + targetItem);
QString commandItem = project->values(QLatin1String("QMAKE_INTERNAL_ET_PARSED_CMD.") + item + targetItem).join(" ");
-
// Make sure all deps paths are absolute
QString absoluteDeps;
foreach (QString depItem, deps) {
@@ -465,6 +489,18 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
t << "OPTION PREDEP_TARGET " << absoluteTarget << endl;
t << "OPTION DEPS " << absoluteDeps << endl;
+ // Iterate command replacements in reverse alphabetical order of keys so
+ // that keys which are starts of other longer keys are iterated after longer keys.
+ QMapIterator<QString, QString> cmdIter(commandsToReplace);
+ cmdIter.toBack();
+ while (cmdIter.hasPrevious()) {
+ cmdIter.previous();
+ if (commandItem.contains(cmdIter.key())) {
+ commandItem.replace(QRegExp(cmdFind.arg(cmdIter.key())),
+ cmdReplace.arg(cmdIter.value()));
+ }
+ }
+
if (commandItem.indexOf("$(INCPATH)") != -1)
commandItem.replace("$(INCPATH)", incPath.join(" "));
if (commandItem.indexOf("$(DEFINES)") != -1)
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 17c4d5a4d4..2505056e73 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -1573,7 +1573,8 @@ bool VCXLinkerTool::parseOption(const char* option)
break;
case 0x0034160: // /MAP[:filename]
GenerateMapFile = _True;
- MapFileName = option+5;
+ if (option[4] == ':')
+ MapFileName = option+5;
break;
case 0x164e1ef: // /MAPINFO:{EXPORTS}
if(*(option+9) == 'E')
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 1e060a005f..980e686556 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -1430,7 +1430,8 @@ bool VCLinkerTool::parseOption(const char* option)
break;
case 0x0034160: // /MAP[:filename]
GenerateMapFile = _True;
- MapFileName = option+5;
+ if (option[4] == ':')
+ MapFileName = option+5;
break;
case 0x164e1ef: // /MAPINFO:{EXPORTS|LINES}
if(*(option+9) == 'E')
diff --git a/qmake/generators/win32/msvc_vcxproj.cpp b/qmake/generators/win32/msvc_vcxproj.cpp
index f68a435ac0..271d9ae29f 100644
--- a/qmake/generators/win32/msvc_vcxproj.cpp
+++ b/qmake/generators/win32/msvc_vcxproj.cpp
@@ -202,7 +202,6 @@ void VcxprojGenerator::initConfiguration()
conf.CharacterSet = "NotSet";
break;
}
- conf.CharacterSet = charSet(temp.isEmpty() ? (short)charSetNotSet : temp.toShort());
}
conf.DeleteExtensionsOnClean = project->first("DeleteExtensionsOnClean");
conf.ImportLibrary = conf.linker.ImportLibrary;
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 64aaf34294..ecb20c70f9 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -472,10 +472,13 @@ void Win32MakefileGenerator::processRcFileVar()
resFile.replace(".rc", Option::res_ext);
project->values("RES_FILE").prepend(fileInfo(resFile).fileName());
if (!project->values("OBJECTS_DIR").isEmpty()) {
- if(project->isActiveConfig("staticlib"))
- project->values("RES_FILE").first().prepend(fileInfo(project->values("DESTDIR").first()).absoluteFilePath() + Option::dir_sep);
+ QString resDestDir;
+ if (project->isActiveConfig("staticlib"))
+ resDestDir = fileInfo(project->first("DESTDIR")).absoluteFilePath();
else
- project->values("RES_FILE").first().prepend(project->values("OBJECTS_DIR").first() + Option::dir_sep);
+ resDestDir = project->first("OBJECTS_DIR");
+ resDestDir.append(Option::dir_sep);
+ project->values("RES_FILE").first().prepend(resDestDir);
}
project->values("RES_FILE").first() = Option::fixPathToTargetOS(project->values("RES_FILE").first(), false, false);
project->values("POST_TARGETDEPS") += project->values("RES_FILE");
diff --git a/qmake/qmake.pri b/qmake/qmake.pri
index a7e0ab16b7..36c5d36a83 100644
--- a/qmake/qmake.pri
+++ b/qmake/qmake.pri
@@ -132,7 +132,8 @@ bootstrap { #Qt code
LIBS += -framework ApplicationServices
}
} else:win32 {
- SOURCES += qfsfileengine_win.cpp qfsfileengine_iterator_win.cpp qsettings_win.cpp
+ SOURCES += qfsfileengine_win.cpp qfsfileengine_iterator_win.cpp qsettings_win.cpp \
+ qsystemlibrary.cpp
win32-msvc*:LIBS += ole32.lib advapi32.lib
win32-g++*:LIBS += -lole32 -luuid
}
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
index 93431dfa85..fbaf5d2798 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
@@ -1,3 +1,39 @@
+2010-06-18 Tucker Jay <jay.tucker@nokia.com>
+
+ Reviewed by NOBODY (OOPS!).
+
+ [Symbian] Lazy commit of memory required in JSC register file
+ https://bugs.webkit.org/show_bug.cgi?id=34349
+
+ * JavaScriptCore.pro: Added 1 new Symbian source file
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::~RegisterFile):
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::):
+ (JSC::RegisterFile::start):
+ (JSC::RegisterFile::end):
+ (JSC::RegisterFile::size):
+ (JSC::RegisterFile::setNumGlobals):
+ (JSC::RegisterFile::numGlobals):
+ (JSC::RegisterFile::maxGlobals):
+ (JSC::RegisterFile::lastGlobal):
+ (JSC::RegisterFile::markGlobals):
+ (JSC::RegisterFile::markCallFrames):
+ (JSC::isPageAligned):
+ (JSC::RegisterFile::RegisterFile):
+ (JSC::RegisterFile::shrink):
+ (JSC::RegisterFile::grow):
+ * wtf/symbian/RegisterFileAllocatorSymbian.cpp: Added.
+ (WTF::RegisterFileAllocator::RegisterFileAllocator):
+ Helper class to allocate memory required by RegisterFile
+ more efficiently.
+ (WTF::RegisterFileAllocator::~RegisterFileAllocator):
+ (WTF::RegisterFileAllocator::buffer):
+ (WTF::RegisterFileAllocator::grow):
+ (WTF::RegisterFileAllocator::shrink):
+ * wtf/symbian/RegisterFileAllocatorSymbian.h: Added.
+ * wtf/symbian/SymbianDefines.h: Added.
+
2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
index 75737aed66..d75bd31198 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
@@ -211,6 +211,7 @@ SOURCES += \
wtf/qt/ThreadingQt.cpp \
wtf/RandomNumber.cpp \
wtf/RefCountedLeakCounter.cpp \
+ wtf/symbian/RegisterFileAllocatorSymbian.cpp \
wtf/ThreadingNone.cpp \
wtf/Threading.cpp \
wtf/TypeTraits.cpp \
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.cpp
index 939573b404..293fc385eb 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.cpp
@@ -40,6 +40,8 @@ RegisterFile::~RegisterFile()
VirtualFree(m_buffer, DWORD(m_commitEnd) - DWORD(m_buffer), MEM_DECOMMIT);
#endif
VirtualFree(m_buffer, 0, MEM_RELEASE);
+#elif OS(SYMBIAN)
+ delete m_registerFileAllocator;
#else
fastFree(m_buffer);
#endif
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.h b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.h
index 34e25042e0..49304d9b60 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.h
@@ -41,6 +41,10 @@
#include <sys/mman.h>
#endif
+#if OS(SYMBIAN)
+#include <wtf/symbian/RegisterFileAllocatorSymbian.h>
+#endif
+
namespace JSC {
/*
@@ -152,12 +156,21 @@ namespace JSC {
#if HAVE(VIRTUALALLOC)
Register* m_commitEnd;
#endif
+#if OS(SYMBIAN)
+ // Commits and frees a continguous chunk of memory as required
+ WTF::RegisterFileAllocator* m_registerFileAllocator;
+#endif
JSGlobalObject* m_globalObject; // The global object whose vars are currently stored in the register file.
};
// FIXME: Add a generic getpagesize() to WTF, then move this function to WTF as well.
- inline bool isPageAligned(size_t size) { return size != 0 && size % (8 * 1024) == 0; }
+ // This is still a hack that should be fixed later. We know that a Symbian page size is 4K.
+ #if OS(SYMBIAN)
+ inline bool isPageAligned(size_t size) { return size && !(size % (4 * 1024)); }
+ #else
+ inline bool isPageAligned(size_t size) { return size && !(size % (8 * 1024)); }
+ #endif
inline RegisterFile::RegisterFile(size_t capacity, size_t maxGlobals)
: m_numGlobals(0)
@@ -204,7 +217,13 @@ namespace JSC {
CRASH();
}
m_commitEnd = reinterpret_cast<Register*>(reinterpret_cast<char*>(m_buffer) + committedSize);
- #else
+ #elif OS(SYMBIAN)
+ m_registerFileAllocator = new WTF::RegisterFileAllocator(bufferLength);
+ m_buffer = (Register*)(m_registerFileAllocator->buffer());
+ // start by committing enough space to hold maxGlobals
+ void* newEnd = (void*)((int)m_buffer + (maxGlobals * sizeof(Register)));
+ m_registerFileAllocator->grow(newEnd);
+ #else
/*
* If neither MMAP nor VIRTUALALLOC are available - use fastMalloc instead.
*
@@ -226,8 +245,13 @@ namespace JSC {
if (newEnd >= m_end)
return;
m_end = newEnd;
- if (m_end == m_start && (m_maxUsed - m_start) > maxExcessCapacity)
+ if (m_end == m_start && (m_maxUsed - m_start) > maxExcessCapacity) {
+#if OS(SYMBIAN)
+ m_registerFileAllocator->shrink(newEnd);
+#endif
+
releaseExcessCapacity();
+ }
}
inline bool RegisterFile::grow(Register* newEnd)
@@ -252,6 +276,9 @@ namespace JSC {
m_commitEnd = reinterpret_cast<Register*>(reinterpret_cast<char*>(m_commitEnd) + size);
}
#endif
+#if OS(SYMBIAN)
+ m_registerFileAllocator->grow((void*)newEnd);
+#endif
if (newEnd > m_maxUsed)
m_maxUsed = newEnd;
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp
new file mode 100644
index 0000000000..baa7841a2d
--- /dev/null
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if OS(SYMBIAN)
+
+#include "RegisterFileAllocatorSymbian.h"
+
+namespace WTF {
+
+/** Efficiently allocates memory pools of size poolSize.
+ * Primarily designed for JSC RegisterFile's needs.
+ * Not thread-safe.
+ */
+RegisterFileAllocator::RegisterFileAllocator(TUint32 reservationSize, TUint32 poolSize) :
+ m_reserved(reservationSize), m_poolSize(poolSize)
+{
+ // Get system's page size value.
+ SYMBIAN_PAGESIZE(m_pageSize);
+
+ // We only accept multiples of system page size for both initial reservation
+ // and the alignment/pool size
+ m_reserved = SYMBIAN_ROUNDUPTOMULTIPLE(m_reserved, m_pageSize);
+ __ASSERT_ALWAYS(SYMBIAN_ROUNDUPTOMULTIPLE(m_poolSize, m_pageSize),
+ User::Panic(_L("RegisterFileAllocator1"), KErrArgument));
+
+ // Open a Symbian RChunk, and reserve requested virtual address range
+ // Any thread in this process can operate this RChunk due to EOwnerProcess access rights.
+ TInt ret = m_chunk.CreateDisconnectedLocal(0 , 0, (TInt)m_reserved , EOwnerProcess);
+ if (ret != KErrNone)
+ User::Panic(_L("RegisterFileAllocator2"), ret);
+
+ m_buffer = (void*)m_chunk.Base();
+ m_resEnd = (void*)(m_chunk.Base() + m_chunk.MaxSize());
+ m_comEnd = m_buffer;
+}
+
+RegisterFileAllocator::~RegisterFileAllocator()
+{
+ // release everything!
+ m_chunk.Decommit(0, m_chunk.MaxSize());
+ m_chunk.Close();
+}
+
+void* RegisterFileAllocator::buffer() const
+{
+ return m_buffer;
+}
+
+void RegisterFileAllocator::grow(void* newEnd)
+{
+ // trying to commit more memory than reserved!
+ if (newEnd > m_resEnd)
+ return;
+
+ if (newEnd > m_comEnd) {
+ TInt nBytes = (TInt)(newEnd) - (TInt)(m_comEnd);
+ nBytes = SYMBIAN_ROUNDUPTOMULTIPLE(nBytes, m_poolSize);
+ TInt offset = (TInt)m_comEnd - (TInt)m_buffer;
+
+ TInt ret = m_chunk.Commit(offset, nBytes);
+ if (ret == KErrNone)
+ m_comEnd = (void*)(m_chunk.Base() + m_chunk.Size());
+ }
+}
+
+void RegisterFileAllocator::shrink(void* newEnd)
+{
+ if (newEnd < m_comEnd) {
+ TInt nBytes = (TInt)newEnd - (TInt)m_comEnd;
+ if (nBytes >= m_poolSize) {
+ TInt offset = SYMBIAN_ROUNDUPTOMULTIPLE((TUint)newEnd, m_poolSize) - (TInt)m_buffer;
+ nBytes = (TInt)m_comEnd - offset - (TInt)m_buffer;
+ if (nBytes > 0) {
+ TInt ret = m_chunk.Decommit(offset, nBytes);
+ if (ret == KErrNone)
+ m_comEnd = (void*)(m_chunk.Base() + m_chunk.Size());
+ }
+ }
+ }
+}
+
+} // end of namespace
+
+#endif // SYMBIAN
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.h
new file mode 100644
index 0000000000..4cfc8c5de6
--- /dev/null
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RegisterFileAllocatorSymbian_h
+#define RegisterFileAllocatorSymbian_h
+
+#include "SymbianDefines.h"
+
+namespace WTF {
+
+/**
+ * Allocates contiguous regions of size poolSize.
+ * poolSize must be a multiple of system page size (typically 4K on Symbian/ARM)
+ *
+ * @param reservationSize Virtual address range to be reserved upon creation of chunk (bytes).
+ * @param poolSize Size of a single allocation.
+ */
+class RegisterFileAllocator {
+
+public:
+ RegisterFileAllocator(
+ TUint32 reservationSize, TUint32 poolSize = SYMBIAN_REGFILEALLOC_DEFAULTPOOLSIZE);
+ ~RegisterFileAllocator();
+ void* buffer() const;
+ void grow(void* newEnd);
+ void shrink(void* newEnd);
+
+private:
+ RChunk m_chunk; // Symbian chunk that lets us reserve/commit/decommit
+
+ // all following values are in numbers of bytes
+ TInt m_pageSize; // cached value of system page size, typically 4K on Symbian
+ TUint32 m_reserved; // total number of reserved bytes in virtual memory
+ TUint32 m_poolSize; // size of one memory pool, set by default to 64K in wtf/symbian/SymbianDefines.h
+
+ void* m_buffer; // pointer to base of the chunk
+ void* m_comEnd; // pointer to end of currently committed memory
+ void* m_resEnd; // pointer to end of reserved memory
+
+};
+
+} // end of namespace
+
+#endif // RegisterFileAllocatorSymbian_h
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/SymbianDefines.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/SymbianDefines.h
new file mode 100644
index 0000000000..43e22b389a
--- /dev/null
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/SymbianDefines.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SymbianDefines_h
+#define SymbianDefines_h
+
+#include <e32cmn.h>
+#include <e32std.h>
+#include <hal.h>
+
+#define SYMBIAN_PAGESIZE(x) (HAL::Get(HALData::EMemoryPageSize, x));
+#define SYMBIAN_FREERAM(x) (HAL::Get(HALData::EMemoryRAMFree, x));
+#define SYMBIAN_ROUNDUPTOMULTIPLE(x, multipleof) ( (x + multipleof - 1) & ~(multipleof - 1) )
+
+#define SYMBIAN_REGFILEALLOC_DEFAULTPOOLSIZE 65536 // 64K
+
+#endif // SymbianDefines_h
diff --git a/src/3rdparty/phonon/gstreamer/mediaobject.cpp b/src/3rdparty/phonon/gstreamer/mediaobject.cpp
index 3e0addc2b3..23a60c06e8 100644
--- a/src/3rdparty/phonon/gstreamer/mediaobject.cpp
+++ b/src/3rdparty/phonon/gstreamer/mediaobject.cpp
@@ -219,9 +219,9 @@ void MediaObject::noMorePadsAvailable ()
if ( status != GST_INSTALL_PLUGINS_STARTED_OK )
{
if( status == GST_INSTALL_PLUGINS_HELPER_MISSING )
- setError(QString(tr("Missing codec helper script assistant.")), Phonon::FatalError );
+ setError(tr("Missing codec helper script assistant."), Phonon::FatalError );
else
- setError(QString(tr("Plugin codec installation failed for codec: %0"))
+ setError(tr("Plugin codec installation failed for codec: %0")
.arg(m_missingCodecs[0].split("|")[3]), error);
}
m_missingCodecs.clear();
@@ -232,7 +232,7 @@ void MediaObject::noMorePadsAvailable ()
m_hasVideo = false;
emit hasVideoChanged(false);
}
- setError(QString(tr("A required codec is missing. You need to install the following codec(s) to play this content: %0")).arg(codecs), error);
+ setError(tr("A required codec is missing. You need to install the following codec(s) to play this content: %0").arg(codecs), error);
m_missingCodecs.clear();
#endif
}
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index d31a2b4c66..11483200bf 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-72b1c38579ca1fdb3f242e29cd16e5bfb4925813
+460b651cbe4f6994b492ff08614e57b0e31a24c8
diff --git a/src/3rdparty/webkit/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/JavaScriptCore/ChangeLog
index c09ad79117..2be6f5a420 100644
--- a/src/3rdparty/webkit/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/webkit/JavaScriptCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-07-08 Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Oliver Hunt.
+
+ Interpreter: Crash in op_load_varargs on 64-bit
+ https://bugs.webkit.org/show_bug.cgi?id=41795
+
+ Added missing cast of argCount to int32_t in op_load_varargs.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+
2010-07-02 Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed by Oliver Hunt.
diff --git a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp
index 73efc0d8d8..a56040cbea 100644
--- a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp
@@ -3465,17 +3465,17 @@ skip_id_custom_self:
goto vm_throw;
}
ASSERT(!callFrame->callee()->isHostFunction());
- uint32_t expectedParams = callFrame->callee()->jsExecutable()->parameterCount();
- uint32_t inplaceArgs = min(argCount, expectedParams);
- uint32_t i = 0;
+ int32_t expectedParams = callFrame->callee()->jsExecutable()->parameterCount();
+ int32_t inplaceArgs = min(static_cast<int32_t>(argCount), expectedParams);
+ int32_t i = 0;
Register* argStore = callFrame->registers() + argsOffset;
// First step is to copy the "expected" parameters from their normal location relative to the callframe
for (; i < inplaceArgs; i++)
argStore[i] = callFrame->registers()[i - RegisterFile::CallFrameHeaderSize - expectedParams];
// Then we copy any additional arguments that may be further up the stack ('-1' to account for 'this')
- for (; i < argCount; i++)
- argStore[i] = callFrame->registers()[i - RegisterFile::CallFrameHeaderSize - expectedParams - argCount - 1];
+ for (; i < static_cast<int32_t>(argCount); i++)
+ argStore[i] = callFrame->registers()[i - RegisterFile::CallFrameHeaderSize - expectedParams - static_cast<int32_t>(argCount) - 1];
} else if (!arguments.isUndefinedOrNull()) {
if (!arguments.isObject()) {
exceptionValue = createInvalidParamError(callFrame, "Function.prototype.apply", arguments, vPC - callFrame->codeBlock()->instructions().begin(), callFrame->codeBlock());
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index 62aa8ce9dd..aff3f2a183 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from
and has the sha1 checksum
- 72b1c38579ca1fdb3f242e29cd16e5bfb4925813
+ 460b651cbe4f6994b492ff08614e57b0e31a24c8
diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
index f892f9ec9c..7e57b9c660 100644
--- a/src/3rdparty/webkit/WebCore/WebCore.pro
+++ b/src/3rdparty/webkit/WebCore/WebCore.pro
@@ -83,7 +83,7 @@ CONFIG(QTDIR_build) {
symbian: TARGET =$$TARGET$${QT_LIBINFIX}
}
moduleFile=$$PWD/../WebKit/qt/qt_webkit_version.pri
-include($$moduleFile)
+isEmpty(QT_BUILD_TREE):include($$moduleFile)
VERSION = $${QT_WEBKIT_MAJOR_VERSION}.$${QT_WEBKIT_MINOR_VERSION}.$${QT_WEBKIT_PATCH_VERSION}
unix {
@@ -2858,6 +2858,25 @@ contains(DEFINES, ENABLE_SYMBIAN_DIALOG_PROVIDERS) {
}
}
+!symbian-abld:!symbian-sbsv2 {
+ modfile.files = $$moduleFile
+ modfile.path = $$[QMAKE_MKSPECS]/modules
+
+ INSTALLS += modfile
+} else {
+ # INSTALLS is not implemented in qmake's mmp generators, copy headers manually
+
+ inst_modfile.commands = $$QMAKE_COPY ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
+ inst_modfile.input = moduleFile
+ inst_modfile.output = $$[QMAKE_MKSPECS]/modules
+ inst_modfile.CONFIG = no_clean
+
+ QMAKE_EXTRA_COMPILERS += inst_modfile
+
+ install.depends += compiler_inst_modfile_make_all
+ QMAKE_EXTRA_TARGETS += install
+}
+
include($$PWD/../WebKit/qt/Api/headers.pri)
HEADERS += $$WEBKIT_API_HEADERS
@@ -2874,10 +2893,7 @@ HEADERS += $$WEBKIT_API_HEADERS
!isEmpty(INSTALL_LIBS): target.path = $$INSTALL_LIBS
else: target.path = $$[QT_INSTALL_LIBS]
- modfile.files = $$moduleFile
- modfile.path = $$[QMAKE_MKSPECS]/modules
-
- INSTALLS += target headers modfile
+ INSTALLS += target headers
} else {
# INSTALLS is not implemented in qmake's s60 generators, copy headers manually
inst_headers.commands = $$QMAKE_COPY ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
@@ -2889,15 +2905,7 @@ HEADERS += $$WEBKIT_API_HEADERS
QMAKE_EXTRA_COMPILERS += inst_headers
- inst_modfile.commands = $$inst_headers.commands
- inst_modfile.input = moduleFile
- inst_modfile.output = $$[QMAKE_MKSPECS]/modules
- inst_modfile.CONFIG = no_clean
-
- QMAKE_EXTRA_COMPILERS += inst_modfile
-
- install.depends += compiler_inst_headers_make_all compiler_inst_modfile_make_all
- QMAKE_EXTRA_TARGETS += install
+ install.depends += compiler_inst_headers_make_all
}
win32-*|wince* {
diff --git a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp
index c1ca23d7e4..94f08bdf02 100644
--- a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp
@@ -91,7 +91,6 @@ GraphicsWebView::GraphicsWebView(QDeclarativeWebView* parent)
void GraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent* event)
{
- setFocus();
pressPoint = event->pos();
if (pressTime) {
pressTimer.start(pressTime, this);
@@ -101,6 +100,11 @@ void GraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent* event)
parent->setKeepMouseGrab(true);
}
QGraphicsWebView::mousePressEvent(event);
+
+ QWebHitTestResult hit = page()->mainFrame()->hitTestContent(pressPoint.toPoint());
+ if (hit.isContentEditable())
+ parent->forceActiveFocus();
+ setFocus();
}
void GraphicsWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
@@ -141,46 +145,76 @@ void GraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent* event)
\qmlclass WebView QDeclarativeWebView
\ingroup qml-view-elements
\since 4.7
- \brief The WebView item allows you to add web content to a canvas.
+ \brief The WebView item allows you to add Web content to a canvas.
\inherits Item
- A WebView renders web content based on a URL.
+ A WebView renders Web content based on a URL.
This type is made available by importing the \c QtWebKit module:
\bold{import QtWebKit 1.0}
- If the width and height of the item is not set, they will
- dynamically adjust to a size appropriate for the content.
- This width may be large for typical online web pages.
+ The WebView item includes no scrolling, scaling, toolbars, or other common browser
+ components. These must be implemented around WebView. See the \l{QML Web Browser}
+ example for a demonstration of this.
- If the width or height is explictly set, the rendered website
- will be clipped, not scaled, to fit into the set dimensions.
+ The page to be displayed by the item is specified using the \l url property,
+ and this can be changed to fetch and display a new page. While the page loads,
+ the \l progress property is updated to indicate how much of the page has been
+ loaded.
- If the preferredWidth is set, the width will be this amount or larger,
- usually laying out the web content to fit the preferredWidth.
+ \section1 Appearance
- \qml
- import QtWebKit 1.0
+ If the width and height of the item is not set, they will dynamically adjust
+ to a size appropriate for the content. This width may be large for typical
+ online web pages, typically greater than 800 by 600 pixels.
- WebView {
- url: "http://www.nokia.com"
- preferredWidth: 490
- preferredHeight: 400
- scale: 0.5
- smooth: false
- smoothCache: true
- }
- \endqml
+ If the \l{Item::}{width} or \l{Item::}{height} is explictly set, the rendered Web site will be
+ clipped, not scaled, to fit into the set dimensions.
- \image webview.png
+ If the preferredWidth property is set, the width will be this amount or larger,
+ usually laying out the Web content to fit the preferredWidth.
- The item includes no scrolling, scaling,
- toolbars, etc., those must be implemented around WebView. See the WebBrowser example
- for a demonstration of this.
+ The appearance of the content can be controlled to a certain extent by changing
+ the settings.standardFontFamily property and other settings related to fonts.
+
+ The page can be zoomed by calling the heuristicZoom() method, which performs a
+ series of tests to determine whether zoomed content will be displayed in an
+ appropriate way in the space allocated to the item.
+
+ \section1 User Interaction and Navigation
+
+ By default, certain mouse and touch events are delivered to other items in
+ preference to the Web content. For example, when a scrolling view is created
+ by placing a WebView in a Flickable, move events are delivered to the Flickable
+ so that the user can scroll the page. This prevents the user from accidentally
+ selecting text in a Web page instead of scrolling.
+
+ The pressGrabTime property defines the time the user must touch or press a
+ mouse button over the WebView before the Web content will receive the move
+ events it needs to select text and images.
+
+ When this item has keyboard focus, all keyboard input will be sent directly to
+ the Web page within.
+
+ When the navigates by clicking on links, the item records the pages visited
+ in its internal history
+
+ Because this item is designed to be used as a component in a browser, it
+ exposes \l{Action}{actions} for \l back, \l forward, \l reload and \l stop.
+ These can be triggered to change the current page displayed by the item.
+
+ \section1 Example Usage
+
+ \beginfloatright
+ \inlineimage webview.png
+ \endfloat
+
+ The following example displays a scaled down Web page at a fixed size.
+
+ \snippet doc/src/snippets/declarative/webview/webview.qml document
- When this item has keyboard focus, all keyboard input will be sent directly to the
- web page within.
+ \clearfloat
\sa {declarative/modelviews/webview}{WebView example}, {demos/declarative/webbrowser}{Web Browser demo}
*/
@@ -389,7 +423,7 @@ void QDeclarativeWebView::setPreferredHeight(int height)
}
/*!
- \qmlmethod bool WebView::evaluateJavaScript(string)
+ \qmlmethod bool WebView::evaluateJavaScript(string scriptSource)
Evaluates the \a scriptSource JavaScript inside the context of the
main web frame, and returns the result of the last executed statement.
@@ -513,14 +547,14 @@ void QDeclarativeWebView::setRenderingEnabled(bool enabled)
}
/*!
- \qmlsignal WebView::onDoubleClick(clickx, clicky)
+ \qmlsignal WebView::onDoubleClick(int clickx, int clicky)
The WebView does not pass double-click events to the web engine, but rather
emits this signals.
*/
/*!
- \qmlmethod bool WebView::heuristicZoom(clickX,clickY,maxzoom)
+ \qmlmethod bool WebView::heuristicZoom(int clickX, int clickY, real maxzoom)
Finds a zoom that:
\list
@@ -555,11 +589,11 @@ bool QDeclarativeWebView::heuristicZoom(int clickX, int clickY, qreal maxZoom)
\qmlproperty int WebView::pressGrabTime
The number of milliseconds the user must press before the WebView
- starts passing move events through to the web engine (rather than
+ starts passing move events through to the Web engine (rather than
letting other QML elements such as a Flickable take them).
Defaults to 400ms. Set to 0 to always grab and pass move events to
- the web engine.
+ the Web engine.
*/
int QDeclarativeWebView::pressGrabTime() const
{
@@ -976,7 +1010,7 @@ QString QDeclarativeWebPage::chooseFile(QWebFrame* originatingFrame, const QStri
}
/*!
- \qmlsignal WebView::onAlert(message)
+ \qmlsignal WebView::onAlert(string message)
The handler is called when the web engine sends a JavaScript alert. The \a message is the text
to be displayed in the alert to the user.
diff --git a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
index d8cf06c121..4594d1eec3 100644
--- a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
+++ b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
@@ -2,4 +2,4 @@ QT_WEBKIT_VERSION = 4.7.0
QT_WEBKIT_MAJOR_VERSION = 4
QT_WEBKIT_MINOR_VERSION = 7
QT_WEBKIT_PATCH_VERSION = 0
-QT_CONFIG *= webkit
+QT_CONFIG += webkit
diff --git a/src/activeqt/control/qaxserverbase.cpp b/src/activeqt/control/qaxserverbase.cpp
index ca16b397e0..d8e7ea3ff5 100644
--- a/src/activeqt/control/qaxserverbase.cpp
+++ b/src/activeqt/control/qaxserverbase.cpp
@@ -2730,6 +2730,19 @@ HRESULT WINAPI QAxServerBase::Load(IStream *pStm)
qtarray.resize(stat.cbSize.LowPart);
ULONG read;
pStm->Read(qtarray.data(), stat.cbSize.LowPart, &read);
+ } else if (hres == E_NOTIMPL) {
+ ULONG read = 0;
+ while (hres != S_FALSE) {
+ QByteArray arrayRead;
+ arrayRead.resize(4098);
+ hres = pStm->Read(arrayRead.data(), arrayRead.size(), &read);
+ if (hres != S_OK && hres != S_FALSE) {
+ qtarray.resize(0);
+ break;
+ } else if (read == 0)
+ break;
+ qtarray.append(arrayRead);
+ }
}
const QMetaObject *mo = qt.object->metaObject();
diff --git a/src/activeqt/shared/qaxtypes.cpp b/src/activeqt/shared/qaxtypes.cpp
index 0cfc7eb81f..957733e534 100644
--- a/src/activeqt/shared/qaxtypes.cpp
+++ b/src/activeqt/shared/qaxtypes.cpp
@@ -52,7 +52,7 @@
#include <qobject.h>
#ifdef QAX_SERVER
# include <qaxfactory.h>
-# include <qlibrary.h>
+# include <private/qsystemlibrary_p.h>
#else
# include <quuid.h>
# include <qaxobject.h>
@@ -666,7 +666,7 @@ bool QVariantToVARIANT(const QVariant &var, VARIANT &arg, const QByteArray &type
static bool resolved = false;
if (!resolved) {
resolved = true;
- pGetRecordInfoFromTypeInfo = (PGetRecordInfoFromTypeInfo)QLibrary::resolve(QLatin1String("oleaut32"),
+ pGetRecordInfoFromTypeInfo = (PGetRecordInfoFromTypeInfo)QSystemLibrary::resolve(QLatin1String("oleaut32"),
"GetRecordInfoFromTypeInfo");
}
if (!pGetRecordInfoFromTypeInfo)
diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri
index 758c5ee323..dbbabf471a 100644
--- a/src/corelib/global/global.pri
+++ b/src/corelib/global/global.pri
@@ -23,7 +23,7 @@ INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global
# Only used on platforms with CONFIG += precompile_header
PRECOMPILED_HEADER = global/qt_pch.h
-linux*-g++*:!static {
+linux*:!static:!linux-armcc:!linux-gcce {
QMAKE_LFLAGS += -Wl,-e,qt_core_boilerplate
prog=$$quote(if (/program interpreter: (.*)]/) { print $1; })
DEFINES += ELF_INTERPRETER=\\\"$$system(readelf -l /bin/ls | perl -n -e \'$$prog\')\\\"
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index 65699f6def..ec7eef23bc 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -1837,6 +1837,7 @@ QSysInfo::S60Version QSysInfo::s60Version()
CDir* contents;
TInt err = fileFinder.FindWildByDir(qt_S60Filter, qt_S60SystemInstallDir, contents);
if (err == KErrNone) {
+ QScopedPointer<CDir> contentsDeleter(contents);
err = contents->Sort(EDescending|ESortByName);
if (err == KErrNone && contents->Count() > 0 && (*contents)[0].iName.Length() >= 12) {
TInt major = (*contents)[0].iName[9] - '0';
@@ -1859,7 +1860,6 @@ QSysInfo::S60Version QSysInfo::s60Version()
}
}
}
- delete contents;
}
# ifdef Q_CC_NOKIAX86
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index ea7e2e4d48..957abbfe60 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -66,6 +66,8 @@ QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
+extern void qDumpCPUFeatures(); // in qsimd.cpp
+
#ifndef QT_NO_SETTINGS
struct QLibrarySettings
@@ -508,6 +510,14 @@ void qt_core_boilerplate()
"Contact: Nokia Corporation (qt-info@nokia.com)\n"
"\n"
"Build key: " QT_BUILD_KEY "\n"
+ "Compat build key: "
+#ifdef QT_BUILD_KEY_COMPAT
+ "| " QT_BUILD_KEY_COMPAT " "
+#endif
+#ifdef QT_BUILD_KEY_COMPAT2
+ "| " QT_BUILD_KEY_COMPAT2 " "
+#endif
+ "|\n"
"Build date: %s\n"
"Installation prefix: %s\n"
"Library path: %s\n"
@@ -517,6 +527,8 @@ void qt_core_boilerplate()
qt_configure_libraries_path_str + 12,
qt_configure_headers_path_str + 12);
+ QT_PREPEND_NAMESPACE(qDumpCPUFeatures)();
+
#ifdef QT_EVAL
extern void qt_core_eval_init(uint);
qt_core_eval_init(1);
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp
index e54d95e604..fcd17f7d20 100644
--- a/src/corelib/io/qdir.cpp
+++ b/src/corelib/io/qdir.cpp
@@ -82,20 +82,69 @@ static QString driveSpec(const QString &path)
//************* QDirPrivate
class QDirPrivate
+ : public QSharedData
{
- friend struct QScopedPointerDeleter<QDirPrivate>;
-
public:
- QDirPrivate(const QDir *copy = 0);
- ~QDirPrivate();
-
- void updateFileLists() const;
- void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *) const;
+ QDirPrivate(const QString &path,
+ const QStringList &nameFilters_ = QStringList(),
+ QDir::SortFlags sort_ = QDir::SortFlags(QDir::Name | QDir::IgnoreCase),
+ QDir::Filters filters_ = QDir::AllEntries)
+ : QSharedData()
+ , nameFilters(nameFilters_)
+ , sort(sort_)
+ , filters(filters_)
+#ifdef QT3_SUPPORT
+ , filterSepChar(0)
+ , matchAllDirs(false)
+#endif
+ , fileListsInitialized(false)
+ {
+ setPath(path.isEmpty() ? QString::fromLatin1(".") : path);
+
+ bool empty = nameFilters.isEmpty();
+ if (!empty) {
+ empty = true;
+ for (int i = 0; i < nameFilters.size(); ++i) {
+ if (!nameFilters.at(i).isEmpty()) {
+ empty = false;
+ break;
+ }
+ }
+ }
+ if (empty)
+ nameFilters = QStringList(QString::fromLatin1("*"));
+ }
+ QDirPrivate(const QDirPrivate &copy)
+ : QSharedData(copy)
+ , path(copy.path)
+ , nameFilters(copy.nameFilters)
+ , sort(copy.sort)
+ , filters(copy.filters)
#ifdef QT3_SUPPORT
- QChar filterSepChar;
- bool matchAllDirs;
+ , filterSepChar(copy.filterSepChar)
+ , matchAllDirs(copy.matchAllDirs)
#endif
+ , fileListsInitialized(false)
+ {
+ }
+
+ bool exists() const
+ {
+ const QAbstractFileEngine::FileFlags info =
+ fileEngine->fileFlags(QAbstractFileEngine::DirectoryType
+ | QAbstractFileEngine::ExistsFlag
+ | QAbstractFileEngine::Refresh);
+ if (!(info & QAbstractFileEngine::DirectoryType))
+ return false;
+ return info & QAbstractFileEngine::ExistsFlag;
+ }
+
+ void initFileEngine();
+ void initFileLists() const;
+
+ static void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *);
+
static inline QChar getFilterSepChar(const QString &nameFilter)
{
QChar sep(QLatin1Char(';'));
@@ -104,7 +153,9 @@ public:
sep = QChar(QLatin1Char(' '));
return sep;
}
- static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0) {
+
+ static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0)
+ {
if (sep == 0)
sep = getFilterSepChar(nameFilter);
QStringList ret = nameFilter.split(sep);
@@ -113,80 +164,46 @@ public:
return ret;
}
- struct Data {
- inline Data()
- : ref(1), fileEngine(0), listsDirty(1)
- {}
- inline Data(const Data &copy)
- : ref(1), path(copy.path), nameFilters(copy.nameFilters), sort(copy.sort),
- filters(copy.filters), fileEngine(0), listsDirty(1)
- {}
- inline ~Data()
- { delete fileEngine; }
-
- inline void clear() {
- listsDirty = 1;
- files.clear();
- fileInfos.clear();
- }
- mutable QAtomicInt ref;
-
- QString path;
- QStringList nameFilters;
- QDir::SortFlags sort;
- QDir::Filters filters;
-
- mutable QAbstractFileEngine *fileEngine;
-
- mutable uint listsDirty : 1;
- mutable QStringList files;
- mutable QFileInfoList fileInfos;
- } *data;
- inline void setPath(const QString &p)
+ inline void setPath(QString p)
{
- detach(false);
- QString path = p;
- if ((path.endsWith(QLatin1Char('/')) || path.endsWith(QLatin1Char('\\')))
- && path.length() > 1) {
+ if ((p.endsWith(QLatin1Char('/')) || p.endsWith(QLatin1Char('\\')))
+ && p.length() > 1) {
#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
- if (!(path.length() == 3 && path.at(1) == QLatin1Char(':')))
+ if (!(p.length() == 3 && p.at(1) == QLatin1Char(':')))
#endif
- path.truncate(path.length() - 1);
+ p.truncate(p.length() - 1);
}
- delete data->fileEngine;
- data->fileEngine = QAbstractFileEngine::create(path);
+ path = p;
+ initFileEngine();
// set the path to be the qt friendly version so then we can operate on it using just /
- data->path = data->fileEngine->fileName(QAbstractFileEngine::DefaultName);
- data->clear();
+ path = fileEngine->fileName(QAbstractFileEngine::DefaultName);
+ clearFileLists();
}
- inline void reset() {
- detach();
- data->clear();
+
+ inline void clearFileLists() {
+ fileListsInitialized = false;
+ files.clear();
+ fileInfos.clear();
}
- void detach(bool createFileEngine = true);
-};
-QDirPrivate::QDirPrivate(const QDir *copy)
+ QString path;
+ QStringList nameFilters;
+ QDir::SortFlags sort;
+ QDir::Filters filters;
+
#ifdef QT3_SUPPORT
- : filterSepChar(0), matchAllDirs(false)
+ QChar filterSepChar;
+ bool matchAllDirs;
#endif
-{
- if (copy) {
- copy->d_func()->data->ref.ref();
- data = copy->d_func()->data;
- } else {
- data = new QDirPrivate::Data;
- }
-}
-QDirPrivate::~QDirPrivate()
-{
- if (!data->ref.deref())
- delete data;
- data = 0;
-}
+ QScopedPointer<QAbstractFileEngine> fileEngine;
+
+ mutable bool fileListsInitialized;
+ mutable QStringList files;
+ mutable QFileInfoList fileInfos;
+};
/* For sorting */
struct QDirSortItem
@@ -269,7 +286,7 @@ bool QDirSortItemComparator::operator()(const QDirSortItem &n1, const QDirSortIt
}
inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l,
- QStringList *names, QFileInfoList *infos) const
+ QStringList *names, QFileInfoList *infos)
{
// names and infos are always empty lists or 0 here
int n = l.size();
@@ -299,28 +316,23 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l,
}
}
-inline void QDirPrivate::updateFileLists() const
+inline void QDirPrivate::initFileLists() const
{
- if (data->listsDirty) {
+ if (!fileListsInitialized) {
QFileInfoList l;
- QDirIterator it(data->path, data->nameFilters, data->filters);
+ QDirIterator it(path, nameFilters, filters);
while (it.hasNext()) {
it.next();
l.append(it.fileInfo());
}
- sortFileList(data->sort, l, &data->files, &data->fileInfos);
- data->listsDirty = 0;
+ sortFileList(sort, l, &files, &fileInfos);
+ fileListsInitialized = true;
}
}
-void QDirPrivate::detach(bool createFileEngine)
+inline void QDirPrivate::initFileEngine()
{
- qAtomicDetach(data);
- if (createFileEngine) {
- QAbstractFileEngine *newFileEngine = QAbstractFileEngine::create(data->path);
- delete data->fileEngine;
- data->fileEngine = newFileEngine;
- }
+ fileEngine.reset(QAbstractFileEngine::create(path));
}
/*!
@@ -504,13 +516,8 @@ void QDirPrivate::detach(bool createFileEngine)
\sa currentPath()
*/
-QDir::QDir(const QString &path) : d_ptr(new QDirPrivate)
+QDir::QDir(const QString &path) : d_ptr(new QDirPrivate(path))
{
- Q_D(QDir);
- d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path);
- d->data->nameFilters = QStringList(QString::fromLatin1("*"));
- d->data->filters = AllEntries;
- d->data->sort = SortFlags(Name | IgnoreCase);
}
/*!
@@ -532,25 +539,9 @@ QDir::QDir(const QString &path) : d_ptr(new QDirPrivate)
\sa exists(), setPath(), setNameFilter(), setFilter(), setSorting()
*/
QDir::QDir(const QString &path, const QString &nameFilter,
- SortFlags sort, Filters filters) : d_ptr(new QDirPrivate)
-{
- Q_D(QDir);
- d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path);
- d->data->nameFilters = QDir::nameFiltersFromString(nameFilter);
- bool empty = d->data->nameFilters.isEmpty();
- if (!empty) {
- empty = true;
- for (int i = 0; i < d->data->nameFilters.size(); ++i) {
- if (!d->data->nameFilters.at(i).isEmpty()) {
- empty = false;
- break;
- }
- }
- }
- if (empty)
- d->data->nameFilters = QStringList(QString::fromLatin1("*"));
- d->data->sort = sort;
- d->data->filters = filters;
+ SortFlags sort, Filters filters)
+ : d_ptr(new QDirPrivate(path, QDir::nameFiltersFromString(nameFilter), sort, filters))
+{
}
/*!
@@ -559,7 +550,8 @@ QDir::QDir(const QString &path, const QString &nameFilter,
\sa operator=()
*/
-QDir::QDir(const QDir &dir) : d_ptr(new QDirPrivate(&dir))
+QDir::QDir(const QDir &dir)
+ : d_ptr(dir.d_ptr)
{
}
@@ -589,8 +581,7 @@ QDir::~QDir()
*/
void QDir::setPath(const QString &path)
{
- Q_D(QDir);
- d->setPath(path);
+ d_ptr->setPath(path);
}
/*!
@@ -605,8 +596,8 @@ void QDir::setPath(const QString &path)
*/
QString QDir::path() const
{
- Q_D(const QDir);
- return d->data->path;
+ const QDirPrivate* d = d_ptr.constData();
+ return d->path;
}
/*!
@@ -619,8 +610,8 @@ QString QDir::path() const
*/
QString QDir::absolutePath() const
{
- Q_D(const QDir);
- QString ret = d->data->path;
+ const QDirPrivate* d = d_ptr.constData();
+ QString ret = d->path;
if (QDir::isRelativePath(ret))
ret = absoluteFilePath(QString::fromLatin1(""));
return cleanPath(ret);
@@ -644,11 +635,7 @@ QString QDir::absolutePath() const
*/
QString QDir::canonicalPath() const
{
- Q_D(const QDir);
-
- if (!d->data->fileEngine)
- return QLatin1String("");
- return cleanPath(d->data->fileEngine->fileName(QAbstractFileEngine::CanonicalName));
+ return cleanPath(d_ptr->fileEngine->fileName(QAbstractFileEngine::CanonicalName));
}
/*!
@@ -664,11 +651,11 @@ QString QDir::canonicalPath() const
*/
QString QDir::dirName() const
{
- Q_D(const QDir);
- int pos = d->data->path.lastIndexOf(QLatin1Char('/'));
+ const QDirPrivate* d = d_ptr.constData();
+ int pos = d->path.lastIndexOf(QLatin1Char('/'));
if (pos == -1)
- return d->data->path;
- return d->data->path.mid(pos + 1);
+ return d->path;
+ return d->path.mid(pos + 1);
}
/*!
@@ -682,11 +669,11 @@ QString QDir::dirName() const
*/
QString QDir::filePath(const QString &fileName) const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
if (isAbsolutePath(fileName))
return QString(fileName);
- QString ret = d->data->path;
+ QString ret = d->path;
if (!fileName.isEmpty()) {
if (!ret.isEmpty() && ret[(int)ret.length()-1] != QLatin1Char('/') && fileName[0] != QLatin1Char('/'))
ret += QLatin1Char('/');
@@ -705,21 +692,19 @@ QString QDir::filePath(const QString &fileName) const
*/
QString QDir::absoluteFilePath(const QString &fileName) const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
if (isAbsolutePath(fileName))
return fileName;
- if (!d->data->fileEngine)
- return fileName;
QString ret;
#ifndef QT_NO_FSFILEENGINE
- if (isRelativePath(d->data->path)) //get pwd
+ if (isRelativePath(d->path)) //get pwd
ret = QFSFileEngine::currentPath(fileName);
#endif
- if (!d->data->path.isEmpty() && d->data->path != QLatin1String(".")) {
+ if (!d->path.isEmpty() && d->path != QLatin1String(".")) {
if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/')))
ret += QLatin1Char('/');
- ret += d->data->path;
+ ret += d->path;
}
if (!fileName.isEmpty()) {
if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/')))
@@ -867,11 +852,12 @@ QString QDir::fromNativeSeparators(const QString &pathName)
*/
bool QDir::cd(const QString &dirName)
{
- Q_D(QDir);
+ // Don't detach just yet.
+ const QDirPrivate * const d = d_ptr.constData();
if (dirName.isEmpty() || dirName == QLatin1String("."))
return true;
- QString newPath = d->data->path;
+ QString newPath = d->path;
if (isAbsolutePath(dirName)) {
newPath = cleanPath(dirName);
} else {
@@ -884,7 +870,7 @@ bool QDir::cd(const QString &dirName)
newPath += dirName;
if (dirName.indexOf(QLatin1Char('/')) >= 0
- || d->data->path == QLatin1String(".")
+ || d->path == QLatin1String(".")
|| dirName == QLatin1String("..")) {
newPath = cleanPath(newPath);
/*
@@ -901,12 +887,13 @@ bool QDir::cd(const QString &dirName)
}
}
- QDir dir(*this);
- dir.setPath(newPath);
- if (!dir.exists())
+ QScopedPointer<QDirPrivate> dir(new QDirPrivate(*d_ptr.constData()));
+ dir->setPath(newPath);
+
+ if (!dir->exists())
return false;
- *this = dir;
+ d_ptr = dir.take();
return true;
}
@@ -930,9 +917,8 @@ bool QDir::cdUp()
*/
QStringList QDir::nameFilters() const
{
- Q_D(const QDir);
-
- return d->data->nameFilters;
+ const QDirPrivate* d = d_ptr.constData();
+ return d->nameFilters;
}
/*!
@@ -952,10 +938,11 @@ QStringList QDir::nameFilters() const
*/
void QDir::setNameFilters(const QStringList &nameFilters)
{
- Q_D(QDir);
+ QDirPrivate* d = d_ptr.data();
+ d->initFileEngine();
+ d->clearFileLists();
- d->reset();
- d->data->nameFilters = nameFilters;
+ d->nameFilters = nameFilters;
}
/*!
@@ -1058,9 +1045,8 @@ QStringList QDir::searchPaths(const QString &prefix)
*/
QDir::Filters QDir::filter() const
{
- Q_D(const QDir);
-
- return d->data->filters;
+ const QDirPrivate* d = d_ptr.constData();
+ return d->filters;
}
/*!
@@ -1141,10 +1127,11 @@ QDir::Filters QDir::filter() const
*/
void QDir::setFilter(Filters filters)
{
- Q_D(QDir);
+ QDirPrivate* d = d_ptr.data();
+ d->initFileEngine();
+ d->clearFileLists();
- d->reset();
- d->data->filters = filters;
+ d->filters = filters;
}
/*!
@@ -1154,9 +1141,8 @@ void QDir::setFilter(Filters filters)
*/
QDir::SortFlags QDir::sorting() const
{
- Q_D(const QDir);
-
- return d->data->sort;
+ const QDirPrivate* d = d_ptr.constData();
+ return d->sort;
}
/*!
@@ -1199,10 +1185,11 @@ QDir::SortFlags QDir::sorting() const
*/
void QDir::setSorting(SortFlags sort)
{
- Q_D(QDir);
+ QDirPrivate* d = d_ptr.data();
+ d->initFileEngine();
+ d->clearFileLists();
- d->reset();
- d->data->sort = sort;
+ d->sort = sort;
}
/*!
@@ -1214,10 +1201,9 @@ void QDir::setSorting(SortFlags sort)
*/
uint QDir::count() const
{
- Q_D(const QDir);
-
- d->updateFileLists();
- return d->data->files.count();
+ const QDirPrivate* d = d_ptr.constData();
+ d->initFileLists();
+ return d->files.count();
}
/*!
@@ -1229,10 +1215,9 @@ uint QDir::count() const
*/
QString QDir::operator[](int pos) const
{
- Q_D(const QDir);
-
- d->updateFileLists();
- return d->data->files[pos];
+ const QDirPrivate* d = d_ptr.constData();
+ d->initFileLists();
+ return d->files[pos];
}
/*!
@@ -1256,9 +1241,8 @@ QString QDir::operator[](int pos) const
*/
QStringList QDir::entryList(Filters filters, SortFlags sort) const
{
- Q_D(const QDir);
-
- return entryList(d->data->nameFilters, filters, sort);
+ const QDirPrivate* d = d_ptr.constData();
+ return entryList(d->nameFilters, filters, sort);
}
@@ -1280,9 +1264,8 @@ QStringList QDir::entryList(Filters filters, SortFlags sort) const
*/
QFileInfoList QDir::entryInfoList(Filters filters, SortFlags sort) const
{
- Q_D(const QDir);
-
- return entryInfoList(d->data->nameFilters, filters, sort);
+ const QDirPrivate* d = d_ptr.constData();
+ return entryInfoList(d->nameFilters, filters, sort);
}
/*!
@@ -1304,24 +1287,24 @@ QFileInfoList QDir::entryInfoList(Filters filters, SortFlags sort) const
QStringList QDir::entryList(const QStringList &nameFilters, Filters filters,
SortFlags sort) const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
if (filters == NoFilter)
- filters = d->data->filters;
+ filters = d->filters;
#ifdef QT3_SUPPORT
if (d->matchAllDirs)
filters |= AllDirs;
#endif
if (sort == NoSort)
- sort = d->data->sort;
+ sort = d->sort;
- if (filters == d->data->filters && sort == d->data->sort && nameFilters == d->data->nameFilters) {
- d->updateFileLists();
- return d->data->files;
+ if (filters == d->filters && sort == d->sort && nameFilters == d->nameFilters) {
+ d->initFileLists();
+ return d->files;
}
QFileInfoList l;
- QDirIterator it(d->data->path, nameFilters, filters);
+ QDirIterator it(d->path, nameFilters, filters);
while (it.hasNext()) {
it.next();
l.append(it.fileInfo());
@@ -1350,24 +1333,24 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters,
QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filters,
SortFlags sort) const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
if (filters == NoFilter)
- filters = d->data->filters;
+ filters = d->filters;
#ifdef QT3_SUPPORT
if (d->matchAllDirs)
filters |= AllDirs;
#endif
if (sort == NoSort)
- sort = d->data->sort;
+ sort = d->sort;
- if (filters == d->data->filters && sort == d->data->sort && nameFilters == d->data->nameFilters) {
- d->updateFileLists();
- return d->data->fileInfos;
+ if (filters == d->filters && sort == d->sort && nameFilters == d->nameFilters) {
+ d->initFileLists();
+ return d->fileInfos;
}
QFileInfoList l;
- QDirIterator it(d->data->path, nameFilters, filters);
+ QDirIterator it(d->path, nameFilters, filters);
while (it.hasNext()) {
it.next();
l.append(it.fileInfo());
@@ -1386,17 +1369,15 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter
*/
bool QDir::mkdir(const QString &dirName) const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
if (dirName.isEmpty()) {
qWarning("QDir::mkdir: Empty or null file name(s)");
return false;
}
- if (!d->data->fileEngine)
- return false;
QString fn = filePath(dirName);
- return d->data->fileEngine->mkdir(fn, false);
+ return d->fileEngine->mkdir(fn, false);
}
/*!
@@ -1410,17 +1391,15 @@ bool QDir::mkdir(const QString &dirName) const
*/
bool QDir::rmdir(const QString &dirName) const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
if (dirName.isEmpty()) {
qWarning("QDir::rmdir: Empty or null file name(s)");
return false;
}
- if (!d->data->fileEngine)
- return false;
QString fn = filePath(dirName);
- return d->data->fileEngine->rmdir(fn, false);
+ return d->fileEngine->rmdir(fn, false);
}
/*!
@@ -1435,17 +1414,15 @@ bool QDir::rmdir(const QString &dirName) const
*/
bool QDir::mkpath(const QString &dirPath) const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
if (dirPath.isEmpty()) {
qWarning("QDir::mkpath: Empty or null file name(s)");
return false;
}
- if (!d->data->fileEngine)
- return false;
QString fn = filePath(dirPath);
- return d->data->fileEngine->mkdir(fn, true);
+ return d->fileEngine->mkdir(fn, true);
}
/*!
@@ -1461,17 +1438,15 @@ bool QDir::mkpath(const QString &dirPath) const
*/
bool QDir::rmpath(const QString &dirPath) const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
if (dirPath.isEmpty()) {
qWarning("QDir::rmpath: Empty or null file name(s)");
return false;
}
- if (!d->data->fileEngine)
- return false;
QString fn = filePath(dirPath);
- return d->data->fileEngine->rmdir(fn, true);
+ return d->fileEngine->rmdir(fn, true);
}
/*!
@@ -1485,12 +1460,10 @@ bool QDir::rmpath(const QString &dirPath) const
*/
bool QDir::isReadable() const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
- if (!d->data->fileEngine)
- return false;
const QAbstractFileEngine::FileFlags info =
- d->data->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType
+ d->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType
| QAbstractFileEngine::PermsMask);
if (!(info & QAbstractFileEngine::DirectoryType))
return false;
@@ -1510,17 +1483,7 @@ bool QDir::isReadable() const
*/
bool QDir::exists() const
{
- Q_D(const QDir);
-
- if (!d->data->fileEngine)
- return false;
- const QAbstractFileEngine::FileFlags info =
- d->data->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType
- | QAbstractFileEngine::ExistsFlag
- | QAbstractFileEngine::Refresh);
- if (!(info & QAbstractFileEngine::DirectoryType))
- return false;
- return info & QAbstractFileEngine::ExistsFlag;
+ return d_ptr->exists();
}
/*!
@@ -1537,11 +1500,7 @@ bool QDir::exists() const
*/
bool QDir::isRoot() const
{
- Q_D(const QDir);
-
- if (!d->data->fileEngine)
- return true;
- return d->data->fileEngine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::RootFlag;
+ return d_ptr->fileEngine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::RootFlag;
}
/*!
@@ -1571,11 +1530,7 @@ bool QDir::isRoot() const
*/
bool QDir::isRelative() const
{
- Q_D(const QDir);
-
- if (!d->data->fileEngine)
- return false;
- return d->data->fileEngine->isRelativePath();
+ return d_ptr->fileEngine->isRelativePath();
}
@@ -1588,18 +1543,17 @@ bool QDir::isRelative() const
*/
bool QDir::makeAbsolute() // ### What do the return values signify?
{
- Q_D(QDir);
-
- if (!d->data->fileEngine)
- return false;
- QString absolutePath = d->data->fileEngine->fileName(QAbstractFileEngine::AbsoluteName);
+ QString absolutePath = d_ptr.constData()->fileEngine->fileName(QAbstractFileEngine::AbsoluteName);
if (QDir::isRelativePath(absolutePath))
return false;
- d->detach();
- d->data->path = absolutePath;
- d->data->fileEngine->setFileName(absolutePath);
- if (!(d->data->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType))
+
+ QScopedPointer<QDirPrivate> dir(new QDirPrivate(*d_ptr.constData()));
+ dir->setPath(absolutePath);
+
+ if (!(dir->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType))
return false;
+
+ d_ptr = dir.take();
return true;
}
@@ -1614,19 +1568,18 @@ bool QDir::makeAbsolute() // ### What do the return values signify?
*/
bool QDir::operator==(const QDir &dir) const
{
- const QDirPrivate *d = d_func();
- const QDirPrivate *other = dir.d_func();
+ const QDirPrivate *d = d_ptr.constData();
+ const QDirPrivate *other = dir.d_ptr.constData();
- if (d->data == other->data)
+ if (d == other)
return true;
- Q_ASSERT(d->data->fileEngine && other->data->fileEngine);
- if (d->data->fileEngine->caseSensitive() != other->data->fileEngine->caseSensitive())
+ if (d->fileEngine->caseSensitive() != other->fileEngine->caseSensitive())
return false;
- if (d->data->filters == other->data->filters
- && d->data->sort == other->data->sort
- && d->data->nameFilters == other->data->nameFilters) {
+ if (d->filters == other->filters
+ && d->sort == other->sort
+ && d->nameFilters == other->nameFilters) {
QString dir1 = absolutePath(), dir2 = dir.absolutePath();
- if (!other->data->fileEngine->caseSensitive())
+ if (!other->fileEngine->caseSensitive())
return (dir1.toLower() == dir2.toLower());
return (dir1 == dir2);
@@ -1641,11 +1594,7 @@ bool QDir::operator==(const QDir &dir) const
*/
QDir &QDir::operator=(const QDir &dir)
{
- if (this == &dir)
- return *this;
-
- Q_D(QDir);
- qAtomicAssign(d->data, dir.d_func()->data);
+ d_ptr = dir.d_ptr;
return *this;
}
@@ -1659,9 +1608,7 @@ QDir &QDir::operator=(const QDir &dir)
*/
QDir &QDir::operator=(const QString &path)
{
- Q_D(QDir);
-
- d->setPath(path);
+ d_ptr->setPath(path);
return *this;
}
@@ -1705,14 +1652,10 @@ bool QDir::remove(const QString &fileName)
*/
bool QDir::rename(const QString &oldName, const QString &newName)
{
- Q_D(QDir);
-
if (oldName.isEmpty() || newName.isEmpty()) {
qWarning("QDir::rename: Empty or null file name(s)");
return false;
}
- if (!d->data->fileEngine)
- return false;
QFile file(filePath(oldName));
if (!file.exists())
@@ -2150,9 +2093,9 @@ bool QDir::isRelativePath(const QString &path)
*/
void QDir::refresh() const
{
- Q_D(const QDir);
-
- const_cast<QDirPrivate *>(d)->reset();
+ QDirPrivate *d = const_cast<QDir*>(this)->d_ptr.data();
+ d->initFileEngine();
+ d->clearFileLists();
}
/*!
@@ -2228,7 +2171,7 @@ QStringList QDir::nameFiltersFromString(const QString &nameFilter)
*/
bool QDir::matchAllDirs() const
{
- Q_D(const QDir);
+ const QDirPrivate* d = d_ptr.constData();
return d->matchAllDirs;
}
@@ -2240,9 +2183,10 @@ bool QDir::matchAllDirs() const
*/
void QDir::setMatchAllDirs(bool on)
{
- Q_D(QDir);
+ QDirPrivate* d = d_ptr.data();
+ d->initFileEngine();
+ d->clearFileLists();
- d->reset();
d->matchAllDirs = on;
}
@@ -2251,8 +2195,7 @@ void QDir::setMatchAllDirs(bool on)
*/
QString QDir::nameFilter() const
{
- Q_D(const QDir);
-
+ const QDirPrivate* d = d_ptr.constData();
return nameFilters().join(QString(d->filterSepChar));
}
@@ -2278,10 +2221,12 @@ QString QDir::nameFilter() const
*/
void QDir::setNameFilter(const QString &nameFilter)
{
- Q_D(QDir);
+ QDirPrivate* d = d_ptr.data();
+ d->initFileEngine();
+ d->clearFileLists();
d->filterSepChar = QDirPrivate::getFilterSepChar(nameFilter);
- setNameFilters(QDirPrivate::splitFilters(nameFilter, d->filterSepChar));
+ d->nameFilters = QDirPrivate::splitFilters(nameFilter, d->filterSepChar);
}
/*!
diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h
index 28da271818..7e5fbac420 100644
--- a/src/corelib/io/qdir.h
+++ b/src/corelib/io/qdir.h
@@ -45,7 +45,7 @@
#include <QtCore/qstring.h>
#include <QtCore/qfileinfo.h>
#include <QtCore/qstringlist.h>
-#include <QtCore/qscopedpointer.h>
+#include <QtCore/qshareddata.h>
QT_BEGIN_HEADER
@@ -58,9 +58,8 @@ class QDirPrivate;
class Q_CORE_EXPORT QDir
{
protected:
- QScopedPointer<QDirPrivate> d_ptr;
-private:
- Q_DECLARE_PRIVATE(QDir)
+ QSharedDataPointer<QDirPrivate> d_ptr;
+
public:
enum Filter { Dirs = 0x001,
Files = 0x002,
diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp
index 61f7180c74..7eca212463 100644
--- a/src/corelib/io/qfileinfo.cpp
+++ b/src/corelib/io/qfileinfo.cpp
@@ -47,59 +47,27 @@
QT_BEGIN_NAMESPACE
-QFileInfoPrivate::QFileInfoPrivate(const QFileInfo *copy)
-{
- if (copy) {
- copy->d_func()->data->ref.ref();
- data = copy->d_func()->data;
- } else {
- data = new QFileInfoPrivate::Data;
- }
-}
-
-QFileInfoPrivate::~QFileInfoPrivate()
-{
- if (!data->ref.deref())
- delete data;
- data = 0;
-}
-
-void QFileInfoPrivate::initFileEngine(const QString &file)
-{
- detach();
- delete data->fileEngine;
- data->fileEngine = 0;
- data->clear();
- data->fileEngine = QAbstractFileEngine::create(file);
- data->fileName = file;
-}
-
-void QFileInfoPrivate::detach()
-{
- qAtomicDetach(data);
-}
-
QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const
{
- if (data->cache_enabled && !data->fileNames[(int)name].isNull())
- return data->fileNames[(int)name];
- QString ret = data->fileEngine->fileName(name);
+ if (cache_enabled && !fileNames[(int)name].isNull())
+ return fileNames[(int)name];
+ QString ret = fileEngine->fileName(name);
if (ret.isNull())
ret = QLatin1String("");
- if (data->cache_enabled)
- data->fileNames[(int)name] = ret;
+ if (cache_enabled)
+ fileNames[(int)name] = ret;
return ret;
}
QString QFileInfoPrivate::getFileOwner(QAbstractFileEngine::FileOwner own) const
{
- if (data->cache_enabled && !data->fileOwners[(int)own].isNull())
- return data->fileOwners[(int)own];
- QString ret = data->fileEngine->owner(own);
+ if (cache_enabled && !fileOwners[(int)own].isNull())
+ return fileOwners[(int)own];
+ QString ret = fileEngine->owner(own);
if (ret.isNull())
ret = QLatin1String("");
- if (data->cache_enabled)
- data->fileOwners[(int)own] = ret;
+ if (cache_enabled)
+ fileOwners[(int)own] = ret;
return ret;
}
@@ -118,7 +86,7 @@ uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) cons
uint cachedFlags = 0;
if (request & (QAbstractFileEngine::FlagsMask | QAbstractFileEngine::TypesMask)) {
- if (!data->getCachedFlag(CachedFileFlags)) {
+ if (!getCachedFlag(CachedFileFlags)) {
req |= QAbstractFileEngine::FlagsMask;
req |= QAbstractFileEngine::TypesMask;
req &= (~QAbstractFileEngine::LinkType);
@@ -128,14 +96,14 @@ uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) cons
}
if (request & QAbstractFileEngine::LinkType) {
- if (!data->getCachedFlag(CachedLinkTypeFlag)) {
+ if (!getCachedFlag(CachedLinkTypeFlag)) {
req |= QAbstractFileEngine::LinkType;
cachedFlags |= CachedLinkTypeFlag;
}
}
if (request & QAbstractFileEngine::BundleType) {
- if (!data->getCachedFlag(CachedBundleTypeFlag)) {
+ if (!getCachedFlag(CachedBundleTypeFlag)) {
req |= QAbstractFileEngine::BundleType;
cachedFlags |= CachedBundleTypeFlag;
}
@@ -143,30 +111,30 @@ uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) cons
}
if (request & QAbstractFileEngine::PermsMask) {
- if (!data->getCachedFlag(CachedPerms)) {
+ if (!getCachedFlag(CachedPerms)) {
req |= QAbstractFileEngine::PermsMask;
cachedFlags |= CachedPerms;
}
}
if (req) {
- if (data->cache_enabled)
+ if (cache_enabled)
req &= (~QAbstractFileEngine::Refresh);
else
req |= QAbstractFileEngine::Refresh;
- QAbstractFileEngine::FileFlags flags = data->fileEngine->fileFlags(req);
- data->fileFlags |= uint(flags);
- data->setCachedFlag(cachedFlags);
+ QAbstractFileEngine::FileFlags flags = fileEngine->fileFlags(req);
+ fileFlags |= uint(flags);
+ setCachedFlag(cachedFlags);
}
- return data->fileFlags & request;
+ return fileFlags & request;
}
QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) const
{
- if (!data->cache_enabled)
- data->clearFlags();
+ if (!cache_enabled)
+ clearFlags();
uint cf;
if (request == QAbstractFileEngine::CreationTime)
cf = CachedCTime;
@@ -174,11 +142,11 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request)
cf = CachedMTime;
else
cf = CachedATime;
- if (!data->getCachedFlag(cf)) {
- data->fileTimes[request] = data->fileEngine->fileTime(request);
- data->setCachedFlag(cf);
+ if (!getCachedFlag(cf)) {
+ fileTimes[request] = fileEngine->fileTime(request);
+ setCachedFlag(cf);
}
- return data->fileTimes[request];
+ return fileTimes[request];
}
//************* QFileInfo
@@ -285,9 +253,8 @@ QFileInfo::QFileInfo() : d_ptr(new QFileInfoPrivate())
\sa setFile(), isRelative(), QDir::setCurrent(), QDir::isRelativePath()
*/
-QFileInfo::QFileInfo(const QString &file) : d_ptr(new QFileInfoPrivate())
+QFileInfo::QFileInfo(const QString &file) : d_ptr(new QFileInfoPrivate(file))
{
- d_ptr->initFileEngine(file);
}
/*!
@@ -299,9 +266,8 @@ QFileInfo::QFileInfo(const QString &file) : d_ptr(new QFileInfoPrivate())
\sa isRelative()
*/
-QFileInfo::QFileInfo(const QFile &file) : d_ptr(new QFileInfoPrivate())
+QFileInfo::QFileInfo(const QFile &file) : d_ptr(new QFileInfoPrivate(file.fileName()))
{
- d_ptr->initFileEngine(file.fileName());
}
/*!
@@ -316,15 +282,16 @@ QFileInfo::QFileInfo(const QFile &file) : d_ptr(new QFileInfoPrivate())
\sa isRelative()
*/
-QFileInfo::QFileInfo(const QDir &dir, const QString &file) : d_ptr(new QFileInfoPrivate())
+QFileInfo::QFileInfo(const QDir &dir, const QString &file)
+ : d_ptr(new QFileInfoPrivate(dir.filePath(file)))
{
- d_ptr->initFileEngine(dir.filePath(file));
}
/*!
Constructs a new QFileInfo that is a copy of the given \a fileinfo.
*/
-QFileInfo::QFileInfo(const QFileInfo &fileinfo) : d_ptr(new QFileInfoPrivate(&fileinfo))
+QFileInfo::QFileInfo(const QFileInfo &fileinfo)
+ : d_ptr(fileinfo.d_ptr)
{
}
@@ -359,17 +326,17 @@ bool QFileInfo::operator==(const QFileInfo &fileinfo) const
Q_D(const QFileInfo);
// ### Qt 5: understand long and short file names on Windows
// ### (GetFullPathName()).
- if (fileinfo.d_func()->data == d->data)
+ if (fileinfo.d_ptr == d_ptr)
return true;
- if (!d->data->fileEngine || !fileinfo.d_func()->data->fileEngine)
+ if (d->isDefaultConstructed || fileinfo.d_ptr->isDefaultConstructed)
return false;
- if (d->data->fileEngine->caseSensitive() != fileinfo.d_func()->data->fileEngine->caseSensitive())
+ if (d->fileEngine->caseSensitive() != fileinfo.d_ptr->fileEngine->caseSensitive())
return false;
if (fileinfo.size() == size()) { //if the size isn't the same...
QString file1 = canonicalFilePath(),
file2 = fileinfo.canonicalFilePath();
if (file1.length() == file2.length()) {
- if (!fileinfo.d_func()->data->fileEngine->caseSensitive()) {
+ if (!fileinfo.d_ptr->fileEngine->caseSensitive()) {
for (int i = 0; i < file1.length(); i++) {
if (file1.at(i).toLower() != file2.at(i).toLower())
return false;
@@ -407,8 +374,7 @@ bool QFileInfo::operator==(const QFileInfo &fileinfo)
*/
QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo)
{
- Q_D(QFileInfo);
- qAtomicAssign(d->data, fileinfo.d_func()->data);
+ d_ptr = fileinfo.d_ptr;
return *this;
}
@@ -429,7 +395,9 @@ QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo)
*/
void QFileInfo::setFile(const QString &file)
{
+ bool caching = d_ptr.constData()->cache_enabled;
*this = QFileInfo(file);
+ d_ptr->cache_enabled = caching;
}
/*!
@@ -445,7 +413,7 @@ void QFileInfo::setFile(const QString &file)
*/
void QFileInfo::setFile(const QFile &file)
{
- *this = QFileInfo(file.fileName());
+ setFile(file.fileName());
}
/*!
@@ -461,7 +429,7 @@ void QFileInfo::setFile(const QFile &file)
*/
void QFileInfo::setFile(const QDir &dir, const QString &file)
{
- *this = QFileInfo(dir.filePath(file));
+ setFile(dir.filePath(file));
}
/*!
@@ -488,7 +456,7 @@ void QFileInfo::setFile(const QDir &dir, const QString &file)
QString QFileInfo::absoluteFilePath() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::AbsoluteName);
}
@@ -505,7 +473,7 @@ QString QFileInfo::absoluteFilePath() const
QString QFileInfo::canonicalFilePath() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::CanonicalName);
}
@@ -532,9 +500,9 @@ QString QFileInfo::absolutePath() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine) {
+ if (d->isDefaultConstructed) {
return QLatin1String("");
- } else if (d->data->fileName.isEmpty()) {
+ } else if (d->fileName.isEmpty()) {
qWarning("QFileInfo::absolutePath: Constructed with empty filename");
return QLatin1String("");
}
@@ -552,7 +520,7 @@ QString QFileInfo::absolutePath() const
QString QFileInfo::canonicalPath() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::CanonicalPathName);
}
@@ -569,7 +537,7 @@ QString QFileInfo::canonicalPath() const
QString QFileInfo::path() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::PathName);
}
@@ -593,9 +561,9 @@ QString QFileInfo::path() const
bool QFileInfo::isRelative() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return true;
- return d->data->fileEngine->isRelativePath();
+ return d->fileEngine->isRelativePath();
}
/*!
@@ -607,11 +575,13 @@ bool QFileInfo::isRelative() const
*/
bool QFileInfo::makeAbsolute()
{
- Q_D(QFileInfo);
- if (!d->data->fileEngine || !d->data->fileEngine->isRelativePath())
+ if (d_ptr.constData()->isDefaultConstructed
+ || !d_ptr.constData()->fileEngine->isRelativePath())
return false;
- QString absFileName = d->getFileName(QAbstractFileEngine::AbsoluteName);
- d->initFileEngine(absFileName);
+ QString absFileName = d_ptr.constData()->getFileName(QAbstractFileEngine::AbsoluteName);
+ // QSharedDataPointer::operator->() will detach.
+
+ setFile(absFileName);
return true;
}
@@ -624,7 +594,7 @@ bool QFileInfo::makeAbsolute()
bool QFileInfo::exists() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::ExistsFlag);
}
@@ -639,7 +609,7 @@ bool QFileInfo::exists() const
void QFileInfo::refresh()
{
Q_D(QFileInfo);
- d->reset();
+ d->clear();
}
/*!
@@ -651,7 +621,7 @@ void QFileInfo::refresh()
QString QFileInfo::filePath() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::DefaultName);
}
@@ -670,7 +640,7 @@ QString QFileInfo::filePath() const
QString QFileInfo::fileName() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::BaseName);
}
@@ -690,7 +660,7 @@ QString QFileInfo::fileName() const
QString QFileInfo::bundleName() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::BundleName);
}
@@ -714,7 +684,7 @@ QString QFileInfo::bundleName() const
QString QFileInfo::baseName() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::BaseName).section(QLatin1Char('.'), 0, 0);
}
@@ -733,7 +703,7 @@ QString QFileInfo::baseName() const
QString QFileInfo::completeBaseName() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
QString name = d->getFileName(QAbstractFileEngine::BaseName);
int index = name.lastIndexOf(QLatin1Char('.'));
@@ -754,7 +724,7 @@ QString QFileInfo::completeBaseName() const
QString QFileInfo::completeSuffix() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
QString fileName = d->getFileName(QAbstractFileEngine::BaseName);
int firstDot = fileName.indexOf(QLatin1Char('.'));
@@ -781,7 +751,7 @@ QString QFileInfo::completeSuffix() const
QString QFileInfo::suffix() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
QString fileName = d->getFileName(QAbstractFileEngine::BaseName);
int lastDot = fileName.lastIndexOf(QLatin1Char('.'));
@@ -846,7 +816,7 @@ QDir QFileInfo::dir(bool absPath) const
bool QFileInfo::isReadable() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::ReadUserPerm);
}
@@ -859,7 +829,7 @@ bool QFileInfo::isReadable() const
bool QFileInfo::isWritable() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::WriteUserPerm);
}
@@ -872,7 +842,7 @@ bool QFileInfo::isWritable() const
bool QFileInfo::isExecutable() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::ExeUserPerm);
}
@@ -886,7 +856,7 @@ bool QFileInfo::isExecutable() const
bool QFileInfo::isHidden() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::HiddenFlag);
}
@@ -901,7 +871,7 @@ bool QFileInfo::isHidden() const
bool QFileInfo::isFile() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::FileType);
}
@@ -915,7 +885,7 @@ bool QFileInfo::isFile() const
bool QFileInfo::isDir() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::DirectoryType);
}
@@ -931,7 +901,7 @@ bool QFileInfo::isDir() const
bool QFileInfo::isBundle() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::BundleType);
}
@@ -956,7 +926,7 @@ bool QFileInfo::isBundle() const
bool QFileInfo::isSymLink() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::LinkType);
}
@@ -969,7 +939,7 @@ bool QFileInfo::isSymLink() const
bool QFileInfo::isRoot() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return true;
return d->getFileFlags(QAbstractFileEngine::RootFlag);
}
@@ -997,7 +967,7 @@ bool QFileInfo::isRoot() const
QString QFileInfo::readLink() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileName(QAbstractFileEngine::LinkName);
}
@@ -1015,7 +985,7 @@ QString QFileInfo::readLink() const
QString QFileInfo::owner() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileOwner(QAbstractFileEngine::OwnerUser);
}
@@ -1031,9 +1001,9 @@ QString QFileInfo::owner() const
uint QFileInfo::ownerId() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return 0;
- return d->data->fileEngine->ownerId(QAbstractFileEngine::OwnerUser);
+ return d->fileEngine->ownerId(QAbstractFileEngine::OwnerUser);
}
/*!
@@ -1049,7 +1019,7 @@ uint QFileInfo::ownerId() const
QString QFileInfo::group() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QLatin1String("");
return d->getFileOwner(QAbstractFileEngine::OwnerGroup);
}
@@ -1065,9 +1035,9 @@ QString QFileInfo::group() const
uint QFileInfo::groupId() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return 0;
- return d->data->fileEngine->ownerId(QAbstractFileEngine::OwnerGroup);
+ return d->fileEngine->ownerId(QAbstractFileEngine::OwnerGroup);
}
/*!
@@ -1086,7 +1056,7 @@ uint QFileInfo::groupId() const
bool QFileInfo::permission(QFile::Permissions permissions) const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return false;
return d->getFileFlags(QAbstractFileEngine::FileFlags((int)permissions)) == (uint)permissions;
}
@@ -1098,7 +1068,7 @@ bool QFileInfo::permission(QFile::Permissions permissions) const
QFile::Permissions QFileInfo::permissions() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return 0;
return QFile::Permissions(d->getFileFlags(QAbstractFileEngine::PermsMask) & QAbstractFileEngine::PermsMask);
}
@@ -1113,13 +1083,13 @@ QFile::Permissions QFileInfo::permissions() const
qint64 QFileInfo::size() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return 0;
- if (!d->data->getCachedFlag(QFileInfoPrivate::CachedSize)) {
- d->data->setCachedFlag(QFileInfoPrivate::CachedSize);
- d->data->fileSize = d->data->fileEngine->size();
+ if (!d->getCachedFlag(QFileInfoPrivate::CachedSize)) {
+ d->setCachedFlag(QFileInfoPrivate::CachedSize);
+ d->fileSize = d->fileEngine->size();
}
- return d->data->fileSize;
+ return d->fileSize;
}
/*!
@@ -1138,7 +1108,7 @@ qint64 QFileInfo::size() const
QDateTime QFileInfo::created() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QDateTime();
return d->getFileTime(QAbstractFileEngine::CreationTime);
}
@@ -1151,7 +1121,7 @@ QDateTime QFileInfo::created() const
QDateTime QFileInfo::lastModified() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QDateTime();
return d->getFileTime(QAbstractFileEngine::ModificationTime);
}
@@ -1167,7 +1137,7 @@ QDateTime QFileInfo::lastModified() const
QDateTime QFileInfo::lastRead() const
{
Q_D(const QFileInfo);
- if (!d->data->fileEngine)
+ if (d->isDefaultConstructed)
return QDateTime();
return d->getFileTime(QAbstractFileEngine::AccessTime);
}
@@ -1177,8 +1147,7 @@ QDateTime QFileInfo::lastRead() const
*/
void QFileInfo::detach()
{
- Q_D(QFileInfo);
- d->detach();
+ d_ptr.detach();
}
/*!
@@ -1189,7 +1158,7 @@ void QFileInfo::detach()
bool QFileInfo::caching() const
{
Q_D(const QFileInfo);
- return d->data->cache_enabled;
+ return d->cache_enabled;
}
/*!
@@ -1207,8 +1176,7 @@ bool QFileInfo::caching() const
void QFileInfo::setCaching(bool enable)
{
Q_D(QFileInfo);
- detach();
- d->data->cache_enabled = enable;
+ d->cache_enabled = enable;
}
/*!
diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h
index 7e82aed843..f0128b1c56 100644
--- a/src/corelib/io/qfileinfo.h
+++ b/src/corelib/io/qfileinfo.h
@@ -44,7 +44,7 @@
#include <QtCore/qfile.h>
#include <QtCore/qlist.h>
-#include <QtCore/qscopedpointer.h>
+#include <QtCore/qshareddata.h>
QT_BEGIN_HEADER
@@ -166,10 +166,20 @@ public:
#endif
protected:
- QScopedPointer<QFileInfoPrivate> d_ptr;
+ QSharedDataPointer<QFileInfoPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QFileInfo)
+ inline QFileInfoPrivate* d_func()
+ {
+ detach();
+ return const_cast<QFileInfoPrivate *>(d_ptr.constData());
+ }
+
+ inline const QFileInfoPrivate* d_func() const
+ {
+ return d_ptr.constData();
+ }
};
+
Q_DECLARE_TYPEINFO(QFileInfo, Q_MOVABLE_TYPE);
#ifdef QT3_SUPPORT
diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h
index 306ffe13bb..b9b1092c6a 100644
--- a/src/corelib/io/qfileinfo_p.h
+++ b/src/corelib/io/qfileinfo_p.h
@@ -57,71 +57,83 @@
#include "qabstractfileengine.h"
#include "qdatetime.h"
#include "qatomic.h"
+#include "qshareddata.h"
QT_BEGIN_NAMESPACE
-class QFileInfoPrivate
+class QFileInfoPrivate : public QSharedData
{
public:
- QFileInfoPrivate(const QFileInfo *copy=0);
- ~QFileInfoPrivate();
- void initFileEngine(const QString &);
+ enum { CachedFileFlags=0x01, CachedLinkTypeFlag=0x02, CachedBundleTypeFlag=0x04,
+ CachedMTime=0x10, CachedCTime=0x20, CachedATime=0x40,
+ CachedSize =0x08, CachedPerms=0x80 };
+
+ inline QFileInfoPrivate()
+ : QSharedData(), fileEngine(0),
+ cachedFlags(0),
+ isDefaultConstructed(true),
+ cache_enabled(true), fileFlags(0), fileSize(0)
+ {}
+ inline QFileInfoPrivate(const QFileInfoPrivate &copy)
+ : QSharedData(copy), fileEngine(QAbstractFileEngine::create(copy.fileName)),
+ fileName(copy.fileName),
+ cachedFlags(0),
+#ifndef QT_NO_FSFILEENGINE
+ isDefaultConstructed(false),
+#else
+ isDefaultConstructed(!fileEngine),
+#endif
+ cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0)
+ {}
+ inline QFileInfoPrivate(const QString &file)
+ : QSharedData(), fileEngine(QAbstractFileEngine::create(file)),
+ fileName(file),
+ cachedFlags(0),
+#ifndef QT_NO_FSFILEENGINE
+ isDefaultConstructed(false),
+#else
+ isDefaultConstructed(!fileEngine),
+#endif
+ cache_enabled(true), fileFlags(0), fileSize(0)
+ {
+ }
+
+ inline void clearFlags() const {
+ fileFlags = 0;
+ cachedFlags = 0;
+ if (fileEngine)
+ (void)fileEngine->fileFlags(QAbstractFileEngine::Refresh);
+ }
+ inline void clear() {
+ clearFlags();
+ for (int i = QAbstractFileEngine::NFileNames - 1 ; i >= 0 ; --i)
+ fileNames[i].clear();
+ fileOwners[1].clear();
+ fileOwners[0].clear();
+ }
uint getFileFlags(QAbstractFileEngine::FileFlags) const;
QDateTime &getFileTime(QAbstractFileEngine::FileTime) const;
QString getFileName(QAbstractFileEngine::FileName) const;
QString getFileOwner(QAbstractFileEngine::FileOwner own) const;
- enum { CachedFileFlags=0x01, CachedLinkTypeFlag=0x02, CachedBundleTypeFlag=0x04,
- CachedMTime=0x10, CachedCTime=0x20, CachedATime=0x40,
- CachedSize =0x08, CachedPerms=0x80 };
- struct Data {
- inline Data()
- : ref(1), fileEngine(0),
- cachedFlags(0), cache_enabled(1), fileFlags(0), fileSize(0)
- {}
- inline Data(const Data &copy)
- : ref(1), fileEngine(QAbstractFileEngine::create(copy.fileName)),
- fileName(copy.fileName),
- cachedFlags(0), cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0)
- {}
- inline ~Data() { delete fileEngine; }
- inline void clearFlags() {
- fileFlags = 0;
- cachedFlags = 0;
- if (fileEngine)
- (void)fileEngine->fileFlags(QAbstractFileEngine::Refresh);
- }
- inline void clear() {
- clearFlags();
- for (int i = QAbstractFileEngine::NFileNames - 1 ; i >= 0 ; --i)
- fileNames[i].clear();
- fileOwners[1].clear();
- fileOwners[0].clear();
- }
- mutable QAtomicInt ref;
+ QScopedPointer<QAbstractFileEngine> const fileEngine;
- QAbstractFileEngine *fileEngine;
- mutable QString fileName;
- mutable QString fileNames[QAbstractFileEngine::NFileNames];
- mutable QString fileOwners[2];
+ mutable QString fileName;
+ mutable QString fileNames[QAbstractFileEngine::NFileNames];
+ mutable QString fileOwners[2];
- mutable uint cachedFlags : 31;
- mutable uint cache_enabled : 1;
- mutable uint fileFlags;
- mutable qint64 fileSize;
- mutable QDateTime fileTimes[3];
- inline bool getCachedFlag(uint c) const
- { return cache_enabled ? (cachedFlags & c) : 0; }
- inline void setCachedFlag(uint c)
- { if (cache_enabled) cachedFlags |= c; }
- } *data;
- inline void reset() {
- detach();
- data->clear();
- }
- void detach();
+ mutable uint cachedFlags : 30;
+ bool const isDefaultConstructed : 1; // QFileInfo is a default constructed instance
+ bool cache_enabled : 1;
+ mutable uint fileFlags;
+ mutable qint64 fileSize;
+ mutable QDateTime fileTimes[3];
+ inline bool getCachedFlag(uint c) const
+ { return cache_enabled ? (cachedFlags & c) : 0; }
+ inline void setCachedFlag(uint c) const
+ { if (cache_enabled) cachedFlags |= c; }
};
QT_END_NAMESPACE
diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp
index 35fa04ba58..d5c53bb950 100644
--- a/src/corelib/io/qfsfileengine_win.cpp
+++ b/src/corelib/io/qfsfileengine_win.cpp
@@ -43,6 +43,7 @@
#include "qplatformdefs.h"
#include "qabstractfileengine.h"
#include "private/qfsfileengine_p.h"
+#include <private/qsystemlibrary_p.h>
#include <qdebug.h>
#include "qfile.h"
@@ -177,7 +178,7 @@ void QFSFileEnginePrivate::resolveLibs()
triedResolve = true;
#if !defined(Q_OS_WINCE)
- HINSTANCE advapiHnd = LoadLibrary(L"advapi32");
+ HINSTANCE advapiHnd = QSystemLibrary::load(L"advapi32");
if (advapiHnd) {
ptrGetNamedSecurityInfoW = (PtrGetNamedSecurityInfoW)GetProcAddress(advapiHnd, "GetNamedSecurityInfoW");
ptrLookupAccountSidW = (PtrLookupAccountSidW)GetProcAddress(advapiHnd, "LookupAccountSidW");
@@ -209,7 +210,7 @@ void QFSFileEnginePrivate::resolveLibs()
ptrFreeSid(pWorld);
}
}
- HINSTANCE userenvHnd = LoadLibrary(L"userenv");
+ HINSTANCE userenvHnd = QSystemLibrary::load(L"userenv");
if (userenvHnd)
ptrGetUserProfileDirectoryW = (PtrGetUserProfileDirectoryW)GetProcAddress(userenvHnd, "GetUserProfileDirectoryW");
#endif
@@ -240,7 +241,7 @@ bool QFSFileEnginePrivate::resolveUNCLibs()
#endif
triedResolve = true;
#if !defined(Q_OS_WINCE)
- HINSTANCE hLib = LoadLibrary(L"netapi32");
+ HINSTANCE hLib = QSystemLibrary::load(L"Netapi32");
if (hLib) {
ptrNetShareEnum = (PtrNetShareEnum)GetProcAddress(hLib, "NetShareEnum");
if (ptrNetShareEnum)
diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp
index 5aa97f9a49..21c6e3ee9e 100644
--- a/src/corelib/io/qsettings.cpp
+++ b/src/corelib/io/qsettings.cpp
@@ -69,7 +69,7 @@
#ifdef Q_OS_WIN // for homedirpath reading from registry
#include "qt_windows.h"
-#include "qlibrary.h"
+#include <private/qsystemlibrary_p.h>
#endif // Q_OS_WIN
#endif // QT_NO_QOBJECT
@@ -1046,9 +1046,9 @@ static QString windowsConfigPath(int type)
// We can't use QLibrary if there is QT_NO_QOBJECT is defined
// This only happens when bootstrapping qmake.
#ifndef Q_OS_WINCE
- QLibrary library(QLatin1String("shell32"));
+ QSystemLibrary library(QLatin1String("shell32"));
#else
- QLibrary library(QLatin1String("coredll"));
+ QSystemLibrary library(QLatin1String("coredll"));
#endif // Q_OS_WINCE
typedef BOOL (WINAPI*GetSpecialFolderPath)(HWND, LPWSTR, int, BOOL);
GetSpecialFolderPath SHGetSpecialFolderPath = (GetSpecialFolderPath)library.resolve("SHGetSpecialFolderPathW");
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
index 79a8ce40be..74c24b5995 100644
--- a/src/corelib/io/qurl.cpp
+++ b/src/corelib/io/qurl.cpp
@@ -3399,16 +3399,20 @@ QString QUrlPrivate::canonicalHost() const
if (host.contains(QLatin1Char(':'))) {
// This is an IP Literal, use _IPLiteral to validate
QByteArray ba = host.toLatin1();
+ bool needsBraces = false;
if (!ba.startsWith('[')) {
// surround the IP Literal with [ ] if it's not already done so
ba.reserve(ba.length() + 2);
ba.prepend('[');
ba.append(']');
+ needsBraces = true;
}
const char *ptr = ba.constData();
if (!_IPLiteral(&ptr))
that->host.clear();
+ else if (needsBraces)
+ that->host = QString::fromLatin1(ba.toLower());
else
that->host = host.toLower();
} else {
@@ -4958,6 +4962,10 @@ void QUrl::setEncodedQuery(const QByteArray &query)
pairDelimiter(), and the key and value are delimited by
valueDelimiter().
+ \note This method does not encode spaces (ASCII 0x20) as plus (+) signs,
+ like HTML forms do. If you need that kind of encoding, you must encode
+ the value yourself and use QUrl::setEncodedQueryItems.
+
\sa setQueryDelimiters(), queryItems(), setEncodedQueryItems()
*/
void QUrl::setQueryItems(const QList<QPair<QString, QString> > &query)
@@ -5028,6 +5036,10 @@ void QUrl::setEncodedQueryItems(const QList<QPair<QByteArray, QByteArray> > &que
character returned by valueDelimiter(). Each key/value pair is
delimited by the character returned by pairDelimiter().
+ \note This method does not encode spaces (ASCII 0x20) as plus (+) signs,
+ like HTML forms do. If you need that kind of encoding, you must encode
+ the value yourself and use QUrl::addEncodedQueryItem.
+
\sa addEncodedQueryItem()
*/
void QUrl::addQueryItem(const QString &key, const QString &value)
@@ -5084,6 +5096,10 @@ void QUrl::addEncodedQueryItem(const QByteArray &key, const QByteArray &value)
/*!
Returns the query string of the URL, as a map of keys and values.
+ \note This method does not decode spaces plus (+) signs as spaces (ASCII
+ 0x20), like HTML forms do. If you need that kind of decoding, you must
+ use QUrl::encodedQueryItems and decode the data yourself.
+
\sa setQueryItems(), setEncodedQuery()
*/
QList<QPair<QString, QString> > QUrl::queryItems() const
@@ -5188,6 +5204,10 @@ bool QUrl::hasEncodedQueryItem(const QByteArray &key) const
Returns the first query string value whose key is equal to \a key
from the URL.
+ \note This method does not decode spaces plus (+) signs as spaces (ASCII
+ 0x20), like HTML forms do. If you need that kind of decoding, you must
+ use QUrl::encodedQueryItemValue and decode the data yourself.
+
\sa allQueryItemValues()
*/
QString QUrl::queryItemValue(const QString &key) const
@@ -5232,6 +5252,10 @@ QByteArray QUrl::encodedQueryItemValue(const QByteArray &key) const
Returns the a list of query string values whose key is equal to
\a key from the URL.
+ \note This method does not decode spaces plus (+) signs as spaces (ASCII
+ 0x20), like HTML forms do. If you need that kind of decoding, you must
+ use QUrl::allEncodedQueryItemValues and decode the data yourself.
+
\sa queryItemValue()
*/
QStringList QUrl::allQueryItemValues(const QString &key) const
@@ -5610,7 +5634,7 @@ QString QUrl::toString(FormattingOptions options) const
if ((options & QUrl::RemoveAuthority) != QUrl::RemoveAuthority) {
bool doFileScheme = d->scheme == QLatin1String("file") && ourPath.startsWith(QLatin1Char('/'));
QString tmp = d->authority(options);
- if (!tmp.isEmpty() || doFileScheme) {
+ if (!tmp.isNull() || doFileScheme) {
if (doFileScheme && !ourPath.startsWith(QLatin1Char('/')))
url += QLatin1Char('/');
url += QLatin1String("//");
diff --git a/src/corelib/kernel/qabstractitemmodel.cpp b/src/corelib/kernel/qabstractitemmodel.cpp
index e3fce1809e..9a99ea1c57 100644
--- a/src/corelib/kernel/qabstractitemmodel.cpp
+++ b/src/corelib/kernel/qabstractitemmodel.cpp
@@ -2603,9 +2603,13 @@ bool QAbstractItemModel::beginMoveRows(const QModelIndex &sourceParent, int sour
return false;
}
- d->changes.push(QAbstractItemModelPrivate::Change(sourceParent, sourceFirst, sourceLast));
+ QAbstractItemModelPrivate::Change sourceChange(sourceParent, sourceFirst, sourceLast);
+ sourceChange.needsAdjust = sourceParent.isValid() && sourceParent.row() >= destinationChild && sourceParent.parent() == destinationParent;
+ d->changes.push(sourceChange);
int destinationLast = destinationChild + (sourceLast - sourceFirst);
- d->changes.push(QAbstractItemModelPrivate::Change(destinationParent, destinationChild, destinationLast));
+ QAbstractItemModelPrivate::Change destinationChange(destinationParent, destinationChild, destinationLast);
+ destinationChange.needsAdjust = destinationParent.isValid() && destinationParent.row() >= sourceLast && destinationParent.parent() == sourceParent;
+ d->changes.push(destinationChange);
emit rowsAboutToBeMoved(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild);
emit layoutAboutToBeChanged();
@@ -2635,7 +2639,17 @@ void QAbstractItemModel::endMoveRows()
d->itemsMoved(removeChange.parent, removeChange.first, removeChange.last, insertChange.parent, insertChange.first, Qt::Vertical);
- emit rowsMoved(removeChange.parent, removeChange.first, removeChange.last, insertChange.parent, insertChange.first);
+ QModelIndex adjustedSource = removeChange.parent;
+ QModelIndex adjustedDestination = insertChange.parent;
+
+ const int numMoved = removeChange.last - removeChange.first + 1;
+ if (insertChange.needsAdjust)
+ adjustedDestination = createIndex(adjustedDestination.row() - numMoved, adjustedDestination.column(), adjustedDestination.internalPointer());
+
+ if (removeChange.needsAdjust)
+ adjustedSource = createIndex(adjustedSource.row() + numMoved, adjustedSource.column(), adjustedSource.internalPointer());
+
+ emit rowsMoved(adjustedSource, removeChange.first, removeChange.last, adjustedDestination, insertChange.first);
emit layoutChanged();
}
@@ -2812,9 +2826,13 @@ bool QAbstractItemModel::beginMoveColumns(const QModelIndex &sourceParent, int s
return false;
}
- d->changes.push(QAbstractItemModelPrivate::Change(sourceParent, sourceFirst, sourceLast));
+ QAbstractItemModelPrivate::Change sourceChange(sourceParent, sourceFirst, sourceLast);
+ sourceChange.needsAdjust = sourceParent.isValid() && sourceParent.row() >= destinationChild && sourceParent.parent() == destinationParent;
+ d->changes.push(sourceChange);
int destinationLast = destinationChild + (sourceLast - sourceFirst);
- d->changes.push(QAbstractItemModelPrivate::Change(destinationParent, destinationChild, destinationLast));
+ QAbstractItemModelPrivate::Change destinationChange(destinationParent, destinationChild, destinationLast);
+ destinationChange.needsAdjust = destinationParent.isValid() && destinationParent.row() >= sourceLast && destinationParent.parent() == sourceParent;
+ d->changes.push(destinationChange);
d->itemsAboutToBeMoved(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, Qt::Horizontal);
@@ -2845,7 +2863,17 @@ void QAbstractItemModel::endMoveColumns()
d->itemsMoved(removeChange.parent, removeChange.first, removeChange.last, insertChange.parent, insertChange.first, Qt::Horizontal);
- emit columnsMoved(removeChange.parent, removeChange.first, removeChange.last, insertChange.parent, insertChange.first);
+ QModelIndex adjustedSource = removeChange.parent;
+ QModelIndex adjustedDestination = insertChange.parent;
+
+ const int numMoved = removeChange.last - removeChange.first + 1;
+ if (insertChange.needsAdjust)
+ adjustedDestination = createIndex(adjustedDestination.row(), adjustedDestination.column() - numMoved, adjustedDestination.internalPointer());
+
+ if (removeChange.needsAdjust)
+ adjustedSource = createIndex(adjustedSource.row(), adjustedSource.column() + numMoved, adjustedSource.internalPointer());
+
+ emit columnsMoved(adjustedSource, removeChange.first, removeChange.last, adjustedDestination, insertChange.first);
emit layoutChanged();
}
diff --git a/src/corelib/kernel/qabstractitemmodel_p.h b/src/corelib/kernel/qabstractitemmodel_p.h
index 7844a10042..3113dffd80 100644
--- a/src/corelib/kernel/qabstractitemmodel_p.h
+++ b/src/corelib/kernel/qabstractitemmodel_p.h
@@ -133,11 +133,26 @@ public:
struct Change {
Change() : first(-1), last(-1) {}
- Change(const Change &c) : parent(c.parent), first(c.first), last(c.last) {}
- Change(const QModelIndex &p, int f, int l) : parent(p), first(f), last(l) {}
+ Change(const Change &c) : parent(c.parent), first(c.first), last(c.last), needsAdjust(c.needsAdjust) {}
+ Change(const QModelIndex &p, int f, int l) : parent(p), first(f), last(l), needsAdjust(false) {}
QModelIndex parent;
int first, last;
+
+ // In cases such as this:
+ // - A
+ // - B
+ // - C
+ // - - D
+ // - - E
+ // - - F
+ //
+ // If B is moved to above E, C is the source parent in the signal and its row is 2. When the move is
+ // completed however, C is at row 1 and there is no row 2 at the same level in the model at all.
+ // The QModelIndex is adjusted to correct that in those cases before reporting it though the
+ // rowsMoved signal.
+ bool needsAdjust;
+
bool isValid() { return first >= 0 && last >= 0; }
};
QStack<Change> changes;
diff --git a/src/corelib/kernel/qcore_symbian_p.cpp b/src/corelib/kernel/qcore_symbian_p.cpp
index 5afde9a946..66296b045c 100644
--- a/src/corelib/kernel/qcore_symbian_p.cpp
+++ b/src/corelib/kernel/qcore_symbian_p.cpp
@@ -131,7 +131,6 @@ public:
private:
void init()
{
-#ifdef Q_OS_SYMBIAN
_LIT(KLibName_3_1, "qts60plugin_3_1" QT_LIBINFIX_UNICODE L".dll");
_LIT(KLibName_3_2, "qts60plugin_3_2" QT_LIBINFIX_UNICODE L".dll");
_LIT(KLibName_5_0, "qts60plugin_5_0" QT_LIBINFIX_UNICODE L".dll");
@@ -157,7 +156,12 @@ private:
TUidType libUid(KDynamicLibraryUid, KSharedLibraryUid, TUid::Uid(uidValue));
lib.Load(libName, libUid);
-#endif
+
+ // Duplicate lib handle to enable process wide access to it. Since Duplicate overwrites
+ // existing handle without closing it, store original for subsequent closing.
+ RLibrary origHandleCloser = lib;
+ lib.Duplicate(RThread(), EOwnerProcess);
+ origHandleCloser.Close();
}
RLibrary lib;
diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp
index 1bad8ed961..5cc6ae3c33 100644
--- a/src/corelib/kernel/qeventdispatcher_symbian.cpp
+++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp
@@ -232,8 +232,12 @@ void QTimerActiveObject::DoCancel()
void QTimerActiveObject::RunL()
{
- int error;
- QT_TRYCATCH_ERROR(error, Run());
+ int error = KErrNone;
+ if (iStatus == KErrNone) {
+ QT_TRYCATCH_ERROR(error, Run());
+ } else {
+ error = iStatus.Int();
+ }
// All Symbian error codes are negative.
if (error < 0) {
CActiveScheduler::Current()->Error(error); // stop and report here, as this timer will be deleted on scope exit
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index e3f537f752..153ccdf7b2 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -43,7 +43,7 @@
#include "qcoreapplication.h"
#include "qhash.h"
-#include "qlibrary.h"
+#include <private/qsystemlibrary_p.h>
#include "qpair.h"
#include "qset.h"
#include "qsocketnotifier.h"
@@ -65,7 +65,11 @@ extern uint qGlobalPostedEventsCount();
#endif
#ifndef QS_RAWINPUT
+# ifdef Q_OS_WINCE
+# define QS_RAWINPUT 0x0000
+# else
# define QS_RAWINPUT 0x0400
+# endif
#endif
#ifndef WM_TOUCH
@@ -80,8 +84,7 @@ extern uint qGlobalPostedEventsCount();
enum {
WM_QT_SOCKETNOTIFIER = WM_USER,
- WM_QT_SENDPOSTEDEVENTS = WM_USER + 1,
- SendPostedEventsTimerId = ~1u
+ WM_QT_SENDPOSTEDEVENTS = WM_USER + 1
};
#if defined(Q_OS_WINCE)
@@ -323,11 +326,11 @@ static void resolveTimerAPI()
#endif
triedResolve = true;
#if !defined(Q_OS_WINCE)
- qtimeSetEvent = (ptimeSetEvent)QLibrary::resolve(QLatin1String("winmm"), "timeSetEvent");
- qtimeKillEvent = (ptimeKillEvent)QLibrary::resolve(QLatin1String("winmm"), "timeKillEvent");
+ qtimeSetEvent = (ptimeSetEvent)QSystemLibrary::resolve(QLatin1String("winmm"), "timeSetEvent");
+ qtimeKillEvent = (ptimeKillEvent)QSystemLibrary::resolve(QLatin1String("winmm"), "timeKillEvent");
#else
- qtimeSetEvent = (ptimeSetEvent)QLibrary::resolve(QLatin1String("Mmtimer"), "timeSetEvent");
- qtimeKillEvent = (ptimeKillEvent)QLibrary::resolve(QLatin1String("Mmtimer"), "timeKillEvent");
+ qtimeSetEvent = (ptimeSetEvent)QSystemLibrary::resolve(QLatin1String("Mmtimer"), "timeSetEvent");
+ qtimeKillEvent = (ptimeKillEvent)QSystemLibrary::resolve(QLatin1String("Mmtimer"), "timeKillEvent");
#endif
}
}
@@ -516,12 +519,10 @@ LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp)
if (q) {
QEventDispatcherWin32Private *d = q->d_func();
int localSerialNumber = d->serialNumber;
-#ifdef Q_OS_WINCE
- MSG dummyMsg;
- if (HIWORD(GetQueueStatus(QS_INPUT)) == 0
- && PeekMessage(&dummyMsg, 0, WM_TIMER, WM_TIMER, PM_NOREMOVE) == 0
-#else
- if (HIWORD(GetQueueStatus(QS_INPUT | QS_RAWINPUT | QS_TIMER)) == 0
+ MSG unused;
+ if ((HIWORD(GetQueueStatus(QS_INPUT | QS_RAWINPUT)) == 0
+ && PeekMessage(&unused, 0, WM_TIMER, WM_TIMER, PM_NOREMOVE) == 0)
+#ifndef Q_OS_WINCE
|| GetMessageTime() - d->lastMessageTime >= 10
#endif
) {
@@ -824,7 +825,7 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)
pHandles[i] = d->winEventNotifierList.at(i)->handle();
emit aboutToBlock();
- waitRet = MsgWaitForMultipleObjectsEx(nCount, pHandles, INFINITE, QS_ALLINPUT, MWMO_ALERTABLE);
+ waitRet = MsgWaitForMultipleObjectsEx(nCount, pHandles, INFINITE, QS_ALLINPUT, MWMO_ALERTABLE | MWMO_INPUTAVAILABLE);
emit awake();
if (waitRet >= WAIT_OBJECT_0 && waitRet < WAIT_OBJECT_0 + nCount) {
d->activateEventNotifier(d->winEventNotifierList.at(waitRet - WAIT_OBJECT_0));
diff --git a/src/corelib/plugin/plugin.pri b/src/corelib/plugin/plugin.pri
index c05ff48172..ba8635361e 100644
--- a/src/corelib/plugin/plugin.pri
+++ b/src/corelib/plugin/plugin.pri
@@ -7,7 +7,8 @@ HEADERS += \
plugin/qlibrary_p.h \
plugin/qplugin.h \
plugin/quuid.h \
- plugin/qfactoryloader_p.h
+ plugin/qfactoryloader_p.h \
+ plugin/qsystemlibrary_p.h
SOURCES += \
plugin/qpluginloader.cpp \
@@ -16,7 +17,9 @@ SOURCES += \
plugin/qlibrary.cpp
win32 {
- SOURCES += plugin/qlibrary_win.cpp
+ SOURCES += \
+ plugin/qlibrary_win.cpp \
+ plugin/qsystemlibrary.cpp
}
unix {
diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp
index 0f99948a76..1874a9ed3b 100644
--- a/src/corelib/plugin/qlibrary.cpp
+++ b/src/corelib/plugin/qlibrary.cpp
@@ -295,14 +295,6 @@ static bool qt_parse_pattern(const char *s, uint *version, bool *debug, QByteArr
#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_SYMBIAN) && !defined(QT_NO_PLUGIN_CHECK)
-#if defined(Q_OS_FREEBSD) || defined(Q_OS_LINUX)
-# define USE_MMAP
-QT_BEGIN_INCLUDE_NAMESPACE
-# include <sys/types.h>
-# include <sys/mman.h>
-QT_END_INCLUDE_NAMESPACE
-#endif // Q_OS_FREEBSD || Q_OS_LINUX
-
static long qt_find_pattern(const char *s, ulong s_len,
const char *pattern, ulong p_len)
{
@@ -363,34 +355,15 @@ static bool qt_unix_query(const QString &library, uint *version, bool *debug, QB
}
QByteArray data;
- char *filedata = 0;
- ulong fdlen = 0;
-
-# ifdef USE_MMAP
- char *mapaddr = 0;
- size_t maplen = file.size();
- mapaddr = (char *) mmap(mapaddr, maplen, PROT_READ, MAP_PRIVATE, file.handle(), 0);
- if (mapaddr != MAP_FAILED) {
- // mmap succeeded
- filedata = mapaddr;
- fdlen = maplen;
- } else {
- // mmap failed
- if (qt_debug_component()) {
- qWarning("mmap: %s", qPrintable(qt_error_string(errno)));
- }
- if (lib)
- lib->errorString = QLibrary::tr("Could not mmap '%1': %2")
- .arg(library)
- .arg(qt_error_string());
-# endif // USE_MMAP
+ const char *filedata = 0;
+ ulong fdlen = file.size();
+ filedata = (char *) file.map(0, fdlen);
+ if (filedata == 0) {
// try reading the data into memory instead
data = file.readAll();
- filedata = data.data();
+ filedata = data.constData();
fdlen = data.size();
-# ifdef USE_MMAP
}
-# endif // USE_MMAP
// verify that the pattern is present in the plugin
const char pattern[] = "pattern=QT_PLUGIN_VERIFICATION_DATA";
@@ -403,17 +376,6 @@ static bool qt_unix_query(const QString &library, uint *version, bool *debug, QB
if (!ret && lib)
lib->errorString = QLibrary::tr("Plugin verification data mismatch in '%1'").arg(library);
-# ifdef USE_MMAP
- if (mapaddr != MAP_FAILED && munmap(mapaddr, maplen) != 0) {
- if (qt_debug_component())
- qWarning("munmap: %s", qPrintable(qt_error_string(errno)));
- if (lib)
- lib->errorString = QLibrary::tr("Could not unmap '%1': %2")
- .arg(library)
- .arg( qt_error_string() );
- }
-# endif // USE_MMAP
-
file.close();
return ret;
}
@@ -790,10 +752,13 @@ bool QLibraryPrivate::isPlugin(QSettings *settings)
.arg(qt_version&0xff)
.arg(debug ? QLatin1String("debug") : QLatin1String("release"));
} else if (key != QT_BUILD_KEY
+ // we may have some compatibility keys, try them too:
#ifdef QT_BUILD_KEY_COMPAT
- // be sure to load plugins using an older but compatible build key
&& key != QT_BUILD_KEY_COMPAT
#endif
+#ifdef QT_BUILD_KEY_COMPAT2
+ && key != QT_BUILD_KEY_COMPAT2
+#endif
) {
if (qt_debug_component()) {
qWarning("In %s:\n"
diff --git a/src/corelib/plugin/qsystemlibrary.cpp b/src/corelib/plugin/qsystemlibrary.cpp
new file mode 100644
index 0000000000..a11ed50c10
--- /dev/null
+++ b/src/corelib/plugin/qsystemlibrary.cpp
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** 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 QtCore module 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 "qsystemlibrary_p.h"
+#include <QtCore/qvarlengtharray.h>
+#include <QtCore/qstringlist.h>
+#include <QtCore/qfileinfo.h>
+
+/*!
+
+ \internal
+ \class QSystemLibrary
+
+ The purpose of this class is to load only libraries that are located in
+ well-known and trusted locations on the filesystem. It does not suffer from
+ the security problem that QLibrary has, therefore it will never search in
+ the current directory.
+
+ The search order is the same as the order in DLL Safe search mode Windows,
+ except that we don't search:
+ * The current directory
+ * The 16-bit system directory. (normally c:\windows\system)
+ * The Windows directory. (normally c:\windows)
+
+ This means that the effective search order is:
+ 1. Application path.
+ 2. System libraries path.
+ 3. Trying all paths inside the PATH environment variable.
+
+ Note, when onlySystemDirectory is true it will skip 1) and 3).
+
+ DLL Safe search mode is documented in the "Dynamic-Link Library Search
+ Order" document on MSDN.
+
+ Since library loading code is sometimes shared between Windows and WinCE,
+ this class can also be used on WinCE. However, its implementation just
+ calls the LoadLibrary() function. This is ok since it is documented as not
+ loading from the current directory on WinCE. This behaviour is documented
+ in the documentation for LoadLibrary for Windows CE at MSDN.
+ (http://msdn.microsoft.com/en-us/library/ms886736.aspx)
+*/
+#if defined(Q_OS_WINCE)
+HINSTANCE QSystemLibrary::load(const wchar_t *libraryName, bool onlySystemDirectory/*= true*/)
+{
+ return ::LoadLibrary(libraryName);
+}
+#else
+
+#if !defined(QT_BOOTSTRAPPED)
+extern QString qAppFileName();
+#endif
+
+static QString qSystemDirectory()
+{
+ QVarLengthArray<wchar_t, MAX_PATH> fullPath;
+
+ UINT retLen = ::GetSystemDirectory(fullPath.data(), MAX_PATH);
+ if (retLen > MAX_PATH) {
+ fullPath.resize(retLen);
+ retLen = ::GetSystemDirectory(fullPath.data(), retLen);
+ }
+ // in some rare cases retLen might be 0
+ return QString::fromWCharArray(fullPath.constData(), int(retLen));
+}
+
+HINSTANCE QSystemLibrary::load(const wchar_t *libraryName, bool onlySystemDirectory/*= true*/)
+{
+ QStringList searchOrder;
+
+#if !defined(QT_BOOTSTRAPPED)
+ if (!onlySystemDirectory)
+ searchOrder << QFileInfo(qAppFileName()).path();
+#endif
+ searchOrder << qSystemDirectory();
+
+ if (!onlySystemDirectory) {
+ const QString PATH(QLatin1String(qgetenv("PATH").constData()));
+ searchOrder << PATH.split(QLatin1Char(';'), QString::SkipEmptyParts);
+ }
+ QString fileName = QString::fromWCharArray(libraryName);
+ fileName.append(QLatin1String(".dll"));
+
+ // Start looking in the order specified
+ for (int i = 0; i < searchOrder.count(); ++i) {
+ QString fullPathAttempt = searchOrder.at(i);
+ if (!fullPathAttempt.endsWith(QLatin1Char('\\'))) {
+ fullPathAttempt.append(QLatin1Char('\\'));
+ }
+ fullPathAttempt.append(fileName);
+ HINSTANCE inst = ::LoadLibrary((const wchar_t *)fullPathAttempt.utf16());
+ if (inst != 0)
+ return inst;
+ }
+ return 0;
+
+}
+
+#endif //Q_OS_WINCE
diff --git a/src/corelib/plugin/qsystemlibrary_p.h b/src/corelib/plugin/qsystemlibrary_p.h
new file mode 100644
index 0000000000..3251a3c2b3
--- /dev/null
+++ b/src/corelib/plugin/qsystemlibrary_p.h
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** 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 QtCore module 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 QSYSTEMLIBRARY_P_H
+#define QSYSTEMLIBRARY_P_H
+
+#include <QtCore/qglobal.h>
+#ifdef Q_OS_WIN
+#include <qt_windows.h>
+#include <QtCore/qstring.h>
+
+class QSystemLibrary
+{
+public:
+ explicit QSystemLibrary(const QString &libraryName)
+ {
+ m_libraryName = libraryName;
+ m_handle = 0;
+ m_didLoad = false;
+ }
+
+ explicit QSystemLibrary(const wchar_t *libraryName)
+ {
+ m_libraryName = QString::fromWCharArray(libraryName);
+ m_handle = 0;
+ m_didLoad = false;
+ }
+
+ bool load(bool onlySystemDirectory = true)
+ {
+ m_handle = load((const wchar_t *)m_libraryName.utf16(), onlySystemDirectory);
+ m_didLoad = true;
+ return (m_handle != 0);
+ }
+
+ bool isLoaded()
+ {
+ return (m_handle != 0);
+ }
+
+ void *resolve(const char *symbol)
+ {
+ if (!m_didLoad)
+ load();
+ if (!m_handle)
+ return 0;
+#ifdef Q_OS_WINCE
+ return (void*)GetProcAddress(m_handle, (const wchar_t*)QString::fromLatin1(symbol).utf16());
+#else
+ return (void*)GetProcAddress(m_handle, symbol);
+#endif
+ }
+
+ static void *resolve(const QString &libraryName, const char *symbol)
+ {
+ return QSystemLibrary(libraryName).resolve(symbol);
+ }
+
+ static Q_CORE_EXPORT HINSTANCE load(const wchar_t *lpFileName, bool onlySystemDirectory = true);
+private:
+ HINSTANCE m_handle;
+ QString m_libraryName;
+ bool m_didLoad;
+};
+
+#endif //Q_OS_WIN
+
+#endif //QSYSTEMLIBRARY_P_H
diff --git a/src/corelib/tools/qbytearray.cpp b/src/corelib/tools/qbytearray.cpp
index 8d38e4c855..033da90925 100644
--- a/src/corelib/tools/qbytearray.cpp
+++ b/src/corelib/tools/qbytearray.cpp
@@ -850,7 +850,7 @@ QByteArray::Data QByteArray::shared_empty = { Q_BASIC_ATOMIC_INITIALIZER(1),
This operation takes \l{constant time}, because QByteArray is
\l{implicitly shared}. This makes returning a QByteArray from a
function very fast. If a shared instance is modified, it will be
- copied (copy-on-write), and that takes \l{linear time}.
+ copied (copy-on-write), taking \l{linear time}.
\sa operator=()
*/
@@ -1186,10 +1186,18 @@ void QByteArray::chop(int n)
Example:
\snippet doc/src/snippets/code/src_corelib_tools_qbytearray.cpp 12
- This operation is typically very fast (\l{constant time}),
- because QByteArray preallocates extra space at the end of the
- character data so it can grow without reallocating the entire
- data each time.
+ Note: QByteArray is an \l{implicitly shared} class. Consequently,
+ if \e this is an empty QByteArray, then \e this will just share
+ the data held in \a ba. In this case, no copying of data is done,
+ taking \l{constant time}. If a shared instance is modified, it will
+ be copied (copy-on-write), taking \l{linear time}.
+
+ If \e this is not an empty QByteArray, a deep copy of the data is
+ performed, taking \l{linear time}.
+
+ This operation typically does not suffer from allocation overhead,
+ because QByteArray preallocates extra space at the end of the data
+ so that it may grow without reallocating for each append operation.
\sa append(), prepend()
*/
@@ -1474,7 +1482,12 @@ QByteArray QByteArray::nulTerminated() const
Note: QByteArray is an \l{implicitly shared} class. Consequently,
if \e this is an empty QByteArray, then \e this will just share
- the data held in \a ba. In this case, no copying of data is done.
+ the data held in \a ba. In this case, no copying of data is done,
+ taking \l{constant time}. If a shared instance is modified, it will
+ be copied (copy-on-write), taking \l{linear time}.
+
+ If \e this is not an empty QByteArray, a deep copy of the data is
+ performed, taking \l{linear time}.
\sa append(), insert()
*/
@@ -1547,14 +1560,18 @@ QByteArray &QByteArray::prepend(char ch)
This is the same as insert(size(), \a ba).
- This operation is typically very fast (\l{constant time}),
- because QByteArray preallocates extra space at the end of the
- character data so it can grow without reallocating the entire
- data each time.
-
Note: QByteArray is an \l{implicitly shared} class. Consequently,
if \e this is an empty QByteArray, then \e this will just share
- the data held in \a ba. In this case, no copying of data is done.
+ the data held in \a ba. In this case, no copying of data is done,
+ taking \l{constant time}. If a shared instance is modified, it will
+ be copied (copy-on-write), taking \l{linear time}.
+
+ If \e this is not an empty QByteArray, a deep copy of the data is
+ performed, taking \l{linear time}.
+
+ This operation typically does not suffer from allocation overhead,
+ because QByteArray preallocates extra space at the end of the data
+ so that it may grow without reallocating for each append operation.
\sa operator+=(), prepend(), insert()
*/
diff --git a/src/corelib/tools/qeasingcurve.cpp b/src/corelib/tools/qeasingcurve.cpp
index ee791e0299..7fe91709aa 100644
--- a/src/corelib/tools/qeasingcurve.cpp
+++ b/src/corelib/tools/qeasingcurve.cpp
@@ -332,7 +332,7 @@ public:
enum Type { In, Out, InOut, OutIn };
QEasingCurveFunction(QEasingCurveFunction::Type type = In, qreal period = 0.3, qreal amplitude = 1.0,
- qreal overshoot = 1.70158f)
+ qreal overshoot = 1.70158)
: _t(type), _p(period), _a(amplitude), _o(overshoot)
{ }
virtual ~QEasingCurveFunction() {}
@@ -359,9 +359,9 @@ QEasingCurveFunction *QEasingCurveFunction::copy() const
bool QEasingCurveFunction::operator==(const QEasingCurveFunction& other)
{
return _t == other._t &&
- _p == other._p &&
- _a == other._a &&
- _o == other._o;
+ qFuzzyCompare(_p, other._p) &&
+ qFuzzyCompare(_a, other._a) &&
+ qFuzzyCompare(_o, other._o);
}
QT_BEGIN_INCLUDE_NAMESPACE
@@ -400,8 +400,8 @@ struct ElasticEase : public QEasingCurveFunction
qreal value(qreal t)
{
- qreal p = (_p < 0) ? 0.3f : _p;
- qreal a = (_a < 0) ? 1.0f : _a;
+ qreal p = (_p < 0) ? qreal(0.3) : _p;
+ qreal a = (_a < 0) ? qreal(1.0) : _a;
switch(_t) {
case In:
return easeInElastic(t, a, p);
@@ -420,7 +420,7 @@ struct ElasticEase : public QEasingCurveFunction
struct BounceEase : public QEasingCurveFunction
{
BounceEase(Type type)
- : QEasingCurveFunction(type, 0.3f, 1.0f)
+ : QEasingCurveFunction(type, qreal(0.3), qreal(1.0))
{ }
QEasingCurveFunction *copy() const
@@ -432,7 +432,7 @@ struct BounceEase : public QEasingCurveFunction
qreal value(qreal t)
{
- qreal a = (_a < 0) ? 1.0f : _a;
+ qreal a = (_a < 0) ? qreal(1.0) : _a;
switch(_t) {
case In:
return easeInBounce(t, a);
@@ -451,7 +451,7 @@ struct BounceEase : public QEasingCurveFunction
struct BackEase : public QEasingCurveFunction
{
BackEase(Type type)
- : QEasingCurveFunction(type, 0.3f, 1.0f, 1.70158f)
+ : QEasingCurveFunction(type, qreal(0.3), qreal(1.0), qreal(1.70158))
{ }
QEasingCurveFunction *copy() const
@@ -463,7 +463,7 @@ struct BackEase : public QEasingCurveFunction
qreal value(qreal t)
{
- qreal o = (_o < 0) ? 1.70158f : _o;
+ qreal o = (_o < 0) ? qreal(1.70158) : _o;
switch(_t) {
case In:
return easeInBack(t, o);
@@ -595,7 +595,7 @@ static QEasingCurveFunction *curveToFunctionObject(QEasingCurve::Type type)
curveFunc = new BackEase(BackEase::OutIn);
break;
default:
- curveFunc = new QEasingCurveFunction(QEasingCurveFunction::In, 0.3f, 1.0f, 1.70158f); // ###
+ curveFunc = new QEasingCurveFunction(QEasingCurveFunction::In, qreal(0.3), qreal(1.0), qreal(1.70158));
}
return curveFunc;
@@ -657,9 +657,17 @@ bool QEasingCurve::operator==(const QEasingCurve &other) const
{
bool res = d_ptr->func == other.d_ptr->func
&& d_ptr->type == other.d_ptr->type;
- if (res && d_ptr->config && other.d_ptr->config) {
+ if (res) {
+ if (d_ptr->config && other.d_ptr->config) {
// catch the config content
- res = d_ptr->config->operator==(*(other.d_ptr->config));
+ res = d_ptr->config->operator==(*(other.d_ptr->config));
+
+ } else if (d_ptr->config || other.d_ptr->config) {
+ // one one has a config object, which could contain default values
+ res = qFuzzyCompare(amplitude(), other.amplitude()) &&
+ qFuzzyCompare(period(), other.period()) &&
+ qFuzzyCompare(overshoot(), other.overshoot());
+ }
}
return res;
}
@@ -681,7 +689,7 @@ bool QEasingCurve::operator==(const QEasingCurve &other) const
*/
qreal QEasingCurve::amplitude() const
{
- return d_ptr->config ? d_ptr->config->_a : 1.0;
+ return d_ptr->config ? d_ptr->config->_a : qreal(1.0);
}
/*!
@@ -705,7 +713,7 @@ void QEasingCurve::setAmplitude(qreal amplitude)
*/
qreal QEasingCurve::period() const
{
- return d_ptr->config ? d_ptr->config->_p : 0.3;
+ return d_ptr->config ? d_ptr->config->_p : qreal(0.3);
}
/*!
@@ -729,7 +737,7 @@ void QEasingCurve::setPeriod(qreal period)
*/
qreal QEasingCurve::overshoot() const
{
- return d_ptr->config ? d_ptr->config->_o : 1.70158f;
+ return d_ptr->config ? d_ptr->config->_o : qreal(1.70158) ;
}
/*!
diff --git a/src/corelib/tools/qelapsedtimer_unix.cpp b/src/corelib/tools/qelapsedtimer_unix.cpp
index 2c4ea584ea..633fa00d95 100644
--- a/src/corelib/tools/qelapsedtimer_unix.cpp
+++ b/src/corelib/tools/qelapsedtimer_unix.cpp
@@ -40,22 +40,58 @@
****************************************************************************/
#include "qelapsedtimer.h"
-#include "qpair.h"
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
-#if !defined(QT_NO_CLOCK_MONOTONIC)
-# if defined(QT_BOOTSTRAPPED)
-# define QT_NO_CLOCK_MONOTONIC
+#if defined(QT_NO_CLOCK_MONOTONIC) || defined(QT_BOOTSTRAPPED)
+// turn off the monotonic clock
+# ifdef _POSIX_MONOTONIC_CLOCK
+# undef _POSIX_MONOTONIC_CLOCK
# endif
+# define _POSIX_MONOTONIC_CLOCK -1
#endif
QT_BEGIN_NAMESPACE
-static qint64 fractionAdjustment()
+#if (_POSIX_MONOTONIC_CLOCK-0 != 0)
+static const bool monotonicClockChecked = true;
+static const bool monotonicClockAvailable = _POSIX_MONOTONIC_CLOCK > 0;
+#else
+static int monotonicClockChecked = false;
+static int monotonicClockAvailable = false;
+#endif
+
+#ifdef Q_CC_GNU
+# define is_likely(x) __builtin_expect((x), 1)
+#else
+# define is_likely(x) (x)
+#endif
+#define load_acquire(x) ((volatile const int&)(x))
+#define store_release(x,v) ((volatile int&)(x) = (v))
+
+static void unixCheckClockType()
+{
+#if (_POSIX_MONOTONIC_CLOCK-0 == 0)
+ if (is_likely(load_acquire(monotonicClockChecked)))
+ return;
+
+# if defined(_SC_MONOTONIC_CLOCK)
+ // detect if the system support monotonic timers
+ long x = sysconf(_SC_MONOTONIC_CLOCK);
+ store_release(monotonicClockAvailable, x >= 200112L);
+# endif
+
+ store_release(monotonicClockChecked, true);
+#endif
+}
+
+static inline qint64 fractionAdjustment()
{
- if (QElapsedTimer::isMonotonic()) {
+ // disabled, but otherwise indicates bad usage of QElapsedTimer
+ //Q_ASSERT(monotonicClockChecked);
+
+ if (monotonicClockAvailable) {
// the monotonic timer is measured in nanoseconds
// 1 ms = 1000000 ns
return 1000*1000ull;
@@ -68,90 +104,73 @@ static qint64 fractionAdjustment()
bool QElapsedTimer::isMonotonic()
{
-#if (_POSIX_MONOTONIC_CLOCK-0 > 0)
- return true;
-#else
- static int returnValue = 0;
-
- if (returnValue == 0) {
-# if (_POSIX_MONOTONIC_CLOCK-0 < 0) || !defined(_SC_MONOTONIC_CLOCK)
- returnValue = -1;
-# elif (_POSIX_MONOTONIC_CLOCK == 0)
- // detect if the system support monotonic timers
- long x = sysconf(_SC_MONOTONIC_CLOCK);
- returnValue = (x >= 200112L) ? 1 : -1;
-# endif
- }
-
- return returnValue != -1;
-#endif
+ unixCheckClockType();
+ return monotonicClockAvailable;
}
QElapsedTimer::ClockType QElapsedTimer::clockType()
{
- return isMonotonic() ? MonotonicClock : SystemTime;
+ unixCheckClockType();
+ return monotonicClockAvailable ? MonotonicClock : SystemTime;
}
-static inline QPair<long, long> do_gettime()
+static inline void do_gettime(qint64 *sec, qint64 *frac)
{
-#if (_POSIX_MONOTONIC_CLOCK-0 > 0)
- timespec ts;
- clock_gettime(CLOCK_MONOTONIC, &ts);
- return qMakePair<long,long>(ts.tv_sec, ts.tv_nsec);
-#else
-# if !defined(QT_NO_CLOCK_MONOTONIC) && !defined(QT_BOOTSTRAPPED)
- if (QElapsedTimer::isMonotonic()) {
+#if (_POSIX_MONOTONIC_CLOCK-0 >= 0)
+ unixCheckClockType();
+ if (is_likely(monotonicClockAvailable)) {
timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
- return qMakePair<long,long>(ts.tv_sec, ts.tv_nsec);
+ *sec = ts.tv_sec;
+ *frac = ts.tv_nsec;
+ return;
}
-# endif
+#endif
// use gettimeofday
timeval tv;
::gettimeofday(&tv, 0);
- return qMakePair<long,long>(tv.tv_sec, tv.tv_usec);
-#endif
+ *sec = tv.tv_sec;
+ *frac = tv.tv_usec;
}
// used in qcore_unix.cpp and qeventdispatcher_unix.cpp
timeval qt_gettime()
{
- QPair<long, long> r = do_gettime();
+ qint64 sec, frac;
+ do_gettime(&sec, &frac);
timeval tv;
- tv.tv_sec = r.first;
- tv.tv_usec = r.second;
- if (QElapsedTimer::isMonotonic())
+ tv.tv_sec = sec;
+ tv.tv_usec = frac;
+ if (monotonicClockAvailable)
tv.tv_usec /= 1000;
return tv;
}
+static qint64 elapsedAndRestart(qint64 sec, qint64 frac,
+ qint64 *nowsec, qint64 *nowfrac)
+{
+ do_gettime(nowsec, nowfrac);
+ sec = *nowsec - sec;
+ frac = *nowfrac - frac;
+ return sec * Q_INT64_C(1000) + frac / fractionAdjustment();
+}
+
void QElapsedTimer::start()
{
- QPair<long, long> r = do_gettime();
- t1 = r.first;
- t2 = r.second;
+ do_gettime(&t1, &t2);
}
qint64 QElapsedTimer::restart()
{
- QPair<long, long> r = do_gettime();
- qint64 oldt1 = t1;
- qint64 oldt2 = t2;
- t1 = r.first;
- t2 = r.second;
-
- r.first -= oldt1;
- r.second -= oldt2;
- return r.first * Q_INT64_C(1000) + r.second / fractionAdjustment();
+ return elapsedAndRestart(t1, t2, &t1, &t2);
}
qint64 QElapsedTimer::elapsed() const
{
- QElapsedTimer now;
- now.start();
- return msecsTo(now);
+ qint64 sec, frac;
+ return elapsedAndRestart(t1, t2, &sec, &frac);
}
qint64 QElapsedTimer::msecsSinceReference() const
diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp
index fcc8dd7f67..9b431a279d 100644
--- a/src/corelib/tools/qsimd.cpp
+++ b/src/corelib/tools/qsimd.cpp
@@ -41,6 +41,7 @@
#include "qsimd_p.h"
#include <QByteArray>
+#include <stdio.h>
#if defined(Q_OS_WINCE)
#include <windows.h>
@@ -50,20 +51,37 @@
#include <intrin.h>
#endif
-QT_BEGIN_NAMESPACE
+#if defined(Q_OS_LINUX) && defined(__arm__)
+#include "private/qcore_unix_p.h"
-uint qDetectCPUFeatures()
-{
- static uint features = 0xffffffff;
- if (features != 0xffffffff)
- return features;
+// the kernel header definitions for HWCAP_*
+// (the ones we need/may need anyway)
+
+// copied from <asm/hwcap.h> (ARM)
+#define HWCAP_IWMMXT 512
+#define HWCAP_CRUNCH 1024
+#define HWCAP_THUMBEE 2048
+#define HWCAP_NEON 4096
+#define HWCAP_VFPv3 8192
+#define HWCAP_VFPv3D16 16384
+
+// copied from <linux/auxvec.h>
+#define AT_HWCAP 16 /* arch dependent hints at CPU capabilities */
+
+#endif
+
+QT_BEGIN_NAMESPACE
#if defined (Q_OS_NACL)
- // The qDetectCPUFeatures assembler fails verification in the
- // Native Client sandbox due to use of pushf/popf.
- features = 0;
- return features;
+static inline uint detectProcessorFeatures()
+{
+ return 0;
+}
#elif defined (Q_OS_WINCE)
+static inline uint detectProcessorFeatures()
+{
+ uint features = 0;
+
#if defined (ARM)
if (IsProcessorFeaturePresent(PF_ARM_INTEL_WMMX)) {
features = IWMMXT;
@@ -83,77 +101,98 @@ uint qDetectCPUFeatures()
#endif
features = 0;
return features;
-#elif defined(QT_HAVE_IWMMXT)
+}
+
+#elif defined(__arm__) || defined(__arm) || defined(QT_HAVE_IWMMXT) || defined(QT_HAVE_NEON)
+static inline uint detectProcessorFeatures()
+{
+ uint features = 0;
+
+#if defined(Q_OS_LINUX)
+ int auxv = ::qt_safe_open("/proc/self/auxv", O_RDONLY);
+ if (auxv != -1) {
+ unsigned long vector[64];
+ int nread;
+ while (features == 0) {
+ nread = ::qt_safe_read(auxv, (char *)vector, sizeof vector);
+ if (nread <= 0) {
+ // EOF or error
+ break;
+ }
+
+ int max = nread / (sizeof vector[0]);
+ for (int i = 0; i < max; i += 2)
+ if (vector[i] == AT_HWCAP) {
+ if (vector[i+1] & HWCAP_IWMMXT)
+ features |= IWMMXT;
+ if (vector[i+1] & HWCAP_NEON)
+ features |= NEON;
+ break;
+ }
+ }
+
+ ::qt_safe_close(auxv);
+ return features;
+ }
+ // fall back if /proc/self/auxv wasn't found
+#endif
+
+#if defined(QT_HAVE_IWMMXT)
// runtime detection only available when running as a previlegied process
- static const bool doIWMMXT = !qgetenv("QT_NO_IWMMXT").toInt();
- features = doIWMMXT ? IWMMXT : 0;
- return features;
+ features = IWMMXT;
#elif defined(QT_HAVE_NEON)
- static const bool doNEON = !qgetenv("QT_NO_NEON").toInt();
- features = doNEON ? NEON : 0;
+ features = NEON;
+#endif
+
return features;
-#else
- features = 0;
-#if defined(__x86_64__) || defined(Q_OS_WIN64)
- features = MMX|SSE|SSE2|CMOV;
-#elif defined(__ia64__)
- features = MMX|SSE|SSE2;
+}
+
#elif defined(__i386__) || defined(_M_IX86)
+static inline uint detectProcessorFeatures()
+{
+ uint features = 0;
+
unsigned int extended_result = 0;
unsigned int feature_result = 0;
uint result = 0;
/* see p. 118 of amd64 instruction set manual Vol3 */
#if defined(Q_CC_GNU)
- asm ("push %%ebx\n"
- "pushf\n"
- "pop %%eax\n"
- "mov %%eax, %%ebx\n"
- "xor $0x00200000, %%eax\n"
- "push %%eax\n"
+ long cpuid_supported, tmp1;
+ asm ("pushf\n"
+ "pop %0\n"
+ "mov %0, %1\n"
+ "xor $0x00200000, %0\n"
+ "push %0\n"
"popf\n"
"pushf\n"
- "pop %%eax\n"
- "xor %%edx, %%edx\n"
- "xor %%ebx, %%eax\n"
- "jz 1f\n"
+ "pop %0\n"
+ "xor %1, %0\n" // %eax is now 0 if CPUID is not supported
+ : "=a" (cpuid_supported), "=r" (tmp1)
+ );
+ if (cpuid_supported) {
+ asm ("xchg %%ebx, %2\n"
+ "cpuid\n"
+ "xchg %%ebx, %2\n"
+ : "=c" (feature_result), "=d" (result), "=&r" (tmp1)
+ : "a" (1));
- "mov $0x00000001, %%eax\n"
- "cpuid\n"
- "1:\n"
- "pop %%ebx\n"
- "mov %%edx, %0\n"
- "mov %%ecx, %1\n"
- : "=r" (result), "=r" (feature_result)
- :
- : "%eax", "%ecx", "%edx"
- );
-
- asm ("push %%ebx\n"
- "pushf\n"
- "pop %%eax\n"
- "mov %%eax, %%ebx\n"
- "xor $0x00200000, %%eax\n"
- "push %%eax\n"
- "popf\n"
- "pushf\n"
- "pop %%eax\n"
- "xor %%edx, %%edx\n"
- "xor %%ebx, %%eax\n"
- "jz 2f\n"
+ asm ("xchg %%ebx, %1\n"
+ "cpuid\n"
+ "cmp $0x80000000, %%eax\n"
+ "jnbe 1f\n"
+ "xor %0, %0\n"
+ "jmp 2f\n"
+ "1:\n"
+ "mov $0x80000001, %%eax\n"
+ "cpuid\n"
+ "2:\n"
+ "xchg %%ebx, %1\n"
+ : "=d" (extended_result), "=&r" (tmp1)
+ : "a" (0x80000000)
+ : "%ecx"
+ );
+ }
- "mov $0x80000000, %%eax\n"
- "cpuid\n"
- "cmp $0x80000000, %%eax\n"
- "jbe 2f\n"
- "mov $0x80000001, %%eax\n"
- "cpuid\n"
- "2:\n"
- "pop %%ebx\n"
- "mov %%edx, %0\n"
- : "=r" (extended_result)
- :
- : "%eax", "%ecx", "%edx"
- );
#elif defined (Q_OS_WIN)
_asm {
push eax
@@ -215,6 +254,7 @@ uint qDetectCPUFeatures()
}
#endif
+
// result now contains the standard feature bits
if (result & (1u << 15))
features |= CMOV;
@@ -241,33 +281,23 @@ uint qDetectCPUFeatures()
if (feature_result & (1u << 28))
features |= AVX;
-#endif // i386
+ return features;
+}
-#if defined(__x86_64__) || defined(Q_OS_WIN64)
+#elif defined(__x86_64) || defined(Q_OS_WIN64)
+static inline uint detectProcessorFeatures()
+{
+ uint features = MMX|SSE|SSE2|CMOV;
uint feature_result = 0;
#if defined(Q_CC_GNU)
- asm ("push %%rbx\n"
- "pushf\n"
- "pop %%rax\n"
- "mov %%eax, %%ebx\n"
- "xor $0x00200000, %%eax\n"
- "push %%rax\n"
- "popf\n"
- "pushf\n"
- "pop %%rax\n"
- "xor %%edx, %%edx\n"
- "xor %%ebx, %%eax\n"
- "jz 1f\n"
-
- "mov $0x00000001, %%eax\n"
+ long tmp;
+ asm ("xchg %%rbx, %1\n"
"cpuid\n"
- "1:\n"
- "pop %%rbx\n"
- "mov %%ecx, %0\n"
- : "=r" (feature_result)
- :
- : "%eax", "%ecx", "%edx"
+ "xchg %%rbx, %1\n"
+ : "=c" (feature_result), "=&r" (tmp)
+ : "a" (1)
+ : "%edx"
);
#elif defined (Q_OS_WIN64)
{
@@ -287,33 +317,97 @@ uint qDetectCPUFeatures()
features |= SSE4_2;
if (feature_result & (1u << 28))
features |= AVX;
-#endif // x86_64
-#if defined(QT_HAVE_MMX)
- if (qgetenv("QT_NO_MMX").toInt())
- features ^= MMX;
-#endif
- if (qgetenv("QT_NO_MMXEXT").toInt())
- features ^= MMXEXT;
+ return features;
+}
-#if defined(QT_HAVE_3DNOW)
- if (qgetenv("QT_NO_3DNOW").toInt())
- features ^= MMX3DNOW;
-#endif
- if (qgetenv("QT_NO_3DNOWEXT").toInt())
- features ^= MMX3DNOWEXT;
+#elif defined(__ia64__)
+static inline uint detectProcessorFeatures()
+{
+ return MMX|SSE|SSE2;
+}
-#if defined(QT_HAVE_SSE)
- if (qgetenv("QT_NO_SSE").toInt())
- features ^= SSE;
-#endif
-#if defined(QT_HAVE_SSE2)
- if (qgetenv("QT_NO_SSE2").toInt())
- features ^= SSE2;
+#else
+static inline uint detectProcessorFeatures()
+{
+ return 0;
+}
#endif
+/*
+ * Use kdesdk/scripts/generate_string_table.pl to update the table below.
+ * Here's the data (don't forget the ONE leading space):
+ mmx
+ mmxext
+ mmx3dnow
+ mmx3dnowext
+ sse
+ sse2
+ cmov
+ iwmmxt
+ neon
+ sse3
+ ssse3
+ sse4.1
+ sse4.2
+ avx
+ */
+
+// begin generated
+static const char features_string[] =
+ " mmx\0"
+ " mmxext\0"
+ " mmx3dnow\0"
+ " mmx3dnowext\0"
+ " sse\0"
+ " sse2\0"
+ " cmov\0"
+ " iwmmxt\0"
+ " neon\0"
+ " sse3\0"
+ " ssse3\0"
+ " sse4.1\0"
+ " sse4.2\0"
+ " avx\0"
+ "\0";
+
+static const int features_indices[] = {
+ 0, 5, 13, 23, 36, 41, 47, 53,
+ 61, 67, 73, 80, 88, 96, -1
+};
+// end generated
+
+const int features_count = (sizeof features_indices - 1) / (sizeof features_indices[0]);
+
+uint qDetectCPUFeatures()
+{
+ static QBasicAtomicInt features = Q_BASIC_ATOMIC_INITIALIZER(-1);
+ if (features != -1)
+ return features;
+
+ uint f = detectProcessorFeatures();
+ QByteArray disable = qgetenv("QT_NO_CPU_FEATURE");
+ if (!disable.isEmpty()) {
+ disable.prepend(' ');
+ for (int i = 0; i < features_count; ++i) {
+ if (disable.contains(features_string + features_indices[i]))
+ f &= ~(1 << i);
+ }
+ }
+
+ features = f;
return features;
-#endif
+}
+
+void qDumpCPUFeatures()
+{
+ uint features = qDetectCPUFeatures();
+ printf("Processor features: ");
+ for (int i = 0; i < features_count; ++i) {
+ if (features & (1 << i))
+ printf("%s", features_string + features_indices[i]);
+ }
+ puts("");
}
QT_END_NAMESPACE
diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h
index a3148fb334..664543b136 100644
--- a/src/corelib/tools/qsimd_p.h
+++ b/src/corelib/tools/qsimd_p.h
@@ -51,8 +51,13 @@ QT_BEGIN_HEADER
#if defined(QT_NO_MAC_XARCH) || (defined(Q_OS_DARWIN) && (defined(__ppc__) || defined(__ppc64__)))
// Disable MMX and SSE on Mac/PPC builds, or if the compiler
// does not support -Xarch argument passing
-#undef QT_HAVE_SSE2
#undef QT_HAVE_SSE
+#undef QT_HAVE_SSE2
+#undef QT_HAVE_SSE3
+#undef QT_HAVE_SSSE3
+#undef QT_HAVE_SSE4_1
+#undef QT_HAVE_SSE4_2
+#undef QT_HAVE_AVX
#undef QT_HAVE_3DNOW
#undef QT_HAVE_MMX
#endif
@@ -85,6 +90,7 @@ QT_BEGIN_HEADER
// SSE4.1 and SSE4.2 intrinsics
#if (defined(QT_HAVE_SSE4_1) || defined(QT_HAVE_SSE4_2)) && (defined(__SSE4_1__) || defined(Q_CC_MSVC))
#include <smmintrin.h>
+#include <nmmintrin.h>
#endif
// AVX intrinsics
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index 2fd9a0b660..2813b290d4 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -173,19 +173,6 @@ static int ucstricmp(const ushort *a, const ushort *ae, const uchar *b)
return 1;
}
-// Unicode case-insensitive comparison
-static int ucstrcmp(const QChar *a, int alen, const QChar *b, int blen)
-{
- if (a == b && alen == blen)
- return 0;
- int l = qMin(alen, blen);
- while (l-- && *a == *b)
- a++,b++;
- if (l == -1)
- return (alen-blen);
- return a->unicode() - b->unicode();
-}
-
// Unicode case-sensitive compare two same-sized strings
static int ucstrncmp(const QChar *a, const QChar *b, int l)
{
@@ -196,28 +183,71 @@ static int ucstrncmp(const QChar *a, const QChar *b, int l)
return a->unicode() - b->unicode();
}
+// Unicode case-sensitive comparison
+static int ucstrcmp(const QChar *a, int alen, const QChar *b, int blen)
+{
+ if (a == b && alen == blen)
+ return 0;
+ int l = qMin(alen, blen);
+ int cmp = ucstrncmp(a, b, l);
+ return cmp ? cmp : (alen-blen);
+}
+
// Unicode case-insensitive compare two same-sized strings
static int ucstrnicmp(const ushort *a, const ushort *b, int l)
{
return ucstricmp(a, a + l, b, b + l);
}
+// Benchmarking indicates that doing memcmp is much slower than
+// executing the comparison ourselves.
+//
+// The profiling was done on a population of calls to qMemEquals, generated
+// during a run of the demo browser. The profile of the data (32-bit x86
+// Linux) was:
+//
+// total number of comparisons: 21353
+// longest string compared: 95
+// average comparison length: 14.8786
+// cache-line crosses: 5661 (13.3%)
+// alignment histogram:
+// 0xXXX0 = 512 (1.2%) strings, 0 (0.0%) of which same-aligned
+// 0xXXX2 = 15087 (35.3%) strings, 5145 (34.1%) of which same-aligned
+// 0xXXX4 = 525 (1.2%) strings, 0 (0.0%) of which same-aligned
+// 0xXXX6 = 557 (1.3%) strings, 6 (1.1%) of which same-aligned
+// 0xXXX8 = 509 (1.2%) strings, 0 (0.0%) of which same-aligned
+// 0xXXXa = 24358 (57.0%) strings, 9901 (40.6%) of which same-aligned
+// 0xXXXc = 557 (1.3%) strings, 0 (0.0%) of which same-aligned
+// 0xXXXe = 601 (1.4%) strings, 15 (2.5%) of which same-aligned
+// total = 42706 (100%) strings, 15067 (35.3%) of which same-aligned
+//
+// 92% of the strings have alignment of 2 or 10, which is due to malloc on
+// 32-bit Linux returning values aligned to 8 bytes, and offsetof(array, QString::Data) == 18.
+//
+// The profile on 64-bit will be different since offsetof(array, QString::Data) == 26.
+//
+// The benchmark results were, for a Core-i7 @ 2.67 GHz 32-bit, compiled with -O3 -funroll-loops:
+// 16-bit loads only: 872,301 CPU ticks [Qt 4.5 / memcmp]
+// 32- and 16-bit loads: 773,362 CPU ticks [Qt 4.6]
+// SSE2 "movdqu" 128-bit loads: 618,736 CPU ticks
+// SSE3 "lddqu" 128-bit loads: 619,954 CPU ticks
+// SSSE3 "palignr" corrections: 852,147 CPU ticks
+// SSE4.2 "pcmpestrm": 738,702 CPU ticks
+//
+// The same benchmark on an Atom N450 @ 1.66 GHz, is:
+// 16-bit loads only: 2,185,882 CPU ticks
+// 32- and 16-bit loads: 1,805,060 CPU ticks
+// SSE2 "movdqu" 128-bit loads: 2,529,843 CPU ticks
+// SSE3 "lddqu" 128-bit loads: 2,514,858 CPU ticks
+// SSSE3 "palignr" corrections: 2,160,325 CPU ticks
+// SSE4.2 not available
+//
+// The conclusion we reach is that alignment the SSE2 unaligned code can gain
+// 20% improvement in performance in some systems, but suffers a penalty due
+// to the unaligned loads on others.
+
static bool qMemEquals(const quint16 *a, const quint16 *b, int length)
{
- // Benchmarking indicates that doing memcmp is much slower than
- // executing the comparison ourselves.
- // To make it even faster, we do a 32-bit comparison, comparing
- // twice the amount of data as a normal word-by-word comparison.
- //
- // Benchmarking results on a 2.33 GHz Core2 Duo, with a 64-QChar
- // block of data, with 4194304 iterations (per iteration):
- // operation usec cpu ticks
- // memcmp 330 710
- // 16-bit 79 167-171
- // 32-bit aligned 49 105-109
- //
- // Testing also indicates that unaligned 32-bit loads are as
- // performant as 32-bit aligned.
if (a == b || !length)
return true;
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h
index e52f59f995..06e4d47408 100644
--- a/src/corelib/tools/qstring.h
+++ b/src/corelib/tools/qstring.h
@@ -614,6 +614,7 @@ private:
ushort asciiCache : 1;
ushort capacity : 1;
ushort reserved : 11;
+ // ### Qt5: try to ensure that "array" is aligned to 16 bytes on both 32- and 64-bit
ushort array[1];
};
static Data shared_null;
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h
index b762b8a77a..2b8d054ca4 100644
--- a/src/corelib/tools/qvector.h
+++ b/src/corelib/tools/qvector.h
@@ -293,9 +293,9 @@ public:
#ifndef QT_NO_STL
static inline QVector<T> fromStdVector(const std::vector<T> &vector)
- { QVector<T> tmp; qCopy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; }
+ { QVector<T> tmp; tmp.reserve(vector.size()); qCopy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; }
inline std::vector<T> toStdVector() const
- { std::vector<T> tmp; qCopy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; }
+ { std::vector<T> tmp; tmp.reserve(size()); qCopy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; }
#endif
private:
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index 7951177fab..3833874aaf 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -714,6 +714,9 @@ QDBusCallDeliveryEvent* QDBusConnectionPrivate::prepareReply(QDBusConnectionPriv
if (metaTypes[n] == QDBusMetaTypeId::message)
--n;
+ if (msg.arguments().count() < n)
+ return 0; // too few arguments
+
// check that types match
for (int i = 0; i < n; ++i)
if (metaTypes.at(i + 1) != msg.arguments().at(i).userType() &&
diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp
index dca26953d6..1bbfcf4a25 100644
--- a/src/declarative/debugger/qdeclarativedebugservice.cpp
+++ b/src/declarative/debugger/qdeclarativedebugservice.cpp
@@ -128,6 +128,8 @@ void QDeclarativeDebugServer::newConnection()
if (d->connection) {
qWarning("QDeclarativeDebugServer error: another client is already connected");
+ QTcpSocket *faultyConnection = d->tcpServer->nextPendingConnection();
+ delete faultyConnection;
return;
}
diff --git a/src/declarative/graphicsitems/qdeclarativeanchors.cpp b/src/declarative/graphicsitems/qdeclarativeanchors.cpp
index 7ac2b17aeb..26fb97fa64 100644
--- a/src/declarative/graphicsitems/qdeclarativeanchors.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeanchors.cpp
@@ -148,15 +148,6 @@ static qreal adjustedPosition(QGraphicsObject *item, QDeclarativeAnchorLine::Anc
return ret;
}
-/*!
- \internal
- \class QDeclarativeAnchors
- \since 4.7
- \brief The QDeclarativeAnchors class provides a way to lay out items relative to other items.
-
- \warning Currently, only anchoring to siblings or parent is supported.
-*/
-
QDeclarativeAnchors::QDeclarativeAnchors(QObject *parent)
: QObject(*new QDeclarativeAnchorsPrivate(0), parent)
{
diff --git a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp
index e0a2149a0d..12a820f92d 100644
--- a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp
@@ -54,44 +54,36 @@
QT_BEGIN_NAMESPACE
/*!
- \class QDeclarativeAnimatedImage
- \internal
-*/
-
-/*!
\qmlclass AnimatedImage QDeclarativeAnimatedImage
\inherits Image
\since 4.7
\ingroup basic-visual-elements
-
- The AnimatedImage element provides for playing animations stored as images containing a series of frames,
- such as GIF files.
-
+
+ The AnimatedImage element extends the features of the \l Image element, providing
+ a way to play animations stored as images containing a series of frames,
+ such as those stored in GIF files.
+
+ Information about the current frame and totla length of the animation can be
+ obtained using the \l currentFrame and \l frameCount properties. You can
+ start, pause and stop the animation by changing the values of the \l playing
+ and \l paused properties.
+
The full list of supported formats can be determined with QMovie::supportedFormats().
- \table
- \row
- \o \image animatedimageitem.gif
- \o
- \qml
- import Qt 4.7
+ \section1 Example Usage
- Rectangle {
- width: animation.width; height: animation.height + 8
+ \beginfloatleft
+ \image animatedimageitem.gif
+ \endfloat
- AnimatedImage { id: animation; source: "animation.gif" }
+ The following QML shows how to display an animated image and obtain information
+ about its state, such as the current frame and total number of frames.
+ The result is an animated image with a simple progress indicator underneath it.
- Rectangle {
- property int frames: animation.frameCount
+ \clearfloat
+ \snippet doc/src/snippets/declarative/animatedimage.qml document
- width: 4; height: 8
- x: (animation.width - width) * animation.currentFrame / frames
- y: animation.height
- color: "red"
- }
- }
- \endqml
- \endtable
+ \sa BorderImage, Image
*/
QDeclarativeAnimatedImage::QDeclarativeAnimatedImage(QDeclarativeItem *parent)
@@ -109,7 +101,8 @@ QDeclarativeAnimatedImage::~QDeclarativeAnimatedImage()
\qmlproperty bool AnimatedImage::paused
This property holds whether the animated image is paused.
- Defaults to false, and can be set to true when you want to pause.
+ By default, this property is false. Set it to true when you want to pause
+ the animation.
*/
bool QDeclarativeAnimatedImage::isPaused() const
{
@@ -133,7 +126,8 @@ void QDeclarativeAnimatedImage::setPaused(bool pause)
\qmlproperty bool AnimatedImage::playing
This property holds whether the animated image is playing.
- Defaults to true, so as to start playing immediately.
+ By defaults, this property is true, meaning that the animation
+ will start playing immediately.
*/
bool QDeclarativeAnimatedImage::isPlaying() const
{
@@ -161,9 +155,11 @@ void QDeclarativeAnimatedImage::setPlaying(bool play)
\qmlproperty int AnimatedImage::currentFrame
\qmlproperty int AnimatedImage::frameCount
- currentFrame is the frame that is currently visible. Watching when this changes can
- allow other things to animate at the same time as the image. frameCount is the number
- of frames in the animation. For some animation formats, frameCount is unknown and set to zero.
+ currentFrame is the frame that is currently visible. By monitoring this property
+ for changes, you can animate other items at the same time as the image.
+
+ frameCount is the number of frames in the animation. For some animation formats,
+ frameCount is unknown and has a value of zero.
*/
int QDeclarativeAnimatedImage::currentFrame() const
{
diff --git a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
index e0c7fc273f..c58a08ddd5 100644
--- a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
@@ -56,34 +56,98 @@ QT_BEGIN_NAMESPACE
\brief The BorderImage element provides an image that can be used as a border.
\inherits Item
\since 4.7
- \ingroup qm-basic-visual-elements
+ \ingroup qml-basic-visual-elements
- A BorderImage breaks an image into 9 sections, as shown below:
+ The BorderImage element is used to create borders out of images by scaling or tiling
+ parts of each image.
+
+ A BorderImage element breaks a source image, specified using the \l url property,
+ into 9 regions, as shown below:
\image declarative-scalegrid.png
- When the image is scaled:
+ When the image is scaled, regions of the source image are scaled or tiled to
+ create the displayed border image in the following way:
+
\list
- \i the corners (sections 1, 3, 7, and 9) are not scaled at all
- \i sections 2 and 8 are scaled according to \l{BorderImage::horizontalTileMode}{horizontalTileMode}
- \i sections 4 and 6 are scaled according to \l{BorderImage::verticalTileMode}{verticalTileMode}
- \i the middle (section 5) is scaled according to both \l{BorderImage::horizontalTileMode}{horizontalTileMode} and \l{BorderImage::verticalTileMode}{verticalTileMode}
+ \i The corners (regions 1, 3, 7, and 9) are not scaled at all.
+ \i Regions 2 and 8 are scaled according to
+ \l{BorderImage::horizontalTileMode}{horizontalTileMode}.
+ \i Regions 4 and 6 are scaled according to
+ \l{BorderImage::verticalTileMode}{verticalTileMode}.
+ \i The middle (region 5) is scaled according to both
+ \l{BorderImage::horizontalTileMode}{horizontalTileMode} and
+ \l{BorderImage::verticalTileMode}{verticalTileMode}.
\endlist
- Examples:
- \snippet snippets/declarative/borderimage.qml 0
+ The regions of the image are defined using the \l border property group, which
+ describes the distance from each edge of the source image to use as a border.
- \image BorderImage.png
+ \section1 Example Usage
- The \l{declarative/imageelements/borderimage}{BorderImage example} shows how a BorderImage can be used to simulate a shadow effect on a
- rectangular item.
- */
+ The following examples show the effects of the different modes on an image.
+ Guide lines are overlaid onto the image to show the different regions of the
+ image as described above.
-/*!
- \class QDeclarativeBorderImage BorderImage
- \internal
- \brief The QDeclarativeBorderImage class provides an image item that you can add to a QDeclarativeView.
-*/
+ \beginfloatleft
+ \image qml-borderimage-normal-image.png
+ \endfloat
+
+ An unscaled image is displayed using an Image element. The \l border property is
+ used to determine the parts of the image that will lie inside the unscaled corner
+ areas and the parts that will be stretched horizontally and vertically.
+
+ \snippet doc/src/snippets/declarative/borderimage/normal-image.qml normal image
+
+ \clearfloat
+ \beginfloatleft
+ \image qml-borderimage-scaled.png
+ \endfloat
+
+ A BorderImage element is used to display the image, and it is given a size that is
+ larger than the original image. Since the \l horizontalTileMode property is set to
+ \l{BorderImage::horizontalTileMode}{BorderImage.Stretch}, the parts of image in
+ regions 2 and 8 are stretched horizontally. Since the \l verticalTileMode property
+ is set to \l{BorderImage::verticalTileMode}{BorderImage.Stretch}, the parts of image
+ in regions 4 and 6 are stretched vertically.
+
+ \snippet doc/src/snippets/declarative/borderimage/borderimage-scaled.qml scaled border image
+
+ \clearfloat
+ \beginfloatleft
+ \image qml-borderimage-tiled.png
+ \endfloat
+
+ Again, a large BorderImage element is used to display the image. With the
+ \l horizontalTileMode property set to \l{BorderImage::horizontalTileMode}{BorderImage.Repeat},
+ the parts of image in regions 2 and 8 are tiled so that they fill the space at the
+ top and bottom of the element. Similarly, the \l verticalTileMode property is set to
+ \l{BorderImage::verticalTileMode}{BorderImage.Repeat}, the parts of image in regions
+ 4 and 6 are tiled so that they fill the space at the left and right of the element.
+
+ \snippet doc/src/snippets/declarative/borderimage/borderimage-tiled.qml tiled border image
+
+ \clearfloat
+ In some situations, the width of regions 2 and 8 may not be an exact multiple of the width
+ of the corresponding regions in the source image. Similarly, the height of regions 4 and 6
+ may not be an exact multiple of the height of the corresponding regions. It can be useful
+ to use \l{BorderImage::horizontalTileMode}{BorderImage.Round} instead of
+ \l{BorderImage::horizontalTileMode}{BorderImage.Repeat} in cases like these.
+
+ The \l{declarative/imageelements/borderimage}{BorderImage example} shows how a BorderImage
+ can be used to simulate a shadow effect on a rectangular item.
+
+ \section1 Quality and Performance
+
+ By default, any scaled regions of the image are rendered without smoothing to improve
+ rendering speed. Setting the \l smooth property improves rendering quality of scaled
+ regions, but may slow down rendering.
+
+ The source image may not be loaded instantaneously, depending on its original location.
+ Loading progress can be monitored with the \l progress property.
+
+ \sa Image, AnimatedImage
+ */
QDeclarativeBorderImage::QDeclarativeBorderImage(QDeclarativeItem *parent)
: QDeclarativeImageBase(*(new QDeclarativeBorderImagePrivate), parent)
@@ -99,7 +163,8 @@ QDeclarativeBorderImage::~QDeclarativeBorderImage()
/*!
\qmlproperty enumeration BorderImage::status
- This property holds the status of image loading. It can be one of:
+ This property describes the status of image loading. It can be one of:
+
\list
\o BorderImage.Null - no image has been set
\o BorderImage.Ready - the image has been loaded
@@ -127,20 +192,28 @@ QDeclarativeBorderImage::~QDeclarativeBorderImage()
the image is displayed at its natural size, this property has no visual or
performance effect.
+ By default, this property is set to false.
+
\note Generally scaling artifacts are only visible if the image is stationary on
the screen. A common pattern when animating an image is to disable smooth
- filtering at the beginning of the animation and reenable it at the conclusion.
+ filtering at the beginning of the animation and enable it at the conclusion.
*/
/*!
\qmlproperty url BorderImage::source
- BorderImage can handle any image format supported by Qt, loaded from any URL scheme supported by Qt.
+ This property holds the URL that refers to the source image.
- It can also handle .sci files, which are a QML-specific format. A .sci file uses a simple text-based format that specifies
- the borders, the image file and the tile rules.
+ BorderImage can handle any image format supported by Qt, loaded from any
+ URL scheme supported by Qt.
+
+ It can also handle .sci files, which are a QML-specific format. A .sci
+ file uses a simple text-based format that specifies the borders, the
+ image file and the tile rules.
+
+ The following .sci file sets the borders to 10 on each side for the
+ image \c picture.png:
- The following .sci file sets the borders to 10 on each side for the image \c picture.png:
\qml
border.left: 10
border.top: 10
@@ -251,17 +324,21 @@ void QDeclarativeBorderImage::load()
\qmlproperty int BorderImage::border.top
\qmlproperty int BorderImage::border.bottom
- The 4 border lines (2 horizontal and 2 vertical) break the image into 9 sections, as shown below:
+ The 4 border lines (2 horizontal and 2 vertical) break the image into 9 sections,
+ as shown below:
\image declarative-scalegrid.png
- Each border line (left, right, top, and bottom) specifies an offset in pixels from the respective side.
+ Each border line (left, right, top, and bottom) specifies an offset in pixels
+ from the respective edge of the source image. By default, each border line has
+ a value of 0.
+
+ For example, the following definition sets the bottom line 10 pixels up from
+ the bottom of the image:
- For example:
\qml
border.bottom: 10
\endqml
- sets the bottom line 10 pixels up from the bottom of the image.
The border lines can also be specified using a
\l {BorderImage::source}{.sci file}.
@@ -280,7 +357,7 @@ QDeclarativeScaleGrid *QDeclarativeBorderImage::border()
This property describes how to repeat or stretch the middle parts of the border image.
\list
- \o BorderImage.Stretch - Scale the image to fit to the available area.
+ \o BorderImage.Stretch - Scales the image to fit to the available area.
\o BorderImage.Repeat - Tile the image until there is no more space. May crop the last image.
\o BorderImage.Round - Like Repeat, but scales the images down to ensure that the last image is not cropped.
\endlist
diff --git a/src/declarative/graphicsitems/qdeclarativeevents.cpp b/src/declarative/graphicsitems/qdeclarativeevents.cpp
index 0a35a3f4c9..dbfb3fb43f 100644
--- a/src/declarative/graphicsitems/qdeclarativeevents.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeevents.cpp
@@ -60,11 +60,6 @@ Item {
*/
/*!
- \internal
- \class QDeclarativeKeyEvent
-*/
-
-/*!
\qmlproperty int KeyEvent::key
This property holds the code of the key that was pressed or released.
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index a6e8c85818..062bbfb92d 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -350,24 +350,34 @@ void QDeclarativeFlickablePrivate::updateBeginningEnd()
\brief The Flickable item provides a surface that can be "flicked".
\inherits Item
- Flickable places its children on a surface that can be dragged and flicked.
+ The Flickable item places its children on a surface that can be dragged
+ and flicked, causing the view onto the child items to scroll. This
+ behavior forms the basis of Items that are designed to show large numbers
+ of child items, such as \l ListView and \l GridView.
- \code
- import Qt 4.7
+ In traditional user interfaces, views can be scrolled using standard
+ controls, such as scroll bars and arrow buttons. In some situations, it
+ is also possible to drag the view directly by pressing and holding a
+ mouse button while moving the cursor. In touch-based user interfaces,
+ this dragging action is often complemented with a flicking action, where
+ scrolling continues after the user has stopped touching the view.
- Flickable {
- width: 200; height: 200
- contentWidth: image.width; contentHeight: image.height
+ Flickable does not automatically clip its contents. If it is not used as
+ a full-screen item, you should consider setting the \l{Item::}{clip} property
+ to true.
- Image { id: image; source: "bigImage.png" }
- }
- \endcode
+ \section1 Example Usage
+
+ \beginfloatright
+ \inlineimage flickable.gif
+ \endfloat
- \image flickable.gif
+ The following example shows a large
- Flickable does not automatically clip its contents. If
- it is not full-screen it is likely that \l {Item::clip}{clip} should be set
- to \c true.
+ \clearfloat
+ \snippet doc/src/snippets/declarative/flickable.qml document
+
+ \section1 Limitations
\note Due to an implementation detail, items placed inside a Flickable cannot anchor to it by
\c id. Use \c parent instead.
@@ -491,12 +501,15 @@ void QDeclarativeFlickable::setContentY(qreal pos)
/*!
\qmlproperty bool Flickable::interactive
- This property holds whether the user can interact with the Flickable. A user
- cannot drag or flick a Flickable that is not interactive.
+ This property describes whether the user can interact with the Flickable.
+ A user cannot drag or flick a Flickable that is not interactive.
+
+ By default, this property is true.
This property is useful for temporarily disabling flicking. This allows
- special interaction with Flickable's children: for example, you might want to
- freeze a flickable map while scrolling through a pop-up dialog that is a child of the Flickable.
+ special interaction with Flickable's children; for example, you might want
+ to freeze a flickable map while scrolling through a pop-up dialog that
+ is a child of the Flickable.
*/
bool QDeclarativeFlickable::isInteractive() const
{
@@ -653,6 +666,8 @@ void QDeclarativeFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEven
timeline.clear();
hData.velocity = 0;
vData.velocity = 0;
+ hData.dragStartOffset = 0;
+ vData.dragStartOffset = 0;
lastPos = QPoint();
QDeclarativeItemPrivate::start(lastPosTime);
pressPos = event->pos();
@@ -675,7 +690,9 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent
if (q->yflick()) {
int dy = int(event->pos().y() - pressPos.y());
if (qAbs(dy) > QApplication::startDragDistance() || QDeclarativeItemPrivate::elapsed(pressTime) > 200) {
- qreal newY = dy + vData.pressPos;
+ if (!vMoved)
+ vData.dragStartOffset = dy;
+ qreal newY = dy + vData.pressPos - vData.dragStartOffset;
const qreal minY = q->minYExtent();
const qreal maxY = q->maxYExtent();
if (newY > minY)
@@ -705,7 +722,9 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent
if (q->xflick()) {
int dx = int(event->pos().x() - pressPos.x());
if (qAbs(dx) > QApplication::startDragDistance() || QDeclarativeItemPrivate::elapsed(pressTime) > 200) {
- qreal newX = dx + hData.pressPos;
+ if (!hMoved)
+ hData.dragStartOffset = dx;
+ qreal newX = dx + hData.pressPos - hData.dragStartOffset;
const qreal minX = q->minXExtent();
const qreal maxX = q->maxXExtent();
if (newX > minX)
@@ -995,12 +1014,16 @@ void QDeclarativeFlickable::geometryChanged(const QRectF &newGeometry,
bool changed = false;
if (newGeometry.width() != oldGeometry.width()) {
+ if (xflick())
+ changed = true;
if (d->hData.viewSize < 0) {
d->contentItem->setWidth(width());
emit contentWidthChanged();
}
}
if (newGeometry.height() != oldGeometry.height()) {
+ if (yflick())
+ changed = true;
if (d->vData.viewSize < 0) {
d->contentItem->setHeight(height());
emit contentHeightChanged();
@@ -1248,6 +1271,7 @@ bool QDeclarativeFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event)
if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) {
d->clearDelayedPress();
d->stealMouse = false;
+ d->pressed = false;
}
return false;
}
@@ -1322,8 +1346,8 @@ bool QDeclarativeFlickable::isFlicking() const
\qmlproperty bool Flickable::flickingHorizontally
\qmlproperty bool Flickable::flickingVertically
- These properties hold whether the view is currently moving horizontally
- or vertically due to the user flicking the view.
+ These properties describe whether the view is currently moving horizontally,
+ vertically or in either direction, due to the user flicking the view.
*/
bool QDeclarativeFlickable::isFlickingHorizontally() const
{
@@ -1375,8 +1399,9 @@ bool QDeclarativeFlickable::isMoving() const
\qmlproperty bool Flickable::movingHorizontally
\qmlproperty bool Flickable::movingVertically
- These properties hold whether the view is currently moving horizontally
- or vertically due to the user either dragging or flicking the view.
+ These properties describe whether the view is currently moving horizontally,
+ vertically or in either direction, due to the user either dragging or
+ flicking the view.
*/
bool QDeclarativeFlickable::isMovingHorizontally() const
{
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h
index b919e1be1e..c398faa6f3 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h
@@ -96,6 +96,7 @@ public:
QDeclarativeTimeLineValueProxy<QDeclarativeFlickablePrivate> move;
qreal viewSize;
qreal pressPos;
+ qreal dragStartOffset;
qreal velocity;
qreal flickTarget;
QDeclarativeFlickablePrivate::Velocity smoothVelocity;
diff --git a/src/declarative/graphicsitems/qdeclarativeflipable.cpp b/src/declarative/graphicsitems/qdeclarativeflipable.cpp
index 6ce0fa60fb..4ecf87b3f6 100644
--- a/src/declarative/graphicsitems/qdeclarativeflipable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflipable.cpp
@@ -71,41 +71,41 @@ public:
\qmlclass Flipable QDeclarativeFlipable
\since 4.7
\ingroup qml-basic-interaction-elements
-
\brief The Flipable item provides a surface that can be flipped.
\inherits Item
Flipable is an item that can be visibly "flipped" between its front and
- back sides. It is used together with \l Rotation and \l {State}/\l {Transition} to
- produce a flipping effect.
+ back sides, like a card. It is used together with \l Rotation, \l State
+ and \l Transition elements to produce a flipping effect.
+
+ The \l front and \l back properties are used to hold the items that are
+ shown respectively on the front and back sides of the flipable item.
- Here is a Flipable that flips whenever it is clicked:
+ \section1 Example Usage
- \snippet doc/src/snippets/declarative/flipable.qml 0
+ \beginfloatright
+ \inlineimage flipable.gif
+ \endfloat
- \image flipable.gif
+ The following example shows a Flipable item that flips whenever it is
+ clicked, rotating about the y-axis.
The \l Rotation element is used to specify the angle and axis of the flip.
- When \c flipped is \c true, the item changes to the "back" state, where
+ When \c flipped is true, the item changes to the "back" state, where
the angle is changed to 180 degrees to produce the flipping effect.
- Finally, the \l Transition creates the animation that changes the
- angle over one second: when the item changes between its "back" and
+
+ \clearfloat
+ \snippet doc/src/snippets/declarative/flipable/flipable-snippet.qml 0
+
+ The \l Transition creates the animation that changes the angle over the
+ duration of one second. When the item changes between its "back" and
default states, the NumberAnimation animates the angle between
its old and new values.
See the \l {QML States} and \l {QML Animation} documentation for more
details on state changes and how animations work within transitions.
-
- \sa {declarative/ui-components/flipable}{Flipable example}
-*/
-/*!
- \internal
- \class QDeclarativeFlipable
- \brief The Flipable item provides a surface that can be flipped.
-
- Flipable is an item that can be visibly "flipped" between its front and
- back sides.
+ \sa {declarative/ui-components/flipable}{Flipable example}
*/
QDeclarativeFlipable::QDeclarativeFlipable(QDeclarativeItem *parent)
diff --git a/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp b/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp
index 5c7959a848..f345a14e54 100644
--- a/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp
+++ b/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp
@@ -61,11 +61,6 @@ QT_BEGIN_NAMESPACE
\l {qmlfocus}{keyboard focus documentation}.
*/
-/*!
- \internal
- \class QDeclarativeFocusPanel
-*/
-
QDeclarativeFocusPanel::QDeclarativeFocusPanel(QDeclarativeItem *parent) :
QDeclarativeItem(parent)
{
diff --git a/src/declarative/graphicsitems/qdeclarativefocusscope.cpp b/src/declarative/graphicsitems/qdeclarativefocusscope.cpp
index 449827574d..da97a463fa 100644
--- a/src/declarative/graphicsitems/qdeclarativefocusscope.cpp
+++ b/src/declarative/graphicsitems/qdeclarativefocusscope.cpp
@@ -60,11 +60,6 @@ QT_BEGIN_NAMESPACE
\sa {declarative/keyinteraction/focus}{Keyboard focus example}
*/
-/*!
- \internal
- \class QDeclarativeFocusScope
-*/
-
QDeclarativeFocusScope::QDeclarativeFocusScope(QDeclarativeItem *parent) :
QDeclarativeItem(parent)
{
diff --git a/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp b/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp
index ee45406d7d..d45fe839a8 100644
--- a/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp
@@ -68,7 +68,6 @@ QDeclarativeGraphicsWidget::~QDeclarativeGraphicsWidget()
delete d->_anchors; d->_anchors = 0;
}
-/*! \internal */
QDeclarativeAnchors *QDeclarativeGraphicsWidget::anchors()
{
Q_D(QDeclarativeGraphicsWidget);
@@ -85,54 +84,36 @@ QDeclarativeItemPrivate::AnchorLines *QDeclarativeGraphicsWidgetPrivate::anchorL
return _anchorLines;
}
-/*!
- \internal
-*/
QDeclarativeAnchorLine QDeclarativeGraphicsWidget::left() const
{
Q_D(const QDeclarativeGraphicsWidget);
return d->anchorLines()->left;
}
-/*!
- \internal
-*/
QDeclarativeAnchorLine QDeclarativeGraphicsWidget::right() const
{
Q_D(const QDeclarativeGraphicsWidget);
return d->anchorLines()->right;
}
-/*!
- \internal
-*/
QDeclarativeAnchorLine QDeclarativeGraphicsWidget::horizontalCenter() const
{
Q_D(const QDeclarativeGraphicsWidget);
return d->anchorLines()->hCenter;
}
-/*!
- \internal
-*/
QDeclarativeAnchorLine QDeclarativeGraphicsWidget::top() const
{
Q_D(const QDeclarativeGraphicsWidget);
return d->anchorLines()->top;
}
-/*!
- \internal
-*/
QDeclarativeAnchorLine QDeclarativeGraphicsWidget::bottom() const
{
Q_D(const QDeclarativeGraphicsWidget);
return d->anchorLines()->bottom;
}
-/*!
- \internal
-*/
QDeclarativeAnchorLine QDeclarativeGraphicsWidget::verticalCenter() const
{
Q_D(const QDeclarativeGraphicsWidget);
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index d67e69a955..a0faf14a6c 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -64,7 +64,7 @@ public:
FxGridItem(QDeclarativeItem *i, QDeclarativeGridView *v) : item(i), view(v) {
attached = static_cast<QDeclarativeGridViewAttached*>(qmlAttachedPropertiesObject<QDeclarativeGridView>(item));
if (attached)
- attached->m_view = view;
+ attached->setView(view);
}
~FxGridItem() {}
@@ -2212,7 +2212,7 @@ void QDeclarativeGridView::trackedPositionChanged()
if (trackedPos < d->startPosition() + d->highlightRangeStart) {
pos = d->startPosition();
} else if (d->trackedItem->endRowPos() > d->endPosition() - d->size() + d->highlightRangeEnd) {
- pos = d->endPosition() - d->size();
+ pos = d->endPosition() - d->size() + 1;
if (pos < d->startPosition())
pos = d->startPosition();
} else {
@@ -2226,14 +2226,14 @@ void QDeclarativeGridView::trackedPositionChanged()
} else {
if (trackedPos < viewPos && d->currentItem->rowPos() < viewPos) {
pos = d->currentItem->rowPos() < trackedPos ? trackedPos : d->currentItem->rowPos();
- } else if (d->trackedItem->endRowPos() > viewPos + d->size()
- && d->currentItem->endRowPos() > viewPos + d->size()) {
- if (d->trackedItem->endRowPos() < d->currentItem->endRowPos()) {
- pos = d->trackedItem->endRowPos() - d->size();
+ } else if (d->trackedItem->endRowPos() >= viewPos + d->size()
+ && d->currentItem->endRowPos() >= viewPos + d->size()) {
+ if (d->trackedItem->endRowPos() <= d->currentItem->endRowPos()) {
+ pos = d->trackedItem->endRowPos() - d->size() + 1;
if (d->rowSize() > d->size())
pos = trackedPos;
} else {
- pos = d->currentItem->endRowPos() - d->size();
+ pos = d->currentItem->endRowPos() - d->size() + 1;
if (d->rowSize() > d->size())
pos = d->currentItem->rowPos();
}
diff --git a/src/declarative/graphicsitems/qdeclarativegridview_p.h b/src/declarative/graphicsitems/qdeclarativegridview_p.h
index d6bbaf3aac..ee632b1825 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview_p.h
+++ b/src/declarative/graphicsitems/qdeclarativegridview_p.h
@@ -43,6 +43,7 @@
#define QDECLARATIVEGRIDVIEW_H
#include "private/qdeclarativeflickable_p.h"
+#include "private/qdeclarativeguard_p.h"
QT_BEGIN_HEADER
@@ -220,8 +221,14 @@ public:
: QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {}
~QDeclarativeGridViewAttached() {}
- Q_PROPERTY(QDeclarativeGridView *view READ view CONSTANT)
+ Q_PROPERTY(QDeclarativeGridView *view READ view NOTIFY viewChanged)
QDeclarativeGridView *view() { return m_view; }
+ void setView(QDeclarativeGridView *view) {
+ if (view != m_view) {
+ m_view = view;
+ emit viewChanged();
+ }
+ }
Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged)
bool isCurrentItem() const { return m_isCurrent; }
@@ -249,9 +256,10 @@ Q_SIGNALS:
void delayRemoveChanged();
void add();
void remove();
+ void viewChanged();
public:
- QDeclarativeGridView *m_view;
+ QDeclarativeGuard<QDeclarativeGridView> m_view;
bool m_isCurrent : 1;
bool m_delayRemove : 1;
};
diff --git a/src/declarative/graphicsitems/qdeclarativeimage.cpp b/src/declarative/graphicsitems/qdeclarativeimage.cpp
index 1cc5f81b44..9cd9ad6200 100644
--- a/src/declarative/graphicsitems/qdeclarativeimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp
@@ -51,34 +51,46 @@ QT_BEGIN_NAMESPACE
/*!
\qmlclass Image QDeclarativeImage
\since 4.7
- \ingroup qml-vasic-visual-elements
-
- \brief The Image element allows you to add bitmaps to a scene.
+ \ingroup qml-basic-visual-elements
+ \brief The Image element displays an image in a declarative user interface
\inherits Item
- An Image element displays a specified \l source image:
+ The Image element is used to display images in a declarative user interface.
- \table
- \row
- \o \image declarative-qtlogo.png
- \o \qml
- import Qt 4.7
+ The source of the image is specified as a URL using the \l source property.
+ Images can be supplied in any of the standard image formats supported by Qt,
+ including bitmap formats such as PNG and JPEG, and vector graphics formats
+ such as SVG. If you need to display animated images, use the \l AnimatedImage
+ element.
- Image { source: "qtlogo.png" }
- \endqml
- \endtable
+ If the \l{Item::width}{width} and \l{Item::height}{height} properties are not
+ specified, the Image element automatically uses the size of the loaded image.
+ By default, specifying the width and height of the element causes the image
+ to be scaled to that size. This behavior can be changed by setting the
+ \l fillMode property, allowing the image to be stretched and tiled instead.
+
+ \section1 Example Usage
+
+ The following example shows the simplest usage of the Image element.
+
+ \snippet doc/src/snippets/declarative/image.qml document
+
+ \beginfloatleft
+ \image declarative-qtlogo.png
+ \endfloat
- If the \l {Item::width}{width} and \l{Item::height}{height} properties are not specified,
- the Image element is automatically sized to the loaded image. Image elements can be
- stretched and tiled using the \l fillMode property.
+ \clearfloat
+
+ \section1 Performance
By default, locally available images are loaded immediately, and the user interface
is blocked until loading is complete. If a large image is to be loaded, it may be
preferable to load the image in a low priority thread, by enabling the \l asynchronous
property.
- If the image is from a network rather than a local resource, it is automatically loaded
- asynchronously, and the \l progress and \l status properties are updated as appropriate.
+ If the image is obtained from a network rather than a local resource, it is
+ automatically loaded asynchronously, and the \l progress and \l status properties
+ are updated as appropriate.
Images are cached and shared internally, so if several Image elements have the same \l source,
only one copy of the image will be loaded.
@@ -91,19 +103,6 @@ QT_BEGIN_NAMESPACE
\sa {declarative/imageelements/image}{Image example}, QDeclarativeImageProvider
*/
-/*!
- \internal
- \class QDeclarativeImage Image
- \brief The QDeclarativeImage class provides an image item that you can add to a QDeclarativeView.
-
- Example:
- \qml
- Image { source: "pics/star.png" }
- \endqml
-
- A QDeclarativeImage object can be instantiated in QML using the tag \l Image.
-*/
-
QDeclarativeImage::QDeclarativeImage(QDeclarativeItem *parent)
: QDeclarativeImageBase(*(new QDeclarativeImagePrivate), parent)
{
diff --git a/src/declarative/graphicsitems/qdeclarativeimagebase.cpp b/src/declarative/graphicsitems/qdeclarativeimagebase.cpp
index d6b935b99b..02b4807e1f 100644
--- a/src/declarative/graphicsitems/qdeclarativeimagebase.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeimagebase.cpp
@@ -50,13 +50,6 @@
QT_BEGIN_NAMESPACE
-
-/*!
- \class QDeclarativeImageBase
- \internal
- \brief The base class for declarative images.
- */
-
QDeclarativeImageBase::QDeclarativeImageBase(QDeclarativeImageBasePrivate &dd, QDeclarativeItem *parent)
: QDeclarativeItem(dd, parent)
{
@@ -136,30 +129,25 @@ QSize QDeclarativeImageBase::sourceSize() const
void QDeclarativeImageBase::load()
{
Q_D(QDeclarativeImageBase);
- if (d->progress != 0.0) {
- d->progress = 0.0;
- emit progressChanged(d->progress);
- }
if (d->url.isEmpty()) {
d->pix.clear();
d->status = Null;
+ d->progress = 0.0;
setImplicitWidth(0);
setImplicitHeight(0);
+ emit progressChanged(d->progress);
emit statusChanged(d->status);
- d->sourcesize.setWidth(0);
- d->sourcesize.setHeight(0);
- emit sourceSizeChanged();
pixmapChange();
update();
} else {
-
- d->status = Loading;
- emit statusChanged(d->status);
-
d->pix.load(qmlEngine(this), d->url, d->sourcesize, d->async);
if (d->pix.isLoading()) {
+ d->progress = 0.0;
+ d->status = Loading;
+ emit progressChanged(d->progress);
+ emit statusChanged(d->status);
static int thisRequestProgress = -1;
static int thisRequestFinished = -1;
@@ -183,25 +171,31 @@ void QDeclarativeImageBase::requestFinished()
{
Q_D(QDeclarativeImageBase);
+ QDeclarativeImageBase::Status oldStatus = d->status;
+ qreal oldProgress = d->progress;
+
if (d->pix.isError()) {
d->status = Error;
qmlInfo(this) << d->pix.error();
} else {
d->status = Ready;
}
- emit statusChanged(d->status);
+
+ d->progress = 1.0;
setImplicitWidth(d->pix.width());
setImplicitHeight(d->pix.height());
- d->progress = 1.0;
- emit progressChanged(d->progress);
-
if (d->sourcesize.width() != d->pix.width() || d->sourcesize.height() != d->pix.height()) {
d->sourcesize.setWidth(d->pix.width());
d->sourcesize.setHeight(d->pix.height());
emit sourceSizeChanged();
}
+
+ if (d->status != oldStatus)
+ emit statusChanged(d->status);
+ if (d->progress != oldProgress)
+ emit progressChanged(d->progress);
pixmapChange();
update();
}
diff --git a/src/declarative/graphicsitems/qdeclarativeimagebase_p.h b/src/declarative/graphicsitems/qdeclarativeimagebase_p.h
index f5896b1a33..68eb8d0658 100644
--- a/src/declarative/graphicsitems/qdeclarativeimagebase_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeimagebase_p.h
@@ -58,7 +58,6 @@ class Q_AUTOTEST_EXPORT QDeclarativeImageBase : public QDeclarativeItem
Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged)
Q_PROPERTY(bool asynchronous READ asynchronous WRITE setAsynchronous NOTIFY asynchronousChanged)
-
Q_PROPERTY(QSize sourceSize READ sourceSize WRITE setSourceSize NOTIFY sourceSizeChanged)
public:
@@ -79,7 +78,7 @@ public:
Q_SIGNALS:
void sourceChanged(const QUrl &);
void sourceSizeChanged();
- void statusChanged(Status);
+ void statusChanged(QDeclarativeImageBase::Status);
void progressChanged(qreal progress);
void asynchronousChanged();
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index 0f16a7914c..11f9179270 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -229,12 +229,6 @@ QT_BEGIN_NAMESPACE
The angle to rotate, in degrees clockwise.
*/
-/*!
- \internal
- \class QDeclarativeContents
- \brief The QDeclarativeContents class gives access to the height and width of an item's contents.
-
-*/
QDeclarativeContents::QDeclarativeContents(QDeclarativeItem *item) : m_item(item), m_x(0), m_y(0), m_width(0), m_height(0)
{
//### optimize
@@ -836,259 +830,259 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event, bool post)
*/
/*!
- \qmlsignal Keys::onPressed(event)
+ \qmlsignal Keys::onPressed(KeyEvent event)
This handler is called when a key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onReleased(event)
+ \qmlsignal Keys::onReleased(KeyEvent event)
This handler is called when a key has been released. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit0Pressed(event)
+ \qmlsignal Keys::onDigit0Pressed(KeyEvent event)
This handler is called when the digit '0' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit1Pressed(event)
+ \qmlsignal Keys::onDigit1Pressed(KeyEvent event)
This handler is called when the digit '1' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit2Pressed(event)
+ \qmlsignal Keys::onDigit2Pressed(KeyEvent event)
This handler is called when the digit '2' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit3Pressed(event)
+ \qmlsignal Keys::onDigit3Pressed(KeyEvent event)
This handler is called when the digit '3' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit4Pressed(event)
+ \qmlsignal Keys::onDigit4Pressed(KeyEvent event)
This handler is called when the digit '4' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit5Pressed(event)
+ \qmlsignal Keys::onDigit5Pressed(KeyEvent event)
This handler is called when the digit '5' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit6Pressed(event)
+ \qmlsignal Keys::onDigit6Pressed(KeyEvent event)
This handler is called when the digit '6' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit7Pressed(event)
+ \qmlsignal Keys::onDigit7Pressed(KeyEvent event)
This handler is called when the digit '7' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit8Pressed(event)
+ \qmlsignal Keys::onDigit8Pressed(KeyEvent event)
This handler is called when the digit '8' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDigit9Pressed(event)
+ \qmlsignal Keys::onDigit9Pressed(KeyEvent event)
This handler is called when the digit '9' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onLeftPressed(event)
+ \qmlsignal Keys::onLeftPressed(KeyEvent event)
This handler is called when the Left arrow has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onRightPressed(event)
+ \qmlsignal Keys::onRightPressed(KeyEvent event)
This handler is called when the Right arrow has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onUpPressed(event)
+ \qmlsignal Keys::onUpPressed(KeyEvent event)
This handler is called when the Up arrow has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDownPressed(event)
+ \qmlsignal Keys::onDownPressed(KeyEvent event)
This handler is called when the Down arrow has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onAsteriskPressed(event)
+ \qmlsignal Keys::onAsteriskPressed(KeyEvent event)
This handler is called when the Asterisk '*' has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onEscapePressed(event)
+ \qmlsignal Keys::onEscapePressed(KeyEvent event)
This handler is called when the Escape key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onReturnPressed(event)
+ \qmlsignal Keys::onReturnPressed(KeyEvent event)
This handler is called when the Return key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onEnterPressed(event)
+ \qmlsignal Keys::onEnterPressed(KeyEvent event)
This handler is called when the Enter key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onDeletePressed(event)
+ \qmlsignal Keys::onDeletePressed(KeyEvent event)
This handler is called when the Delete key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onSpacePressed(event)
+ \qmlsignal Keys::onSpacePressed(KeyEvent event)
This handler is called when the Space key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onBackPressed(event)
+ \qmlsignal Keys::onBackPressed(KeyEvent event)
This handler is called when the Back key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onCancelPressed(event)
+ \qmlsignal Keys::onCancelPressed(KeyEvent event)
This handler is called when the Cancel key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onSelectPressed(event)
+ \qmlsignal Keys::onSelectPressed(KeyEvent event)
This handler is called when the Select key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onYesPressed(event)
+ \qmlsignal Keys::onYesPressed(KeyEvent event)
This handler is called when the Yes key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onNoPressed(event)
+ \qmlsignal Keys::onNoPressed(KeyEvent event)
This handler is called when the No key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onContext1Pressed(event)
+ \qmlsignal Keys::onContext1Pressed(KeyEvent event)
This handler is called when the Context1 key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onContext2Pressed(event)
+ \qmlsignal Keys::onContext2Pressed(KeyEvent event)
This handler is called when the Context2 key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onContext3Pressed(event)
+ \qmlsignal Keys::onContext3Pressed(KeyEvent event)
This handler is called when the Context3 key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onContext4Pressed(event)
+ \qmlsignal Keys::onContext4Pressed(KeyEvent event)
This handler is called when the Context4 key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onCallPressed(event)
+ \qmlsignal Keys::onCallPressed(KeyEvent event)
This handler is called when the Call key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onHangupPressed(event)
+ \qmlsignal Keys::onHangupPressed(KeyEvent event)
This handler is called when the Hangup key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onFlipPressed(event)
+ \qmlsignal Keys::onFlipPressed(KeyEvent event)
This handler is called when the Flip key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onMenuPressed(event)
+ \qmlsignal Keys::onMenuPressed(KeyEvent event)
This handler is called when the Menu key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onVolumeUpPressed(event)
+ \qmlsignal Keys::onVolumeUpPressed(KeyEvent event)
This handler is called when the VolumeUp key has been pressed. The \a event
parameter provides information about the event.
*/
/*!
- \qmlsignal Keys::onVolumeDownPressed(event)
+ \qmlsignal Keys::onVolumeDownPressed(KeyEvent event)
This handler is called when the VolumeDown key has been pressed. The \a event
parameter provides information about the event.
@@ -1728,7 +1722,6 @@ void QDeclarativeItemPrivate::parentProperty(QObject *o, void *rv, QDeclarativeN
specify it.
*/
-/*! \internal */
QDeclarativeListProperty<QObject> QDeclarativeItemPrivate::data()
{
return QDeclarativeListProperty<QObject>(q_func(), 0, QDeclarativeItemPrivate::data_append);
@@ -1890,6 +1883,12 @@ void QDeclarativeItem::geometryChanged(const QRectF &newGeometry,
}
}
+ for(int ii = 0; ii < d->changeListeners.count(); ++ii) {
+ const QDeclarativeItemPrivate::ChangeListener &change = d->changeListeners.at(ii);
+ if (change.types & QDeclarativeItemPrivate::Geometry)
+ change.listener->itemGeometryChanged(this, newGeometry, oldGeometry);
+ }
+
if (newGeometry.x() != oldGeometry.x())
emit xChanged();
if (newGeometry.width() != oldGeometry.width())
@@ -1898,12 +1897,6 @@ void QDeclarativeItem::geometryChanged(const QRectF &newGeometry,
emit yChanged();
if (newGeometry.height() != oldGeometry.height())
emit heightChanged();
-
- for(int ii = 0; ii < d->changeListeners.count(); ++ii) {
- const QDeclarativeItemPrivate::ChangeListener &change = d->changeListeners.at(ii);
- if (change.types & QDeclarativeItemPrivate::Geometry)
- change.listener->itemGeometryChanged(this, newGeometry, oldGeometry);
- }
}
void QDeclarativeItemPrivate::removeItemChangeListener(QDeclarativeItemChangeListener *listener, ChangeTypes types)
@@ -2416,7 +2409,6 @@ void QDeclarativeItemPrivate::focusChanged(bool flag)
emit q->focusChanged(flag);
}
-/*! \internal */
QDeclarativeListProperty<QObject> QDeclarativeItemPrivate::resources()
{
return QDeclarativeListProperty<QObject>(q_func(), 0, QDeclarativeItemPrivate::resources_append,
@@ -2441,7 +2433,6 @@ QDeclarativeListProperty<QObject> QDeclarativeItemPrivate::resources()
\sa {qmlstate}{States}
*/
-/*! \internal */
QDeclarativeListProperty<QDeclarativeState> QDeclarativeItemPrivate::states()
{
return _states()->statesProperty();
@@ -2465,7 +2456,6 @@ QDeclarativeListProperty<QDeclarativeState> QDeclarativeItemPrivate::states()
*/
-/*! \internal */
QDeclarativeListProperty<QDeclarativeTransition> QDeclarativeItemPrivate::transitions()
{
return _states()->transitionsProperty();
@@ -2538,7 +2528,6 @@ QDeclarativeListProperty<QDeclarativeTransition> QDeclarativeItemPrivate::transi
\sa {qmlstates}{States}
*/
-/*! \internal */
QString QDeclarativeItemPrivate::state() const
{
if (!_stateGroup)
@@ -2547,7 +2536,6 @@ QString QDeclarativeItemPrivate::state() const
return _stateGroup->state();
}
-/*! \internal */
void QDeclarativeItemPrivate::setState(const QString &state)
{
_states()->setState(state);
diff --git a/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp b/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp
index 8509473760..d71b2c52a4 100644
--- a/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp
@@ -66,13 +66,6 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \internal
- \class QDeclarativeLayoutItem
- \brief The QDeclarativeLayoutItem class allows you to place your QML UI elements inside Qt's Graphics View layouts.
-*/
-
-
-/*!
\qmlproperty QSizeF LayoutItem::maximumSize
The maximumSize property can be set to specify the maximum desired size of this LayoutItem
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 2e2e08c575..177c5b362f 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -96,7 +96,7 @@ public:
FxListItem(QDeclarativeItem *i, QDeclarativeListView *v) : item(i), section(0), view(v) {
attached = static_cast<QDeclarativeListViewAttached*>(qmlAttachedPropertiesObject<QDeclarativeListView>(item));
if (attached)
- attached->m_view = view;
+ attached->setView(view);
}
~FxListItem() {}
qreal position() const {
@@ -105,12 +105,23 @@ public:
else
return (view->orientation() == QDeclarativeListView::Vertical ? item->y() : item->x());
}
+ qreal itemPosition() const {
+ return (view->orientation() == QDeclarativeListView::Vertical ? item->y() : item->x());
+ }
qreal size() const {
if (section)
- return (view->orientation() == QDeclarativeListView::Vertical ? item->height()+section->height() : item->width()+section->height());
+ return (view->orientation() == QDeclarativeListView::Vertical ? item->height()+section->height() : item->width()+section->width());
else
return (view->orientation() == QDeclarativeListView::Vertical ? item->height() : item->width());
}
+ qreal itemSize() const {
+ return (view->orientation() == QDeclarativeListView::Vertical ? item->height() : item->width());
+ }
+ qreal sectionSize() const {
+ if (section)
+ return (view->orientation() == QDeclarativeListView::Vertical ? section->height() : section->width());
+ return 0.0;
+ }
qreal endPosition() const {
return (view->orientation() == QDeclarativeListView::Vertical
? item->y() + (item->height() > 0 ? item->height() : 1)
@@ -131,6 +142,12 @@ public:
item->setX(pos);
}
}
+ void setSize(qreal size) {
+ if (view->orientation() == QDeclarativeListView::Vertical)
+ item->setHeight(size);
+ else
+ item->setWidth(size);
+ }
bool contains(int x, int y) const {
return (x >= item->x() && x < item->x() + item->width() &&
y >= item->y() && y < item->y() + item->height());
@@ -256,7 +273,12 @@ public:
if (!visibleItems.isEmpty()) {
if (modelIndex < visibleIndex) {
int count = visibleIndex - modelIndex;
- return (*visibleItems.constBegin())->position() - count * (averageSize + spacing);
+ qreal cs = 0;
+ if (modelIndex == currentIndex && currentItem) {
+ cs = currentItem->size() + spacing;
+ --count;
+ }
+ return (*visibleItems.constBegin())->position() - count * (averageSize + spacing) - cs;
} else {
int idx = visibleItems.count() - 1;
while (idx >= 0 && visibleItems.at(idx)->index == -1)
@@ -716,6 +738,11 @@ void QDeclarativeListViewPrivate::refill(qreal from, qreal to, bool doBuffer)
if (visibleItems.count())
visiblePos = (*visibleItems.constBegin())->position();
updateAverage();
+ if (currentIndex >= 0 && currentItem && !visibleItem(currentIndex)) {
+ currentItem->setPosition(positionAt(currentIndex));
+ updateHighlight();
+ }
+
if (sectionCriteria)
updateCurrentSection();
if (header)
@@ -885,8 +912,8 @@ void QDeclarativeListViewPrivate::updateHighlight()
createHighlight();
if (currentItem && autoHighlight && highlight && !movingHorizontally && !movingVertically) {
// auto-update highlight
- highlightPosAnimator->to = currentItem->position();
- highlightSizeAnimator->to = currentItem->size();
+ highlightPosAnimator->to = currentItem->itemPosition();
+ highlightSizeAnimator->to = currentItem->itemSize();
if (orient == QDeclarativeListView::Vertical) {
if (highlight->item->width() == 0)
highlight->item->setWidth(currentItem->item->width());
@@ -987,7 +1014,7 @@ void QDeclarativeListViewPrivate::updateCurrentSection()
return;
}
int index = 0;
- while (visibleItems.at(index)->endPosition() < position() && index < visibleItems.count())
+ while (index < visibleItems.count() && visibleItems.at(index)->endPosition() < position())
++index;
if (index < visibleItems.count())
@@ -1172,9 +1199,9 @@ void QDeclarativeListViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m
}
if (currentItem && haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) {
updateHighlight();
- qreal currPos = currentItem->position();
- if (pos < currPos + currentItem->size() - highlightRangeEnd)
- pos = currPos + currentItem->size() - highlightRangeEnd;
+ qreal currPos = currentItem->itemPosition();
+ if (pos < currPos + currentItem->itemSize() - highlightRangeEnd)
+ pos = currPos + currentItem->itemSize() - highlightRangeEnd;
if (pos > currPos - highlightRangeStart)
pos = currPos - highlightRangeStart;
}
@@ -1191,10 +1218,10 @@ void QDeclarativeListViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m
} else if (haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) {
if (currentItem) {
updateHighlight();
- qreal pos = currentItem->position();
+ qreal pos = currentItem->itemPosition();
qreal viewPos = position();
- if (viewPos < pos + currentItem->size() - highlightRangeEnd)
- viewPos = pos + currentItem->size() - highlightRangeEnd;
+ if (viewPos < pos + currentItem->itemSize() - highlightRangeEnd)
+ viewPos = pos + currentItem->itemSize() - highlightRangeEnd;
if (viewPos > pos - highlightRangeStart)
viewPos = pos - highlightRangeStart;
@@ -1405,7 +1432,7 @@ void QDeclarativeListViewPrivate::flick(AxisData &data, qreal minExtent, qreal m
to set \e {clip: true} in order to have the out of view items clipped
nicely.
- \sa {Data Models}, GridView, {declarative/modelviews/listview}{ListView examples}
+ \sa {QML Data Models}, GridView, {declarative/modelviews/listview}{ListView examples}
*/
QDeclarativeListView::QDeclarativeListView(QDeclarativeItem *parent)
@@ -2342,6 +2369,10 @@ qreal QDeclarativeListView::minYExtent() const
d->minExtent += d->header->size();
if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) {
d->minExtent += d->highlightRangeStart;
+ if (d->sectionCriteria) {
+ if (d->visibleItem(0))
+ d->minExtent -= d->visibleItem(0)->sectionSize();
+ }
d->minExtent = qMax(d->minExtent, -(d->endPositionAt(0) - d->highlightRangeEnd + 1));
}
d->minExtentDirty = false;
@@ -2454,6 +2485,16 @@ void QDeclarativeListView::keyPressEvent(QKeyEvent *event)
QDeclarativeFlickable::keyPressEvent(event);
}
+void QDeclarativeListView::geometryChanged(const QRectF &newGeometry,
+ const QRectF &oldGeometry)
+{
+ Q_D(QDeclarativeListView);
+ d->maxExtentDirty = true;
+ d->minExtentDirty = true;
+ QDeclarativeFlickable::geometryChanged(newGeometry, oldGeometry);
+}
+
+
/*!
\qmlmethod ListView::incrementCurrentIndex()
@@ -2579,6 +2620,11 @@ void QDeclarativeListView::positionViewAtIndex(int index, int mode)
d->moveReason = QDeclarativeListViewPrivate::Other;
cancelFlick();
d->setPosition(pos);
+ if (d->highlight) {
+ d->highlight->setPosition(d->currentItem->itemPosition());
+ d->highlight->setSize(d->currentItem->itemSize());
+ d->updateHighlight();
+ }
}
d->fixupPosition();
}
@@ -2639,7 +2685,12 @@ void QDeclarativeListView::trackedPositionChanged()
if (!d->trackedItem || !d->currentItem)
return;
if (d->moveReason == QDeclarativeListViewPrivate::SetIndex) {
- const qreal trackedPos = qCeil(d->trackedItem->position());
+ qreal trackedPos = qCeil(d->trackedItem->position());
+ qreal trackedSize = d->trackedItem->size();
+ if (d->trackedItem != d->currentItem) {
+ trackedPos -= d->currentItem->sectionSize();
+ trackedSize += d->currentItem->sectionSize();
+ }
const qreal viewPos = d->position();
qreal pos = viewPos;
if (d->haveHighlightRange) {
@@ -2652,28 +2703,28 @@ void QDeclarativeListView::trackedPositionChanged()
if (trackedPos < d->startPosition() + d->highlightRangeStart) {
pos = d->startPosition();
} else if (d->trackedItem->endPosition() > d->endPosition() - d->size() + d->highlightRangeEnd) {
- pos = d->endPosition() - d->size();
+ pos = d->endPosition() - d->size() + 1;
if (pos < d->startPosition())
pos = d->startPosition();
} else {
if (trackedPos < viewPos + d->highlightRangeStart) {
pos = trackedPos - d->highlightRangeStart;
- } else if (trackedPos > viewPos + d->highlightRangeEnd - d->trackedItem->size()) {
- pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size();
+ } else if (trackedPos > viewPos + d->highlightRangeEnd - trackedSize) {
+ pos = trackedPos - d->highlightRangeEnd + trackedSize;
}
}
}
} else {
if (trackedPos < viewPos && d->currentItem->position() < viewPos) {
pos = d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position();
- } else if (d->trackedItem->endPosition() > viewPos + d->size()
- && d->currentItem->endPosition() > viewPos + d->size()) {
- if (d->trackedItem->endPosition() < d->currentItem->endPosition()) {
- pos = d->trackedItem->endPosition() - d->size();
- if (d->trackedItem->size() > d->size())
+ } else if (d->trackedItem->endPosition() >= viewPos + d->size()
+ && d->currentItem->endPosition() >= viewPos + d->size()) {
+ if (d->trackedItem->endPosition() <= d->currentItem->endPosition()) {
+ pos = d->trackedItem->endPosition() - d->size() + 1;
+ if (trackedSize > d->size())
pos = trackedPos;
} else {
- pos = d->currentItem->endPosition() - d->size();
+ pos = d->currentItem->endPosition() - d->size() + 1;
if (d->currentItem->size() > d->size())
pos = d->currentItem->position();
}
@@ -2906,14 +2957,18 @@ void QDeclarativeListView::itemsRemoved(int modelIndex, int count)
}
if (removedVisible && d->visibleItems.isEmpty()) {
- d->visibleIndex = 0;
- d->visiblePos = d->header ? d->header->size() : 0;
d->timeline.clear();
- d->setPosition(0);
if (d->itemCount == 0) {
+ d->visibleIndex = 0;
+ d->visiblePos = d->header ? d->header->size() : 0;
+ d->setPosition(0);
d->updateHeader();
d->updateFooter();
update();
+ } else {
+ if (modelIndex < d->visibleIndex)
+ d->visibleIndex = modelIndex+1;
+ d->visibleIndex = qMax(qMin(d->visibleIndex, d->itemCount-1), 0);
}
}
diff --git a/src/declarative/graphicsitems/qdeclarativelistview_p.h b/src/declarative/graphicsitems/qdeclarativelistview_p.h
index b26486181d..735b248723 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview_p.h
+++ b/src/declarative/graphicsitems/qdeclarativelistview_p.h
@@ -43,6 +43,7 @@
#define QDECLARATIVELISTVIEW_H
#include "private/qdeclarativeflickable_p.h"
+#include "private/qdeclarativeguard_p.h"
QT_BEGIN_HEADER
@@ -245,6 +246,7 @@ protected:
virtual qreal minXExtent() const;
virtual qreal maxXExtent() const;
virtual void keyPressEvent(QKeyEvent *);
+ virtual void geometryChanged(const QRectF &newGeometry,const QRectF &oldGeometry);
virtual void componentComplete();
private Q_SLOTS:
@@ -268,8 +270,14 @@ public:
: QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {}
~QDeclarativeListViewAttached() {}
- Q_PROPERTY(QDeclarativeListView *view READ view CONSTANT)
+ Q_PROPERTY(QDeclarativeListView *view READ view NOTIFY viewChanged)
QDeclarativeListView *view() { return m_view; }
+ void setView(QDeclarativeListView *view) {
+ if (view != m_view) {
+ m_view = view;
+ emit viewChanged();
+ }
+ }
Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged)
bool isCurrentItem() const { return m_isCurrent; }
@@ -327,9 +335,10 @@ Q_SIGNALS:
void delayRemoveChanged();
void add();
void remove();
+ void viewChanged();
public:
- QDeclarativeListView *m_view;
+ QDeclarativeGuard<QDeclarativeListView> m_view;
mutable QString m_section;
QString m_prevSection;
QString m_nextSection;
diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp
index 2fde4c82a4..5d71625b1c 100644
--- a/src/declarative/graphicsitems/qdeclarativeloader.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp
@@ -189,14 +189,6 @@ void QDeclarativeLoaderPrivate::initResize()
\sa {dynamic-object-creation}{Dynamic Object Creation}
*/
-/*!
- \internal
- \class QDeclarativeLoader
- */
-
-/*!
- Create a new QDeclarativeLoader instance.
- */
QDeclarativeLoader::QDeclarativeLoader(QDeclarativeItem *parent)
: QDeclarativeItem(*(new QDeclarativeLoaderPrivate), parent)
{
@@ -204,9 +196,6 @@ QDeclarativeLoader::QDeclarativeLoader(QDeclarativeItem *parent)
d->flags |= QGraphicsItem::ItemIsFocusScope;
}
-/*!
- Destroy the loader instance.
- */
QDeclarativeLoader::~QDeclarativeLoader()
{
Q_D(QDeclarativeLoader);
diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
index 2823888ddd..5516611b0d 100644
--- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp
+++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
@@ -250,7 +250,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate()
*/
/*!
- \qmlsignal MouseArea::onClicked(mouse)
+ \qmlsignal MouseArea::onClicked(MouseEvent mouse)
This handler is called when there is a click. A click is defined as a press followed by a release,
both inside the MouseArea (pressing, moving outside the MouseArea, and then moving back inside and
@@ -263,7 +263,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate()
*/
/*!
- \qmlsignal MouseArea::onPressed(mouse)
+ \qmlsignal MouseArea::onPressed(MouseEvent mouse)
This handler is called when there is a press.
The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y
@@ -277,7 +277,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate()
*/
/*!
- \qmlsignal MouseArea::onReleased(mouse)
+ \qmlsignal MouseArea::onReleased(MouseEvent mouse)
This handler is called when there is a release.
The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y
@@ -287,7 +287,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate()
*/
/*!
- \qmlsignal MouseArea::onPressAndHold(mouse)
+ \qmlsignal MouseArea::onPressAndHold(MouseEvent mouse)
This handler is called when there is a long press (currently 800ms).
The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y
@@ -297,7 +297,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate()
*/
/*!
- \qmlsignal MouseArea::onDoubleClicked(mouse)
+ \qmlsignal MouseArea::onDoubleClicked(MouseEvent mouse)
This handler is called when there is a double-click (a press followed by a release followed by a press).
The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y
@@ -317,16 +317,6 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate()
\l Flickable, \c onCanceled should be used in addition to onReleased.
*/
-/*!
- \internal
- \class QDeclarativeMouseArea
- \brief The QDeclarativeMouseArea class provides a simple mouse handling abstraction for use within QML.
-
- All QDeclarativeItem derived classes can do mouse handling but the QDeclarativeMouseArea class exposes mouse
- handling data as properties and tracks flicking and dragging of the mouse.
-
- A QDeclarativeMouseArea object can be instantiated in QML using the tag \l MouseArea.
- */
QDeclarativeMouseArea::QDeclarativeMouseArea(QDeclarativeItem *parent)
: QDeclarativeItem(*(new QDeclarativeMouseAreaPrivate), parent)
{
@@ -690,7 +680,6 @@ void QDeclarativeMouseArea::geometryChanged(const QRectF &newGeometry,
d->lastPos = mapFromScene(d->lastScenePos);
}
-/*! \internal */
QVariant QDeclarativeMouseArea::itemChange(GraphicsItemChange change,
const QVariant &value)
{
diff --git a/src/declarative/graphicsitems/qdeclarativepath.cpp b/src/declarative/graphicsitems/qdeclarativepath.cpp
index 0c069ce30a..f93357d675 100644
--- a/src/declarative/graphicsitems/qdeclarativepath.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepath.cpp
@@ -62,11 +62,6 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \internal
- \class QDeclarativePathElement
-*/
-
-/*!
\qmlclass Path QDeclarativePath
\ingroup qml-view-elements
\since 4.7
@@ -83,13 +78,6 @@ QT_BEGIN_NAMESPACE
\sa PathView, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic
*/
-
-/*!
- \internal
- \class QDeclarativePath
- \brief The QDeclarativePath class defines a path.
- \sa QDeclarativePathView
-*/
QDeclarativePath::QDeclarativePath(QObject *parent)
: QObject(*(new QDeclarativePathPrivate), parent)
{
@@ -527,15 +515,6 @@ void QDeclarativeCurve::setY(qreal y)
*/
/*!
- \internal
- \class QDeclarativePathAttribute
- \brief The QDeclarativePathAttribute class allows to set the value of an attribute at a given position in the path.
-
- \sa QDeclarativePath
-*/
-
-
-/*!
\qmlproperty string PathAttribute::name
the name of the attribute to change.
@@ -608,14 +587,6 @@ void QDeclarativePathAttribute::setValue(qreal value)
*/
/*!
- \internal
- \class QDeclarativePathLine
- \brief The QDeclarativePathLine class defines a straight line.
-
- \sa QDeclarativePath
-*/
-
-/*!
\qmlproperty real PathLine::x
\qmlproperty real PathLine::y
@@ -652,15 +623,6 @@ void QDeclarativePathLine::addToPath(QPainterPath &path)
*/
/*!
- \internal
- \class QDeclarativePathQuad
- \brief The QDeclarativePathQuad class defines a quadratic Bezier curve with a control point.
-
- \sa QDeclarativePath
-*/
-
-
-/*!
\qmlproperty real PathQuad::x
\qmlproperty real PathQuad::y
@@ -743,14 +705,6 @@ void QDeclarativePathQuad::addToPath(QPainterPath &path)
*/
/*!
- \internal
- \class QDeclarativePathCubic
- \brief The QDeclarativePathCubic class defines a cubic Bezier curve with two control points.
-
- \sa QDeclarativePath
-*/
-
-/*!
\qmlproperty real PathCubic::x
\qmlproperty real PathCubic::y
@@ -872,18 +826,6 @@ void QDeclarativePathCubic::addToPath(QPainterPath &path)
\sa Path
*/
-/*!
- \internal
- \class QDeclarativePathPercent
- \brief The QDeclarativePathPercent class manipulates the way a path is interpreted.
-
- QDeclarativePathPercent allows you to bunch up items (or spread out items) along various
- segments of a QDeclarativePathView's path.
-
- \sa QDeclarativePath
-
-*/
-
qreal QDeclarativePathPercent::value() const
{
return _value;
diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp
index 4b97505e52..de3f9faffd 100644
--- a/src/declarative/graphicsitems/qdeclarativepathview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp
@@ -67,7 +67,7 @@ inline qreal qmlMod(qreal x, qreal y)
static QDeclarativeOpenMetaObjectType *qPathViewAttachedType = 0;
QDeclarativePathViewAttached::QDeclarativePathViewAttached(QObject *parent)
-: QObject(parent), m_view(0), m_onPath(false), m_isCurrent(false)
+: QObject(parent), m_percent(-1), m_view(0), m_onPath(false), m_isCurrent(false)
{
if (qPathViewAttachedType) {
m_metaobject = new QDeclarativeOpenMetaObject(this, qPathViewAttachedType);
@@ -164,8 +164,8 @@ void QDeclarativePathViewPrivate::clear()
void QDeclarativePathViewPrivate::updateMappedRange()
{
- if (model && pathItems != -1 && pathItems < model->count())
- mappedRange = qreal(pathItems)/model->count();
+ if (model && pathItems != -1 && pathItems < modelCount)
+ mappedRange = qreal(pathItems)/modelCount;
else
mappedRange = 1.0;
}
@@ -174,13 +174,13 @@ qreal QDeclarativePathViewPrivate::positionOfIndex(qreal index) const
{
qreal pos = -1.0;
- if (model && index >= 0 && index < model->count()) {
+ if (model && index >= 0 && index < modelCount) {
qreal start = 0.0;
if (haveHighlightRange && highlightRangeMode != QDeclarativePathView::NoHighlightRange)
start = highlightRangeStart;
qreal globalPos = index + offset;
- globalPos = qmlMod(globalPos, qreal(model->count())) / model->count();
- if (pathItems != -1 && pathItems < model->count()) {
+ globalPos = qmlMod(globalPos, qreal(modelCount)) / modelCount;
+ if (pathItems != -1 && pathItems < modelCount) {
globalPos += start * mappedRange;
globalPos = qmlMod(globalPos, 1.0);
if (globalPos < mappedRange)
@@ -242,21 +242,22 @@ void QDeclarativePathViewPrivate::updateHighlight()
} else {
qreal target = currentIndex;
+ offsetAdj = 0.0;
tl.reset(moveHighlight);
moveHighlight.setValue(highlightPosition);
const int duration = highlightMoveDuration;
- if (target - highlightPosition > model->count()/2) {
+ if (target - highlightPosition > modelCount/2) {
highlightUp = false;
- qreal distance = model->count() - target + highlightPosition;
+ qreal distance = modelCount - target + highlightPosition;
tl.move(moveHighlight, 0.0, QEasingCurve(QEasingCurve::InQuad), int(duration * highlightPosition / distance));
- tl.set(moveHighlight, model->count()-0.01);
- tl.move(moveHighlight, target, QEasingCurve(QEasingCurve::OutQuad), int(duration * (model->count()-target) / distance));
- } else if (target - highlightPosition <= -model->count()/2) {
+ tl.set(moveHighlight, modelCount-0.01);
+ tl.move(moveHighlight, target, QEasingCurve(QEasingCurve::OutQuad), int(duration * (modelCount-target) / distance));
+ } else if (target - highlightPosition <= -modelCount/2) {
highlightUp = true;
- qreal distance = model->count() - highlightPosition + target;
- tl.move(moveHighlight, model->count()-0.01, QEasingCurve(QEasingCurve::InQuad), int(duration * (model->count()-highlightPosition) / distance));
+ qreal distance = modelCount - highlightPosition + target;
+ tl.move(moveHighlight, modelCount-0.01, QEasingCurve(QEasingCurve::InQuad), int(duration * (modelCount-highlightPosition) / distance));
tl.set(moveHighlight, 0.0);
tl.move(moveHighlight, target, QEasingCurve(QEasingCurve::OutQuad), int(duration * target / distance));
} else {
@@ -277,7 +278,7 @@ void QDeclarativePathViewPrivate::setHighlightPosition(qreal pos)
end = highlightRangeEnd;
}
- qreal range = qreal(model->count());
+ qreal range = qreal(modelCount);
// calc normalized position of highlight relative to offset
qreal relativeHighlight = qmlMod(pos + offset, range) / range;
@@ -300,6 +301,9 @@ void QDeclarativePathViewPrivate::setHighlightPosition(qreal pos)
void QDeclarativePathViewPrivate::updateItem(QDeclarativeItem *item, qreal percent)
{
if (QDeclarativePathViewAttached *att = attached(item)) {
+ if (qFuzzyCompare(att->m_percent, percent))
+ return;
+ att->m_percent = percent;
foreach(const QString &attr, path->attributes())
att->setValue(attr.toUtf8(), path->attributeAt(attr, percent));
}
@@ -473,17 +477,19 @@ void QDeclarativePathView::setModel(const QVariant &model)
if (QDeclarativeVisualDataModel *dataModel = qobject_cast<QDeclarativeVisualDataModel*>(d->model))
dataModel->setModel(model);
}
+ d->modelCount = 0;
if (d->model) {
connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int)));
connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int)));
connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int)));
connect(d->model, SIGNAL(modelReset()), this, SLOT(modelReset()));
connect(d->model, SIGNAL(createdItem(int, QDeclarativeItem*)), this, SLOT(createdItem(int,QDeclarativeItem*)));
- }
- if (d->model->count())
- d->offset = qmlMod(d->offset, qreal(d->model->count()));
- if (d->offset < 0)
- d->offset = d->model->count() + d->offset;
+ d->modelCount = d->model->count();
+ if (d->model->count())
+ d->offset = qmlMod(d->offset, qreal(d->model->count()));
+ if (d->offset < 0)
+ d->offset = d->model->count() + d->offset;
+}
d->regenerate();
d->fixOffset();
emit countChanged();
@@ -497,7 +503,7 @@ void QDeclarativePathView::setModel(const QVariant &model)
int QDeclarativePathView::count() const
{
Q_D(const QDeclarativePathView);
- return d->model ? d->model->count() : 0;
+ return d->model ? d->modelCount : 0;
}
/*!
@@ -545,11 +551,11 @@ int QDeclarativePathView::currentIndex() const
void QDeclarativePathView::setCurrentIndex(int idx)
{
Q_D(QDeclarativePathView);
- if (d->model && d->model->count())
- idx = qAbs(idx % d->model->count());
+ if (d->model && d->modelCount)
+ idx = qAbs(idx % d->modelCount);
if (d->model && idx != d->currentIndex) {
- if (d->model->count()) {
- int itemIndex = (d->currentIndex - d->firstIndex + d->model->count()) % d->model->count();
+ if (d->modelCount) {
+ int itemIndex = (d->currentIndex - d->firstIndex + d->modelCount) % d->modelCount;
if (itemIndex < d->items.count()) {
if (QDeclarativeItem *item = d->items.at(itemIndex)) {
if (QDeclarativePathViewAttached *att = d->attached(item))
@@ -560,10 +566,10 @@ void QDeclarativePathView::setCurrentIndex(int idx)
d->currentItem = 0;
d->moveReason = QDeclarativePathViewPrivate::SetIndex;
d->currentIndex = idx;
- if (d->model->count()) {
+ if (d->modelCount) {
if (d->haveHighlightRange && d->highlightRangeMode == QDeclarativePathView::StrictlyEnforceRange)
d->snapToCurrent();
- int itemIndex = (idx - d->firstIndex + d->model->count()) % d->model->count();
+ int itemIndex = (idx - d->firstIndex + d->modelCount) % d->modelCount;
if (itemIndex < d->items.count()) {
d->currentItem = d->items.at(itemIndex);
d->currentItem->setFocus(true);
@@ -600,10 +606,10 @@ void QDeclarativePathView::incrementCurrentIndex()
void QDeclarativePathView::decrementCurrentIndex()
{
Q_D(QDeclarativePathView);
- if (d->model && d->model->count()) {
+ if (d->model && d->modelCount) {
int idx = currentIndex()-1;
if (idx < 0)
- idx = d->model->count() - 1;
+ idx = d->modelCount - 1;
setCurrentIndex(idx);
}
}
@@ -632,9 +638,9 @@ void QDeclarativePathViewPrivate::setOffset(qreal o)
Q_Q(QDeclarativePathView);
if (offset != o) {
if (isValid() && q->isComponentComplete()) {
- offset = qmlMod(o, qreal(model->count()));
+ offset = qmlMod(o, qreal(modelCount));
if (offset < 0)
- offset += qreal(model->count());
+ offset += qreal(modelCount);
q->refill();
} else {
offset = o;
@@ -643,6 +649,11 @@ void QDeclarativePathViewPrivate::setOffset(qreal o)
}
}
+void QDeclarativePathViewPrivate::setAdjustedOffset(qreal o)
+{
+ setOffset(o+offsetAdj);
+}
+
/*!
\qmlproperty Component PathView::highlight
This property holds the component to use as the highlight.
@@ -705,6 +716,8 @@ QDeclarativeItem *QDeclarativePathView::highlightItem()
These properties set the preferred range of the highlight (current item)
within the view. The preferred values must be in the range 0.0-1.0.
+ If highlightRangeMode is set to \e PathView.NoHighlightRange
+
If highlightRangeMode is set to \e PathView.ApplyRange the view will
attempt to maintain the highlight within the range, however
the highlight can move outside of the range at the ends of the path
@@ -1071,14 +1084,14 @@ void QDeclarativePathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
d->moveReason = QDeclarativePathViewPrivate::Mouse;
qreal newPc;
d->pointNear(event->pos(), &newPc);
- qreal diff = (newPc - d->startPc)*d->model->count()*d->mappedRange;
+ qreal diff = (newPc - d->startPc)*d->modelCount*d->mappedRange;
if (diff) {
setOffset(d->offset + diff);
- if (diff > d->model->count()/2)
- diff -= d->model->count();
- else if (diff < -d->model->count()/2)
- diff += d->model->count();
+ if (diff > d->modelCount/2)
+ diff -= d->modelCount;
+ else if (diff < -d->modelCount/2)
+ diff += d->modelCount;
d->lastElapsed = QDeclarativeItemPrivate::restart(d->lastPosTime);
d->lastDist = diff;
@@ -1102,15 +1115,15 @@ void QDeclarativePathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *)
qreal elapsed = qreal(d->lastElapsed + QDeclarativeItemPrivate::elapsed(d->lastPosTime)) / 1000.;
qreal velocity = elapsed > 0. ? d->lastDist / elapsed : 0;
- if (d->model && d->model->count() && qAbs(velocity) > 1.) {
- qreal count = d->pathItems == -1 ? d->model->count() : d->pathItems;
+ if (d->model && d->modelCount && qAbs(velocity) > 1.) {
+ qreal count = d->pathItems == -1 ? d->modelCount : d->pathItems;
if (qAbs(velocity) > count * 2) // limit velocity
velocity = (velocity > 0 ? count : -count) * 2;
// Calculate the distance to be travelled
qreal v2 = velocity*velocity;
qreal accel = d->deceleration/10;
// + 0.25 to encourage moving at least one item in the flick direction
- qreal dist = qMin(qreal(d->model->count()-1), qreal(v2 / (accel * 2.0) + 0.25));
+ qreal dist = qMin(qreal(d->modelCount-1), qreal(v2 / (accel * 2.0) + 0.25));
if (d->haveHighlightRange && d->highlightRangeMode == QDeclarativePathView::StrictlyEnforceRange) {
// round to nearest item.
if (velocity > 0.)
@@ -1125,6 +1138,7 @@ void QDeclarativePathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *)
accel = v2 / (2.0f * qAbs(dist));
}
}
+ d->offsetAdj = 0.0;
d->moveOffset.setValue(d->offset);
d->tl.accel(d->moveOffset, velocity, accel, dist);
d->tl.callback(QDeclarativeTimeLineCallback(&d->moveOffset, d->fixOffsetCallback, d));
@@ -1260,79 +1274,81 @@ void QDeclarativePathView::refill()
d->updateItem(item, 1.0);
d->releaseItem(item);
if (it == d->items.begin()) {
- if (++d->firstIndex >= d->model->count())
+ if (++d->firstIndex >= d->modelCount)
d->firstIndex = 0;
}
it = d->items.erase(it);
}
++idx;
- if (idx >= d->model->count())
+ if (idx >= d->modelCount)
idx = 0;
}
- // add items to beginning and end
- int count = d->pathItems == -1 ? d->model->count() : qMin(d->pathItems, d->model->count());
- if (d->items.count() < count) {
- int idx = qRound(d->model->count() - d->offset) % d->model->count();
- qreal startPos = 0.0;
- if (d->haveHighlightRange && d->highlightRangeMode != QDeclarativePathView::NoHighlightRange)
- startPos = d->highlightRangeStart;
- if (d->firstIndex >= 0) {
- startPos = d->positionOfIndex(d->firstIndex);
- idx = (d->firstIndex + d->items.count()) % d->model->count();
- }
- qreal pos = d->positionOfIndex(idx);
- while ((pos > startPos || !d->items.count()) && d->items.count() < count) {
-// qDebug() << "append" << idx;
- QDeclarativeItem *item = d->getItem(idx);
- if (d->model->completePending())
- item->setZValue(idx+1);
- if (d->currentIndex == idx) {
- item->setFocus(true);
- if (QDeclarativePathViewAttached *att = d->attached(item))
- att->setIsCurrentItem(true);
- currentVisible = true;
- d->currentItemOffset = pos;
- d->currentItem = item;
+ if (d->modelCount) {
+ // add items to beginning and end
+ int count = d->pathItems == -1 ? d->modelCount : qMin(d->pathItems, d->modelCount);
+ if (d->items.count() < count) {
+ int idx = qRound(d->modelCount - d->offset) % d->modelCount;
+ qreal startPos = 0.0;
+ if (d->haveHighlightRange && d->highlightRangeMode != QDeclarativePathView::NoHighlightRange)
+ startPos = d->highlightRangeStart;
+ if (d->firstIndex >= 0) {
+ startPos = d->positionOfIndex(d->firstIndex);
+ idx = (d->firstIndex + d->items.count()) % d->modelCount;
}
- if (d->items.count() == 0)
- d->firstIndex = idx;
- d->items.append(item);
- d->updateItem(item, pos);
- if (d->model->completePending())
- d->model->completeItem();
- ++idx;
- if (idx >= d->model->count())
- idx = 0;
- pos = d->positionOfIndex(idx);
- }
-
- idx = d->firstIndex - 1;
- if (idx < 0)
- idx = d->model->count() - 1;
- pos = d->positionOfIndex(idx);
- while (pos >= 0.0 && pos < startPos) {
-// qDebug() << "prepend" << idx;
- QDeclarativeItem *item = d->getItem(idx);
- if (d->model->completePending())
- item->setZValue(idx+1);
- if (d->currentIndex == idx) {
- item->setFocus(true);
- if (QDeclarativePathViewAttached *att = d->attached(item))
- att->setIsCurrentItem(true);
- currentVisible = true;
- d->currentItemOffset = pos;
- d->currentItem = item;
+ qreal pos = d->positionOfIndex(idx);
+ while ((pos > startPos || !d->items.count()) && d->items.count() < count) {
+ // qDebug() << "append" << idx;
+ QDeclarativeItem *item = d->getItem(idx);
+ if (d->model->completePending())
+ item->setZValue(idx+1);
+ if (d->currentIndex == idx) {
+ item->setFocus(true);
+ if (QDeclarativePathViewAttached *att = d->attached(item))
+ att->setIsCurrentItem(true);
+ currentVisible = true;
+ d->currentItemOffset = pos;
+ d->currentItem = item;
+ }
+ if (d->items.count() == 0)
+ d->firstIndex = idx;
+ d->items.append(item);
+ d->updateItem(item, pos);
+ if (d->model->completePending())
+ d->model->completeItem();
+ ++idx;
+ if (idx >= d->modelCount)
+ idx = 0;
+ pos = d->positionOfIndex(idx);
}
- d->items.prepend(item);
- d->updateItem(item, pos);
- if (d->model->completePending())
- d->model->completeItem();
- d->firstIndex = idx;
+
idx = d->firstIndex - 1;
if (idx < 0)
- idx = d->model->count() - 1;
+ idx = d->modelCount - 1;
pos = d->positionOfIndex(idx);
+ while (pos >= 0.0 && pos < startPos) {
+ // qDebug() << "prepend" << idx;
+ QDeclarativeItem *item = d->getItem(idx);
+ if (d->model->completePending())
+ item->setZValue(idx+1);
+ if (d->currentIndex == idx) {
+ item->setFocus(true);
+ if (QDeclarativePathViewAttached *att = d->attached(item))
+ att->setIsCurrentItem(true);
+ currentVisible = true;
+ d->currentItemOffset = pos;
+ d->currentItem = item;
+ }
+ d->items.prepend(item);
+ d->updateItem(item, pos);
+ if (d->model->completePending())
+ d->model->completeItem();
+ d->firstIndex = idx;
+ idx = d->firstIndex - 1;
+ if (idx < 0)
+ idx = d->modelCount - 1;
+ pos = d->positionOfIndex(idx);
+ }
}
}
@@ -1348,6 +1364,8 @@ void QDeclarativePathView::refill()
if (QDeclarativePathViewAttached *att = d->attached(d->highlightItem))
att->setOnPath(currentVisible);
}
+ while (d->itemCache.count())
+ d->releaseItem(d->itemCache.takeLast());
}
void QDeclarativePathView::itemsInserted(int modelIndex, int count)
@@ -1357,16 +1375,25 @@ void QDeclarativePathView::itemsInserted(int modelIndex, int count)
if (!d->isValid() || !isComponentComplete())
return;
- QList<QDeclarativeItem *> removedItems = d->items;
+ d->itemCache += d->items;
d->items.clear();
if (modelIndex <= d->currentIndex) {
d->currentIndex += count;
emit currentIndexChanged();
+ } else if (d->offset != 0) {
+ d->offset += count;
+ d->offsetAdj += count;
+ }
+
+ d->modelCount = d->model->count();
+ if (d->flicking || d->moving) {
+ d->regenerate();
+ d->updateCurrent();
+ } else {
+ d->firstIndex = -1;
+ d->updateMappedRange();
+ d->scheduleLayout();
}
- d->regenerate();
- while (removedItems.count())
- d->releaseItem(removedItems.takeLast());
- d->updateCurrent();
emit countChanged();
}
@@ -1374,7 +1401,7 @@ void QDeclarativePathView::itemsRemoved(int modelIndex, int count)
{
//XXX support animated removal
Q_D(QDeclarativePathView);
- if (!d->isValid() || !isComponentComplete())
+ if (!d->model || !d->modelCount || !d->model->isValid() || !d->path || !isComponentComplete())
return;
// fix current
@@ -1384,7 +1411,7 @@ void QDeclarativePathView::itemsRemoved(int modelIndex, int count)
currentChanged = true;
} else if (d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count) {
// current item has been removed.
- d->currentIndex = qMin(modelIndex, d->model->count()-1);
+ d->currentIndex = qMin(modelIndex, d->modelCount-1);
if (d->currentItem) {
if (QDeclarativePathViewAttached *att = d->attached(d->currentItem))
att->setIsCurrentItem(true);
@@ -1392,15 +1419,21 @@ void QDeclarativePathView::itemsRemoved(int modelIndex, int count)
currentChanged = true;
}
- QList<QDeclarativeItem *> removedItems = d->items;
+ d->itemCache += d->items;
d->items.clear();
- if (d->offset >= d->model->count())
- d->offset = d->model->count() - 1;
+ if (modelIndex > d->currentIndex) {
+ if (d->offset >= count) {
+ d->offset -= count;
+ d->offsetAdj -= count;
+ }
+ }
+
+ d->modelCount = d->model->count();
d->regenerate();
- while (removedItems.count())
- d->releaseItem(removedItems.takeLast());
d->updateCurrent();
+ if (!d->modelCount)
+ update();
if (currentChanged)
emit currentIndexChanged();
emit countChanged();
@@ -1431,6 +1464,7 @@ void QDeclarativePathView::itemsMoved(int /*from*/, int /*to*/, int /*count*/)
void QDeclarativePathView::modelReset()
{
Q_D(QDeclarativePathView);
+ d->modelCount = d->model->count();
d->regenerate();
emit countChanged();
}
@@ -1488,11 +1522,11 @@ int QDeclarativePathViewPrivate::calcCurrentIndex()
{
int current = -1;
if (model && items.count()) {
- offset = qmlMod(offset, model->count());
+ offset = qmlMod(offset, modelCount);
if (offset < 0)
- offset += model->count();
- current = qRound(qAbs(qmlMod(model->count() - offset, model->count())));
- current = current % model->count();
+ offset += modelCount;
+ current = qRound(qAbs(qmlMod(modelCount - offset, modelCount)));
+ current = current % modelCount;
}
return current;
@@ -1508,7 +1542,7 @@ void QDeclarativePathViewPrivate::updateCurrent()
int idx = calcCurrentIndex();
if (model && idx != currentIndex) {
- int itemIndex = (currentIndex - firstIndex + model->count()) % model->count();
+ int itemIndex = (currentIndex - firstIndex + modelCount) % modelCount;
if (itemIndex < items.count()) {
if (QDeclarativeItem *item = items.at(itemIndex)) {
if (QDeclarativePathViewAttached *att = attached(item))
@@ -1517,7 +1551,7 @@ void QDeclarativePathViewPrivate::updateCurrent()
}
currentIndex = idx;
currentItem = 0;
- itemIndex = (idx - firstIndex + model->count()) % model->count();
+ itemIndex = (idx - firstIndex + modelCount) % modelCount;
if (itemIndex < items.count()) {
currentItem = items.at(itemIndex);
currentItem->setFocus(true);
@@ -1549,25 +1583,26 @@ void QDeclarativePathViewPrivate::fixOffset()
void QDeclarativePathViewPrivate::snapToCurrent()
{
- if (!model || model->count() <= 0)
+ if (!model || modelCount <= 0)
return;
- qreal targetOffset = model->count() - currentIndex;
+ qreal targetOffset = modelCount - currentIndex;
moveReason = Other;
+ offsetAdj = 0.0;
tl.reset(moveOffset);
moveOffset.setValue(offset);
const int duration = highlightMoveDuration;
- if (targetOffset - offset > model->count()/2) {
- qreal distance = model->count() - targetOffset + offset;
+ if (targetOffset - offset > modelCount/2) {
+ qreal distance = modelCount - targetOffset + offset;
tl.move(moveOffset, 0.0, QEasingCurve(QEasingCurve::InQuad), int(duration * offset / distance));
- tl.set(moveOffset, model->count());
- tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * (model->count()-targetOffset) / distance));
- } else if (targetOffset - offset <= -model->count()/2) {
- qreal distance = model->count() - offset + targetOffset;
- tl.move(moveOffset, model->count(), QEasingCurve(QEasingCurve::InQuad), int(duration * (model->count()-offset) / distance));
+ tl.set(moveOffset, modelCount);
+ tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * (modelCount-targetOffset) / distance));
+ } else if (targetOffset - offset <= -modelCount/2) {
+ qreal distance = modelCount - offset + targetOffset;
+ tl.move(moveOffset, modelCount, QEasingCurve(QEasingCurve::InQuad), int(duration * (modelCount-offset) / distance));
tl.set(moveOffset, 0.0);
tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * targetOffset / distance));
} else {
diff --git a/src/declarative/graphicsitems/qdeclarativepathview_p.h b/src/declarative/graphicsitems/qdeclarativepathview_p.h
index 035a64b762..62a8c44020 100644
--- a/src/declarative/graphicsitems/qdeclarativepathview_p.h
+++ b/src/declarative/graphicsitems/qdeclarativepathview_p.h
@@ -226,6 +226,7 @@ public:
emit pathChanged();
}
}
+ qreal m_percent;
Q_SIGNALS:
void currentItemChanged();
diff --git a/src/declarative/graphicsitems/qdeclarativepathview_p_p.h b/src/declarative/graphicsitems/qdeclarativepathview_p_p.h
index 9abec2eb4f..dfebe359e5 100644
--- a/src/declarative/graphicsitems/qdeclarativepathview_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativepathview_p_p.h
@@ -75,19 +75,19 @@ class QDeclarativePathViewPrivate : public QDeclarativeItemPrivate, public QDecl
public:
QDeclarativePathViewPrivate()
: path(0), currentIndex(0), currentItemOffset(0.0), startPc(0), lastDist(0)
- , lastElapsed(0), mappedRange(1.0)
+ , lastElapsed(0), offset(0.0), offsetAdj(0.0), mappedRange(1.0)
, stealMouse(false), ownModel(false), interactive(true), haveHighlightRange(true)
, autoHighlight(true), highlightUp(false), layoutScheduled(false)
, moving(false), flicking(false)
, dragMargin(0), deceleration(100)
- , moveOffset(this, &QDeclarativePathViewPrivate::setOffset)
+ , moveOffset(this, &QDeclarativePathViewPrivate::setAdjustedOffset)
, firstIndex(-1), pathItems(-1), requestedIndex(-1)
, moveReason(Other), attType(0), highlightComponent(0), highlightItem(0)
, moveHighlight(this, &QDeclarativePathViewPrivate::setHighlightPosition)
, highlightPosition(0)
, highlightRangeStart(0), highlightRangeEnd(0)
, highlightRangeMode(QDeclarativePathView::StrictlyEnforceRange)
- , highlightMoveDuration(300)
+ , highlightMoveDuration(300), modelCount(0)
{
}
@@ -96,6 +96,8 @@ public:
void itemGeometryChanged(QDeclarativeItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) {
if ((newGeometry.size() != oldGeometry.size())
&& (!highlightItem || item != highlightItem)) {
+ if (QDeclarativePathViewAttached *att = attached(item))
+ att->m_percent = -1;
scheduleLayout();
}
}
@@ -126,6 +128,7 @@ public:
static void fixOffsetCallback(void*);
void fixOffset();
void setOffset(qreal offset);
+ void setAdjustedOffset(qreal offset);
void regenerate();
void updateItem(QDeclarativeItem *, qreal);
void snapToCurrent();
@@ -140,6 +143,7 @@ public:
qreal lastDist;
int lastElapsed;
qreal offset;
+ qreal offsetAdj;
qreal mappedRange;
bool stealMouse : 1;
bool ownModel : 1;
@@ -160,6 +164,7 @@ public:
int pathItems;
int requestedIndex;
QList<QDeclarativeItem *> items;
+ QList<QDeclarativeItem *> itemCache;
QDeclarativeGuard<QDeclarativeVisualModel> model;
QVariant modelVariant;
enum MovementReason { Other, SetIndex, Mouse };
@@ -173,6 +178,7 @@ public:
qreal highlightRangeEnd;
QDeclarativePathView::HighlightRangeMode highlightRangeMode;
int highlightMoveDuration;
+ int modelCount;
};
QT_END_NAMESPACE
diff --git a/src/declarative/graphicsitems/qdeclarativepositioners.cpp b/src/declarative/graphicsitems/qdeclarativepositioners.cpp
index 4ceb5d9149..e2a373fca6 100644
--- a/src/declarative/graphicsitems/qdeclarativepositioners.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepositioners.cpp
@@ -108,8 +108,7 @@ void QDeclarativeBasePositioner::graphicsWidgetGeometryChanged()
You also need to set a PositionerType, to declare whether you are positioning the x, y or both
for the child items. Depending on the chosen type, only x or y changes will be applied.
- Note that the subclass is responsible for adding the
- spacing in between items.
+ Note that the subclass is responsible for adding the spacing in between items.
*/
QDeclarativeBasePositioner::QDeclarativeBasePositioner(PositionerType at, QDeclarativeItem *parent)
: QDeclarativeItem(*(new QDeclarativeBasePositionerPrivate), parent)
@@ -248,13 +247,13 @@ void QDeclarativeBasePositioner::prePositioning()
positionedItems.append(posItem);
item = &positionedItems[positionedItems.count()-1];
item->isNew = true;
- if (child->opacity() <= 0.0 || childPrivate->explicitlyHidden)
+ if (child->opacity() <= 0.0 || childPrivate->explicitlyHidden || !childPrivate->width() || !childPrivate->height())
item->isVisible = false;
} else {
item = &oldItems[wIdx];
// Items are only omitted from positioning if they are explicitly hidden
// i.e. their positioning is not affected if an ancestor is hidden.
- if (child->opacity() <= 0.0 || childPrivate->explicitlyHidden) {
+ if (child->opacity() <= 0.0 || childPrivate->explicitlyHidden || !childPrivate->width() || !childPrivate->height()) {
item->isVisible = false;
} else if (!item->isVisible) {
item->isVisible = true;
@@ -322,66 +321,67 @@ void QDeclarativeBasePositioner::finishApplyTransitions()
d->moveActions.clear();
}
-static inline bool isInvisible(QGraphicsObject *child)
-{
- QGraphicsItemPrivate *childPrivate = static_cast<QGraphicsItemPrivate*>(QGraphicsItemPrivate::get(child));
- return child->opacity() == 0.0 || childPrivate->explicitlyHidden || !childPrivate->width() || !childPrivate->height();
-}
-
/*!
\qmlclass Column QDeclarativeColumn
- \ingroup qml-positioning-elements
- \since 4.7
+ \ingroup qml-positioning-elements
+ \since 4.7
\brief The Column item arranges its children vertically.
\inherits Item
The Column item positions its child items so that they are vertically
- aligned and not overlapping. Spacing between items can be added.
+ aligned and not overlapping.
- The below example positions differently shaped rectangles using a Column.
- \table
- \row
- \o \image verticalpositioner_example.png
- \o
- \qml
-Column {
- spacing: 2
- Rectangle { color: "red"; width: 50; height: 50 }
- Rectangle { color: "green"; width: 20; height: 50 }
- Rectangle { color: "blue"; width: 50; height: 20 }
-}
- \endqml
- \endtable
+ Spacing between items can be added using the \l spacing property.
+ Transitions can be used for cases where items managed by a Column are
+ added or moved. These are stored in the \l add and \l move properties
+ respectively.
+
+ See \l{Using QML Positioner and Repeater Items} for more details about this item and other
+ related items.
+
+ \section1 Example Usage
+
+ The following example positions differently shaped rectangles using a Column
+ item.
+
+ \image verticalpositioner_example.png
+
+ \snippet doc/src/snippets/declarative/column/vertical-positioner.qml document
+
+ \section1 Using Transitions
+
+ Transitions can be used to animate items that are added to, moved within,
+ or removed from a Column item. The \l add and \l move properties can be set to
+ the transitions that will be applied when items are added to, removed from,
+ or re-positioned within a Column item.
+
+ The use of transitions with positioners is described in more detail in the
+ \l{Using QML Positioner and Repeater Items#Using Transitions}{Using QML
+ Positioner and Repeater Items} document.
- Column also provides for transitions to be set when items are added, moved,
- or removed in the positioner. Adding and removing apply both to items which are deleted
- or have their position in the document changed so as to no longer be children of the positioner,
- as well as to items which have their opacity set to or from zero so as to appear or disappear.
+ \image verticalpositioner_transition.gif
- \table
- \row
- \o \image verticalpositioner_transition.gif
- \o
\qml
-Column {
- spacing: 2
- add: ...
- move: ...
- ...
-}
+ Column {
+ spacing: 2
+ add: ...
+ move: ...
+ ...
+ }
\endqml
- \endtable
+
+ \section1 Limitations
Note that the positioner assumes that the x and y positions of its children
will not change. If you manually change the x or y properties in script, bind
the x or y properties, use anchors on a child of a positioner, or have the
height of a child depend on the position of a child, then the
- positioner may exhibit strange behaviour. If you need to perform any of these
+ positioner may exhibit strange behavior. If you need to perform any of these
actions, consider positioning the items without the use of a Column.
Items with a width or height of 0 will not be positioned.
- \sa Row, {declarative/positioners}{Positioners example}
+ \sa Row, Grid, Flow, {declarative/positioners}{Positioners example}
*/
/*!
\qmlproperty Transition Column::add
@@ -389,60 +389,47 @@ Column {
This property holds the transition to be applied when adding an
item to the positioner. The transition will only be applied to the
added item(s). Positioner transitions will only affect the
- position (x,y) of items.
-
- Added can mean that either the object has been created or
- reparented, and thus is now a child or the positioner, or that the
- object has had its opacity increased from zero, and thus is now
- visible.
+ position (x, y) of items.
+ For a positioner, adding an item can mean that either the object
+ has been created or reparented, and thus is now a child or the
+ positioner, or that the object has had its opacity increased from
+ zero, and thus is now visible.
+ \sa move
*/
/*!
\qmlproperty Transition Column::move
This property holds the transition to apply when moving an item
within the positioner. Positioner transitions will only affect
- the position (x,y) of items.
+ the position (x, y) of items.
- This can happen when other items are added or removed from the
- positioner, or when items resize themselves.
+ This transition can be performed when other items are added or removed
+ from the positioner, or when items resize themselves.
+
+ \image positioner-move.gif
- \table
- \row
- \o \image positioner-move.gif
- \o
\qml
-Column {
- move: Transition {
- NumberAnimation {
- properties: "y"
- easing.type: Easing.OutBounce
+ Column {
+ move: Transition {
+ NumberAnimation {
+ properties: "y"
+ easing.type: Easing.OutBounce
+ }
}
}
-}
\endqml
- \endtable
+
+ \sa add, {declarative/positioners}{Positioners example}
*/
/*!
\qmlproperty int Column::spacing
- spacing is the amount in pixels left empty between each adjacent
- item, and defaults to 0.
+ The spacing is the amount in pixels left empty between adjacent
+ items. The default spacing is 0.
- The below example places a \l Grid containing a red, a blue and a
- green rectangle on a gray background. The area the grid positioner
- occupies is colored white. The top positioner has the default of no spacing,
- and the bottom positioner has its spacing set to 2.
-
- \image spacing_a.png
- \image spacing_b.png
-
-*/
-/*!
- \internal
- \class QDeclarativeColumn
- \brief The QDeclarativeColumn class lines up items vertically.
+ \sa Grid::spacing
*/
QDeclarativeColumn::QDeclarativeColumn(QDeclarativeItem *parent)
: QDeclarativeBasePositioner(Vertical, parent)
@@ -455,7 +442,7 @@ void QDeclarativeColumn::doPositioning(QSizeF *contentSize)
for (int ii = 0; ii < positionedItems.count(); ++ii) {
const PositionedItem &child = positionedItems.at(ii);
- if (!child.item || isInvisible(child.item))
+ if (!child.item || !child.isVisible)
continue;
if(child.item->y() != voffset)
@@ -496,29 +483,38 @@ void QDeclarativeColumn::reportConflictingAnchors()
/*!
\qmlclass Row QDeclarativeRow
- \ingroup qml-positioning-elements
+ \ingroup qml-positioning-elements
\since 4.7
\brief The Row item arranges its children horizontally.
\inherits Item
- The Row item positions its child items so that they are
- horizontally aligned and not overlapping.
+ The Row item positions its child items so that they are horizontally
+ aligned and not overlapping.
Use \l spacing to set the spacing between items in a Row, and use the
\l add and \l move properties to set the transitions that should be applied
when items are added to, removed from, or re-positioned within the Row.
- The below example lays out differently shaped rectangles using a Row.
- \qml
-Row {
- spacing: 2
- Rectangle { color: "red"; width: 50; height: 50 }
- Rectangle { color: "green"; width: 20; height: 50 }
- Rectangle { color: "blue"; width: 50; height: 20 }
-}
- \endqml
+ See \l{Using QML Positioner and Repeater Items} for more details about this item and other
+ related items.
+
+ \section1 Example Usage
+
+ The following example lays out differently shaped rectangles using a Row.
+
\image horizontalpositioner_example.png
+ \snippet doc/src/snippets/declarative/row/row.qml document
+
+ \section1 Using Transitions
+
+ Transitions can be used to animate items that are added to, moved within,
+ or removed from a Grid item. The \l add and \l move properties can be set to
+ the transitions that will be applied when items are added to, removed from,
+ or re-positioned within a Row item.
+
+ \section1 Limitations
+
Note that the positioner assumes that the x and y positions of its children
will not change. If you manually change the x or y properties in script, bind
the x or y properties, use anchors on a child of a positioner, or have the
@@ -528,61 +524,54 @@ Row {
Items with a width or height of 0 will not be positioned.
- \sa Column, {declarative/positioners}{Positioners example}
+ \sa Column, Grid, Flow, {declarative/positioners}{Positioners example}
*/
/*!
\qmlproperty Transition Row::add
- This property holds the transition to apply when adding an item to the positioner.
- The transition will only be applied to the added item(s).
- Positioner transitions will only affect the position (x,y) of items.
-
- An object is considered to be added to the positioner if it has been
- created or reparented and thus is now a child or the positioner, or if the
- object has had its opacity increased from zero, and thus is now
- visible.
+
+ This property holds the transition to be applied when adding an
+ item to the positioner. The transition will only be applied to the
+ added item(s). Positioner transitions will only affect the
+ position (x, y) of items.
+
+ For a positioner, adding an item can mean that either the object
+ has been created or reparented, and thus is now a child or the
+ positioner, or that the object has had its opacity increased from
+ zero, and thus is now visible.
+
+ \sa move
*/
/*!
\qmlproperty Transition Row::move
- This property holds the transition to apply when moving an item
- within the positioner. Positioner transitions will only affect
- the position (x,y) of items.
+ This property holds the transition to be applied when moving an
+ item within the positioner. Positioner transitions will only affect
+ the position (x, y) of items.
- This can happen when other items are added or removed from the
- positioner, or when items resize themselves.
+ This transition can be performed when other items are added or removed
+ from the positioner, or when items resize themselves.
\qml
-Row {
- id: positioner
- move: Transition {
- NumberAnimation {
- properties: "x"
- ease: "easeOutBounce"
+ Row {
+ id: positioner
+ move: Transition {
+ NumberAnimation {
+ properties: "x"
+ ease: "easeOutBounce"
+ }
}
}
-}
\endqml
+ \sa add, {declarative/positioners}{Positioners example}
*/
/*!
\qmlproperty int Row::spacing
- spacing is the amount in pixels left empty between each adjacent
- item, and defaults to 0.
-
- The below example places a \l Grid containing a red, a blue and a
- green rectangle on a gray background. The area the grid positioner
- occupies is colored white. The top positioner has the default of no spacing,
- and the bottom positioner has its spacing set to 2.
+ The spacing is the amount in pixels left empty between adjacent
+ items. The default spacing is 0.
- \image spacing_a.png
- \image spacing_b.png
-
-*/
-/*!
- \internal
- \class QDeclarativeRow
- \brief The QDeclarativeRow class lines up items horizontally.
+ \sa Grid::spacing
*/
QDeclarativeRow::QDeclarativeRow(QDeclarativeItem *parent)
: QDeclarativeBasePositioner(Horizontal, parent)
@@ -595,7 +584,7 @@ void QDeclarativeRow::doPositioning(QSizeF *contentSize)
for (int ii = 0; ii < positionedItems.count(); ++ii) {
const PositionedItem &child = positionedItems.at(ii);
- if (!child.item || isInvisible(child.item))
+ if (!child.item || !child.isVisible)
continue;
if(child.item->x() != hoffset)
@@ -635,47 +624,46 @@ void QDeclarativeRow::reportConflictingAnchors()
/*!
\qmlclass Grid QDeclarativeGrid
- \ingroup qml-positioning-elements
+ \ingroup qml-positioning-elements
\since 4.7
\brief The Grid item positions its children in a grid.
\inherits Item
The Grid item positions its child items so that they are
aligned in a grid and are not overlapping.
-
- Spacing can be added
- between child items. It also provides for transitions to be set when items are
- added, moved, or removed in the positioner. Adding and removing apply
- both to items which are deleted or have their position in the
- document changed so as to no longer be children of the positioner, as
- well as to items which have their opacity set to or from zero so
- as to appear or disappear.
-
- A Grid defaults to four columns, and as many rows as
- are necessary to fit all child items. The number of rows
- and/or the number of columns can be constrained by setting the \l rows
- or \l columns properties. The grid positioner calculates a grid with
- rectangular cells of sufficient size to hold all items, and then
- places the items in the cells, going across then down, and
- positioning each item at the (0,0) corner of the cell. The below
- example demonstrates this.
-
- \table
- \row
- \o \image gridLayout_example.png
- \o
- \qml
-Grid {
- columns: 3
- spacing: 2
- Rectangle { color: "red"; width: 50; height: 50 }
- Rectangle { color: "green"; width: 20; height: 50 }
- Rectangle { color: "blue"; width: 50; height: 20 }
- Rectangle { color: "cyan"; width: 50; height: 50 }
- Rectangle { color: "magenta"; width: 10; height: 10 }
-}
- \endqml
- \endtable
+
+ The grid positioner calculates a grid of rectangular cells of sufficient
+ size to hold all items, placing the items in the cells, from left to right
+ and top to bottom. Each item is positioned in the top-left corner of its
+ cell with position (0, 0).
+
+ A Grid defaults to four columns, and as many rows as are necessary to
+ fit all child items. The number of rows and columns can be constrained
+ by setting the \l rows and \l columns properties.
+
+ Spacing can be added between child items by setting the \l spacing
+ property. The amount of spacing applied will be the same in the
+ horizontal and vertical directions.
+
+ See \l{Using QML Positioner and Repeater Items} for more details about this item and other
+ related items.
+
+ \section1 Example Usage
+
+ The following example demonstrates this.
+
+ \image gridLayout_example.png
+
+ \snippet doc/src/snippets/declarative/grid/grid.qml document
+
+ \section1 Using Transitions
+
+ Transitions can be used to animate items that are added to, moved within,
+ or removed from a Grid item. The \l add and \l move properties can be set to
+ the transitions that will be applied when items are added to, removed from,
+ or re-positioned within a Grid item.
+
+ \section1 Limitations
Note that the positioner assumes that the x and y positions of its children
will not change. If you manually change the x or y properties in script, bind
@@ -686,60 +674,62 @@ Grid {
Items with a width or height of 0 will not be positioned.
- \sa Flow, {declarative/positioners}{Positioners example}
+ \sa Flow, Row, Column, {declarative/positioners}{Positioners example}
*/
/*!
\qmlproperty Transition Grid::add
- This property holds the transition to apply when adding an item to the positioner.
- The transition is only applied to the added item(s).
- Positioner transitions will only affect the position (x,y) of items,
- as that is all the positioners affect. To animate other property change
- you will have to do so based on how you have changed those properties.
-
- An object is considered to be added to the positioner if it has been
- created or reparented and thus is now a child or the positioner, or if the
- object has had its opacity increased from zero, and thus is now
- visible.
+
+ This property holds the transition to be applied when adding an
+ item to the positioner. The transition will only be applied to the
+ added item(s). Positioner transitions will only affect the
+ position (x, y) of items.
+
+ For a positioner, adding an item can mean that either the object
+ has been created or reparented, and thus is now a child or the
+ positioner, or that the object has had its opacity increased from
+ zero, and thus is now visible.
+
+ \sa move
*/
/*!
\qmlproperty Transition Grid::move
- This property holds the transition to apply when moving an item within the positioner.
- Positioner transitions will only affect the position (x,y) of items.
- This can happen when other items are added or removed from the positioner, or
- when items resize themselves.
+ This property holds the transition to be applied when moving an
+ item within the positioner. Positioner transitions will only affect
+ the position (x, y) of items.
+
+ This transition can be performed when other items are added or removed
+ from the positioner, or when items resize themselves.
\qml
-Grid {
- move: Transition {
- NumberAnimation {
- properties: "x,y"
- ease: "easeOutBounce"
+ Grid {
+ move: Transition {
+ NumberAnimation {
+ properties: "x,y"
+ ease: "easeOutBounce"
+ }
}
}
-}
\endqml
+ \sa add, {declarative/positioners}{Positioners example}
*/
/*!
\qmlproperty int Grid::spacing
- spacing is the amount in pixels left empty between each adjacent
- item, and defaults to 0.
+ The spacing is the amount in pixels left empty between adjacent
+ items. The default spacing is 0.
The below example places a Grid containing a red, a blue and a
green rectangle on a gray background. The area the grid positioner
- occupies is colored white. The top positioner has the default of no spacing,
- and the bottom positioner has its spacing set to 2.
+ occupies is colored white. The positioner on the left has the
+ no spacing (the default), and the positioner on the right has
+ a spacing of 6.
- \image spacing_a.png
- \image spacing_b.png
+ \inlineimage qml-grid-no-spacing.png
+ \inlineimage qml-grid-spacing.png
-*/
-/*!
- \internal
- \class QDeclarativeGrid
- \brief The QDeclarativeGrid class lays out items in a grid.
+ \sa rows, columns
*/
QDeclarativeGrid::QDeclarativeGrid(QDeclarativeItem *parent) :
QDeclarativeBasePositioner(Both, parent), m_rows(-1), m_columns(-1), m_flow(LeftToRight)
@@ -748,7 +738,9 @@ QDeclarativeGrid::QDeclarativeGrid(QDeclarativeItem *parent) :
/*!
\qmlproperty int Grid::columns
- This property holds the number of columns in the grid.
+
+ This property holds the number of columns in the grid. The default
+ number of columns is 4.
If the grid does not have enough items to fill the specified
number of columns, some columns will be of zero width.
@@ -809,9 +801,17 @@ void QDeclarativeGrid::setFlow(Flow flow)
void QDeclarativeGrid::doPositioning(QSizeF *contentSize)
{
+
int c = m_columns;
int r = m_rows;
- int numVisible = positionedItems.count();
+ //Is allocating the extra QPODVector too much overhead?
+ QPODVector<PositionedItem, 8> visibleItems;//we aren't concerned with invisible items
+ visibleItems.reserve(positionedItems.count());
+ for(int i=0; i<positionedItems.count(); i++)
+ if(positionedItems[i].item && positionedItems[i].isVisible)
+ visibleItems.append(positionedItems[i]);
+
+ int numVisible = visibleItems.count();
if (m_columns <= 0 && m_rows <= 0){
c = 4;
r = (numVisible+3)/4;
@@ -832,11 +832,10 @@ void QDeclarativeGrid::doPositioning(QSizeF *contentSize)
if (i==0)
maxColWidth << 0;
- if (childIndex == positionedItems.count())
- continue;
- const PositionedItem &child = positionedItems.at(childIndex++);
- if (!child.item || isInvisible(child.item))
- continue;
+ if (childIndex == visibleItems.count())
+ break;
+
+ const PositionedItem &child = visibleItems.at(childIndex++);
QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item);
if (childPrivate->width() > maxColWidth[j])
maxColWidth[j] = childPrivate->width();
@@ -853,10 +852,9 @@ void QDeclarativeGrid::doPositioning(QSizeF *contentSize)
maxColWidth << 0;
if (childIndex == positionedItems.count())
- continue;
- const PositionedItem &child = positionedItems.at(childIndex++);
- if (!child.item || isInvisible(child.item))
- continue;
+ break;
+
+ const PositionedItem &child = visibleItems.at(childIndex++);
QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item);
if (childPrivate->width() > maxColWidth[j])
maxColWidth[j] = childPrivate->width();
@@ -870,10 +868,8 @@ void QDeclarativeGrid::doPositioning(QSizeF *contentSize)
int yoffset=0;
int curRow =0;
int curCol =0;
- for (int i = 0; i < positionedItems.count(); ++i) {
- const PositionedItem &child = positionedItems.at(i);
- if (!child.item || isInvisible(child.item))
- continue;
+ for (int i = 0; i < visibleItems.count(); ++i) {
+ const PositionedItem &child = visibleItems.at(i);
if((child.item->x()!=xoffset)||(child.item->y()!=yoffset)){
positionX(xoffset, child);
positionY(yoffset, child);
@@ -930,13 +926,43 @@ void QDeclarativeGrid::reportConflictingAnchors()
/*!
\qmlclass Flow QDeclarativeFlow
- \ingroup qml-positioning-elements
+ \ingroup qml-positioning-elements
\since 4.7
\brief The Flow item arranges its children side by side, wrapping as necessary.
\inherits Item
- The Flow item positions its child items so that they are side by side and are
- not overlapping.
+ The Flow item positions its child items like words on a page, wrapping them
+ to create rows or columns of items that do not overlap.
+
+ Spacing between items can be added using the \l spacing property.
+ Transitions can be used for cases where items managed by a Column are
+ added or moved. These are stored in the \l add and \l move properties
+ respectively.
+
+ See \l{Using QML Positioner and Repeater Items} for more details about this item and other
+ related items.
+
+ \section1 Example Usage
+
+ The following example positions \l Text items within a parent item using
+ a Flow item.
+
+ \image qml-flow-snippet.png
+
+ \snippet doc/src/snippets/declarative/flow.qml flow item
+
+ \section1 Using Transitions
+
+ Transitions can be used to animate items that are added to, moved within,
+ or removed from a Flow item. The \l add and \l move properties can be set to
+ the transitions that will be applied when items are added to, removed from,
+ or re-positioned within a Flow item.
+
+ The use of transitions with positioners is described in more detail in the
+ \l{Using QML Positioner and Repeater Items#Using Transitions}{Using QML
+ Positioner and Repeater Items} document.
+
+ \section1 Limitations
Note that the positioner assumes that the x and y positions of its children
will not change. If you manually change the x or y properties in script, bind
@@ -947,38 +973,46 @@ void QDeclarativeGrid::reportConflictingAnchors()
Items with a width or height of 0 will not be positioned.
- \sa Grid, {declarative/positioners}{Positioners example}
+ \sa Column, Row, Grid, {declarative/positioners}{Positioners example}
*/
/*!
\qmlproperty Transition Flow::add
- This property holds the transition to apply when adding an item to the positioner.
- The transition will only be applied to the added item(s).
- Positioner transitions will only affect the position (x,y) of items.
-
- An object is considered to be added to the positioner if it has been
- created or reparented and thus is now a child or the positioner, or if the
- object has had its opacity increased from zero, and thus is now
- visible.
+
+ This property holds the transition to be applied when adding an
+ item to the positioner. The transition will only be applied to the
+ added item(s). Positioner transitions will only affect the
+ position (x, y) of items.
+
+ For a positioner, adding an item can mean that either the object
+ has been created or reparented, and thus is now a child or the
+ positioner, or that the object has had its opacity increased from
+ zero, and thus is now visible.
+
+ \sa move
*/
/*!
\qmlproperty Transition Flow::move
- This property holds the transition to apply when moving an item within the positioner.
- Positioner transitions will only affect the position (x,y) of items.
- This can happen when other items are added or removed from the positioner, or when items resize themselves.
+ This property holds the transition to be applied when moving an
+ item within the positioner. Positioner transitions will only affect
+ the position (x, y) of items.
+
+ This transition can be performed when other items are added or removed
+ from the positioner, or when items resize themselves.
\qml
-Flow {
- id: positioner
- move: Transition {
- NumberAnimation {
- properties: "x,y"
- ease: "easeOutBounce"
+ Flow {
+ id: positioner
+ move: Transition {
+ NumberAnimation {
+ properties: "x,y"
+ ease: "easeOutBounce"
+ }
}
}
-}
\endqml
+ \sa add, {declarative/positioners}{Positioners example}
*/
/*!
\qmlproperty int Flow::spacing
@@ -986,6 +1020,7 @@ Flow {
spacing is the amount in pixels left empty between each adjacent
item, and defaults to 0.
+ \sa Grid::spacing
*/
class QDeclarativeFlowPrivate : public QDeclarativeBasePositionerPrivate
@@ -1049,7 +1084,7 @@ void QDeclarativeFlow::doPositioning(QSizeF *contentSize)
for (int i = 0; i < positionedItems.count(); ++i) {
const PositionedItem &child = positionedItems.at(i);
- if (!child.item || isInvisible(child.item))
+ if (!child.item || !child.isVisible)
continue;
QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item);
diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
index 5990c2d9e5..d027924d07 100644
--- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
@@ -180,11 +180,6 @@ void QDeclarativeGradient::doUpdate()
int QDeclarativeRectanglePrivate::doUpdateSlotIdx = -1;
-/*!
- \internal
- \class QDeclarativeRectangle
- \brief The QDeclarativeRectangle class provides a rectangle item that you can add to a QDeclarativeView.
-*/
QDeclarativeRectangle::QDeclarativeRectangle(QDeclarativeItem *parent)
: QDeclarativeItem(*(new QDeclarativeRectanglePrivate), parent)
{
diff --git a/src/declarative/graphicsitems/qdeclarativerepeater.cpp b/src/declarative/graphicsitems/qdeclarativerepeater.cpp
index 4a951a281c..00f2848aed 100644
--- a/src/declarative/graphicsitems/qdeclarativerepeater.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerepeater.cpp
@@ -78,9 +78,9 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate()
The following Repeater creates three instances of a \l Rectangle item within
a \l Row:
- \snippet doc/src/snippets/declarative/repeater.qml import
+ \snippet doc/src/snippets/declarative/repeaters/repeater.qml import
\codeline
- \snippet doc/src/snippets/declarative/repeater.qml simple
+ \snippet doc/src/snippets/declarative/repeaters/repeater.qml simple
\image repeater-simple.png
@@ -92,7 +92,7 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate()
a Repeater to be used inside a layout. For example, the following Repeater's
items are stacked between a red rectangle and a blue rectangle:
- \snippet doc/src/snippets/declarative/repeater.qml layout
+ \snippet doc/src/snippets/declarative/repeaters/repeater.qml layout
\image repeater.png
@@ -106,7 +106,7 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate()
\table
\row
- \o \snippet doc/src/snippets/declarative/repeater.qml index
+ \o \snippet doc/src/snippets/declarative/repeaters/repeater.qml index
\o \image repeater-index.png
\endtable
@@ -115,7 +115,7 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate()
\table
\row
- \o \snippet doc/src/snippets/declarative/repeater.qml modeldata
+ \o \snippet doc/src/snippets/declarative/repeaters/repeater.qml modeldata
\o \image repeater-modeldata.png
\endtable
@@ -146,23 +146,11 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate()
\endcode
*/
-/*!
- \internal
- \class QDeclarativeRepeater
- */
-
-/*!
- Create a new QDeclarativeRepeater instance.
- */
QDeclarativeRepeater::QDeclarativeRepeater(QDeclarativeItem *parent)
: QDeclarativeItem(*(new QDeclarativeRepeaterPrivate), parent)
{
}
-/*!
- Destroy the repeater instance. All items it instantiated are also
- destroyed.
- */
QDeclarativeRepeater::~QDeclarativeRepeater()
{
}
@@ -301,18 +289,12 @@ int QDeclarativeRepeater::count() const
}
-/*!
- \internal
- */
void QDeclarativeRepeater::componentComplete()
{
QDeclarativeItem::componentComplete();
regenerate();
}
-/*!
- \internal
- */
QVariant QDeclarativeRepeater::itemChange(GraphicsItemChange change,
const QVariant &value)
{
@@ -335,9 +317,6 @@ void QDeclarativeRepeater::clear()
d->deletables.clear();
}
-/*!
- \internal
- */
void QDeclarativeRepeater::regenerate()
{
Q_D(QDeclarativeRepeater);
diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp
index e5ad743701..14194a0f4b 100644
--- a/src/declarative/graphicsitems/qdeclarativetext.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetext.cpp
@@ -190,32 +190,6 @@ QSet<QUrl> QTextDocumentWithImageResources::errors;
\sa {declarative/text/fonts}{Fonts example}
*/
-
-/*!
- \internal
- \class QDeclarativeText
- \qmlclass Text
-
- \brief The QDeclarativeText class provides a formatted text item that you can add to a QDeclarativeView.
-
- Text was designed for read-only text; it does not allow for any text editing.
- It can display both plain and rich text. For example:
-
- \qml
- Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" }
- Text { text: "<b>Hello</b> <i>World!</i>" }
- \endqml
-
- \image text.png
-
- If height and width are not explicitly set, Text will attempt to determine how
- much room is needed and set it accordingly. Unless \c wrapMode is set, it will always
- prefer width to height (all text will be placed on a single line).
-
- The \c elide property can alternatively be used to fit a line of plain text to a set width.
-
- A QDeclarativeText object can be instantiated in QML using the tag \c Text.
-*/
QDeclarativeText::QDeclarativeText(QDeclarativeItem *parent)
: QDeclarativeItem(*(new QDeclarativeTextPrivate), parent)
{
@@ -455,6 +429,9 @@ void QDeclarativeText::setStyle(QDeclarativeText::TextStyle style)
if (d->style == style)
return;
+ // changing to/from Normal requires the boundingRect() to change
+ if (isComponentComplete() && (d->style == Normal || style == Normal))
+ prepareGeometryChange();
d->style = style;
d->markImgDirty();
emit styleChanged(d->style);
@@ -520,8 +497,9 @@ void QDeclarativeText::setHAlign(HAlignment align)
if (d->hAlign == align)
return;
+ if (isComponentComplete())
+ prepareGeometryChange();
d->hAlign = align;
- update();
emit horizontalAlignmentChanged(align);
}
@@ -537,8 +515,9 @@ void QDeclarativeText::setVAlign(VAlignment align)
if (d->vAlign == align)
return;
+ if (isComponentComplete())
+ prepareGeometryChange();
d->vAlign = align;
- update();
emit verticalAlignmentChanged(align);
}
@@ -831,7 +810,6 @@ void QDeclarativeTextPrivate::updateSize()
else
doc->setTextWidth(doc->idealWidth()); // ### Text does not align if width is not set (QTextDoc bug)
dy -= (int)doc->size().height();
- q->prepareGeometryChange();
QSize dsize = doc->size().toSize();
if (dsize != cachedLayoutSize) {
q->prepareGeometryChange();
@@ -908,8 +886,6 @@ void QDeclarativeTextPrivate::drawOutline()
ppm.drawPixmap(pos, imgCache);
ppm.end();
- if (imgCache.size() != img.size())
- q_func()->prepareGeometryChange();
imgCache = img;
}
@@ -928,8 +904,6 @@ void QDeclarativeTextPrivate::drawOutline(int yOffset)
ppm.drawPixmap(pos, imgCache);
ppm.end();
- if (imgCache.size() != img.size())
- q_func()->prepareGeometryChange();
imgCache = img;
}
@@ -1080,8 +1054,6 @@ void QDeclarativeTextPrivate::checkImgCache()
if (style != QDeclarativeText::Normal)
imgStyleCache = wrappedTextImage(true); //### should use styleColor
}
- if (imgCache.size() != newImgCache.size())
- q_func()->prepareGeometryChange();
imgCache = newImgCache;
if (!empty)
switch (style) {
@@ -1231,7 +1203,7 @@ void QDeclarativeText::mousePressEvent(QGraphicsSceneMouseEvent *event)
}
/*!
- \qmlsignal Text::onLinkActivated(link)
+ \qmlsignal Text::onLinkActivated(string link)
This handler is called when the user clicks on a link embedded in the text.
*/
diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp
index b8e87266ba..3ac095c0a4 100644
--- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp
@@ -103,23 +103,6 @@ TextEdit {
\sa Text, TextInput, {declarative/text/textselection}{Text Selection example}
*/
-/*!
- \internal
- \class QDeclarativeTextEdit
- \qmlclass TextEdit
-
- \brief The QDeclarativeTextEdit class provides an editable formatted text item that you can add to a QDeclarativeView.
-
- It can display both plain and rich text.
-
- \image declarative-textedit.png
-
- A QDeclarativeTextEdit object can be instantiated in QML using the tag \c &lt;TextEdit&gt;.
-*/
-
-/*!
- Constructs a new QDeclarativeTextEdit.
-*/
QDeclarativeTextEdit::QDeclarativeTextEdit(QDeclarativeItem *parent)
: QDeclarativePaintedItem(*(new QDeclarativeTextEditPrivate), parent)
{
@@ -572,7 +555,7 @@ QRectF QDeclarativeTextEdit::positionToRectangle(int pos) const
}
/*!
- \qmlmethod int TextEdit::positionAt(x,y)
+ \qmlmethod int TextEdit::positionAt(int x, int y)
Returns the text position closest to pixel position (\a x, \a y).
@@ -1035,7 +1018,7 @@ void QDeclarativeTextEdit::selectWord()
}
/*!
- \qmlmethod void TextEdit::select(start,end)
+ \qmlmethod void TextEdit::select(int start, int end)
Causes the text from \a start to \a end to be selected.
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
index b4f36f4d45..5604b8288c 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
@@ -437,8 +437,6 @@ void QDeclarativeTextInput::setCursorPosition(int cp)
}
/*!
- \internal
-
Returns a Rect which encompasses the cursor, but which may be larger than is
required. Ignores custom cursor delegates.
*/
diff --git a/src/declarative/graphicsitems/qdeclarativetranslate.cpp b/src/declarative/graphicsitems/qdeclarativetranslate.cpp
index 0bae0cd4ad..2e0af2afce 100644
--- a/src/declarative/graphicsitems/qdeclarativetranslate.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetranslate.cpp
@@ -116,9 +116,6 @@ void QDeclarativeTranslate::setY(qreal y)
emit yChanged();
}
-/*!
- \internal
-*/
void QDeclarativeTranslate::applyTo(QMatrix4x4 *matrix) const
{
Q_D(const QDeclarativeTranslate);
diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
index 65b14cf993..a46ee73d83 100644
--- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
+++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
@@ -714,6 +714,7 @@ void QDeclarativeVisualDataModel::setModel(const QVariant &model)
QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsMoved(const QModelIndex&,int,int,const QModelIndex&,int)),
this, SLOT(_q_rowsMoved(const QModelIndex&,int,int,const QModelIndex&,int)));
QObject::disconnect(d->m_abstractItemModel, SIGNAL(modelReset()), this, SLOT(_q_modelReset()));
+ QObject::disconnect(d->m_abstractItemModel, SIGNAL(layoutChanged()), this, SLOT(_q_layoutChanged()));
d->m_abstractItemModel = 0;
} else if (d->m_visualItemModel) {
QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)),
@@ -761,6 +762,7 @@ void QDeclarativeVisualDataModel::setModel(const QVariant &model)
QObject::connect(d->m_abstractItemModel, SIGNAL(rowsMoved(const QModelIndex&,int,int,const QModelIndex&,int)),
this, SLOT(_q_rowsMoved(const QModelIndex&,int,int,const QModelIndex&,int)));
QObject::connect(d->m_abstractItemModel, SIGNAL(modelReset()), this, SLOT(_q_modelReset()));
+ QObject::connect(d->m_abstractItemModel, SIGNAL(layoutChanged()), this, SLOT(_q_layoutChanged()));
d->m_metaDataCacheable = true;
return;
}
@@ -1303,24 +1305,27 @@ void QDeclarativeVisualDataModel::_q_itemsMoved(int from, int to, int count)
void QDeclarativeVisualDataModel::_q_rowsInserted(const QModelIndex &parent, int begin, int end)
{
- if (!parent.isValid())
+ Q_D(QDeclarativeVisualDataModel);
+ if (parent == d->m_root)
_q_itemsInserted(begin, end - begin + 1);
}
void QDeclarativeVisualDataModel::_q_rowsRemoved(const QModelIndex &parent, int begin, int end)
{
- if (!parent.isValid())
+ Q_D(QDeclarativeVisualDataModel);
+ if (parent == d->m_root)
_q_itemsRemoved(begin, end - begin + 1);
}
void QDeclarativeVisualDataModel::_q_rowsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
{
+ Q_D(QDeclarativeVisualDataModel);
const int count = sourceEnd - sourceStart + 1;
- if (!destinationParent.isValid() && !sourceParent.isValid()) {
+ if (destinationParent == d->m_root && sourceParent == d->m_root) {
_q_itemsMoved(sourceStart, destinationRow, count);
- } else if (!sourceParent.isValid()) {
+ } else if (sourceParent == d->m_root) {
_q_itemsRemoved(sourceStart, count);
- } else if (!destinationParent.isValid()) {
+ } else if (destinationParent == d->m_root) {
_q_itemsInserted(destinationRow, count);
}
}
@@ -1328,10 +1333,16 @@ void QDeclarativeVisualDataModel::_q_rowsMoved(const QModelIndex &sourceParent,
void QDeclarativeVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end)
{
Q_D(QDeclarativeVisualDataModel);
- if (!begin.parent().isValid())
+ if (begin.parent() == d->m_root)
_q_itemsChanged(begin.row(), end.row() - begin.row() + 1, d->m_roles);
}
+void QDeclarativeVisualDataModel::_q_layoutChanged()
+{
+ Q_D(QDeclarativeVisualDataModel);
+ _q_itemsChanged(0, count(), d->m_roles);
+}
+
void QDeclarativeVisualDataModel::_q_modelReset()
{
emit modelReset();
diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h b/src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h
index 50d2c53c3f..e159786a3d 100644
--- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h
+++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h
@@ -194,6 +194,7 @@ private Q_SLOTS:
void _q_rowsRemoved(const QModelIndex &,int,int);
void _q_rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int);
void _q_dataChanged(const QModelIndex&,const QModelIndex&);
+ void _q_layoutChanged();
void _q_modelReset();
void _q_createdPackage(int index, QDeclarativePackage *package);
void _q_destroyingPackage(QDeclarativePackage *package);
diff --git a/src/declarative/qml/parser/qdeclarativejslexer.cpp b/src/declarative/qml/parser/qdeclarativejslexer.cpp
index cd08658970..1eb42e4f40 100644
--- a/src/declarative/qml/parser/qdeclarativejslexer.cpp
+++ b/src/declarative/qml/parser/qdeclarativejslexer.cpp
@@ -677,9 +677,9 @@ int Lexer::lex()
setDone(Other);
} else
state = Start;
- if (driver) driver->addComment(startpos, tokenLength(), startlineno, startcolumn);
+ if (driver) driver->addComment(startpos+2, tokenLength()-2, startlineno, startcolumn+2);
} else if (current == 0) {
- if (driver) driver->addComment(startpos, tokenLength(), startlineno, startcolumn);
+ if (driver) driver->addComment(startpos+2, tokenLength()-2, startlineno, startcolumn+2);
setDone(Eof);
}
@@ -689,14 +689,14 @@ int Lexer::lex()
setDone(Bad);
err = UnclosedComment;
errmsg = QCoreApplication::translate("QDeclarativeParser", "Unclosed comment at end of file");
- if (driver) driver->addComment(startpos, tokenLength(), startlineno, startcolumn);
+ if (driver) driver->addComment(startpos+2, tokenLength()-2, startlineno, startcolumn+2);
} else if (isLineTerminator()) {
shiftWindowsLineBreak();
yylineno++;
} else if (current == '*' && next1 == '/') {
state = Start;
shift(1);
- if (driver) driver->addComment(startpos, tokenLength(), startlineno, startcolumn);
+ if (driver) driver->addComment(startpos+2, tokenLength()-3, startlineno, startcolumn+2);
}
break;
diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp
index 723da94bf4..9402596f67 100644
--- a/src/declarative/qml/qdeclarativecompiledbindings.cpp
+++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp
@@ -1874,7 +1874,7 @@ bool QDeclarativeBindingCompilerPrivate::parseName(AST::Node *node, Result &type
return false;
QDeclarativeImportedNamespace *ns = 0;
- if (!engine->importDatabase.resolveType(imports, name.toUtf8(), &attachType, 0, 0, 0, &ns))
+ if (!imports.resolveType(name.toUtf8(), &attachType, 0, 0, 0, &ns))
return false;
if (ns || !attachType || !attachType->attachedPropertiesType())
return false;
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index 2b4a4a5dba..e55dc92a86 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -41,7 +41,6 @@
#include "private/qdeclarativecompiler_p.h"
-#include "private/qdeclarativecompositetypedata_p.h"
#include "private/qdeclarativeparser_p.h"
#include "private/qdeclarativescriptparser_p.h"
#include "qdeclarativepropertyvaluesource.h"
@@ -562,7 +561,7 @@ void QDeclarativeCompiler::reset(QDeclarativeCompiledData *data)
on a successful compiler.
*/
bool QDeclarativeCompiler::compile(QDeclarativeEngine *engine,
- QDeclarativeCompositeTypeData *unit,
+ QDeclarativeTypeData *unit,
QDeclarativeCompiledData *out)
{
exceptions.clear();
@@ -573,10 +572,15 @@ bool QDeclarativeCompiler::compile(QDeclarativeEngine *engine,
output = out;
// Compile types
- for (int ii = 0; ii < unit->types.count(); ++ii) {
- QDeclarativeCompositeTypeData::TypeReference &tref = unit->types[ii];
+ const QList<QDeclarativeTypeData::TypeReference> &resolvedTypes = unit->resolvedTypes();
+ QList<QDeclarativeScriptParser::TypeReference *> referencedTypes = unit->parser().referencedTypes();
+
+ for (int ii = 0; ii < resolvedTypes.count(); ++ii) {
QDeclarativeCompiledData::TypeReference ref;
- QDeclarativeScriptParser::TypeReference *parserRef = unit->data.referencedTypes().at(ii);
+
+ const QDeclarativeTypeData::TypeReference &tref = resolvedTypes.at(ii);
+ QDeclarativeScriptParser::TypeReference *parserRef = referencedTypes.at(ii);
+
if (tref.type) {
ref.type = tref.type;
if (!ref.type->isCreatable()) {
@@ -585,33 +589,16 @@ bool QDeclarativeCompiler::compile(QDeclarativeEngine *engine,
err = tr( "Element is not creatable.");
COMPILE_EXCEPTION(parserRef->refObjects.first(), err);
}
- } else if (tref.unit) {
- ref.component = tref.unit->toComponent(engine);
-
- if (ref.component->isError()) {
- QDeclarativeError error;
- error.setUrl(output->url);
- error.setDescription(QLatin1String("Unable to create type ") +
- parserRef->name);
- if (!parserRef->refObjects.isEmpty()) {
- QDeclarativeParser::Object *parserObject = parserRef->refObjects.first();
- error.setLine(parserObject->location.start.line);
- error.setColumn(parserObject->location.start.column);
- }
-
- exceptions << error;
- exceptions << ref.component->errors();
- reset(out);
- return false;
- }
- ref.ref = tref.unit;
+ } else if (tref.typeData) {
+ ref.component = tref.typeData->component();
+ ref.ref = tref.typeData;
ref.ref->addref();
}
ref.className = parserRef->name.toUtf8();
out->types << ref;
}
- Object *root = unit->data.tree();
+ Object *root = unit->parser().tree();
Q_ASSERT(root);
this->engine = engine;
@@ -664,17 +651,18 @@ void QDeclarativeCompiler::compileTree(Object *tree)
QHash<QString, Object::ScriptBlock> importedScripts;
QStringList importedScriptIndexes;
- for (int ii = 0; ii < unit->scripts.count(); ++ii) {
- QString scriptCode = QString::fromUtf8(unit->scripts.at(ii).resource->data);
- Object::ScriptBlock::Pragmas pragmas = QDeclarativeScriptParser::extractPragmas(scriptCode);
+ foreach (const QDeclarativeTypeData::ScriptReference &script, unit->resolvedScripts()) {
+ QString scriptCode = script.script->scriptSource();
+ Object::ScriptBlock::Pragmas pragmas = script.script->pragmas();
+
+ Q_ASSERT(!importedScripts.contains(script.qualifier));
if (!scriptCode.isEmpty()) {
- Object::ScriptBlock &scriptBlock = importedScripts[unit->scripts.at(ii).qualifier];
+ Object::ScriptBlock &scriptBlock = importedScripts[script.qualifier];
- scriptBlock.codes.append(scriptCode);
- scriptBlock.lineNumbers.append(1);
- scriptBlock.files.append(unit->scripts.at(ii).resource->url);
- scriptBlock.pragmas.append(pragmas);
+ scriptBlock.code = scriptCode;
+ scriptBlock.file = script.script->finalUrl().toString();
+ scriptBlock.pragmas = pragmas;
}
}
@@ -703,7 +691,7 @@ void QDeclarativeCompiler::compileTree(Object *tree)
for (int ii = 0; ii < importedScriptIndexes.count(); ++ii)
output->importCache->add(importedScriptIndexes.at(ii), ii);
- unit->imports.cache(output->importCache, engine);
+ unit->imports().populateCache(output->importCache, engine);
Q_ASSERT(tree->metatype);
@@ -986,7 +974,7 @@ void QDeclarativeCompiler::genObject(QDeclarativeParser::Object *obj)
}
// Begin the class
- if (obj->parserStatusCast != -1) {
+ if (tr.type && obj->parserStatusCast != -1) {
QDeclarativeInstruction begin;
begin.type = QDeclarativeInstruction::BeginObject;
begin.begin.castValue = obj->parserStatusCast;
@@ -1374,7 +1362,7 @@ bool QDeclarativeCompiler::doesPropertyExist(QDeclarativeParser::Property *prop,
return p.name() != 0;
} else {
int idx = mo->indexOfProperty(prop->name.constData());
- return idx != -1;
+ return idx != -1 && mo->property(idx).isScriptable();
}
}
@@ -1403,8 +1391,7 @@ bool QDeclarativeCompiler::buildProperty(QDeclarativeParser::Property *prop,
QDeclarativeType *type = 0;
QDeclarativeImportedNamespace *typeNamespace = 0;
- enginePrivate->importDatabase.resolveType(unit->imports, prop->name,
- &type, 0, 0, 0, &typeNamespace);
+ unit->imports().resolveType(prop->name, &type, 0, 0, 0, &typeNamespace);
if (typeNamespace) {
// ### We might need to indicate that this property is a namespace
@@ -1440,6 +1427,11 @@ bool QDeclarativeCompiler::buildProperty(QDeclarativeParser::Property *prop,
if (prop->index != -1) {
p = metaObject->property(prop->index);
Q_ASSERT(p.name());
+
+ if (!p.isScriptable()) {
+ prop->index = -1;
+ p = QMetaProperty();
+ }
}
}
@@ -1512,7 +1504,7 @@ bool QDeclarativeCompiler::buildPropertyInNamespace(QDeclarativeImportedNamespac
// Setup attached property data
QDeclarativeType *type = 0;
- enginePrivate->importDatabase.resolveTypeInNamespace(ns, prop->name, &type, 0, 0, 0);
+ unit->imports().resolveType(ns, prop->name, &type, 0, 0, 0);
if (!type || !type->attachedPropertiesType())
COMPILE_EXCEPTION(prop, tr("Non-existent attached object"));
@@ -1772,9 +1764,7 @@ bool QDeclarativeCompiler::buildGroupedProperty(QDeclarativeParser::Property *pr
Q_ASSERT(prop->index != -1);
if (QDeclarativeValueTypeFactory::isValueType(prop->type)) {
- QDeclarativeEnginePrivate *ep =
- static_cast<QDeclarativeEnginePrivate *>(QObjectPrivate::get(engine));
- if (prop->type >= 0 /* QVariant == -1 */ && ep->valueTypes[prop->type]) {
+ if (prop->type >= 0 /* QVariant == -1 */ && enginePrivate->valueTypes[prop->type]) {
if (prop->values.count()) {
if (prop->values.at(0)->location < prop->value->location) {
@@ -1788,7 +1778,7 @@ bool QDeclarativeCompiler::buildGroupedProperty(QDeclarativeParser::Property *pr
COMPILE_EXCEPTION(prop, tr( "Invalid property assignment: \"%1\" is a read-only property").arg(QString::fromUtf8(prop->name)));
}
- COMPILE_CHECK(buildValueTypeProperty(ep->valueTypes[prop->type],
+ COMPILE_CHECK(buildValueTypeProperty(enginePrivate->valueTypes[prop->type],
prop->value, obj, ctxt.incr()));
obj->addValueTypeProperty(prop);
} else {
@@ -1826,6 +1816,8 @@ bool QDeclarativeCompiler::buildValueTypeProperty(QObject *type,
if (idx == -1)
COMPILE_EXCEPTION(prop, tr("Cannot assign to non-existent property \"%1\"").arg(QString::fromUtf8(prop->name)));
QMetaProperty p = type->metaObject()->property(idx);
+ if (!p.isScriptable())
+ COMPILE_EXCEPTION(prop, tr("Cannot assign to non-existent property \"%1\"").arg(QString::fromUtf8(prop->name)));
prop->index = idx;
prop->type = p.userType();
prop->isValueTypeSubProperty = true;
@@ -2139,8 +2131,7 @@ bool QDeclarativeCompiler::testQualifiedEnumAssignment(const QMetaProperty &prop
QString typeName = parts.at(0);
QDeclarativeType *type = 0;
- enginePrivate->importDatabase.resolveType(unit->imports, typeName.toUtf8(),
- &type, 0, 0, 0, 0);
+ unit->imports().resolveType(typeName.toUtf8(), &type, 0, 0, 0, 0);
if (!type || obj->typeName != type->qmlTypeName())
return true;
@@ -2167,7 +2158,7 @@ int QDeclarativeCompiler::evaluateEnum(const QByteArray& script) const
int dot = script.indexOf('.');
if (dot > 0) {
QDeclarativeType *type = 0;
- enginePrivate->importDatabase.resolveType(unit->imports, script.left(dot), &type, 0, 0, 0, 0);
+ unit->imports().resolveType(script.left(dot), &type, 0, 0, 0, 0);
if (!type)
return -1;
const QMetaObject *mo = type->metaObject();
@@ -2185,8 +2176,7 @@ int QDeclarativeCompiler::evaluateEnum(const QByteArray& script) const
const QMetaObject *QDeclarativeCompiler::resolveType(const QByteArray& name) const
{
QDeclarativeType *qmltype = 0;
- if (!enginePrivate->importDatabase.resolveType(unit->imports, name, &qmltype,
- 0, 0, 0, 0))
+ if (!unit->imports().resolveType(name, &qmltype, 0, 0, 0, 0))
return 0;
if (!qmltype)
return 0;
@@ -2219,7 +2209,7 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
if (propName.at(0).isUpper())
COMPILE_EXCEPTION(&prop, tr("Property names cannot begin with an upper case letter"));
- if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(propName))
+ if (enginePrivate->globalClass->illegalNames().contains(propName))
COMPILE_EXCEPTION(&prop, tr("Illegal property name"));
propNames.insert(prop.name);
@@ -2232,7 +2222,7 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
QString nameStr = QString::fromUtf8(name);
if (nameStr.at(0).isUpper())
COMPILE_EXCEPTION(obj, tr("Signal names cannot begin with an upper case letter"));
- if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(nameStr))
+ if (enginePrivate->globalClass->illegalNames().contains(nameStr))
COMPILE_EXCEPTION(obj, tr("Illegal signal name"));
methodNames.insert(name);
}
@@ -2243,7 +2233,7 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
QString nameStr = QString::fromUtf8(name);
if (nameStr.at(0).isUpper())
COMPILE_EXCEPTION(obj, tr("Method names cannot begin with an upper case letter"));
- if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(nameStr))
+ if (enginePrivate->globalClass->illegalNames().contains(nameStr))
COMPILE_EXCEPTION(obj, tr("Illegal method name"));
methodNames.insert(name);
}
@@ -2344,17 +2334,18 @@ bool QDeclarativeCompiler::buildDynamicMeta(QDeclarativeParser::Object *obj, Dyn
QByteArray customTypeName;
QDeclarativeType *qmltype = 0;
QUrl url;
- if (!enginePrivate->importDatabase.resolveType(unit->imports, p.customType, &qmltype,
- &url, 0, 0, 0))
+ if (!unit->imports().resolveType(p.customType, &qmltype, &url, 0, 0, 0))
COMPILE_EXCEPTION(&p, tr("Invalid property type"));
if (!qmltype) {
- QDeclarativeCompositeTypeData *tdata = enginePrivate->typeManager.get(url);
+ QDeclarativeTypeData *tdata = enginePrivate->typeLoader.get(url);
Q_ASSERT(tdata);
- Q_ASSERT(tdata->status == QDeclarativeCompositeTypeData::Complete);
+ Q_ASSERT(tdata->isComplete());
- QDeclarativeCompiledData *data = tdata->toCompiledComponent(engine);
+ QDeclarativeCompiledData *data = tdata->compiledData();
customTypeName = data->root->className();
+ data->release();
+ tdata->release();
} else {
customTypeName = qmltype->typeName();
}
@@ -2420,17 +2411,20 @@ bool QDeclarativeCompiler::buildDynamicMeta(QDeclarativeParser::Object *obj, Dyn
builder.addSignal(p.name + "Changed()");
QMetaPropertyBuilder propBuilder =
builder.addProperty(p.name, type, builder.methodCount() - 1);
- propBuilder.setScriptable(true);
propBuilder.setWritable(!readonly);
}
- if (mode == ResolveAliases) {
- for (int ii = 0; ii < obj->dynamicProperties.count(); ++ii) {
- const Object::DynamicProperty &p = obj->dynamicProperties.at(ii);
+ for (int ii = 0; ii < obj->dynamicProperties.count(); ++ii) {
+ const Object::DynamicProperty &p = obj->dynamicProperties.at(ii);
- if (p.type == Object::DynamicProperty::Alias) {
+ if (p.type == Object::DynamicProperty::Alias) {
+ if (mode == ResolveAliases) {
((QDeclarativeVMEMetaData *)dynamicData.data())->aliasCount++;
compileAlias(builder, dynamicData, obj, p);
+ } else {
+ // Need a fake signal so that the metaobject remains consistent across
+ // the resolve and non-resolve alias runs
+ builder.addSignal(p.name + "Changed()");
}
}
}
@@ -2586,6 +2580,9 @@ bool QDeclarativeCompiler::compileAlias(QMetaObjectBuilder &builder,
COMPILE_EXCEPTION(prop.defaultValue, tr("Invalid alias location"));
QMetaProperty aliasProperty = idObject->metaObject()->property(propIdx);
+ if (!aliasProperty.isScriptable())
+ COMPILE_EXCEPTION(prop.defaultValue, tr("Invalid alias location"));
+
writable = aliasProperty.isWritable();
if (aliasProperty.isEnumType())
@@ -2622,7 +2619,6 @@ bool QDeclarativeCompiler::compileAlias(QMetaObjectBuilder &builder,
builder.addSignal(prop.name + "Changed()");
QMetaPropertyBuilder propBuilder =
builder.addProperty(prop.name, typeName.constData(), builder.methodCount() - 1);
- propBuilder.setScriptable(true);
propBuilder.setWritable(writable);
return true;
}
@@ -2749,7 +2745,7 @@ bool QDeclarativeCompiler::completeComponentBuild()
expr.context = binding.bindingContext.object;
expr.property = binding.property;
expr.expression = binding.expression;
- expr.imports = unit->imports;
+ expr.imports = unit->imports();
int index = bindingCompiler.compile(expr, enginePrivate);
if (index != -1) {
diff --git a/src/declarative/qml/qdeclarativecompiler_p.h b/src/declarative/qml/qdeclarativecompiler_p.h
index 49dc53fba3..89eef095fa 100644
--- a/src/declarative/qml/qdeclarativecompiler_p.h
+++ b/src/declarative/qml/qdeclarativecompiler_p.h
@@ -56,13 +56,13 @@
#include "qdeclarative.h"
#include "qdeclarativeerror.h"
#include "private/qdeclarativeinstruction_p.h"
-#include "private/qdeclarativecompositetypemanager_p.h"
#include "private/qdeclarativeparser_p.h"
#include "private/qdeclarativeengine_p.h"
#include "private/qbitfield_p.h"
#include "private/qdeclarativepropertycache_p.h"
#include "private/qdeclarativeintegercache_p.h"
#include "private/qdeclarativetypenamecache_p.h"
+#include "private/qdeclarativetypeloader_p.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qset.h>
@@ -152,7 +152,7 @@ class Q_AUTOTEST_EXPORT QDeclarativeCompiler
public:
QDeclarativeCompiler();
- bool compile(QDeclarativeEngine *, QDeclarativeCompositeTypeData *, QDeclarativeCompiledData *);
+ bool compile(QDeclarativeEngine *, QDeclarativeTypeData *, QDeclarativeCompiledData *);
bool isError() const;
QList<QDeclarativeError> errors() const;
@@ -338,7 +338,7 @@ private:
QDeclarativeEngine *engine;
QDeclarativeEnginePrivate *enginePrivate;
QDeclarativeParser::Object *unitRoot;
- QDeclarativeCompositeTypeData *unit;
+ QDeclarativeTypeData *unit;
};
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp
index d2d1f19ca8..7f58166be5 100644
--- a/src/declarative/qml/qdeclarativecomponent.cpp
+++ b/src/declarative/qml/qdeclarativecomponent.cpp
@@ -44,7 +44,6 @@
#include "private/qdeclarativecompiler_p.h"
#include "private/qdeclarativecontext_p.h"
-#include "private/qdeclarativecompositetypedata_p.h"
#include "private/qdeclarativeengine_p.h"
#include "private/qdeclarativevme_p.h"
#include "qdeclarative.h"
@@ -197,7 +196,7 @@ class QByteArray;
\value Error An error has occurred. Call errors() to retrieve a list of \{QDeclarativeError}{errors}.
*/
-void QDeclarativeComponentPrivate::typeDataReady()
+void QDeclarativeComponentPrivate::typeDataReady(QDeclarativeTypeData *)
{
Q_Q(QDeclarativeComponent);
@@ -209,28 +208,25 @@ void QDeclarativeComponentPrivate::typeDataReady()
emit q->statusChanged(q->status());
}
-void QDeclarativeComponentPrivate::updateProgress(qreal p)
+void QDeclarativeComponentPrivate::typeDataProgress(QDeclarativeTypeData *, qreal p)
{
Q_Q(QDeclarativeComponent);
progress = p;
+
emit q->progressChanged(p);
}
-void QDeclarativeComponentPrivate::fromTypeData(QDeclarativeCompositeTypeData *data)
+void QDeclarativeComponentPrivate::fromTypeData(QDeclarativeTypeData *data)
{
- url = data->imports.baseUrl();
- QDeclarativeCompiledData *c = data->toCompiledComponent(engine);
+ url = data->finalUrl();
+ QDeclarativeCompiledData *c = data->compiledData();
if (!c) {
- Q_ASSERT(data->status == QDeclarativeCompositeTypeData::Error);
-
- state.errors = data->errors;
-
+ Q_ASSERT(data->isError());
+ state.errors = data->errors();
} else {
-
cc = c;
-
}
data->release();
@@ -239,7 +235,7 @@ void QDeclarativeComponentPrivate::fromTypeData(QDeclarativeCompositeTypeData *d
void QDeclarativeComponentPrivate::clear()
{
if (typeData) {
- typeData->remWaiter(this);
+ typeData->unregisterCallback(this);
typeData->release();
typeData = 0;
}
@@ -271,7 +267,7 @@ QDeclarativeComponent::~QDeclarativeComponent()
}
if (d->typeData) {
- d->typeData->remWaiter(d);
+ d->typeData->unregisterCallback(d);
d->typeData->release();
}
if (d->cc)
@@ -443,19 +439,13 @@ void QDeclarativeComponent::setData(const QByteArray &data, const QUrl &url)
d->url = url;
- QDeclarativeCompositeTypeData *typeData =
- QDeclarativeEnginePrivate::get(d->engine)->typeManager.getImmediate(data, url);
+ QDeclarativeTypeData *typeData = QDeclarativeEnginePrivate::get(d->engine)->typeLoader.get(data, url);
- if (typeData->status == QDeclarativeCompositeTypeData::Waiting
- || typeData->status == QDeclarativeCompositeTypeData::WaitingResources)
- {
- d->typeData = typeData;
- d->typeData->addWaiter(d);
-
- } else {
-
+ if (typeData->isCompleteOrError()) {
d->fromTypeData(typeData);
-
+ } else {
+ d->typeData = typeData;
+ d->typeData->registerCallback(d);
}
d->progress = 1.0;
@@ -501,18 +491,15 @@ void QDeclarativeComponent::loadUrl(const QUrl &url)
return;
}
- QDeclarativeCompositeTypeData *data =
- QDeclarativeEnginePrivate::get(d->engine)->typeManager.get(d->url);
+ QDeclarativeTypeData *data = QDeclarativeEnginePrivate::get(d->engine)->typeLoader.get(d->url);
- if (data->status == QDeclarativeCompositeTypeData::Waiting
- || data->status == QDeclarativeCompositeTypeData::WaitingResources)
- {
- d->typeData = data;
- d->typeData->addWaiter(d);
- d->progress = data->progress;
- } else {
+ if (data->isCompleteOrError()) {
d->fromTypeData(data);
d->progress = 1.0;
+ } else {
+ d->typeData = data;
+ d->typeData->registerCallback(d);
+ d->progress = data->progress();
}
emit statusChanged(status());
@@ -586,7 +573,7 @@ QDeclarativeComponent::QDeclarativeComponent(QDeclarativeComponentPrivate &dd, Q
}
/*!
- \qmlmethod object Component::createObject(parent)
+ \qmlmethod object Component::createObject(Item parent)
Creates and returns an object instance of this component that will have the given
\a parent. Returns null if object creation fails.
@@ -620,10 +607,11 @@ QScriptValue QDeclarativeComponent::createObject(QObject* parent)
ctxt = d->engine->rootContext();
if (!ctxt)
return QScriptValue(QScriptValue::NullValue);
- QObject* ret = create(ctxt);
- if (!ret)
+ QObject* ret = beginCreate(ctxt);
+ if (!ret) {
+ completeCreate();
return QScriptValue(QScriptValue::NullValue);
-
+ }
if (parent) {
ret->setParent(parent);
@@ -644,6 +632,7 @@ QScriptValue QDeclarativeComponent::createObject(QObject* parent)
if (needParent)
qWarning("QDeclarativeComponent: Created graphical object was not placed in the graphics scene.");
}
+ completeCreate();
QDeclarativeEnginePrivate *priv = QDeclarativeEnginePrivate::get(d->engine);
QDeclarativeData::get(ret, true)->setImplicitDestructible();
diff --git a/src/declarative/qml/qdeclarativecomponent.h b/src/declarative/qml/qdeclarativecomponent.h
index 1d1fca7144..fd9cb2b1cc 100644
--- a/src/declarative/qml/qdeclarativecomponent.h
+++ b/src/declarative/qml/qdeclarativecomponent.h
@@ -117,6 +117,7 @@ private:
Q_DISABLE_COPY(QDeclarativeComponent)
friend class QDeclarativeVME;
friend class QDeclarativeCompositeTypeData;
+ friend class QDeclarativeTypeData;
};
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qdeclarativecomponent_p.h b/src/declarative/qml/qdeclarativecomponent_p.h
index 2a7d633f0d..1b1454b6bf 100644
--- a/src/declarative/qml/qdeclarativecomponent_p.h
+++ b/src/declarative/qml/qdeclarativecomponent_p.h
@@ -56,7 +56,7 @@
#include "qdeclarativecomponent.h"
#include "private/qdeclarativeengine_p.h"
-#include "private/qdeclarativecompositetypemanager_p.h"
+#include "private/qdeclarativetypeloader_p.h"
#include "private/qbitfield_p.h"
#include "qdeclarativeerror.h"
#include "qdeclarative.h"
@@ -74,7 +74,7 @@ class QDeclarativeEngine;
class QDeclarativeCompiledData;
class QDeclarativeComponentAttached;
-class QDeclarativeComponentPrivate : public QObjectPrivate
+class QDeclarativeComponentPrivate : public QObjectPrivate, public QDeclarativeTypeData::TypeDataCallback
{
Q_DECLARE_PUBLIC(QDeclarativeComponent)
@@ -85,11 +85,11 @@ public:
QObject *beginCreate(QDeclarativeContextData *, const QBitField &);
void completeCreate();
- QDeclarativeCompositeTypeData *typeData;
- void typeDataReady();
- void updateProgress(qreal);
+ QDeclarativeTypeData *typeData;
+ virtual void typeDataReady(QDeclarativeTypeData *);
+ virtual void typeDataProgress(QDeclarativeTypeData *, qreal);
- void fromTypeData(QDeclarativeCompositeTypeData *data);
+ void fromTypeData(QDeclarativeTypeData *data);
QUrl url;
qreal progress;
diff --git a/src/declarative/qml/qdeclarativecompositetypedata_p.h b/src/declarative/qml/qdeclarativecompositetypedata_p.h
deleted file mode 100644
index a0e4cc2865..0000000000
--- a/src/declarative/qml/qdeclarativecompositetypedata_p.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
-**
-** 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 QtDeclarative module 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 QDECLARATIVECOMPOSITETYPEDATA_P_H
-#define QDECLARATIVECOMPOSITETYPEDATA_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "private/qdeclarativeengine_p.h"
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDeclarativeCompositeTypeResource;
-class QDeclarativeCompositeTypeData : public QDeclarativeRefCount
-{
-public:
- QDeclarativeCompositeTypeData();
- virtual ~QDeclarativeCompositeTypeData();
-
- enum Status {
- Invalid,
- Complete,
- Error,
- Waiting,
- WaitingResources
- };
- Status status;
- enum ErrorType {
- NoError,
- AccessError,
- GeneralError
- };
- ErrorType errorType;
-
- QList<QDeclarativeError> errors;
-
- QDeclarativeImports imports;
-
- QList<QDeclarativeCompositeTypeData *> dependants;
-
- // Return a QDeclarativeComponent if the QDeclarativeCompositeTypeData is not in the Waiting
- // state. The QDeclarativeComponent is owned by the QDeclarativeCompositeTypeData, so a
- // reference should be kept to keep the QDeclarativeComponent alive.
- QDeclarativeComponent *toComponent(QDeclarativeEngine *);
- // Return a QDeclarativeCompiledData if possible, or 0 if an error
- // occurs
- QDeclarativeCompiledData *toCompiledComponent(QDeclarativeEngine *);
-
- struct TypeReference
- {
- TypeReference();
-
- QDeclarativeType *type;
- QDeclarativeCompositeTypeData *unit;
- };
-
- struct ScriptReference
- {
- ScriptReference();
-
- QString qualifier;
- QDeclarativeCompositeTypeResource *resource;
- };
-
- QList<TypeReference> types;
- QList<ScriptReference> scripts;
- QList<QDeclarativeCompositeTypeResource *> resources;
-
- // Add or remove p as a waiter. When the QDeclarativeCompositeTypeData becomes
- // ready, the QDeclarativeComponentPrivate::typeDataReady() method will be invoked on
- // p. The waiter is automatically removed when the typeDataReady() method
- // is invoked, so there is no need to call remWaiter() in this case.
- void addWaiter(QDeclarativeComponentPrivate *p);
- void remWaiter(QDeclarativeComponentPrivate *p);
-
- qreal progress;
-
-private:
- friend class QDeclarativeCompositeTypeManager;
- friend class QDeclarativeCompiler;
- friend class QDeclarativeDomDocument;
-
- QDeclarativeScriptParser data;
- QList<QDeclarativeComponentPrivate *> waiters;
- QDeclarativeComponent *component;
- QDeclarativeCompiledData *compiledComponent;
-};
-
-class QDeclarativeCompositeTypeResource : public QDeclarativeRefCount
-{
-public:
- QDeclarativeCompositeTypeResource();
- virtual ~QDeclarativeCompositeTypeResource();
-
- enum Status {
- Invalid,
- Complete,
- Error,
- Waiting
- };
- Status status;
-
- QList<QDeclarativeCompositeTypeData *> dependants;
-
- QString url;
- QByteArray data;
-};
-
-QT_END_NAMESPACE
-
-#endif // QDECLARATIVECOMPOSITETYPEDATA_P_H
-
diff --git a/src/declarative/qml/qdeclarativecompositetypemanager.cpp b/src/declarative/qml/qdeclarativecompositetypemanager.cpp
deleted file mode 100644
index 2e775343e0..0000000000
--- a/src/declarative/qml/qdeclarativecompositetypemanager.cpp
+++ /dev/null
@@ -1,776 +0,0 @@
-/****************************************************************************
-**
-** 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 QtDeclarative module 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 "private/qdeclarativecompositetypemanager_p.h"
-
-#include "private/qdeclarativecompositetypedata_p.h"
-#include "private/qdeclarativescriptparser_p.h"
-#include "qdeclarativeengine.h"
-#include "private/qdeclarativeengine_p.h"
-#include "qdeclarativecomponent.h"
-#include "private/qdeclarativecomponent_p.h"
-#include "private/qdeclarativecompiler_p.h"
-
-#include <QtNetwork/qnetworkreply.h>
-#include <QtCore/qdebug.h>
-#include <QtCore/qfile.h>
-
-QT_BEGIN_NAMESPACE
-
-QDeclarativeCompositeTypeData::QDeclarativeCompositeTypeData()
-: status(Invalid), errorType(NoError), component(0), compiledComponent(0)
-{
-}
-
-QDeclarativeCompositeTypeData::~QDeclarativeCompositeTypeData()
-{
- for (int ii = 0; ii < dependants.count(); ++ii)
- dependants.at(ii)->release();
-
- for (int ii = 0; ii < resources.count(); ++ii)
- resources.at(ii)->release();
-
- if (compiledComponent)
- compiledComponent->release();
-
- if (component)
- delete component;
-}
-
-QDeclarativeCompositeTypeResource::QDeclarativeCompositeTypeResource()
-{
-}
-
-QDeclarativeCompositeTypeResource::~QDeclarativeCompositeTypeResource()
-{
- for (int ii = 0; ii < dependants.count(); ++ii)
- dependants.at(ii)->release();
-}
-
-void QDeclarativeCompositeTypeData::addWaiter(QDeclarativeComponentPrivate *p)
-{
- waiters << p;
-}
-
-void QDeclarativeCompositeTypeData::remWaiter(QDeclarativeComponentPrivate *p)
-{
- waiters.removeAll(p);
-}
-
-QDeclarativeComponent *QDeclarativeCompositeTypeData::toComponent(QDeclarativeEngine *engine)
-{
- if (!component) {
-
- QDeclarativeCompiledData *cc = toCompiledComponent(engine);
- if (cc) {
- component = new QDeclarativeComponent(engine, cc, -1, -1, 0);
- cc->release();
- } else {
- component = new QDeclarativeComponent(engine, 0);
- component->d_func()->url = imports.baseUrl();
- component->d_func()->state.errors = errors;
- }
-
- }
-
- return component;
-}
-
-QDeclarativeCompiledData *
-QDeclarativeCompositeTypeData::toCompiledComponent(QDeclarativeEngine *engine)
-{
- if (status == Complete && !compiledComponent) {
-
- // Build script imports
- foreach (const QDeclarativeScriptParser::Import &import, data.imports()) {
- if (import.type == QDeclarativeScriptParser::Import::Script) {
- QString url = imports.baseUrl().resolved(QUrl(import.uri)).toString();
-
- ScriptReference ref;
- ref.qualifier = import.qualifier;
-
- for (int ii = 0; ii < resources.count(); ++ii) {
- if (resources.at(ii)->url == url) {
- ref.resource = resources.at(ii);
- break;
- }
- }
-
- Q_ASSERT(ref.resource);
-
- scripts << ref;
- }
- }
-
- compiledComponent = new QDeclarativeCompiledData(engine);
- compiledComponent->url = imports.baseUrl();
- compiledComponent->name = compiledComponent->url.toString();
-
- QDeclarativeCompiler compiler;
- if (!compiler.compile(engine, this, compiledComponent)) {
- status = Error;
- errors = compiler.errors();
- compiledComponent->release();
- compiledComponent = 0;
- }
-
- // Data is no longer needed once we have a compiled component
- data.clear();
- }
-
- if (compiledComponent)
- compiledComponent->addref();
-
- return compiledComponent;
-}
-
-QDeclarativeCompositeTypeData::TypeReference::TypeReference()
-: type(0), unit(0)
-{
-}
-
-QDeclarativeCompositeTypeData::ScriptReference::ScriptReference()
-: resource(0)
-{
-}
-
-QDeclarativeCompositeTypeManager::QDeclarativeCompositeTypeManager(QDeclarativeEngine *e)
-: engine(e), redirectCount(0)
-{
-}
-
-QDeclarativeCompositeTypeManager::~QDeclarativeCompositeTypeManager()
-{
- for (Components::Iterator iter = components.begin(); iter != components.end();) {
- (*iter)->release();
- iter = components.erase(iter);
- }
- for (Resources::Iterator iter = resources.begin(); iter != resources.end();) {
- (*iter)->release();
- iter = resources.erase(iter);
- }
-}
-
-QDeclarativeCompositeTypeData *QDeclarativeCompositeTypeManager::get(const QUrl &url)
-{
- Redirects::Iterator redir = redirects.find(url);
- if (redir != redirects.end())
- return get(*redir);
-
- QDeclarativeCompositeTypeData *unit = components.value(url);
-
- if (!unit) {
- unit = new QDeclarativeCompositeTypeData;
- unit->status = QDeclarativeCompositeTypeData::Waiting;
- unit->progress = 0.0;
- unit->imports.setBaseUrl(url);
- components.insert(url, unit);
-
- loadSource(unit);
- }
-
- unit->addref();
- return unit;
-}
-
-QDeclarativeCompositeTypeData *
-QDeclarativeCompositeTypeManager::getImmediate(const QByteArray &data, const QUrl &url)
-{
- QDeclarativeCompositeTypeData *unit = new QDeclarativeCompositeTypeData;
- unit->status = QDeclarativeCompositeTypeData::Waiting;
- unit->imports.setBaseUrl(url);
- setData(unit, data, url);
- return unit;
-}
-
-void QDeclarativeCompositeTypeManager::clearCache()
-{
- for (Components::Iterator iter = components.begin(); iter != components.end();) {
- if ((*iter)->status != QDeclarativeCompositeTypeData::Waiting) {
- (*iter)->release();
- iter = components.erase(iter);
- } else {
- ++iter;
- }
- }
-
- for (Resources::Iterator iter = resources.begin(); iter != resources.end();) {
- if ((*iter)->status != QDeclarativeCompositeTypeResource::Waiting) {
- (*iter)->release();
- iter = resources.erase(iter);
- } else {
- ++iter;
- }
- }
-}
-
-#define TYPEMANAGER_MAXIMUM_REDIRECT_RECURSION 16
-
-void QDeclarativeCompositeTypeManager::replyFinished()
-{
- QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
-
- QDeclarativeCompositeTypeData *unit = components.value(reply->url());
- Q_ASSERT(unit);
-
- redirectCount++;
- if (redirectCount < TYPEMANAGER_MAXIMUM_REDIRECT_RECURSION) {
- QVariant redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
- if (redirect.isValid()) {
- QUrl url = reply->url().resolved(redirect.toUrl());
- redirects.insert(reply->url(),url);
- unit->imports.setBaseUrl(url);
- components.remove(reply->url());
- components.insert(url, unit);
- reply->deleteLater();
- reply = engine->networkAccessManager()->get(QNetworkRequest(url));
- QObject::connect(reply, SIGNAL(finished()),
- this, SLOT(replyFinished()));
- QObject::connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
- this, SLOT(requestProgress(qint64,qint64)));
- return;
- }
- }
- redirectCount = 0;
-
- if (reply->error() != QNetworkReply::NoError) {
- QString errorDescription;
- // ### - Fill in error
- errorDescription = QLatin1String("Network error for URL ") +
- reply->url().toString();
-
- unit->status = QDeclarativeCompositeTypeData::Error;
- // ### FIXME
- QDeclarativeError error;
- error.setDescription(errorDescription);
- unit->errorType = QDeclarativeCompositeTypeData::AccessError;
- unit->errors << error;
- doComplete(unit);
-
- } else {
- QByteArray data = reply->readAll();
-
- setData(unit, data, reply->url());
- }
-
- reply->deleteLater();
-}
-
-void QDeclarativeCompositeTypeManager::resourceReplyFinished()
-{
- QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
-
- QDeclarativeCompositeTypeResource *resource = resources.value(reply->url());
- Q_ASSERT(resource);
-
- redirectCount++;
- if (redirectCount < TYPEMANAGER_MAXIMUM_REDIRECT_RECURSION) {
- QVariant redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
- if (redirect.isValid()) {
- QUrl url = reply->url().resolved(redirect.toUrl());
- redirects.insert(reply->url(),url);
- resource->url = url.toString();
- resources.remove(reply->url());
- resources.insert(url, resource);
- reply->deleteLater();
- reply = engine->networkAccessManager()->get(QNetworkRequest(url));
- QObject::connect(reply, SIGNAL(finished()),
- this, SLOT(resourceReplyFinished()));
- return;
- }
- }
- redirectCount = 0;
-
- if (reply->error() != QNetworkReply::NoError) {
-
- resource->status = QDeclarativeCompositeTypeResource::Error;
-
- } else {
-
- resource->status = QDeclarativeCompositeTypeResource::Complete;
- resource->data = reply->readAll();
-
- }
-
- doComplete(resource);
- reply->deleteLater();
-}
-
-void QDeclarativeCompositeTypeManager::loadResource(QDeclarativeCompositeTypeResource *resource)
-{
- QUrl url(resource->url);
-
- QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
- if (!lf.isEmpty()) {
-
- QFile file(lf);
- if (file.open(QFile::ReadOnly)) {
- resource->data = file.readAll();
- resource->status = QDeclarativeCompositeTypeResource::Complete;
- } else {
- resource->status = QDeclarativeCompositeTypeResource::Error;
- }
- } else if (url.scheme().isEmpty()) {
-
- // We can't open this, so just declare as an error
- resource->status = QDeclarativeCompositeTypeResource::Error;
- } else {
-
- QNetworkReply *reply =
- engine->networkAccessManager()->get(QNetworkRequest(url));
- QObject::connect(reply, SIGNAL(finished()),
- this, SLOT(resourceReplyFinished()));
-
- }
-}
-
-void QDeclarativeCompositeTypeManager::loadSource(QDeclarativeCompositeTypeData *unit)
-{
- QUrl url(unit->imports.baseUrl());
-
- QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
- if (!lf.isEmpty()) {
-
- QFile file(lf);
- if (file.open(QFile::ReadOnly)) {
- QByteArray data = file.readAll();
- setData(unit, data, url);
- return; // success
- }
- } else if (!url.scheme().isEmpty()) {
- QNetworkReply *reply =
- engine->networkAccessManager()->get(QNetworkRequest(url));
- QObject::connect(reply, SIGNAL(finished()),
- this, SLOT(replyFinished()));
- QObject::connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
- this, SLOT(requestProgress(qint64,qint64)));
- return; // waiting
- }
-
- // error happened
- QString errorDescription;
- // ### - Fill in error
- errorDescription = QLatin1String("File error for URL ") + url.toString();
- unit->status = QDeclarativeCompositeTypeData::Error;
- // ### FIXME
- QDeclarativeError error;
- error.setDescription(errorDescription);
- unit->errorType = QDeclarativeCompositeTypeData::AccessError;
- unit->errors << error;
- doComplete(unit);
-}
-
-void QDeclarativeCompositeTypeManager::requestProgress(qint64 received, qint64 total)
-{
- if (total <= 0)
- return;
- QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
-
- QDeclarativeCompositeTypeData *unit = components.value(reply->url());
- Q_ASSERT(unit);
-
- unit->progress = qreal(received)/total;
-
- foreach (QDeclarativeComponentPrivate *comp, unit->waiters)
- comp->updateProgress(unit->progress);
-}
-
-void QDeclarativeCompositeTypeManager::setData(QDeclarativeCompositeTypeData *unit,
- const QByteArray &data,
- const QUrl &url)
-{
- bool ok = true;
- if (!unit->data.parse(data, url)) {
- ok = false;
- unit->errors << unit->data.errors();
- }
-
- if (ok) {
- compile(unit);
- } else {
- unit->status = QDeclarativeCompositeTypeData::Error;
- unit->errorType = QDeclarativeCompositeTypeData::GeneralError;
- doComplete(unit);
- }
-}
-
-void QDeclarativeCompositeTypeManager::doComplete(QDeclarativeCompositeTypeData *unit)
-{
- for (int ii = 0; ii < unit->dependants.count(); ++ii) {
- checkComplete(unit->dependants.at(ii));
- unit->dependants.at(ii)->release();
- }
- unit->dependants.clear();
-
- while(!unit->waiters.isEmpty()) {
- QDeclarativeComponentPrivate *p = unit->waiters.takeFirst();
- p->typeDataReady();
- }
-}
-
-void QDeclarativeCompositeTypeManager::doComplete(QDeclarativeCompositeTypeResource *resource)
-{
- for (int ii = 0; ii < resource->dependants.count(); ++ii) {
- checkComplete(resource->dependants.at(ii));
- resource->dependants.at(ii)->release();
- }
- resource->dependants.clear();
-}
-
-void QDeclarativeCompositeTypeManager::checkComplete(QDeclarativeCompositeTypeData *unit)
-{
- if (unit->status != QDeclarativeCompositeTypeData::Waiting
- && unit->status != QDeclarativeCompositeTypeData::WaitingResources)
- return;
-
- int waiting = 0;
- for (int ii = 0; ii < unit->resources.count(); ++ii) {
- QDeclarativeCompositeTypeResource *r = unit->resources.at(ii);
-
- if (!r)
- continue;
-
- if (r->status == QDeclarativeCompositeTypeResource::Error) {
- unit->status = QDeclarativeCompositeTypeData::Error;
- QDeclarativeError error;
- error.setUrl(unit->imports.baseUrl());
- error.setDescription(tr("Resource %1 unavailable").arg(r->url));
- unit->errors << error;
- doComplete(unit);
- return;
- } else if (r->status == QDeclarativeCompositeTypeResource::Waiting) {
- waiting++;
- }
- }
-
- if (waiting == 0) {
- if (unit->status == QDeclarativeCompositeTypeData::WaitingResources) {
- waiting += resolveTypes(unit);
- if (unit->status != QDeclarativeCompositeTypeData::Error) {
- if (waiting)
- unit->status = QDeclarativeCompositeTypeData::Waiting;
- } else {
- return;
- }
- } else {
- for (int ii = 0; ii < unit->types.count(); ++ii) {
- QDeclarativeCompositeTypeData *u = unit->types.at(ii).unit;
-
- if (!u)
- continue;
-
- if (u->status == QDeclarativeCompositeTypeData::Error) {
- unit->status = QDeclarativeCompositeTypeData::Error;
- unit->errors = u->errors;
- doComplete(unit);
- return;
- } else if (u->status == QDeclarativeCompositeTypeData::Waiting
- || u->status == QDeclarativeCompositeTypeData::WaitingResources)
- {
- waiting++;
- }
- }
- }
- }
-
- if (!waiting) {
- unit->status = QDeclarativeCompositeTypeData::Complete;
- doComplete(unit);
- }
-}
-
-int QDeclarativeCompositeTypeManager::resolveTypes(QDeclarativeCompositeTypeData *unit)
-{
- // not called until all resources are loaded (they include import URLs)
- int waiting = 0;
-
- QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
- QDeclarativeImportDatabase &importDatabase = ep->importDatabase;
-
- // For local urls, add an implicit import "." as first (most overridden) lookup.
- // This will also trigger the loading of the qmldir and the import of any native
- // types from available plugins.
- {
- QDeclarativeDirComponents qmldircomponentsnetwork;
- if (QDeclarativeCompositeTypeResource *resource
- = resources.value(unit->imports.baseUrl().resolved(QUrl(QLatin1String("./qmldir"))))) {
- QDeclarativeDirParser parser;
- parser.setSource(QString::fromUtf8(resource->data));
- parser.parse();
- qmldircomponentsnetwork = parser.components();
- }
-
- importDatabase.addToImport(&unit->imports, qmldircomponentsnetwork, QLatin1String("."),
- QString(), -1, -1, QDeclarativeScriptParser::Import::File,
- 0); // error ignored (just means no fallback)
- }
-
-
- foreach (const QDeclarativeScriptParser::Import &imp, unit->data.imports()) {
- QDeclarativeDirComponents qmldircomponentsnetwork;
- if (imp.type == QDeclarativeScriptParser::Import::Script)
- continue;
-
- if (imp.type == QDeclarativeScriptParser::Import::File && imp.qualifier.isEmpty()) {
- QString importUrl = unit->imports.baseUrl().resolved(QUrl(imp.uri + QLatin1String("/qmldir"))).toString();
- for (int ii = 0; ii < unit->resources.count(); ++ii) {
- if (unit->resources.at(ii)->url == importUrl) {
- QDeclarativeDirParser parser;
- parser.setSource(QString::fromUtf8(unit->resources.at(ii)->data));
- parser.parse();
- qmldircomponentsnetwork = parser.components();
- break;
- }
- }
- }
-
-
- int vmaj = -1;
- int vmin = -1;
- if (!imp.version.isEmpty()) {
- int dot = imp.version.indexOf(QLatin1Char('.'));
- if (dot < 0) {
- vmaj = imp.version.toInt();
- vmin = 0;
- } else {
- vmaj = imp.version.left(dot).toInt();
- vmin = imp.version.mid(dot+1).toInt();
- }
- }
-
- QString errorString;
- if (!importDatabase.addToImport(&unit->imports, qmldircomponentsnetwork, imp.uri, imp.qualifier,
- vmaj, vmin, imp.type, &errorString)) {
- QDeclarativeError error;
- error.setUrl(unit->imports.baseUrl());
- error.setDescription(errorString);
- error.setLine(imp.location.start.line);
- error.setColumn(imp.location.start.column);
- unit->status = QDeclarativeCompositeTypeData::Error;
- unit->errorType = QDeclarativeCompositeTypeData::GeneralError;
- unit->errors << error;
- doComplete(unit);
- return 0;
- }
- }
-
-
- QList<QDeclarativeScriptParser::TypeReference*> types = unit->data.referencedTypes();
-
- for (int ii = 0; ii < types.count(); ++ii) {
- QDeclarativeScriptParser::TypeReference *parserRef = types.at(ii);
- QByteArray typeName = parserRef->name.toUtf8();
-
- QDeclarativeCompositeTypeData::TypeReference ref;
-
- QUrl url;
- int majorVersion;
- int minorVersion;
- QDeclarativeImportedNamespace *typeNamespace = 0;
- QString errorString;
- if (!importDatabase.resolveType(unit->imports, typeName, &ref.type, &url, &majorVersion, &minorVersion,
- &typeNamespace, &errorString) || typeNamespace) {
- // Known to not be a type:
- // - known to be a namespace (Namespace {})
- // - type with unknown namespace (UnknownNamespace.SomeType {})
- QDeclarativeError error;
- error.setUrl(unit->imports.baseUrl());
- QString userTypeName = QString::fromUtf8(typeName);
- userTypeName.replace(QLatin1Char('/'),QLatin1Char('.'));
- if (typeNamespace)
- error.setDescription(tr("Namespace %1 cannot be used as a type").arg(userTypeName));
- else
- error.setDescription(tr("%1 %2").arg(userTypeName).arg(errorString));
-
- if (!parserRef->refObjects.isEmpty()) {
- QDeclarativeParser::Object *obj = parserRef->refObjects.first();
- error.setLine(obj->location.start.line);
- error.setColumn(obj->location.start.column);
- }
- unit->status = QDeclarativeCompositeTypeData::Error;
- unit->errorType = QDeclarativeCompositeTypeData::GeneralError;
- unit->errors << error;
- doComplete(unit);
- return 0;
- }
-
- if (ref.type) {
- foreach (QDeclarativeParser::Object *obj, parserRef->refObjects) {
- // store namespace for DOM
- obj->majorVersion = majorVersion;
- obj->minorVersion = minorVersion;
- }
- unit->types << ref;
- continue;
- }
-
- Redirects::Iterator redir = redirects.find(url);
- if (redir != redirects.end())
- url = *redir;
-
- QDeclarativeCompositeTypeData *urlUnit = components.value(url);
-
- if (!urlUnit) {
- urlUnit = new QDeclarativeCompositeTypeData;
- urlUnit->status = QDeclarativeCompositeTypeData::Waiting;
- urlUnit->imports.setBaseUrl(url);
- components.insert(url, urlUnit);
-
- loadSource(urlUnit);
- }
-
- ref.unit = urlUnit;
- switch(urlUnit->status) {
- case QDeclarativeCompositeTypeData::Invalid:
- case QDeclarativeCompositeTypeData::Error:
- unit->status = QDeclarativeCompositeTypeData::Error;
- {
- QDeclarativeError error;
- error.setUrl(unit->imports.baseUrl());
- error.setDescription(tr("Type %1 unavailable").arg(QString::fromUtf8(typeName)));
- if (!parserRef->refObjects.isEmpty()) {
- QDeclarativeParser::Object *obj = parserRef->refObjects.first();
- error.setLine(obj->location.start.line);
- error.setColumn(obj->location.start.column);
- }
- unit->errors << error;
- }
- if (urlUnit->errorType != QDeclarativeCompositeTypeData::AccessError)
- unit->errors << urlUnit->errors;
- doComplete(unit);
- return 0;
-
- case QDeclarativeCompositeTypeData::Complete:
- break;
-
- case QDeclarativeCompositeTypeData::Waiting:
- case QDeclarativeCompositeTypeData::WaitingResources:
- unit->addref();
- ref.unit->dependants << unit;
- waiting++;
- break;
- }
-
- unit->types << ref;
- }
- return waiting;
-}
-
-// ### Check ref counting in here
-void QDeclarativeCompositeTypeManager::compile(QDeclarativeCompositeTypeData *unit)
-{
- int waiting = 0;
-
- QList<QUrl> resourceList = unit->data.referencedResources();
-
- foreach (QDeclarativeScriptParser::Import imp, unit->data.imports()) {
- if (imp.type == QDeclarativeScriptParser::Import::File && imp.qualifier.isEmpty()) {
- QUrl importUrl = unit->imports.baseUrl().resolved(QUrl(imp.uri + QLatin1String("/qmldir")));
- if (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl).isEmpty()) {
- // Import requires remote qmldir
- resourceList.prepend(importUrl);
- }
- }
- }
-
- QUrl importUrl;
- if (!unit->imports.baseUrl().scheme().isEmpty())
- importUrl = unit->imports.baseUrl().resolved(QUrl(QLatin1String("qmldir")));
- if (!importUrl.scheme().isEmpty() && QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl).isEmpty())
- resourceList.prepend(importUrl);
-
- for (int ii = 0; ii < resourceList.count(); ++ii) {
- QUrl url = unit->imports.baseUrl().resolved(resourceList.at(ii));
-
- QDeclarativeCompositeTypeResource *resource = resources.value(url);
-
- if (!resource) {
- resource = new QDeclarativeCompositeTypeResource;
- resource->status = QDeclarativeCompositeTypeResource::Waiting;
- resource->url = url.toString();
- resources.insert(url, resource);
-
- loadResource(resource);
- }
-
- switch(resource->status) {
- case QDeclarativeCompositeTypeResource::Invalid:
- case QDeclarativeCompositeTypeResource::Error:
- unit->status = QDeclarativeCompositeTypeData::Error;
- {
- QDeclarativeError error;
- error.setUrl(unit->imports.baseUrl());
- error.setDescription(tr("Resource %1 unavailable").arg(resource->url));
- unit->errors << error;
- }
- doComplete(unit);
- return;
-
- case QDeclarativeCompositeTypeData::Complete:
- break;
-
- case QDeclarativeCompositeTypeData::Waiting:
- unit->addref();
- resource->dependants << unit;
- waiting++;
- break;
- }
-
- resource->addref();
- unit->resources << resource;
- }
-
- if (waiting == 0) {
- waiting += resolveTypes(unit);
- if (unit->status != QDeclarativeCompositeTypeData::Error) {
- if (!waiting) {
- unit->status = QDeclarativeCompositeTypeData::Complete;
- doComplete(unit);
- } else {
- unit->status = QDeclarativeCompositeTypeData::Waiting;
- }
- }
- } else {
- unit->status = QDeclarativeCompositeTypeData::WaitingResources;
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/declarative/qml/qdeclarativecompositetypemanager_p.h b/src/declarative/qml/qdeclarativecompositetypemanager_p.h
deleted file mode 100644
index 5c82c4c311..0000000000
--- a/src/declarative/qml/qdeclarativecompositetypemanager_p.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-**
-** 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 QtDeclarative module 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 QDECLARATIVECOMPOSITETYPEMANAGER_P_H
-#define QDECLARATIVECOMPOSITETYPEMANAGER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "private/qdeclarativescriptparser_p.h"
-#include "private/qdeclarativerefcount_p.h"
-#include "qdeclarativeerror.h"
-#include "qdeclarativeengine.h"
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDeclarativeCompiledData;
-class QDeclarativeComponentPrivate;
-class QDeclarativeComponent;
-class QDeclarativeDomDocument;
-
-class QDeclarativeCompositeTypeData;
-class QDeclarativeCompositeTypeResource;
-
-class QDeclarativeCompositeTypeManager : public QObject
-{
- Q_OBJECT
-public:
- QDeclarativeCompositeTypeManager(QDeclarativeEngine *);
- ~QDeclarativeCompositeTypeManager();
-
- // Return a QDeclarativeCompositeTypeData for url. The QDeclarativeCompositeTypeData may be
- // cached.
- QDeclarativeCompositeTypeData *get(const QUrl &url);
- // Return a QDeclarativeCompositeTypeData for data, with the provided base url. The
- // QDeclarativeCompositeTypeData will not be cached.
- QDeclarativeCompositeTypeData *getImmediate(const QByteArray &data, const QUrl &url);
-
- // Clear cached types. Only types that aren't in the Waiting state will
- // be cleared.
- void clearCache();
-
-private Q_SLOTS:
- void replyFinished();
- void resourceReplyFinished();
- void requestProgress(qint64 received, qint64 total);
-
-private:
- void loadSource(QDeclarativeCompositeTypeData *);
- void loadResource(QDeclarativeCompositeTypeResource *);
- void compile(QDeclarativeCompositeTypeData *);
- void setData(QDeclarativeCompositeTypeData *, const QByteArray &, const QUrl &);
-
- void doComplete(QDeclarativeCompositeTypeData *);
- void doComplete(QDeclarativeCompositeTypeResource *);
- void checkComplete(QDeclarativeCompositeTypeData *);
- int resolveTypes(QDeclarativeCompositeTypeData *);
-
- QDeclarativeEngine *engine;
- typedef QHash<QUrl, QDeclarativeCompositeTypeData *> Components;
- Components components;
- typedef QHash<QUrl, QDeclarativeCompositeTypeResource *> Resources;
- Resources resources;
- typedef QHash<QUrl, QUrl> Redirects;
- Redirects redirects;
- int redirectCount;
-};
-
-QT_END_NAMESPACE
-
-#endif // QDECLARATIVECOMPOSITETYPEMANAGER_P_H
-
diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp
index a3b16d9f97..de45a95271 100644
--- a/src/declarative/qml/qdeclarativecontext.cpp
+++ b/src/declarative/qml/qdeclarativecontext.cpp
@@ -660,14 +660,12 @@ void QDeclarativeContextData::addImportedScript(const QDeclarativeParser::Object
if (!engine)
return;
- Q_ASSERT(script.codes.count() == 1);
-
QDeclarativeEnginePrivate *enginePriv = QDeclarativeEnginePrivate::get(engine);
QScriptEngine *scriptEngine = QDeclarativeEnginePrivate::getScriptEngine(engine);
- const QString &code = script.codes.at(0);
- const QString &url = script.files.at(0);
- const QDeclarativeParser::Object::ScriptBlock::Pragmas &pragmas = script.pragmas.at(0);
+ const QString &code = script.code;
+ const QString &url = script.file;
+ const QDeclarativeParser::Object::ScriptBlock::Pragmas &pragmas = script.pragmas;
Q_ASSERT(!url.isEmpty());
diff --git a/src/declarative/qml/qdeclarativedom.cpp b/src/declarative/qml/qdeclarativedom.cpp
index 5b30bde94f..1a9b50164f 100644
--- a/src/declarative/qml/qdeclarativedom.cpp
+++ b/src/declarative/qml/qdeclarativedom.cpp
@@ -42,7 +42,6 @@
#include "private/qdeclarativedom_p.h"
#include "private/qdeclarativedom_p_p.h"
-#include "private/qdeclarativecompositetypedata_p.h"
#include "private/qdeclarativecompiler_p.h"
#include "private/qdeclarativeengine_p.h"
#include "private/qdeclarativescriptparser_p.h"
@@ -145,37 +144,23 @@ bool QDeclarativeDomDocument::load(QDeclarativeEngine *engine, const QByteArray
d->errors.clear();
d->imports.clear();
- QDeclarativeCompiledData *component = new QDeclarativeCompiledData(engine);
- QDeclarativeCompiler compiler;
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
+ QDeclarativeTypeData *td = ep->typeLoader.get(data, url, QDeclarativeTypeLoader::PreserveParser);
- QDeclarativeCompositeTypeData *td = ((QDeclarativeEnginePrivate *)QDeclarativeEnginePrivate::get(engine))->typeManager.getImmediate(data, url);
-
- if(td->status == QDeclarativeCompositeTypeData::Error) {
- d->errors = td->errors;
+ if(td->isError()) {
+ d->errors = td->errors();
td->release();
- component->release();
return false;
- } else if(td->status == QDeclarativeCompositeTypeData::Waiting ||
- td->status == QDeclarativeCompositeTypeData::WaitingResources) {
+ } else if(!td->isCompleteOrError()) {
QDeclarativeError error;
error.setDescription(QLatin1String("QDeclarativeDomDocument supports local types only"));
d->errors << error;
td->release();
- component->release();
- return false;
- }
-
- compiler.compile(engine, td, component);
-
- if (compiler.isError()) {
- d->errors = compiler.errors();
- td->release();
- component->release();
return false;
}
- for (int i = 0; i < td->data.imports().size(); ++i) {
- QDeclarativeScriptParser::Import parserImport = td->data.imports().at(i);
+ for (int i = 0; i < td->parser().imports().size(); ++i) {
+ QDeclarativeScriptParser::Import parserImport = td->parser().imports().at(i);
QDeclarativeDomImport domImport;
domImport.d->type = static_cast<QDeclarativeDomImportPrivate::Type>(parserImport.type);
domImport.d->uri = parserImport.uri;
@@ -184,12 +169,12 @@ bool QDeclarativeDomDocument::load(QDeclarativeEngine *engine, const QByteArray
d->imports += domImport;
}
- if (td->data.tree()) {
- d->root = td->data.tree();
+ if (td->parser().tree()) {
+ d->root = td->parser().tree();
d->root->addref();
}
- component->release();
+ td->release();
return true;
}
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index c5a5c18069..9de5a77ec0 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -259,7 +259,7 @@ QDeclarativeEnginePrivate::QDeclarativeEnginePrivate(QDeclarativeEngine *e)
objectClass(0), valueTypeClass(0), globalClass(0), cleanup(0), erroredBindings(0),
inProgressCreations(0), scriptEngine(this), workerScriptEngine(0), componentAttached(0),
inBeginCreate(false), networkAccessManager(0), networkAccessManagerFactory(0),
- typeManager(e), importDatabase(e), uniqueId(1)
+ typeLoader(e), importDatabase(e), uniqueId(1)
{
if (!qt_QmlQtModule_registered) {
qt_QmlQtModule_registered = true;
@@ -272,8 +272,8 @@ QDeclarativeEnginePrivate::QDeclarativeEnginePrivate(QDeclarativeEngine *e)
}
/*!
- \qmlmethod url Qt::resolvedUrl(url)
- Returns \c url resolved relative to the URL of the caller.
+ \qmlmethod url Qt::resolvedUrl(url url)
+ Returns \a url resolved relative to the URL of the caller.
*/
QUrl QDeclarativeScriptEngine::resolvedUrl(QScriptContext *context, const QUrl& url)
{
@@ -565,7 +565,7 @@ QDeclarativeEngine::~QDeclarativeEngine()
void QDeclarativeEngine::clearComponentCache()
{
Q_D(QDeclarativeEngine);
- d->typeManager.clearCache();
+ d->typeLoader.clearCache();
}
/*!
@@ -1716,6 +1716,9 @@ void QDeclarativeEnginePrivate::sendQuit()
{
Q_Q(QDeclarativeEngine);
emit q->quit();
+ if (q->receivers(SIGNAL(quit())) == 0) {
+ qWarning("Signal QDeclarativeEngine::quit() emitted, but no receivers connected to handle it.");
+ }
}
static void dumpwarning(const QDeclarativeError &error)
@@ -2110,7 +2113,7 @@ bool QDeclarativeEnginePrivate::isQObject(int t)
QObject *QDeclarativeEnginePrivate::toQObject(const QVariant &v, bool *ok) const
{
int t = v.userType();
- if (m_compositeTypes.contains(t)) {
+ if (t == QMetaType::QObjectStar || m_compositeTypes.contains(t)) {
if (ok) *ok = true;
return *(QObject **)(v.constData());
} else {
diff --git a/src/declarative/qml/qdeclarativeengine_p.h b/src/declarative/qml/qdeclarativeengine_p.h
index db2db350ed..dc7315d66b 100644
--- a/src/declarative/qml/qdeclarativeengine_p.h
+++ b/src/declarative/qml/qdeclarativeengine_p.h
@@ -56,7 +56,7 @@
#include "qdeclarativeengine.h"
#include "private/qdeclarativeclassfactory_p.h"
-#include "private/qdeclarativecompositetypemanager_p.h"
+#include "private/qdeclarativetypeloader_p.h"
#include "private/qdeclarativeimport_p.h"
#include "private/qpodvector_p.h"
#include "qdeclarative.h"
@@ -239,7 +239,7 @@ public:
mutable QMutex mutex;
- QDeclarativeCompositeTypeManager typeManager;
+ QDeclarativeTypeLoader typeLoader;
QDeclarativeImportDatabase importDatabase;
QString offlineStoragePath;
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp
index 5c21ebcd3b..8f95e26a0d 100644
--- a/src/declarative/qml/qdeclarativeimport.cpp
+++ b/src/declarative/qml/qdeclarativeimport.cpp
@@ -109,6 +109,11 @@ public:
QHash<QString,QDeclarativeImportedNamespace* > set;
};
+/*!
+\class QDeclarativeImports
+\brief The QDeclarativeImports class encapsulates one QML document's import statements.
+\internal
+*/
QDeclarativeImports::QDeclarativeImports(const QDeclarativeImports &copy)
: d(copy.d)
{
@@ -181,7 +186,7 @@ cacheForNamespace(QDeclarativeEngine *engine, const QDeclarativeImportedNamespac
return cache;
}
-void QDeclarativeImports::cache(QDeclarativeTypeNameCache *cache, QDeclarativeEngine *engine) const
+void QDeclarativeImports::populateCache(QDeclarativeTypeNameCache *cache, QDeclarativeEngine *engine) const
{
const QDeclarativeImportedNamespace &set = d->unqualifiedset;
@@ -201,6 +206,67 @@ void QDeclarativeImports::cache(QDeclarativeTypeNameCache *cache, QDeclarativeEn
cacheForNamespace(engine, set, cache);
}
+
+/*!
+ \internal
+
+ The given (namespace qualified) \a type is resolved to either
+ \list
+ \o a QDeclarativeImportedNamespace stored at \a ns_return,
+ \o a QDeclarativeType stored at \a type_return, or
+ \o a component located at \a url_return.
+ \endlist
+
+ If any return pointer is 0, the corresponding search is not done.
+
+ \sa addImport()
+*/
+bool QDeclarativeImports::resolveType(const QByteArray& type,
+ QDeclarativeType** type_return, QUrl* url_return, int *vmaj, int *vmin,
+ QDeclarativeImportedNamespace** ns_return, QString *errorString) const
+{
+ QDeclarativeImportedNamespace* ns = d->findNamespace(QString::fromUtf8(type));
+ if (ns) {
+ if (ns_return)
+ *ns_return = ns;
+ return true;
+ }
+ if (type_return || url_return) {
+ if (d->find(type,vmaj,vmin,type_return,url_return, errorString)) {
+ if (qmlImportTrace()) {
+ if (type_return && *type_return && url_return && !url_return->isEmpty())
+ qDebug().nospace() << "QDeclarativeImports(" << qPrintable(baseUrl().toString()) << ")" << "::resolveType: "
+ << type << " => " << (*type_return)->typeName() << " " << *url_return;
+ if (type_return && *type_return)
+ qDebug().nospace() << "QDeclarativeImports(" << qPrintable(baseUrl().toString()) << ")" << "::resolveType: "
+ << type << " => " << (*type_return)->typeName();
+ if (url_return && !url_return->isEmpty())
+ qDebug().nospace() << "QDeclarativeImports(" << qPrintable(baseUrl().toString()) << ")" << "::resolveType: "
+ << type << " => " << *url_return;
+ }
+ return true;
+ }
+ }
+ return false;
+}
+
+/*!
+ \internal
+
+ Searching \e only in the namespace \a ns (previously returned in a call to
+ resolveType(), \a type is found and returned to either
+ a QDeclarativeType stored at \a type_return, or
+ a component located at \a url_return.
+
+ If either return pointer is 0, the corresponding search is not done.
+*/
+bool QDeclarativeImports::resolveType(QDeclarativeImportedNamespace* ns, const QByteArray& type,
+ QDeclarativeType** type_return, QUrl* url_return,
+ int *vmaj, int *vmin) const
+{
+ return ns->find(type,vmaj,vmin,type_return,url_return);
+}
+
bool QDeclarativeImportedNamespace::find_helper(int i, const QByteArray& type, int *vmajor, int *vminor,
QDeclarativeType** type_return, QUrl* url_return,
QUrl *base, bool *typeRecursionDetected)
@@ -280,15 +346,16 @@ QDeclarativeImportsPrivate::~QDeclarativeImportsPrivate()
}
bool QDeclarativeImportsPrivate::importExtension(const QString &absoluteFilePath, const QString &uri,
- QDeclarativeImportDatabase *database,
- QDeclarativeDirComponents* components, QString *errorString)
+ QDeclarativeImportDatabase *database,
+ QDeclarativeDirComponents* components, QString *errorString)
{
QFile file(absoluteFilePath);
QString filecontent;
if (file.open(QFile::ReadOnly)) {
filecontent = QString::fromUtf8(file.readAll());
if (qmlImportTrace())
- qDebug() << "QDeclarativeImportDatabase::add: loaded" << absoluteFilePath;
+ qDebug().nospace() << "QDeclarativeImports(" << qPrintable(base.toString()) << "::importExtension: "
+ << "loaded " << absoluteFilePath;
} else {
if (errorString)
*errorString = QDeclarativeImportDatabase::tr("module \"%1\" definition \"%2\" not readable").arg(uri).arg(absoluteFilePath);
@@ -576,6 +643,10 @@ bool QDeclarativeImportedNamespace::find(const QByteArray& type, int *vmajor, in
return false;
}
+/*!
+\class QDeclarativeImportDatabase
+\brief The QDeclarativeImportDatabase class manages the QML imports for a QDeclarativeEngine.
+*/
QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e)
: engine(e)
{
@@ -619,75 +690,19 @@ QDeclarativeImportDatabase::~QDeclarativeImportDatabase()
The base URL must already have been set with Import::setBaseUrl().
*/
-bool QDeclarativeImportDatabase::addToImport(QDeclarativeImports* imports,
- const QDeclarativeDirComponents &qmldircomponentsnetwork,
- const QString& uri, const QString& prefix, int vmaj, int vmin,
- QDeclarativeScriptParser::Import::Type importType,
- QString *errorString)
+bool QDeclarativeImports::addImport(QDeclarativeImportDatabase *importDb,
+ const QString& uri, const QString& prefix, int vmaj, int vmin,
+ QDeclarativeScriptParser::Import::Type importType,
+ const QDeclarativeDirComponents &qmldircomponentsnetwork,
+ QString *errorString)
{
if (qmlImportTrace())
- qDebug().nospace() << "QDeclarativeImportDatabase::addToImport " << imports << " " << uri << " "
- << vmaj << '.' << vmin << " "
+ qDebug().nospace() << "QDeclarativeImports(" << qPrintable(baseUrl().toString()) << ")" << "::addImport: "
+ << uri << " " << vmaj << '.' << vmin << " "
<< (importType==QDeclarativeScriptParser::Import::Library? "Library" : "File")
<< " as " << prefix;
- bool ok = imports->d->add(qmldircomponentsnetwork, uri, prefix, vmaj, vmin, importType, this, errorString);
- return ok;
-}
-
-/*!
- \internal
-
- Using the given \a imports, the given (namespace qualified) \a type is resolved to either
- a QDeclarativeImportedNamespace stored at \a ns_return,
- a QDeclarativeType stored at \a type_return, or
- a component located at \a url_return.
-
- If any return pointer is 0, the corresponding search is not done.
-
- \sa addToImport()
-*/
-bool QDeclarativeImportDatabase::resolveType(const QDeclarativeImports& imports, const QByteArray& type,
- QDeclarativeType** type_return, QUrl* url_return, int *vmaj, int *vmin,
- QDeclarativeImportedNamespace** ns_return, QString *errorString) const
-{
- QDeclarativeImportedNamespace* ns = imports.d->findNamespace(QString::fromUtf8(type));
- if (ns) {
- if (ns_return)
- *ns_return = ns;
- return true;
- }
- if (type_return || url_return) {
- if (imports.d->find(type,vmaj,vmin,type_return,url_return, errorString)) {
- if (qmlImportTrace()) {
- if (type_return && *type_return && url_return && !url_return->isEmpty())
- qDebug() << "QDeclarativeImportDatabase::resolveType" << type << '=' << (*type_return)->typeName() << *url_return;
- if (type_return && *type_return)
- qDebug() << "QDeclarativeImportDatabase::resolveType" << type << '=' << (*type_return)->typeName();
- if (url_return && !url_return->isEmpty())
- qDebug() << "QDeclarativeImportDatabase::resolveType" << type << '=' << *url_return;
- }
- return true;
- }
- }
- return false;
-}
-
-/*!
- \internal
-
- Searching \e only in the namespace \a ns (previously returned in a call to
- resolveType(), \a type is found and returned to either
- a QDeclarativeType stored at \a type_return, or
- a component located at \a url_return.
-
- If either return pointer is 0, the corresponding search is not done.
-*/
-bool QDeclarativeImportDatabase::resolveTypeInNamespace(QDeclarativeImportedNamespace* ns, const QByteArray& type,
- QDeclarativeType** type_return, QUrl* url_return,
- int *vmaj, int *vmin) const
-{
- return ns->find(type,vmaj,vmin,type_return,url_return);
+ return d->add(qmldircomponentsnetwork, uri, prefix, vmaj, vmin, importType, importDb, errorString);
}
/*!
@@ -834,7 +849,7 @@ void QDeclarativeImportDatabase::setPluginPathList(const QStringList &paths)
void QDeclarativeImportDatabase::addPluginPath(const QString& path)
{
if (qmlImportTrace())
- qDebug() << "QDeclarativeImportDatabase::addPluginPath" << path;
+ qDebug().nospace() << "QDeclarativeImportDatabase::addPluginPath: " << path;
QUrl url = QUrl(path);
if (url.isRelative() || url.scheme() == QLatin1String("file")) {
@@ -848,7 +863,7 @@ void QDeclarativeImportDatabase::addPluginPath(const QString& path)
void QDeclarativeImportDatabase::addImportPath(const QString& path)
{
if (qmlImportTrace())
- qDebug() << "QDeclarativeImportDatabase::addImportPath" << path;
+ qDebug().nospace() << "QDeclarativeImportDatabase::addImportPath: " << path;
if (path.isEmpty())
return;
@@ -882,7 +897,7 @@ void QDeclarativeImportDatabase::setImportPathList(const QStringList &paths)
bool QDeclarativeImportDatabase::importPlugin(const QString &filePath, const QString &uri, QString *errorString)
{
if (qmlImportTrace())
- qDebug() << "QDeclarativeImportDatabase::importPlugin" << uri << "from" << filePath;
+ qDebug().nospace() << "QDeclarativeImportDatabase::importPlugin: " << uri << " from " << filePath;
QFileInfo fileInfo(filePath);
const QString absoluteFilePath = fileInfo.absoluteFilePath();
diff --git a/src/declarative/qml/qdeclarativeimport_p.h b/src/declarative/qml/qdeclarativeimport_p.h
index 88246d4d48..84802de557 100644
--- a/src/declarative/qml/qdeclarativeimport_p.h
+++ b/src/declarative/qml/qdeclarativeimport_p.h
@@ -65,9 +65,10 @@ QT_BEGIN_NAMESPACE
class QDeclarativeTypeNameCache;
class QDeclarativeEngine;
class QDir;
-
class QDeclarativeImportedNamespace;
class QDeclarativeImportsPrivate;
+class QDeclarativeImportDatabase;
+
class QDeclarativeImports
{
public:
@@ -79,7 +80,24 @@ public:
void setBaseUrl(const QUrl &url);
QUrl baseUrl() const;
- void cache(QDeclarativeTypeNameCache *cache, QDeclarativeEngine *) const;
+ bool resolveType(const QByteArray& type,
+ QDeclarativeType** type_return, QUrl* url_return,
+ int *version_major, int *version_minor,
+ QDeclarativeImportedNamespace** ns_return,
+ QString *errorString = 0) const;
+ bool resolveType(QDeclarativeImportedNamespace*,
+ const QByteArray& type,
+ QDeclarativeType** type_return, QUrl* url_return,
+ int *version_major, int *version_minor) const;
+
+ bool addImport(QDeclarativeImportDatabase *,
+ const QString& uri, const QString& prefix, int vmaj, int vmin,
+ QDeclarativeScriptParser::Import::Type importType,
+ const QDeclarativeDirComponents &qmldircomponentsnetwork,
+ QString *errorString);
+
+ void populateCache(QDeclarativeTypeNameCache *cache, QDeclarativeEngine *) const;
+
private:
friend class QDeclarativeImportDatabase;
QDeclarativeImportsPrivate *d;
@@ -102,21 +120,6 @@ public:
void setPluginPathList(const QStringList &paths);
void addPluginPath(const QString& path);
-
- bool addToImport(QDeclarativeImports*, const QDeclarativeDirComponents &qmldircomponentsnetwork,
- const QString& uri, const QString& prefix, int vmaj, int vmin,
- QDeclarativeScriptParser::Import::Type importType,
- QString *errorString);
- bool resolveType(const QDeclarativeImports&, const QByteArray& type,
- QDeclarativeType** type_return, QUrl* url_return,
- int *version_major, int *version_minor,
- QDeclarativeImportedNamespace** ns_return,
- QString *errorString = 0) const;
- bool resolveTypeInNamespace(QDeclarativeImportedNamespace*, const QByteArray& type,
- QDeclarativeType** type_return, QUrl* url_return,
- int *version_major, int *version_minor ) const;
-
-
private:
friend class QDeclarativeImportsPrivate;
QString resolvePlugin(const QDir &qmldirPath, const QString &qmldirPluginPath,
diff --git a/src/declarative/qml/qdeclarativeinclude.cpp b/src/declarative/qml/qdeclarativeinclude.cpp
index f26b54f74c..1e240d71e8 100644
--- a/src/declarative/qml/qdeclarativeinclude.cpp
+++ b/src/declarative/qml/qdeclarativeinclude.cpp
@@ -173,7 +173,7 @@ void QDeclarativeInclude::callback(QScriptEngine *engine, QScriptValue &callback
}
/*!
-\qmlmethod object Qt::include(url, callback)
+\qmlmethod object Qt::include(string url, jsobject callback)
Include another JavaScript file. This method can only be used from within JavaScript files,
and not regular QML files.
diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
index 3af892d1a5..9d742381e4 100644
--- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
+++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
@@ -192,7 +192,7 @@ QDeclarativeObjectScriptClass::queryProperty(QObject *obj, const Identifier &nam
if (!(hints & ImplicitObject)) {
local.coreIndex = -1;
lastData = &local;
- return QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess;
+ return QScriptClass::HandlesWriteAccess;
}
return 0;
@@ -625,11 +625,12 @@ private:
char data[4 * sizeof(void *)];
int type;
+ bool isObjectType;
};
}
MetaCallArgument::MetaCallArgument()
-: type(QVariant::Invalid)
+: type(QVariant::Invalid), isObjectType(false)
{
}
@@ -744,12 +745,23 @@ void MetaCallArgument::fromScriptValue(int callType, QDeclarativeEngine *engine,
new (&data) QVariant();
type = -1;
- QVariant v = QDeclarativeEnginePrivate::get(engine)->scriptValueToVariant(value);
+ QDeclarativeEnginePrivate *priv = QDeclarativeEnginePrivate::get(engine);
+ QVariant v = priv->scriptValueToVariant(value);
if (v.userType() == callType) {
*((QVariant *)&data) = v;
} else if (v.canConvert((QVariant::Type)callType)) {
*((QVariant *)&data) = v;
((QVariant *)&data)->convert((QVariant::Type)callType);
+ } else if (const QMetaObject *mo = priv->rawMetaObjectForType(callType)) {
+ QObject *obj = priv->toQObject(v);
+
+ if (obj) {
+ const QMetaObject *objMo = obj->metaObject();
+ while (objMo && objMo != mo) objMo = objMo->superClass();
+ if (!objMo) obj = 0;
+ }
+
+ *((QVariant *)&data) = QVariant(callType, &obj);
} else {
*((QVariant *)&data) = QVariant(callType, (void *)0);
}
diff --git a/src/declarative/qml/qdeclarativeparser_p.h b/src/declarative/qml/qdeclarativeparser_p.h
index d192f3a4ea..c58aebc407 100644
--- a/src/declarative/qml/qdeclarativeparser_p.h
+++ b/src/declarative/qml/qdeclarativeparser_p.h
@@ -183,10 +183,9 @@ namespace QDeclarativeParser
};
Q_DECLARE_FLAGS(Pragmas, Pragma)
- QStringList codes;
- QStringList files;
- QList<int> lineNumbers;
- QList<Pragmas> pragmas;
+ QString code;
+ QString file;
+ Pragmas pragmas;
};
// The bytes to cast instances by to get to the QDeclarativeParserStatus
diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp
index 515c4d6136..d0dd2e80e9 100644
--- a/src/declarative/qml/qdeclarativeproperty.cpp
+++ b/src/declarative/qml/qdeclarativeproperty.cpp
@@ -42,7 +42,6 @@
#include "qdeclarativeproperty.h"
#include "private/qdeclarativeproperty_p.h"
-#include "private/qdeclarativecompositetypedata_p.h"
#include "qdeclarative.h"
#include "private/qdeclarativebinding_p.h"
#include "qdeclarativecontext.h"
diff --git a/src/declarative/qml/qdeclarativepropertycache.cpp b/src/declarative/qml/qdeclarativepropertycache.cpp
index 839d79f0f6..08503c2d30 100644
--- a/src/declarative/qml/qdeclarativepropertycache.cpp
+++ b/src/declarative/qml/qdeclarativepropertycache.cpp
@@ -134,8 +134,9 @@ QDeclarativePropertyCache::~QDeclarativePropertyCache()
void QDeclarativePropertyCache::clear()
{
- for (int ii = 0; ii < indexCache.count(); ++ii)
- indexCache.at(ii)->release();
+ for (int ii = 0; ii < indexCache.count(); ++ii) {
+ if (indexCache.at(ii)) indexCache.at(ii)->release();
+ }
for (StringCache::ConstIterator iter = stringCache.begin();
iter != stringCache.end(); ++iter)
@@ -156,14 +157,27 @@ QDeclarativePropertyCache::Data QDeclarativePropertyCache::create(const QMetaObj
Q_ASSERT(metaObject);
QDeclarativePropertyCache::Data rv;
- int idx = metaObject->indexOfProperty(property.toUtf8());
- if (idx != -1) {
- rv.load(metaObject->property(idx));
- return rv;
+ {
+ const QMetaObject *cmo = metaObject;
+ while (cmo) {
+ int idx = metaObject->indexOfProperty(property.toUtf8());
+ if (idx != -1) {
+ QMetaProperty p = metaObject->property(idx);
+ if (p.isScriptable()) {
+ rv.load(metaObject->property(idx));
+ return rv;
+ } else {
+ while (cmo && cmo->propertyOffset() >= idx)
+ cmo = cmo->superClass();
+ }
+ } else {
+ cmo = 0;
+ }
+ }
}
int methodCount = metaObject->methodCount();
- for (int ii = methodCount - 1; ii >= 2; --ii) { // >=2 to block the destroyed signal
+ for (int ii = methodCount - 1; ii >= 3; --ii) { // >=3 to block the destroyed signal and deleteLater() slot
QMetaMethod m = metaObject->method(ii);
if (m.access() == QMetaMethod::Private)
continue;
@@ -189,8 +203,9 @@ QDeclarativePropertyCache *QDeclarativePropertyCache::copy() const
cache->stringCache = stringCache;
cache->identifierCache = identifierCache;
- for (int ii = 0; ii < indexCache.count(); ++ii)
- indexCache.at(ii)->addref();
+ for (int ii = 0; ii < indexCache.count(); ++ii) {
+ if (indexCache.at(ii)) indexCache.at(ii)->addref();
+ }
for (StringCache::ConstIterator iter = stringCache.begin(); iter != stringCache.end(); ++iter)
(*iter)->addref();
for (IdentifierCache::ConstIterator iter = identifierCache.begin(); iter != identifierCache.end(); ++iter)
@@ -210,6 +225,9 @@ void QDeclarativePropertyCache::append(QDeclarativeEngine *engine, const QMetaOb
indexCache.resize(propCount);
for (int ii = propOffset; ii < propCount; ++ii) {
QMetaProperty p = metaObject->property(ii);
+ if (!p.isScriptable())
+ continue;
+
QString propName = QString::fromUtf8(p.name());
RData *data = new RData;
@@ -275,6 +293,10 @@ void QDeclarativePropertyCache::update(QDeclarativeEngine *engine, const QMetaOb
indexCache.resize(propCount);
for (int ii = propCount - 1; ii >= 0; --ii) {
QMetaProperty p = metaObject->property(ii);
+ if (!p.isScriptable()) {
+ indexCache[ii] = 0;
+ continue;
+ }
QString propName = QString::fromUtf8(p.name());
RData *data = new RData;
@@ -294,7 +316,7 @@ void QDeclarativePropertyCache::update(QDeclarativeEngine *engine, const QMetaOb
}
int methodCount = metaObject->methodCount();
- for (int ii = methodCount - 1; ii >= 2; --ii) { // >=2 to block the destroyed signal
+ for (int ii = methodCount - 1; ii >= 3; --ii) { // >=3 to block the destroyed signal and deleteLater() slot
QMetaMethod m = metaObject->method(ii);
if (m.access() == QMetaMethod::Private)
continue;
diff --git a/src/declarative/qml/qdeclarativescriptparser.cpp b/src/declarative/qml/qdeclarativescriptparser.cpp
index 0b3b35ffc5..c956051060 100644
--- a/src/declarative/qml/qdeclarativescriptparser.cpp
+++ b/src/declarative/qml/qdeclarativescriptparser.cpp
@@ -387,7 +387,6 @@ bool ProcessAST::visit(AST::UiImport *node)
if (uri.endsWith(QLatin1String(".js"))) {
import.type = QDeclarativeScriptParser::Import::Script;
- _parser->_refUrls << QUrl(uri);
} else {
import.type = QDeclarativeScriptParser::Import::File;
}
@@ -878,11 +877,6 @@ QList<QDeclarativeScriptParser::TypeReference*> QDeclarativeScriptParser::refere
return _refTypes;
}
-QList<QUrl> QDeclarativeScriptParser::referencedResources() const
-{
- return _refUrls;
-}
-
Object *QDeclarativeScriptParser::tree() const
{
return root;
@@ -960,6 +954,217 @@ QDeclarativeParser::Object::ScriptBlock::Pragmas QDeclarativeScriptParser::extra
return rv;
}
+#define CHECK_LINE if(l.currentLineNo() != startLine) return rv;
+#define CHECK_TOKEN(t) if (token != QDeclarativeJSGrammar:: t) return rv;
+
+static const int uriTokens[] = {
+ QDeclarativeJSGrammar::T_IDENTIFIER,
+ QDeclarativeJSGrammar::T_PROPERTY,
+ QDeclarativeJSGrammar::T_SIGNAL,
+ QDeclarativeJSGrammar::T_READONLY,
+ QDeclarativeJSGrammar::T_ON,
+ QDeclarativeJSGrammar::T_BREAK,
+ QDeclarativeJSGrammar::T_CASE,
+ QDeclarativeJSGrammar::T_CATCH,
+ QDeclarativeJSGrammar::T_CONTINUE,
+ QDeclarativeJSGrammar::T_DEFAULT,
+ QDeclarativeJSGrammar::T_DELETE,
+ QDeclarativeJSGrammar::T_DO,
+ QDeclarativeJSGrammar::T_ELSE,
+ QDeclarativeJSGrammar::T_FALSE,
+ QDeclarativeJSGrammar::T_FINALLY,
+ QDeclarativeJSGrammar::T_FOR,
+ QDeclarativeJSGrammar::T_FUNCTION,
+ QDeclarativeJSGrammar::T_IF,
+ QDeclarativeJSGrammar::T_IN,
+ QDeclarativeJSGrammar::T_INSTANCEOF,
+ QDeclarativeJSGrammar::T_NEW,
+ QDeclarativeJSGrammar::T_NULL,
+ QDeclarativeJSGrammar::T_RETURN,
+ QDeclarativeJSGrammar::T_SWITCH,
+ QDeclarativeJSGrammar::T_THIS,
+ QDeclarativeJSGrammar::T_THROW,
+ QDeclarativeJSGrammar::T_TRUE,
+ QDeclarativeJSGrammar::T_TRY,
+ QDeclarativeJSGrammar::T_TYPEOF,
+ QDeclarativeJSGrammar::T_VAR,
+ QDeclarativeJSGrammar::T_VOID,
+ QDeclarativeJSGrammar::T_WHILE,
+ QDeclarativeJSGrammar::T_CONST,
+ QDeclarativeJSGrammar::T_DEBUGGER,
+ QDeclarativeJSGrammar::T_RESERVED_WORD,
+ QDeclarativeJSGrammar::T_WITH,
+
+ QDeclarativeJSGrammar::EOF_SYMBOL
+};
+static inline bool isUriToken(int token)
+{
+ const int *current = uriTokens;
+ while (*current != QDeclarativeJSGrammar::EOF_SYMBOL) {
+ if (*current == token)
+ return true;
+ ++current;
+ }
+ return false;
+}
+
+QDeclarativeScriptParser::JavaScriptMetaData QDeclarativeScriptParser::extractMetaData(QString &script)
+{
+ JavaScriptMetaData rv;
+
+ QDeclarativeParser::Object::ScriptBlock::Pragmas &pragmas = rv.pragmas;
+
+ const QString pragma(QLatin1String("pragma"));
+ const QString js(QLatin1String(".js"));
+ const QString library(QLatin1String("library"));
+
+ QDeclarativeJS::Lexer l(0);
+ l.setCode(script, 0);
+
+ int token = l.lex();
+
+ while (true) {
+ if (token != QDeclarativeJSGrammar::T_DOT)
+ return rv;
+
+ int startOffset = l.tokenOffset();
+ int startLine = l.currentLineNo();
+
+ token = l.lex();
+
+ CHECK_LINE;
+
+ if (token == QDeclarativeJSGrammar::T_IMPORT) {
+
+ // .import <URI> <Version> as <Identifier>
+ // .import <file.js> as <Identifier>
+
+ token = l.lex();
+
+ CHECK_LINE;
+
+ if (token == QDeclarativeJSGrammar::T_STRING_LITERAL) {
+
+ QString file(l.characterBuffer(), l.characterCount());
+ if (!file.endsWith(js))
+ return rv;
+
+ token = l.lex();
+
+ CHECK_TOKEN(T_AS);
+ CHECK_LINE;
+
+ token = l.lex();
+
+ CHECK_TOKEN(T_IDENTIFIER);
+ CHECK_LINE;
+
+ int endOffset = l.tokenLength() + l.tokenOffset();
+
+ QString importId = script.mid(l.tokenOffset(), l.tokenLength());
+
+ if (!importId.at(0).isUpper())
+ return rv;
+
+ token = l.lex();
+ if (l.currentLineNo() == startLine)
+ return rv;
+
+ replaceWithSpace(script, startOffset, endOffset - startOffset);
+
+ Import import;
+ import.type = Import::Script;
+ import.uri = file;
+ import.qualifier = importId;
+
+ rv.imports << import;
+
+ } else {
+ // URI
+ QString uri;
+ QString version;
+
+ while (true) {
+ if (!isUriToken(token))
+ return rv;
+
+ uri.append(QString(l.characterBuffer(), l.characterCount()));
+
+ token = l.lex();
+ CHECK_LINE;
+ if (token != QDeclarativeJSGrammar::T_DOT)
+ break;
+
+ uri.append(QLatin1Char('.'));
+
+ token = l.lex();
+ CHECK_LINE;
+ }
+
+ CHECK_TOKEN(T_NUMERIC_LITERAL);
+ version = script.mid(l.tokenOffset(), l.tokenLength());
+
+ token = l.lex();
+
+ CHECK_TOKEN(T_AS);
+ CHECK_LINE;
+
+ token = l.lex();
+
+ CHECK_TOKEN(T_IDENTIFIER);
+ CHECK_LINE;
+
+ int endOffset = l.tokenLength() + l.tokenOffset();
+
+ QString importId = script.mid(l.tokenOffset(), l.tokenLength());
+
+ if (!importId.at(0).isUpper())
+ return rv;
+
+ token = l.lex();
+ if (l.currentLineNo() == startLine)
+ return rv;
+
+ replaceWithSpace(script, startOffset, endOffset - startOffset);
+
+ Import import;
+ import.type = Import::Library;
+ import.uri = uri;
+ import.version = version;
+ import.qualifier = importId;
+
+ rv.imports << import;
+ }
+
+ } else if (token == QDeclarativeJSGrammar::T_IDENTIFIER &&
+ script.mid(l.tokenOffset(), l.tokenLength()) == pragma) {
+
+ token = l.lex();
+
+ CHECK_TOKEN(T_IDENTIFIER);
+ CHECK_LINE;
+
+ QString pragmaValue = script.mid(l.tokenOffset(), l.tokenLength());
+ int endOffset = l.tokenLength() + l.tokenOffset();
+
+ if (pragmaValue == QLatin1String("library")) {
+ pragmas |= QDeclarativeParser::Object::ScriptBlock::Shared;
+ replaceWithSpace(script, startOffset, endOffset - startOffset);
+ } else {
+ return rv;
+ }
+
+ token = l.lex();
+ if (l.currentLineNo() == startLine)
+ return rv;
+
+ } else {
+ return rv;
+ }
+ }
+ return rv;
+}
+
void QDeclarativeScriptParser::clear()
{
if (root) {
diff --git a/src/declarative/qml/qdeclarativescriptparser_p.h b/src/declarative/qml/qdeclarativescriptparser_p.h
index 28e960bad0..6319e11733 100644
--- a/src/declarative/qml/qdeclarativescriptparser_p.h
+++ b/src/declarative/qml/qdeclarativescriptparser_p.h
@@ -103,7 +103,6 @@ public:
bool parse(const QByteArray &data, const QUrl &url = QUrl());
QList<TypeReference*> referencedTypes() const;
- QList<QUrl> referencedResources() const;
QDeclarativeParser::Object *tree() const;
QList<Import> imports() const;
@@ -112,7 +111,18 @@ public:
QList<QDeclarativeError> errors() const;
+ class JavaScriptMetaData {
+ public:
+ JavaScriptMetaData()
+ : pragmas(QDeclarativeParser::Object::ScriptBlock::None) {}
+
+ QDeclarativeParser::Object::ScriptBlock::Pragmas pragmas;
+ QList<Import> imports;
+ };
+
static QDeclarativeParser::Object::ScriptBlock::Pragmas extractPragmas(QString &);
+ static JavaScriptMetaData extractMetaData(QString &);
+
// ### private:
TypeReference *findOrCreateType(const QString &name);
@@ -127,7 +137,6 @@ public:
QDeclarativeParser::Object *root;
QList<Import> _imports;
QList<TypeReference*> _refTypes;
- QList<QUrl> _refUrls;
QString _scriptFile;
QDeclarativeScriptParserJsASTData *data;
};
diff --git a/src/declarative/qml/qdeclarativetypeloader.cpp b/src/declarative/qml/qdeclarativetypeloader.cpp
new file mode 100644
index 0000000000..9b420657e2
--- /dev/null
+++ b/src/declarative/qml/qdeclarativetypeloader.cpp
@@ -0,0 +1,1079 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module 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 "qdeclarativetypeloader_p.h"
+
+#include <private/qdeclarativeengine_p.h>
+#include <private/qdeclarativecompiler_p.h>
+#include <private/qdeclarativecomponent_p.h>
+
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtCore/qdebug.h>
+#include <QtCore/qdir.h>
+#include <QtCore/qfile.h>
+
+QT_BEGIN_NAMESPACE
+
+/*!
+\class QDeclarativeDataBlob
+\brief The QDeclarativeDataBlob encapsulates a data request that can be issued to a QDeclarativeDataLoader.
+\internal
+
+QDeclarativeDataBlob's are loaded by a QDeclarativeDataLoader. The user creates the QDeclarativeDataBlob
+and then calls QDeclarativeDataLoader::load() or QDeclarativeDataLoader::loadWithStaticData() to load it.
+The QDeclarativeDataLoader invokes callbacks on the QDeclarativeDataBlob as data becomes available.
+*/
+
+/*!
+\enum QDeclarativeDataBlob::Status
+
+This enum describes the status of the data blob.
+
+\list
+\o Null The blob has not yet been loaded by a QDeclarativeDataLoader
+\o Loading The blob is loading network data. The QDeclarativeDataBlob::setData() callback has not yet been
+invoked or has not yet returned.
+\o WaitingForDependencies The blob is waiting for dependencies to be done before continueing. This status
+only occurs after the QDeclarativeDataBlob::setData() callback has been made, and when the blob has outstanding
+dependencies.
+\o Complete The blob's data has been loaded and all dependencies are done.
+\o Error An error has been set on this blob.
+\endlist
+*/
+
+/*!
+\enum QDeclarativeDataBlob::Type
+
+This enum describes the type of the data blob.
+
+\list
+\o QmlFile This is a QDeclarativeTypeData
+\o JavaScriptFile This is a QDeclarativeScriptData
+\o QmldirFile This is a QDeclarativeQmldirData
+\endlist
+*/
+
+/*!
+Create a new QDeclarativeDataBlob for \a url and of the provided \a type.
+*/
+QDeclarativeDataBlob::QDeclarativeDataBlob(const QUrl &url, Type type)
+: m_type(type), m_status(Null), m_progress(0), m_url(url), m_finalUrl(url), m_manager(0),
+ m_redirectCount(0), m_inCallback(false), m_isDone(false)
+{
+}
+
+/*! \internal */
+QDeclarativeDataBlob::~QDeclarativeDataBlob()
+{
+ Q_ASSERT(m_waitingOnMe.isEmpty());
+
+ cancelAllWaitingFor();
+}
+
+/*!
+Returns the type provided to the constructor.
+*/
+QDeclarativeDataBlob::Type QDeclarativeDataBlob::type() const
+{
+ return m_type;
+}
+
+/*!
+Returns the blob's status.
+*/
+QDeclarativeDataBlob::Status QDeclarativeDataBlob::status() const
+{
+ return m_status;
+}
+
+/*!
+Returns true if the status is Null.
+*/
+bool QDeclarativeDataBlob::isNull() const
+{
+ return m_status == Null;
+}
+
+/*!
+Returns true if the status is Loading.
+*/
+bool QDeclarativeDataBlob::isLoading() const
+{
+ return m_status == Loading;
+}
+
+/*!
+Returns true if the status is WaitingForDependencies.
+*/
+bool QDeclarativeDataBlob::isWaiting() const
+{
+ return m_status == WaitingForDependencies;
+}
+
+/*!
+Returns true if the status is Complete.
+*/
+bool QDeclarativeDataBlob::isComplete() const
+{
+ return m_status == Complete;
+}
+
+/*!
+Returns true if the status is Error.
+*/
+bool QDeclarativeDataBlob::isError() const
+{
+ return m_status == Error;
+}
+
+/*!
+Returns true if the status is Complete or Error.
+*/
+bool QDeclarativeDataBlob::isCompleteOrError() const
+{
+ return isComplete() || isError();
+}
+
+/*!
+Returns the data download progress from 0 to 1.
+*/
+qreal QDeclarativeDataBlob::progress() const
+{
+ return m_progress;
+}
+
+/*!
+Returns the blob url passed to the constructor. If a network redirect
+happens while fetching the data, this url remains the same.
+
+\sa finalUrl()
+*/
+QUrl QDeclarativeDataBlob::url() const
+{
+ return m_url;
+}
+
+/*!
+Returns the final url of the data. Initially this is the same as
+url(), but if a network redirect happens while fetching the data, this url
+is updated to reflect the new location.
+*/
+QUrl QDeclarativeDataBlob::finalUrl() const
+{
+ return m_finalUrl;
+}
+
+/*!
+Return the errors on this blob.
+*/
+QList<QDeclarativeError> QDeclarativeDataBlob::errors() const
+{
+ return m_errors;
+}
+
+/*!
+Mark this blob as having \a errors.
+
+All outstanding dependencies will be cancelled. Requests to add new dependencies
+will be ignored. Entry into the Error state is irreversable, although you can change the
+specific errors by additional calls to setError.
+*/
+void QDeclarativeDataBlob::setError(const QDeclarativeError &errors)
+{
+ QList<QDeclarativeError> l;
+ l << errors;
+ setError(l);
+}
+
+/*!
+\overload
+*/
+void QDeclarativeDataBlob::setError(const QList<QDeclarativeError> &errors)
+{
+ m_status = Error;
+ m_errors = errors;
+
+ cancelAllWaitingFor();
+
+ if (!m_inCallback)
+ tryDone();
+}
+
+/*!
+Wait for \a blob to become complete or to error. If \a blob is already
+complete or in error, or this blob is already complete, this has no effect.
+*/
+void QDeclarativeDataBlob::addDependency(QDeclarativeDataBlob *blob)
+{
+ Q_ASSERT(status() != Null);
+
+ if (!blob ||
+ blob->status() == Error || blob->status() == Complete ||
+ status() == Error || status() == Complete ||
+ m_waitingFor.contains(blob))
+ return;
+
+ blob->addref();
+ m_status = WaitingForDependencies;
+ m_waitingFor.append(blob);
+ blob->m_waitingOnMe.append(this);
+}
+
+/*!
+\fn void QDeclarativeDataBlob::dataReceived(const QByteArray &data)
+
+Invoked when data for the blob is received. Implementors should use this callback
+to determine a blob's dependencies. Within this callback you may call setError()
+or addDependency().
+*/
+
+/*!
+Invoked once data has either been received or a network error occurred, and all
+dependencies are complete.
+
+You can set an error in this method, but you cannot add new dependencies. Implementors
+should use this callback to finalize processing of data.
+
+The default implementation does nothing.
+*/
+void QDeclarativeDataBlob::done()
+{
+}
+
+/*!
+Invoked if there is a network error while fetching this blob.
+
+The default implementation sets an appropriate QDeclarativeError.
+*/
+void QDeclarativeDataBlob::networkError(QNetworkReply::NetworkError networkError)
+{
+ Q_UNUSED(networkError);
+
+ QDeclarativeError error;
+ error.setUrl(m_finalUrl);
+
+ const char *errorString = 0;
+ switch (networkError) {
+ default:
+ errorString = "Network error";
+ break;
+ case QNetworkReply::ConnectionRefusedError:
+ errorString = "Connection refused";
+ break;
+ case QNetworkReply::RemoteHostClosedError:
+ errorString = "Remote host closed the connection";
+ break;
+ case QNetworkReply::HostNotFoundError:
+ errorString = "Host not found";
+ break;
+ case QNetworkReply::TimeoutError:
+ errorString = "Timeout";
+ break;
+ case QNetworkReply::ProxyConnectionRefusedError:
+ case QNetworkReply::ProxyConnectionClosedError:
+ case QNetworkReply::ProxyNotFoundError:
+ case QNetworkReply::ProxyTimeoutError:
+ case QNetworkReply::ProxyAuthenticationRequiredError:
+ case QNetworkReply::UnknownProxyError:
+ errorString = "Proxy error";
+ break;
+ case QNetworkReply::ContentAccessDenied:
+ errorString = "Access denied";
+ break;
+ case QNetworkReply::ContentNotFoundError:
+ errorString = "File not found";
+ break;
+ case QNetworkReply::AuthenticationRequiredError:
+ errorString = "Authentication required";
+ break;
+ };
+
+ error.setDescription(QLatin1String(errorString));
+
+ setError(error);
+}
+
+/*!
+Called if \a blob, which was previously waited for, has an error.
+
+The default implementation does nothing.
+*/
+void QDeclarativeDataBlob::dependencyError(QDeclarativeDataBlob *blob)
+{
+ Q_UNUSED(blob);
+}
+
+/*!
+Called if \a blob, which was previously waited for, has completed.
+
+The default implementation does nothing.
+*/
+void QDeclarativeDataBlob::dependencyComplete(QDeclarativeDataBlob *blob)
+{
+ Q_UNUSED(blob);
+}
+
+/*!
+Called when all blobs waited for have completed. This occurs regardless of
+whether they are in error, or complete state.
+
+The default implementation does nothing.
+*/
+void QDeclarativeDataBlob::allDependenciesDone()
+{
+}
+
+/*!
+Called when the download progress of this blob changes. \a progress goes
+from 0 to 1.
+*/
+void QDeclarativeDataBlob::downloadProgressChanged(qreal progress)
+{
+ Q_UNUSED(progress);
+}
+
+void QDeclarativeDataBlob::tryDone()
+{
+ if (status() != Loading && m_waitingFor.isEmpty() && !m_isDone) {
+ if (status() != Error)
+ m_status = Complete;
+
+ m_isDone = true;
+ done();
+ notifyAllWaitingOnMe();
+ }
+}
+
+void QDeclarativeDataBlob::cancelAllWaitingFor()
+{
+ while (m_waitingFor.count()) {
+ QDeclarativeDataBlob *blob = m_waitingFor.takeLast();
+
+ Q_ASSERT(blob->m_waitingOnMe.contains(this));
+
+ blob->m_waitingOnMe.removeOne(this);
+
+ blob->release();
+ }
+}
+
+void QDeclarativeDataBlob::notifyAllWaitingOnMe()
+{
+ while (m_waitingOnMe.count()) {
+ QDeclarativeDataBlob *blob = m_waitingOnMe.takeLast();
+
+ Q_ASSERT(blob->m_waitingFor.contains(this));
+
+ blob->notifyComplete(this);
+ }
+}
+
+void QDeclarativeDataBlob::notifyComplete(QDeclarativeDataBlob *blob)
+{
+ Q_ASSERT(m_waitingFor.contains(blob));
+ Q_ASSERT(blob->status() == Error || blob->status() == Complete);
+
+ m_inCallback = true;
+
+ if (blob->status() == Error) {
+ dependencyError(blob);
+ } else if (blob->status() == Complete) {
+ dependencyComplete(blob);
+ }
+
+ m_waitingFor.removeOne(blob);
+ blob->release();
+
+ if (!isError() && m_waitingFor.isEmpty())
+ allDependenciesDone();
+
+ m_inCallback = false;
+
+ tryDone();
+}
+
+/*!
+\class QDeclarativeDataLoader
+\brief The QDeclarativeDataLoader class abstracts loading files and their dependecies over the network.
+\internal
+
+The QDeclarativeDataLoader class is provided for the exclusive use of the QDeclarativeTypeLoader class.
+
+Clients create QDeclarativeDataBlob instances and submit them to the QDeclarativeDataLoader class
+through the QDeclarativeDataLoader::load() or QDeclarativeDataLoader::loadWithStaticData() methods.
+The loader then fetches the data over the network or from the local file system in an efficient way.
+QDeclarativeDataBlob is an abstract class, so should always be specialized.
+
+Once data is received, the QDeclarativeDataBlob::dataReceived() method is invoked on the blob. The
+derived class should use this callback to process the received data. Processing of the data can
+result in an error being set (QDeclarativeDataBlob::setError()), or one or more dependencies being
+created (QDeclarativeDataBlob::addDependency()). Dependencies are other QDeclarativeDataBlob's that
+are required before processing can fully complete.
+
+To complete processing, the QDeclarativeDataBlob::done() callback is invoked. done() is called when
+one of these three preconditions are met.
+
+1. The QDeclarativeDataBlob has no dependencies.
+2. The QDeclarativeDataBlob has an error set.
+3. All the QDeclarativeDataBlob's dependencies are themselves "done()".
+
+Thus QDeclarativeDataBlob::done() will always eventually be called, even if the blob has an error set.
+*/
+
+/*!
+Create a new QDeclarativeDataLoader for \a engine.
+*/
+QDeclarativeDataLoader::QDeclarativeDataLoader(QDeclarativeEngine *engine)
+: m_engine(engine)
+{
+}
+
+/*! \internal */
+QDeclarativeDataLoader::~QDeclarativeDataLoader()
+{
+ for (NetworkReplies::Iterator iter = m_networkReplies.begin(); iter != m_networkReplies.end(); ++iter)
+ (*iter)->release();
+}
+
+/*!
+Load the provided \a blob from the network or filesystem.
+*/
+void QDeclarativeDataLoader::load(QDeclarativeDataBlob *blob)
+{
+ Q_ASSERT(blob->status() == QDeclarativeDataBlob::Null);
+ Q_ASSERT(blob->m_manager == 0);
+
+ blob->m_status = QDeclarativeDataBlob::Loading;
+
+ if (blob->m_url.isEmpty()) {
+ QDeclarativeError error;
+ error.setDescription(QLatin1String("Invalid null URL"));
+ blob->setError(error);
+ return;
+ }
+
+ QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(blob->m_url);
+
+ if (!lf.isEmpty()) {
+ QFile file(lf);
+ if (file.open(QFile::ReadOnly)) {
+ QByteArray data = file.readAll();
+
+ blob->m_progress = 1.;
+ blob->downloadProgressChanged(1.);
+
+ setData(blob, data);
+ } else {
+ blob->networkError(QNetworkReply::ContentNotFoundError);
+ }
+
+ } else {
+
+ blob->m_manager = this;
+ QNetworkReply *reply = m_engine->networkAccessManager()->get(QNetworkRequest(blob->m_url));
+ QObject::connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
+ this, SLOT(networkReplyProgress(qint64,qint64)));
+ QObject::connect(reply, SIGNAL(finished()),
+ this, SLOT(networkReplyFinished()));
+ m_networkReplies.insert(reply, blob);
+
+ blob->addref();
+ }
+}
+
+#define DATALOADER_MAXIMUM_REDIRECT_RECURSION 16
+
+void QDeclarativeDataLoader::networkReplyFinished()
+{
+ QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
+ reply->deleteLater();
+
+ QDeclarativeDataBlob *blob = m_networkReplies.take(reply);
+
+ Q_ASSERT(blob);
+
+ blob->m_redirectCount++;
+
+ if (blob->m_redirectCount < DATALOADER_MAXIMUM_REDIRECT_RECURSION) {
+ QVariant redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
+ if (redirect.isValid()) {
+ QUrl url = reply->url().resolved(redirect.toUrl());
+ blob->m_finalUrl = url;
+
+ QNetworkReply *reply = m_engine->networkAccessManager()->get(QNetworkRequest(url));
+ QObject::connect(reply, SIGNAL(finished()), this, SLOT(networkReplyFinished()));
+ m_networkReplies.insert(reply, blob);
+ return;
+ }
+ }
+
+ if (reply->error()) {
+ blob->networkError(reply->error());
+ } else {
+ QByteArray data = reply->readAll();
+ setData(blob, data);
+ }
+
+ blob->release();
+}
+
+void QDeclarativeDataLoader::networkReplyProgress(qint64 bytesReceived, qint64 bytesTotal)
+{
+ QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
+ QDeclarativeDataBlob *blob = m_networkReplies.value(reply);
+
+ Q_ASSERT(blob);
+
+ if (bytesTotal != 0) {
+ blob->m_progress = bytesReceived / bytesTotal;
+ blob->downloadProgressChanged(blob->m_progress);
+ }
+}
+
+/*!
+Load the provided \a blob with \a data. The blob's URL is not used by the data loader in this case.
+*/
+void QDeclarativeDataLoader::loadWithStaticData(QDeclarativeDataBlob *blob, const QByteArray &data)
+{
+ Q_ASSERT(blob->status() == QDeclarativeDataBlob::Null);
+ Q_ASSERT(blob->m_manager == 0);
+
+ blob->m_status = QDeclarativeDataBlob::Loading;
+
+ setData(blob, data);
+}
+
+/*!
+Return the QDeclarativeEngine associated with this loader
+*/
+QDeclarativeEngine *QDeclarativeDataLoader::engine() const
+{
+ return m_engine;
+}
+
+void QDeclarativeDataLoader::setData(QDeclarativeDataBlob *blob, const QByteArray &data)
+{
+ blob->m_inCallback = true;
+
+ blob->dataReceived(data);
+
+ if (!blob->isError() && !blob->isWaiting())
+ blob->allDependenciesDone();
+
+ if (blob->status() != QDeclarativeDataBlob::Error)
+ blob->m_status = QDeclarativeDataBlob::WaitingForDependencies;
+
+ blob->m_inCallback = false;
+
+ blob->tryDone();
+}
+
+/*!
+\class QDeclarativeTypeLoader
+*/
+QDeclarativeTypeLoader::QDeclarativeTypeLoader(QDeclarativeEngine *engine)
+: QDeclarativeDataLoader(engine)
+{
+}
+
+QDeclarativeTypeLoader::~QDeclarativeTypeLoader()
+{
+ clearCache();
+}
+
+/*!
+Return a QDeclarativeTypeData for \a url. The QDeclarativeTypeData may be cached.
+*/
+QDeclarativeTypeData *QDeclarativeTypeLoader::get(const QUrl &url)
+{
+ Q_ASSERT(!url.isRelative() &&
+ (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url).isEmpty() ||
+ !QDir::isRelativePath(QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url))));
+
+ QDeclarativeTypeData *typeData = m_typeCache.value(url);
+
+ if (!typeData) {
+ typeData = new QDeclarativeTypeData(url, None, this);
+ m_typeCache.insert(url, typeData);
+ QDeclarativeDataLoader::load(typeData);
+ }
+
+ typeData->addref();
+ return typeData;
+}
+
+/*!
+Return a QDeclarativeTypeData for \a data with the provided base \a url. The
+QDeclarativeTypeData will not be cached.
+*/
+QDeclarativeTypeData *QDeclarativeTypeLoader::get(const QByteArray &data, const QUrl &url, Options options)
+{
+ QDeclarativeTypeData *typeData = new QDeclarativeTypeData(url, options, this);
+ QDeclarativeDataLoader::loadWithStaticData(typeData, data);
+ return typeData;
+}
+
+/*!
+Return a QDeclarativeScriptData for \a url. The QDeclarativeScriptData may be cached.
+*/
+QDeclarativeScriptData *QDeclarativeTypeLoader::getScript(const QUrl &url)
+{
+ Q_ASSERT(!url.isRelative() &&
+ (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url).isEmpty() ||
+ !QDir::isRelativePath(QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url))));
+
+ QDeclarativeScriptData *scriptData = m_scriptCache.value(url);
+
+ if (!scriptData) {
+ scriptData = new QDeclarativeScriptData(url);
+ m_scriptCache.insert(url, scriptData);
+ QDeclarativeDataLoader::load(scriptData);
+ }
+
+ scriptData->addref();
+ return scriptData;
+}
+
+/*!
+Return a QDeclarativeQmldirData for \a url. The QDeclarativeQmldirData may be cached.
+*/
+QDeclarativeQmldirData *QDeclarativeTypeLoader::getQmldir(const QUrl &url)
+{
+ Q_ASSERT(!url.isRelative() &&
+ (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url).isEmpty() ||
+ !QDir::isRelativePath(QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url))));
+
+ QDeclarativeQmldirData *qmldirData = m_qmldirCache.value(url);
+
+ if (!qmldirData) {
+ qmldirData = new QDeclarativeQmldirData(url);
+ m_qmldirCache.insert(url, qmldirData);
+ QDeclarativeDataLoader::load(qmldirData);
+ }
+
+ qmldirData->addref();
+ return qmldirData;
+}
+
+void QDeclarativeTypeLoader::clearCache()
+{
+ for (TypeCache::Iterator iter = m_typeCache.begin(); iter != m_typeCache.end(); ++iter)
+ (*iter)->release();
+ for (ScriptCache::Iterator iter = m_scriptCache.begin(); iter != m_scriptCache.end(); ++iter)
+ (*iter)->release();
+ for (QmldirCache::Iterator iter = m_qmldirCache.begin(); iter != m_qmldirCache.end(); ++iter)
+ (*iter)->release();
+
+ m_typeCache.clear();
+ m_scriptCache.clear();
+ m_qmldirCache.clear();
+}
+
+
+QDeclarativeTypeData::QDeclarativeTypeData(const QUrl &url, QDeclarativeTypeLoader::Options options,
+ QDeclarativeTypeLoader *manager)
+: QDeclarativeDataBlob(url, QmlFile), m_options(options), m_typesResolved(false),
+ m_compiledData(0), m_component(0), m_typeLoader(manager)
+{
+}
+
+QDeclarativeTypeData::~QDeclarativeTypeData()
+{
+ for (int ii = 0; ii < m_scripts.count(); ++ii)
+ m_scripts.at(ii).script->release();
+ for (int ii = 0; ii < m_qmldirs.count(); ++ii)
+ m_qmldirs.at(ii)->release();
+ for (int ii = 0; ii < m_types.count(); ++ii)
+ if (m_types.at(ii).typeData) m_types.at(ii).typeData->release();
+ if (m_compiledData)
+ m_compiledData->release();
+}
+
+QDeclarativeTypeLoader *QDeclarativeTypeData::typeLoader() const
+{
+ return m_typeLoader;
+}
+
+const QDeclarativeImports &QDeclarativeTypeData::imports() const
+{
+ return m_imports;
+}
+
+const QDeclarativeScriptParser &QDeclarativeTypeData::parser() const
+{
+ return scriptParser;
+}
+
+const QList<QDeclarativeTypeData::TypeReference> &QDeclarativeTypeData::resolvedTypes() const
+{
+ return m_types;
+}
+
+const QList<QDeclarativeTypeData::ScriptReference> &QDeclarativeTypeData::resolvedScripts() const
+{
+ return m_scripts;
+}
+
+QDeclarativeCompiledData *QDeclarativeTypeData::compiledData() const
+{
+ if (m_compiledData)
+ m_compiledData->addref();
+
+ return m_compiledData;
+}
+
+QDeclarativeComponent *QDeclarativeTypeData::component() const
+{
+ if (!m_component) {
+
+ if (m_compiledData) {
+ m_component = new QDeclarativeComponent(typeLoader()->engine(), m_compiledData, -1, -1, 0);
+ } else {
+ m_component = new QDeclarativeComponent(typeLoader()->engine());
+ QDeclarativeComponentPrivate::get(m_component)->url = finalUrl();
+ QDeclarativeComponentPrivate::get(m_component)->state.errors = errors();
+ }
+
+ }
+
+ return m_component;
+}
+
+void QDeclarativeTypeData::registerCallback(TypeDataCallback *callback)
+{
+ Q_ASSERT(!m_callbacks.contains(callback));
+ m_callbacks.append(callback);
+}
+
+void QDeclarativeTypeData::unregisterCallback(TypeDataCallback *callback)
+{
+ Q_ASSERT(m_callbacks.contains(callback));
+ m_callbacks.removeOne(callback);
+ Q_ASSERT(!m_callbacks.contains(callback));
+}
+
+void QDeclarativeTypeData::done()
+{
+ addref();
+
+ // Check all script dependencies for errors
+ for (int ii = 0; !isError() && ii < m_scripts.count(); ++ii) {
+ const ScriptReference &script = m_scripts.at(ii);
+ Q_ASSERT(script.script->isCompleteOrError());
+ if (script.script->isError()) {
+ QList<QDeclarativeError> errors = script.script->errors();
+ QDeclarativeError error;
+ error.setUrl(finalUrl());
+ error.setLine(script.location.line);
+ error.setColumn(script.location.column);
+ error.setDescription(typeLoader()->tr("Script %1 unavailable").arg(script.script->url().toString()));
+ errors.prepend(error);
+ setError(errors);
+ }
+ }
+
+ // Check all type dependencies for errors
+ for (int ii = 0; !isError() && ii < m_types.count(); ++ii) {
+ const TypeReference &type = m_types.at(ii);
+ Q_ASSERT(!type.typeData || type.typeData->isCompleteOrError());
+ if (type.typeData && type.typeData->isError()) {
+ QString typeName = scriptParser.referencedTypes().at(ii)->name;
+
+ QList<QDeclarativeError> errors = type.typeData->errors();
+ QDeclarativeError error;
+ error.setUrl(finalUrl());
+ error.setLine(type.location.line);
+ error.setColumn(type.location.column);
+ error.setDescription(typeLoader()->tr("Type %1 unavailable").arg(typeName));
+ errors.prepend(error);
+ setError(errors);
+ }
+ }
+
+ // Compile component
+ if (!isError())
+ compile();
+
+ if (!(m_options & QDeclarativeTypeLoader::PreserveParser))
+ scriptParser.clear();
+
+ // Notify callbacks
+ while (!m_callbacks.isEmpty()) {
+ TypeDataCallback *callback = m_callbacks.takeFirst();
+ callback->typeDataReady(this);
+ }
+
+ release();
+}
+
+void QDeclarativeTypeData::dataReceived(const QByteArray &data)
+{
+ if (!scriptParser.parse(data, finalUrl())) {
+ setError(scriptParser.errors());
+ return;
+ }
+
+ m_imports.setBaseUrl(finalUrl());
+
+ foreach (const QDeclarativeScriptParser::Import &import, scriptParser.imports()) {
+ if (import.type == QDeclarativeScriptParser::Import::File && import.qualifier.isEmpty()) {
+ QUrl importUrl = finalUrl().resolved(QUrl(import.uri + QLatin1String("/qmldir")));
+ if (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl).isEmpty()) {
+ QDeclarativeQmldirData *data = typeLoader()->getQmldir(importUrl);
+ addDependency(data);
+ m_qmldirs << data;
+ }
+ } else if (import.type == QDeclarativeScriptParser::Import::Script) {
+ QUrl scriptUrl = finalUrl().resolved(QUrl(import.uri));
+ QDeclarativeScriptData *data = typeLoader()->getScript(scriptUrl);
+ addDependency(data);
+
+ ScriptReference ref;
+ ref.location = import.location.start;
+ ref.qualifier = import.qualifier;
+ ref.script = data;
+ m_scripts << ref;
+
+ }
+ }
+
+ if (!finalUrl().scheme().isEmpty()) {
+ QUrl importUrl = finalUrl().resolved(QUrl(QLatin1String("qmldir")));
+ if (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl).isEmpty()) {
+ QDeclarativeQmldirData *data = typeLoader()->getQmldir(importUrl);
+ addDependency(data);
+ m_qmldirs << data;
+ }
+ }
+}
+
+void QDeclarativeTypeData::allDependenciesDone()
+{
+ if (!m_typesResolved) {
+ resolveTypes();
+ m_typesResolved = true;
+ }
+}
+
+void QDeclarativeTypeData::downloadProgressChanged(qreal p)
+{
+ for (int ii = 0; ii < m_callbacks.count(); ++ii) {
+ TypeDataCallback *callback = m_callbacks.at(ii);
+ callback->typeDataProgress(this, p);
+ }
+}
+
+void QDeclarativeTypeData::compile()
+{
+ Q_ASSERT(m_compiledData == 0);
+
+ m_compiledData = new QDeclarativeCompiledData(typeLoader()->engine());
+ m_compiledData->url = m_imports.baseUrl();
+ m_compiledData->name = m_compiledData->url.toString();
+
+ QDeclarativeCompiler compiler;
+ if (!compiler.compile(typeLoader()->engine(), this, m_compiledData)) {
+ setError(compiler.errors());
+ m_compiledData->release();
+ m_compiledData = 0;
+ }
+}
+
+void QDeclarativeTypeData::resolveTypes()
+{
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(m_typeLoader->engine());
+ QDeclarativeImportDatabase *importDatabase = &ep->importDatabase;
+
+ // For local urls, add an implicit import "." as first (most overridden) lookup.
+ // This will also trigger the loading of the qmldir and the import of any native
+ // types from available plugins.
+ if (QDeclarativeQmldirData *qmldir = qmldirForUrl(finalUrl().resolved(QUrl(QLatin1String("./qmldir"))))) {
+ m_imports.addImport(importDatabase, QLatin1String("."),
+ QString(), -1, -1, QDeclarativeScriptParser::Import::File,
+ qmldir->dirComponents(), 0);
+ } else {
+ m_imports.addImport(importDatabase, QLatin1String("."),
+ QString(), -1, -1, QDeclarativeScriptParser::Import::File,
+ QDeclarativeDirComponents(), 0);
+ }
+
+ foreach (const QDeclarativeScriptParser::Import &import, scriptParser.imports()) {
+ QDeclarativeDirComponents qmldircomponentsnetwork;
+ if (import.type == QDeclarativeScriptParser::Import::Script)
+ continue;
+
+ if (import.type == QDeclarativeScriptParser::Import::File && import.qualifier.isEmpty()) {
+ QUrl qmldirUrl = finalUrl().resolved(QUrl(import.uri + QLatin1String("/qmldir")));
+ if (QDeclarativeQmldirData *qmldir = qmldirForUrl(qmldirUrl))
+ qmldircomponentsnetwork = qmldir->dirComponents();
+ }
+
+ int vmaj = -1;
+ int vmin = -1;
+
+ if (!import.version.isEmpty()) {
+ int dot = import.version.indexOf(QLatin1Char('.'));
+ if (dot < 0) {
+ vmaj = import.version.toInt();
+ vmin = 0;
+ } else {
+ vmaj = import.version.left(dot).toInt();
+ vmin = import.version.mid(dot+1).toInt();
+ }
+ }
+
+ QString errorString;
+ if (!m_imports.addImport(importDatabase, import.uri, import.qualifier,
+ vmaj, vmin, import.type, qmldircomponentsnetwork, &errorString)) {
+ QDeclarativeError error;
+ error.setUrl(m_imports.baseUrl());
+ error.setDescription(errorString);
+ error.setLine(import.location.start.line);
+ error.setColumn(import.location.start.column);
+
+ setError(error);
+ return;
+ }
+ }
+
+ foreach (QDeclarativeScriptParser::TypeReference *parserRef, scriptParser.referencedTypes()) {
+ QByteArray typeName = parserRef->name.toUtf8();
+
+ TypeReference ref;
+
+ QUrl url;
+ int majorVersion;
+ int minorVersion;
+ QDeclarativeImportedNamespace *typeNamespace = 0;
+ QString errorString;
+
+ if (!m_imports.resolveType(typeName, &ref.type, &url, &majorVersion, &minorVersion,
+ &typeNamespace, &errorString) || typeNamespace) {
+ // Known to not be a type:
+ // - known to be a namespace (Namespace {})
+ // - type with unknown namespace (UnknownNamespace.SomeType {})
+ QDeclarativeError error;
+ error.setUrl(m_imports.baseUrl());
+ QString userTypeName = parserRef->name;
+ userTypeName.replace(QLatin1Char('/'),QLatin1Char('.'));
+ if (typeNamespace)
+ error.setDescription(typeLoader()->tr("Namespace %1 cannot be used as a type").arg(userTypeName));
+ else
+ error.setDescription(typeLoader()->tr("%1 %2").arg(userTypeName).arg(errorString));
+
+ if (!parserRef->refObjects.isEmpty()) {
+ QDeclarativeParser::Object *obj = parserRef->refObjects.first();
+ error.setLine(obj->location.start.line);
+ error.setColumn(obj->location.start.column);
+ }
+
+ setError(error);
+ return;
+ }
+
+ if (ref.type) {
+ foreach (QDeclarativeParser::Object *obj, parserRef->refObjects) {
+ // store namespace for DOM
+ obj->majorVersion = majorVersion;
+ obj->minorVersion = minorVersion;
+ }
+ } else {
+ ref.typeData = typeLoader()->get(url);
+ addDependency(ref.typeData);
+ }
+
+ if (parserRef->refObjects.count())
+ ref.location = parserRef->refObjects.first()->location.start;
+
+ m_types << ref;
+ }
+}
+
+QDeclarativeQmldirData *QDeclarativeTypeData::qmldirForUrl(const QUrl &url)
+{
+ for (int ii = 0; ii < m_qmldirs.count(); ++ii) {
+ if (m_qmldirs.at(ii)->url() == url)
+ return m_qmldirs.at(ii);
+ }
+ return 0;
+}
+
+QDeclarativeScriptData::QDeclarativeScriptData(const QUrl &url)
+: QDeclarativeDataBlob(url, JavaScriptFile), m_pragmas(QDeclarativeParser::Object::ScriptBlock::None)
+{
+}
+
+QDeclarativeParser::Object::ScriptBlock::Pragmas QDeclarativeScriptData::pragmas() const
+{
+ return m_pragmas;
+}
+
+QString QDeclarativeScriptData::scriptSource() const
+{
+ return m_source;
+}
+
+void QDeclarativeScriptData::dataReceived(const QByteArray &data)
+{
+ m_source = QString::fromUtf8(data);
+ m_pragmas = QDeclarativeScriptParser::extractPragmas(m_source);
+}
+
+QDeclarativeQmldirData::QDeclarativeQmldirData(const QUrl &url)
+: QDeclarativeDataBlob(url, QmldirFile)
+{
+}
+
+const QDeclarativeDirComponents &QDeclarativeQmldirData::dirComponents() const
+{
+ return m_components;
+}
+
+void QDeclarativeQmldirData::dataReceived(const QByteArray &data)
+{
+ QDeclarativeDirParser parser;
+ parser.setSource(QString::fromUtf8(data));
+ parser.parse();
+ m_components = parser.components();
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/declarative/qml/qdeclarativetypeloader_p.h b/src/declarative/qml/qdeclarativetypeloader_p.h
new file mode 100644
index 0000000000..7381f28b2b
--- /dev/null
+++ b/src/declarative/qml/qdeclarativetypeloader_p.h
@@ -0,0 +1,321 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module 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 QDECLARATIVETYPELOADER_P_H
+#define QDECLARATIVETYPELOADER_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtCore/qobject.h>
+#include <QtNetwork/qnetworkreply.h>
+#include <QtDeclarative/qdeclarativeerror.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <private/qdeclarativescriptparser_p.h>
+#include <private/qdeclarativedirparser_p.h>
+#include <private/qdeclarativeimport_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QDeclarativeScriptData;
+class QDeclarativeQmldirData;
+class QDeclarativeTypeLoader;
+class QDeclarativeCompiledData;
+class QDeclarativeComponentPrivate;
+class QDeclarativeTypeData;
+class QDeclarativeDataLoader;
+
+class Q_AUTOTEST_EXPORT QDeclarativeDataBlob : public QDeclarativeRefCount
+{
+public:
+ enum Status {
+ Null, // Prior to QDeclarativeDataLoader::load()
+ Loading, // Prior to data being received and dataReceived() being called
+ WaitingForDependencies, // While there are outstanding addDependency()s
+ Complete, // Finished
+ Error, // Error
+ };
+
+ enum Type {
+ QmlFile,
+ JavaScriptFile,
+ QmldirFile
+ };
+
+ QDeclarativeDataBlob(const QUrl &, Type);
+ virtual ~QDeclarativeDataBlob();
+
+ Type type() const;
+
+ Status status() const;
+ bool isNull() const;
+ bool isLoading() const;
+ bool isWaiting() const;
+ bool isComplete() const;
+ bool isError() const;
+ bool isCompleteOrError() const;
+
+ qreal progress() const;
+
+ QUrl url() const;
+ QUrl finalUrl() const;
+
+ QList<QDeclarativeError> errors() const;
+
+ void setError(const QDeclarativeError &);
+ void setError(const QList<QDeclarativeError> &errors);
+
+ void addDependency(QDeclarativeDataBlob *);
+
+protected:
+ virtual void dataReceived(const QByteArray &) = 0;
+
+ virtual void done();
+ virtual void networkError(QNetworkReply::NetworkError);
+
+ virtual void dependencyError(QDeclarativeDataBlob *);
+ virtual void dependencyComplete(QDeclarativeDataBlob *);
+ virtual void allDependenciesDone();
+
+ virtual void downloadProgressChanged(qreal);
+
+private:
+ friend class QDeclarativeDataLoader;
+ void tryDone();
+ void cancelAllWaitingFor();
+ void notifyAllWaitingOnMe();
+ void notifyComplete(QDeclarativeDataBlob *);
+
+ Type m_type;
+ Status m_status;
+ qreal m_progress;
+
+ QUrl m_url;
+ QUrl m_finalUrl;
+
+ // List of QDeclarativeDataBlob's that are waiting for me to complete.
+ QList<QDeclarativeDataBlob *> m_waitingOnMe;
+
+ // List of QDeclarativeDataBlob's that I am waiting for to complete.
+ QList<QDeclarativeDataBlob *> m_waitingFor;
+
+ // Manager that is currently fetching data for me
+ QDeclarativeDataLoader *m_manager;
+ int m_redirectCount:30;
+ bool m_inCallback:1;
+ bool m_isDone:1;
+
+ QList<QDeclarativeError> m_errors;
+};
+
+class Q_AUTOTEST_EXPORT QDeclarativeDataLoader : public QObject
+{
+ Q_OBJECT
+public:
+ QDeclarativeDataLoader(QDeclarativeEngine *);
+ ~QDeclarativeDataLoader();
+
+ void load(QDeclarativeDataBlob *);
+ void loadWithStaticData(QDeclarativeDataBlob *, const QByteArray &);
+
+ QDeclarativeEngine *engine() const;
+
+private slots:
+ void networkReplyFinished();
+ void networkReplyProgress(qint64,qint64);
+
+private:
+ void setData(QDeclarativeDataBlob *, const QByteArray &);
+
+ QDeclarativeEngine *m_engine;
+ typedef QHash<QNetworkReply *, QDeclarativeDataBlob *> NetworkReplies;
+ NetworkReplies m_networkReplies;
+};
+
+
+class Q_AUTOTEST_EXPORT QDeclarativeTypeLoader : public QDeclarativeDataLoader
+{
+ Q_OBJECT
+public:
+ QDeclarativeTypeLoader(QDeclarativeEngine *);
+ ~QDeclarativeTypeLoader();
+
+ enum Option {
+ None,
+ PreserveParser
+ };
+ Q_DECLARE_FLAGS(Options, Option)
+
+ QDeclarativeTypeData *get(const QUrl &url);
+ QDeclarativeTypeData *get(const QByteArray &, const QUrl &url, Options = None);
+ void clearCache();
+
+ QDeclarativeScriptData *getScript(const QUrl &);
+ QDeclarativeQmldirData *getQmldir(const QUrl &);
+private:
+ typedef QHash<QUrl, QDeclarativeTypeData *> TypeCache;
+ typedef QHash<QUrl, QDeclarativeScriptData *> ScriptCache;
+ typedef QHash<QUrl, QDeclarativeQmldirData *> QmldirCache;
+
+ TypeCache m_typeCache;
+ ScriptCache m_scriptCache;
+ QmldirCache m_qmldirCache;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(QDeclarativeTypeLoader::Options)
+
+class Q_AUTOTEST_EXPORT QDeclarativeTypeData : public QDeclarativeDataBlob
+{
+public:
+ struct TypeReference
+ {
+ TypeReference() : type(0), typeData(0) {}
+
+ QDeclarativeParser::Location location;
+ QDeclarativeType *type;
+ QDeclarativeTypeData *typeData;
+ };
+
+ struct ScriptReference
+ {
+ ScriptReference() : script(0) {}
+
+ QDeclarativeParser::Location location;
+ QString qualifier;
+ QDeclarativeScriptData *script;
+ };
+
+ QDeclarativeTypeData(const QUrl &, QDeclarativeTypeLoader::Options, QDeclarativeTypeLoader *);
+ ~QDeclarativeTypeData();
+
+ QDeclarativeTypeLoader *typeLoader() const;
+
+ const QDeclarativeImports &imports() const;
+ const QDeclarativeScriptParser &parser() const;
+
+ const QList<TypeReference> &resolvedTypes() const;
+ const QList<ScriptReference> &resolvedScripts() const;
+
+ QDeclarativeCompiledData *compiledData() const;
+ QDeclarativeComponent *component() const;
+
+ // Used by QDeclarativeComponent to get notifications
+ struct TypeDataCallback {
+ ~TypeDataCallback() {}
+ virtual void typeDataProgress(QDeclarativeTypeData *, qreal) {}
+ virtual void typeDataReady(QDeclarativeTypeData *) {}
+ };
+ void registerCallback(TypeDataCallback *);
+ void unregisterCallback(TypeDataCallback *);
+
+protected:
+ virtual void done();
+ virtual void dataReceived(const QByteArray &);
+ virtual void allDependenciesDone();
+ virtual void downloadProgressChanged(qreal);
+
+private:
+ void resolveTypes();
+ void compile();
+
+ QDeclarativeTypeLoader::Options m_options;
+
+ QDeclarativeQmldirData *qmldirForUrl(const QUrl &);
+
+ QDeclarativeScriptParser scriptParser;
+ QDeclarativeImports m_imports;
+
+ QList<ScriptReference> m_scripts;
+ QList<QDeclarativeQmldirData *> m_qmldirs;
+
+ QList<TypeReference> m_types;
+ bool m_typesResolved:1;
+
+ QDeclarativeCompiledData *m_compiledData;
+ mutable QDeclarativeComponent *m_component;
+
+ QList<TypeDataCallback *> m_callbacks;
+
+ QDeclarativeTypeLoader *m_typeLoader;
+};
+
+class Q_AUTOTEST_EXPORT QDeclarativeScriptData : public QDeclarativeDataBlob
+{
+public:
+ QDeclarativeScriptData(const QUrl &);
+
+ QDeclarativeParser::Object::ScriptBlock::Pragmas pragmas() const;
+ QString scriptSource() const;
+
+protected:
+ virtual void dataReceived(const QByteArray &);
+
+private:
+ QDeclarativeParser::Object::ScriptBlock::Pragmas m_pragmas;
+ QString m_source;
+};
+
+class Q_AUTOTEST_EXPORT QDeclarativeQmldirData : public QDeclarativeDataBlob
+{
+public:
+ QDeclarativeQmldirData(const QUrl &);
+
+ const QDeclarativeDirComponents &dirComponents() const;
+
+protected:
+ virtual void dataReceived(const QByteArray &);
+
+private:
+ QDeclarativeDirComponents m_components;
+
+};
+
+QT_END_NAMESPACE
+
+#endif // QDECLARATIVETYPELOADER_P_H
diff --git a/src/declarative/qml/qdeclarativevaluetypescriptclass.cpp b/src/declarative/qml/qdeclarativevaluetypescriptclass.cpp
index f06d6aeb38..60f2cb36fb 100644
--- a/src/declarative/qml/qdeclarativevaluetypescriptclass.cpp
+++ b/src/declarative/qml/qdeclarativevaluetypescriptclass.cpp
@@ -168,7 +168,7 @@ void QDeclarativeValueTypeScriptClass::setProperty(Object *obj, const Identifier
ref->type->read(ref->object, ref->property);
QMetaProperty p = ref->type->metaObject()->property(m_lastIndex);
- if (p.isEnumType() && (QMetaType::Type)v.type() == QMetaType::QReal)
+ if (p.isEnumType() && (QMetaType::Type)v.type() == QMetaType::Double)
v = v.toInt();
p.write(ref->type, v);
ref->type->write(ref->object, ref->property, 0);
diff --git a/src/declarative/qml/qdeclarativevmemetaobject.cpp b/src/declarative/qml/qdeclarativevmemetaobject.cpp
index 689ed92d86..3e32006ff9 100644
--- a/src/declarative/qml/qdeclarativevmemetaobject.cpp
+++ b/src/declarative/qml/qdeclarativevmemetaobject.cpp
@@ -707,11 +707,19 @@ void QDeclarativeVMEMetaObject::writeVarProperty(int id, const QScriptValue &val
void QDeclarativeVMEMetaObject::writeVarProperty(int id, const QVariant &value)
{
- if (value.userType() == QMetaType::QObjectStar)
+ bool needActivate = false;
+ if (value.userType() == QMetaType::QObjectStar) {
+ QObject *o = qvariant_cast<QObject *>(value);
+ needActivate = (data[id].dataType() != QMetaType::QObjectStar || data[id].asQObject() != o);
data[id].setValue(qvariant_cast<QObject *>(value));
- else
+ } else {
+ needActivate = (data[id].dataType() != qMetaTypeId<QVariant>() ||
+ data[id].asQVariant().userType() != value.userType() ||
+ data[id].asQVariant() != value);
data[id].setValue(value);
- activate(object, methodOffset + id, 0);
+ }
+ if (needActivate)
+ activate(object, methodOffset + id, 0);
}
void QDeclarativeVMEMetaObject::listChanged(int id)
diff --git a/src/declarative/qml/qmetaobjectbuilder.cpp b/src/declarative/qml/qmetaobjectbuilder.cpp
index 095424846b..58f8811567 100644
--- a/src/declarative/qml/qmetaobjectbuilder.cpp
+++ b/src/declarative/qml/qmetaobjectbuilder.cpp
@@ -205,7 +205,7 @@ public:
(const QByteArray& _name, const QByteArray& _type, int notifierIdx=-1)
: name(_name),
type(QMetaObject::normalizedType(_type.constData())),
- flags(Readable | Writable), notifySignal(-1)
+ flags(Readable | Writable | Scriptable), notifySignal(-1)
{
if (notifierIdx >= 0) {
flags |= Notify;
@@ -2187,7 +2187,7 @@ bool QMetaPropertyBuilder::isDesignable() const
/*!
Returns true if the property is scriptable; otherwise returns false.
- This default value is false.
+ This default value is true.
\sa setScriptable(), isDesignable(), isStored()
*/
diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri
index 12f97943f8..687ff52cbd 100644
--- a/src/declarative/qml/qml.pri
+++ b/src/declarative/qml/qml.pri
@@ -24,7 +24,7 @@ SOURCES += \
$$PWD/qdeclarativestringconverters.cpp \
$$PWD/qdeclarativeclassfactory.cpp \
$$PWD/qdeclarativeparserstatus.cpp \
- $$PWD/qdeclarativecompositetypemanager.cpp \
+ $$PWD/qdeclarativetypeloader.cpp \
$$PWD/qdeclarativeinfo.cpp \
$$PWD/qdeclarativeerror.cpp \
$$PWD/qdeclarativescriptparser.cpp \
@@ -94,8 +94,7 @@ HEADERS += \
$$PWD/qdeclarativeproperty_p.h \
$$PWD/qdeclarativecontext_p.h \
$$PWD/qdeclarativeinclude_p.h \
- $$PWD/qdeclarativecompositetypedata_p.h \
- $$PWD/qdeclarativecompositetypemanager_p.h \
+ $$PWD/qdeclarativetypeloader_p.h \
$$PWD/qdeclarativelist.h \
$$PWD/qdeclarativelist_p.h \
$$PWD/qdeclarativedata_p.h \
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index 4e9e8d5fc1..3c09747554 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -84,11 +84,6 @@ QT_BEGIN_NAMESPACE
element directly will result in an error.
*/
-/*!
- \class QDeclarativeAbstractAnimation
- \internal
-*/
-
QDeclarativeAbstractAnimation::QDeclarativeAbstractAnimation(QObject *parent)
: QObject(*(new QDeclarativeAbstractAnimationPrivate), parent)
{
@@ -337,7 +332,7 @@ void QDeclarativeAbstractAnimation::setAlwaysRunToEnd(bool f)
stopped - either by setting the \c running property to false, or by calling
the \c stop() method.
- In the following example, the rectangle will spin indefinately.
+ In the following example, the rectangle will spin indefinitely.
\code
Rectangle {
@@ -574,12 +569,6 @@ void QDeclarativeAbstractAnimation::timelineComplete()
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
-/*!
- \internal
- \class QDeclarativePauseAnimation
-*/
-
-
QDeclarativePauseAnimation::QDeclarativePauseAnimation(QObject *parent)
: QDeclarativeAbstractAnimation(*(new QDeclarativePauseAnimationPrivate), parent)
{
@@ -659,11 +648,6 @@ QAbstractAnimation *QDeclarativePauseAnimation::qtAnimation()
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
-/*!
- \internal
- \class QDeclarativeColorAnimation
-*/
-
QDeclarativeColorAnimation::QDeclarativeColorAnimation(QObject *parent)
: QDeclarativePropertyAnimation(parent)
{
@@ -776,10 +760,6 @@ void QDeclarativeColorAnimation::setTo(const QColor &t)
\sa StateChangeScript
*/
-/*!
- \internal
- \class QDeclarativeScriptAction
-*/
QDeclarativeScriptAction::QDeclarativeScriptAction(QObject *parent)
:QDeclarativeAbstractAnimation(*(new QDeclarativeScriptActionPrivate), parent)
{
@@ -933,10 +913,6 @@ QAbstractAnimation *QDeclarativeScriptAction::qtAnimation()
\sa {QML Animation}, QtDeclarative
*/
-/*!
- \internal
- \class QDeclarativePropertyAction
-*/
QDeclarativePropertyAction::QDeclarativePropertyAction(QObject *parent)
: QDeclarativeAbstractAnimation(*(new QDeclarativePropertyActionPrivate), parent)
{
@@ -1185,12 +1161,6 @@ void QDeclarativePropertyAction::transition(QDeclarativeStateActions &actions,
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
-
-/*!
- \internal
- \class QDeclarativeNumberAnimation
-*/
-
QDeclarativeNumberAnimation::QDeclarativeNumberAnimation(QObject *parent)
: QDeclarativePropertyAnimation(parent)
{
@@ -1276,7 +1246,7 @@ void QDeclarativeNumberAnimation::setTo(qreal t)
/*!
\qmlclass Vector3dAnimation QDeclarativeVector3dAnimation
- \ingroup qml-animation-transition
+ \ingroup qml-animation-transition
\since 4.7
\inherits PropertyAnimation
\brief The Vector3dAnimation element animates changes in QVector3d values.
@@ -1291,12 +1261,6 @@ void QDeclarativeNumberAnimation::setTo(qreal t)
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
-
-/*!
- \internal
- \class QDeclarativeVector3dAnimation
-*/
-
QDeclarativeVector3dAnimation::QDeclarativeVector3dAnimation(QObject *parent)
: QDeclarativePropertyAnimation(parent)
{
@@ -1396,12 +1360,6 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
-
-/*!
- \internal
- \class QDeclarativeRotationAnimation
-*/
-
QVariant _q_interpolateShortestRotation(qreal &f, qreal &t, qreal progress)
{
qreal newt = t;
@@ -1702,11 +1660,6 @@ void QDeclarativeSequentialAnimation::transition(QDeclarativeStateActions &actio
\sa SequentialAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
-/*!
- \internal
- \class QDeclarativeParallelAnimation
-*/
-
QDeclarativeParallelAnimation::QDeclarativeParallelAnimation(QObject *parent) :
QDeclarativeAnimationGroup(parent)
{
@@ -2512,11 +2465,6 @@ void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
-
-/*!
- \internal
- \class QDeclarativeParentAnimation
-*/
QDeclarativeParentAnimation::QDeclarativeParentAnimation(QObject *parent)
: QDeclarativeAnimationGroup(*(new QDeclarativeParentAnimationPrivate), parent)
{
diff --git a/src/declarative/util/qdeclarativebind.cpp b/src/declarative/util/qdeclarativebind.cpp
index 86d08f5999..88b45ae6e4 100644
--- a/src/declarative/util/qdeclarativebind.cpp
+++ b/src/declarative/util/qdeclarativebind.cpp
@@ -72,7 +72,7 @@ public:
/*!
\qmlclass Binding QDeclarativeBind
- \ingroup qml-working-with-data
+ \ingroup qml-working-with-data
\since 4.7
\brief The Binding element allows arbitrary property bindings to be created.
@@ -95,18 +95,7 @@ public:
immediately pushed onto the new target.
\sa QtDeclarative
- */
-/*!
- \internal
- \class QDeclarativeBind
- \brief The QDeclarativeBind class allows arbitrary property bindings to be created.
-
- Simple bindings are usually earier to do in-place rather than creating a
- QDeclarativeBind item. For that reason, QDeclarativeBind is usually used to transfer property information
- from Qml to C++.
-
- \sa cppqml
- */
+*/
QDeclarativeBind::QDeclarativeBind(QObject *parent)
: QObject(*(new QDeclarativeBindPrivate), parent)
{
diff --git a/src/declarative/util/qdeclarativeconnections.cpp b/src/declarative/util/qdeclarativeconnections.cpp
index 293928ecca..15e5ac55dd 100644
--- a/src/declarative/util/qdeclarativeconnections.cpp
+++ b/src/declarative/util/qdeclarativeconnections.cpp
@@ -124,13 +124,6 @@ public:
\sa QtDeclarative
*/
-
-/*!
- \internal
- \class QDeclarativeConnections
- \brief The QDeclarativeConnections class describes generalized connections to signals.
-
-*/
QDeclarativeConnections::QDeclarativeConnections(QObject *parent) :
QObject(*(new QDeclarativeConnectionsPrivate), parent)
{
diff --git a/src/declarative/util/qdeclarativelistmodel.cpp b/src/declarative/util/qdeclarativelistmodel.cpp
index 0162bebf4c..f290ab29ec 100644
--- a/src/declarative/util/qdeclarativelistmodel.cpp
+++ b/src/declarative/util/qdeclarativelistmodel.cpp
@@ -58,9 +58,6 @@ Q_DECLARE_METATYPE(QListModelInterface *)
QT_BEGIN_NAMESPACE
-#define DATA_ROLE_ID 1
-#define DATA_ROLE_NAME "data"
-
QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListModelData::instructions() const
{
return (QDeclarativeListModelParser::ListInstruction *)((char *)this + sizeof(ListModelData));
@@ -769,7 +766,7 @@ bool QDeclarativeListModelParser::definesEmptyList(const QString &s)
}
/*!
- \qmlclass ListElement
+ \qmlclass ListElement QDeclarativeListElement
\ingroup qml-working-with-data
\since 4.7
\brief The ListElement element defines a data item in a ListModel.
@@ -1250,7 +1247,6 @@ void ModelNode::setObjectValue(const QScriptValue& valuemap) {
}
void ModelNode::setListValue(const QScriptValue& valuelist) {
- QScriptValueIterator it(valuelist);
values.clear();
int size = valuelist.property(QLatin1String("length")).toInt32();
for (int i=0; i<size; i++) {
diff --git a/src/declarative/util/qdeclarativelistmodelworkeragent.cpp b/src/declarative/util/qdeclarativelistmodelworkeragent.cpp
index 498de6d774..d9df16989f 100644
--- a/src/declarative/util/qdeclarativelistmodelworkeragent.cpp
+++ b/src/declarative/util/qdeclarativelistmodelworkeragent.cpp
@@ -232,7 +232,7 @@ bool QDeclarativeListModelWorkerAgent::event(QEvent *e)
emit m_orig->itemsMoved(change.index, change.to, change.count);
break;
case Change::Changed:
- emit m_orig->itemsMoved(change.index, change.to, change.count);
+ emit m_orig->itemsChanged(change.index, change.to, orig->m_roles.keys());
break;
}
}
diff --git a/src/declarative/util/qdeclarativepixmapcache.cpp b/src/declarative/util/qdeclarativepixmapcache.cpp
index de2de21ef0..4fc52f5b31 100644
--- a/src/declarative/util/qdeclarativepixmapcache.cpp
+++ b/src/declarative/util/qdeclarativepixmapcache.cpp
@@ -155,7 +155,7 @@ protected:
private:
friend class QDeclarativePixmapReaderThreadObject;
void processJobs();
- void processJob(QDeclarativePixmapReply *);
+ void processJob(QDeclarativePixmapReply *, const QUrl &, const QSize &);
void networkRequestDone(QNetworkReply *);
QList<QDeclarativePixmapReply*> jobs;
@@ -434,23 +434,24 @@ void QDeclarativePixmapReader::processJobs()
QDeclarativePixmapReply *runningJob = jobs.takeLast();
runningJob->loading = true;
+ QUrl url = runningJob->data->url;
+ QSize requestSize = runningJob->data->requestSize;
locker.unlock();
- processJob(runningJob);
+ processJob(runningJob, url, requestSize);
locker.relock();
}
}
}
-void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob)
+void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob, const QUrl &url,
+ const QSize &requestSize)
{
- QUrl url = runningJob->data->url;
-
// fetch
if (url.scheme() == QLatin1String("image")) {
// Use QmlImageProvider
QSize readSize;
QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
- QImage image = ep->getImageFromProvider(url, &readSize, runningJob->data->requestSize);
+ QImage image = ep->getImageFromProvider(url, &readSize, requestSize);
QDeclarativePixmapReply::ReadError errorCode = QDeclarativePixmapReply::NoError;
QString errorStr;
@@ -472,7 +473,7 @@ void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob)
QFile f(lf);
QSize readSize;
if (f.open(QIODevice::ReadOnly)) {
- if (!readImage(url, &f, &image, &errorStr, &readSize, runningJob->data->requestSize))
+ if (!readImage(url, &f, &image, &errorStr, &readSize, requestSize))
errorCode = QDeclarativePixmapReply::Loading;
} else {
errorStr = QDeclarativePixmap::tr("Cannot open: %1").arg(url.toString());
@@ -663,6 +664,7 @@ void QDeclarativePixmapStore::shrinkCache(int remove)
data->prevUnreferenced = 0;
remove -= data->cost();
+ m_unreferencedCost -= data->cost();
data->removeFromCache();
delete data;
}
diff --git a/src/declarative/util/qdeclarativepropertychanges.cpp b/src/declarative/util/qdeclarativepropertychanges.cpp
index c28ada397e..e897458744 100644
--- a/src/declarative/util/qdeclarativepropertychanges.cpp
+++ b/src/declarative/util/qdeclarativepropertychanges.cpp
@@ -127,12 +127,6 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \internal
- \class QDeclarativePropertyChanges
- \brief The QDeclarativePropertyChanges class describes new property values for a state.
-*/
-
-/*!
\qmlproperty Object PropertyChanges::target
This property holds the object which contains the properties to be changed.
*/
diff --git a/src/declarative/util/qdeclarativesmoothedanimation.cpp b/src/declarative/util/qdeclarativesmoothedanimation.cpp
index b2f02e6022..ca83c524cb 100644
--- a/src/declarative/util/qdeclarativesmoothedanimation.cpp
+++ b/src/declarative/util/qdeclarativesmoothedanimation.cpp
@@ -214,22 +214,23 @@ void QSmoothedAnimation::init()
}
bool hasReversed = trackVelocity != 0. &&
- ((trackVelocity > 0) == ((initialValue - to) > 0));
+ ((!invert) == ((initialValue - to) > 0));
if (hasReversed) {
switch (reversingMode) {
default:
case QDeclarativeSmoothedAnimation::Eased:
+ initialVelocity = -trackVelocity;
break;
case QDeclarativeSmoothedAnimation::Sync:
QDeclarativePropertyPrivate::write(target, to,
QDeclarativePropertyPrivate::BypassInterceptor
| QDeclarativePropertyPrivate::DontRemoveBinding);
+ trackVelocity = 0;
stop();
return;
case QDeclarativeSmoothedAnimation::Immediate:
initialVelocity = 0;
- delayedStop();
break;
}
}
@@ -311,6 +312,17 @@ QDeclarativeSmoothedAnimationPrivate::QDeclarativeSmoothedAnimationPrivate()
QDeclarative_setParent_noEvent(anim, q);
}
+void QDeclarativeSmoothedAnimationPrivate::updateRunningAnimations()
+{
+ foreach(QSmoothedAnimation* ease, activeAnimations.values()){
+ ease->maximumEasingTime = anim->maximumEasingTime;
+ ease->reversingMode = anim->reversingMode;
+ ease->velocity = anim->velocity;
+ ease->userDuration = anim->userDuration;
+ ease->init();
+ }
+}
+
QAbstractAnimation* QDeclarativeSmoothedAnimation::qtAnimation()
{
Q_D(QDeclarativeSmoothedAnimation);
@@ -340,7 +352,6 @@ void QDeclarativeSmoothedAnimation::transition(QDeclarativeStateActions &actions
ease = d->activeAnimations.value((*d->actions)[i].property);
needsRestart = true;
}
-
ease->target = (*d->actions)[i].property;
ease->to = (*d->actions)[i].toValue.toReal();
@@ -394,6 +405,7 @@ void QDeclarativeSmoothedAnimation::setReversingMode(ReversingMode m)
d->anim->reversingMode = m;
emit reversingModeChanged();
+ d->updateRunningAnimations();
}
/*!
@@ -402,6 +414,9 @@ void QDeclarativeSmoothedAnimation::setReversingMode(ReversingMode m)
This property holds the animation duration, in msecs, used when tracking the source.
Setting this to -1 (the default) disables the duration value.
+
+ If the velocity value and the duration value are both enabled, then the animation will
+ use whichever gives the shorter duration.
*/
int QDeclarativeSmoothedAnimation::duration() const
{
@@ -414,7 +429,10 @@ void QDeclarativeSmoothedAnimation::setDuration(int duration)
Q_D(QDeclarativeSmoothedAnimation);
if (duration != -1)
QDeclarativeNumberAnimation::setDuration(duration);
+ if(duration == d->anim->userDuration)
+ return;
d->anim->userDuration = duration;
+ d->updateRunningAnimations();
}
qreal QDeclarativeSmoothedAnimation::velocity() const
@@ -431,6 +449,9 @@ qreal QDeclarativeSmoothedAnimation::velocity() const
The default velocity of SmoothedAnimation is 200 units/second.
Setting this to -1 disables the velocity value.
+
+ If the velocity value and the duration value are both enabled, then the animation will
+ use whichever gives the shorter duration.
*/
void QDeclarativeSmoothedAnimation::setVelocity(qreal v)
{
@@ -440,12 +461,13 @@ void QDeclarativeSmoothedAnimation::setVelocity(qreal v)
d->anim->velocity = v;
emit velocityChanged();
+ d->updateRunningAnimations();
}
/*!
\qmlproperty int SmoothedAnimation::maximumEasingTime
- This property specifies the maximum time, in msecs, an "eases" during the follow should take.
+ This property specifies the maximum time, in msecs, any "eases" during the follow should take.
Setting this property causes the velocity to "level out" after at a time. Setting
a negative value reverts to the normal mode of easing over the entire animation
duration.
@@ -461,8 +483,11 @@ int QDeclarativeSmoothedAnimation::maximumEasingTime() const
void QDeclarativeSmoothedAnimation::setMaximumEasingTime(int v)
{
Q_D(QDeclarativeSmoothedAnimation);
+ if(v == d->anim->maximumEasingTime)
+ return;
d->anim->maximumEasingTime = v;
emit maximumEasingTimeChanged();
+ d->updateRunningAnimations();
}
QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativesmoothedanimation_p_p.h b/src/declarative/util/qdeclarativesmoothedanimation_p_p.h
index 8cdbea2696..cb0f4c2a4d 100644
--- a/src/declarative/util/qdeclarativesmoothedanimation_p_p.h
+++ b/src/declarative/util/qdeclarativesmoothedanimation_p_p.h
@@ -123,6 +123,7 @@ class QDeclarativeSmoothedAnimationPrivate : public QDeclarativePropertyAnimatio
Q_DECLARE_PUBLIC(QDeclarativeSmoothedAnimation)
public:
QDeclarativeSmoothedAnimationPrivate();
+ void updateRunningAnimations();
QParallelAnimationGroup *wrapperGroup;
QSmoothedAnimation *anim;
diff --git a/src/declarative/util/qdeclarativespringanimation.cpp b/src/declarative/util/qdeclarativespringanimation.cpp
index fce40976e3..e0fc45d4d7 100644
--- a/src/declarative/util/qdeclarativespringanimation.cpp
+++ b/src/declarative/util/qdeclarativespringanimation.cpp
@@ -62,10 +62,12 @@ public:
struct SpringAnimation {
SpringAnimation()
- : currentValue(0), to(0), velocity(0){}
+ : currentValue(0), to(0), velocity(0), start(0), duration(0) {}
qreal currentValue;
qreal to;
qreal velocity;
+ int start;
+ int duration;
};
QHash<QDeclarativeProperty, SpringAnimation> activeAnimations;
@@ -135,7 +137,6 @@ void QDeclarativeSpringAnimationPrivate::tick(int time)
bool QDeclarativeSpringAnimationPrivate::animate(const QDeclarativeProperty &property, SpringAnimation &animation, int elapsed)
{
-
qreal srcVal = animation.to;
bool stop = false;
@@ -192,18 +193,14 @@ bool QDeclarativeSpringAnimationPrivate::animate(const QDeclarativeProperty &pro
animation.currentValue += moveBy;
if (haveModulus)
animation.currentValue = fmod(animation.currentValue, modulus);
- if (animation.currentValue > animation.to) {
- animation.currentValue = animation.to;
- stop = true;
- }
} else {
animation.currentValue -= moveBy;
if (haveModulus && animation.currentValue < 0.0)
animation.currentValue = fmod(animation.currentValue, modulus) + modulus;
- if (animation.currentValue < animation.to) {
- animation.currentValue = animation.to;
- stop = true;
- }
+ }
+ if (lastTime - animation.start >= animation.duration) {
+ animation.currentValue = animation.to;
+ stop = true;
}
}
@@ -222,8 +219,18 @@ void QDeclarativeSpringAnimationPrivate::updateMode()
mode = Track;
else if (spring > 0.)
mode = Spring;
- else
+ else {
mode = Velocity;
+ QHash<QDeclarativeProperty, SpringAnimation>::iterator it;
+ for (it = activeAnimations.begin(); it != activeAnimations.end(); ++it) {
+ SpringAnimation &animation = *it;
+ animation.start = lastTime;
+ qreal dist = qAbs(animation.currentValue - animation.to);
+ if (haveModulus && dist > modulus / 2)
+ dist = modulus - fmod(dist, modulus);
+ animation.duration = dist / velocityms;
+ }
+ }
}
/*!
@@ -378,6 +385,7 @@ void QDeclarativeSpringAnimation::setModulus(qreal modulus)
if (d->modulus != modulus) {
d->haveModulus = modulus != 0.0;
d->modulus = modulus;
+ d->updateMode();
emit modulusChanged();
}
}
@@ -429,10 +437,17 @@ void QDeclarativeSpringAnimation::transition(QDeclarativeStateActions &actions,
QDeclarativeSpringAnimationPrivate::SpringAnimation &animation
= d->activeAnimations[property];
animation.to = d->actions->at(i).toValue.toReal();
+ animation.start = d->lastTime;
if (d->fromIsDefined)
animation.currentValue = d->actions->at(i).fromValue.toReal();
else
animation.currentValue = property.read().toReal();
+ if (d->mode == QDeclarativeSpringAnimationPrivate::Velocity) {
+ qreal dist = qAbs(animation.currentValue - animation.to);
+ if (d->haveModulus && dist > d->modulus / 2)
+ dist = d->modulus - fmod(dist, d->modulus);
+ animation.duration = dist / d->velocityms;
+ }
}
}
}
diff --git a/src/declarative/util/qdeclarativestate.cpp b/src/declarative/util/qdeclarativestate.cpp
index 6e17cf28d5..1ed7923447 100644
--- a/src/declarative/util/qdeclarativestate.cpp
+++ b/src/declarative/util/qdeclarativestate.cpp
@@ -123,9 +123,6 @@ bool QDeclarativeActionEvent::override(QDeclarativeActionEvent *other)
return false;
}
-/*!
- \internal
-*/
QDeclarativeStateOperation::QDeclarativeStateOperation(QObjectPrivate &dd, QObject *parent)
: QObject(dd, parent)
{
@@ -164,20 +161,6 @@ QDeclarativeStateOperation::QDeclarativeStateOperation(QObjectPrivate &dd, QObje
\sa {declarative/animation/states}{states example}, {qmlstates}{States},
{qdeclarativeanimation.html#transitions}{QML Transitions}, QtDeclarative
*/
-
-/*!
- \internal
- \class QDeclarativeState
- \brief The QDeclarativeState class allows you to define configurations of objects and properties.
-
-
- QDeclarativeState allows you to specify a state as a set of batched changes from the default
- configuration.
-
- \sa {states-transitions}{States and Transitions}
-*/
-
-
QDeclarativeState::QDeclarativeState(QObject *parent)
: QObject(*(new QDeclarativeStatePrivate), parent)
{
diff --git a/src/declarative/util/qdeclarativestateoperations.cpp b/src/declarative/util/qdeclarativestateoperations.cpp
index 6e6f0cb80b..845b3da7af 100644
--- a/src/declarative/util/qdeclarativestateoperations.cpp
+++ b/src/declarative/util/qdeclarativestateoperations.cpp
@@ -1427,6 +1427,7 @@ void QDeclarativeAnchorChanges::clearBindings()
if (!d->target)
return;
+ //### should this (saving "from" values) be moved to saveCurrentValues()?
d->fromX = d->target->x();
d->fromY = d->target->y();
d->fromWidth = d->target->width();
@@ -1486,22 +1487,8 @@ void QDeclarativeAnchorChanges::rewind()
return;
QDeclarativeItemPrivate *targetPrivate = QDeclarativeItemPrivate::get(d->target);
- //restore previous anchors
- if (d->rewindLeft.anchorLine != QDeclarativeAnchorLine::Invalid)
- targetPrivate->anchors()->setLeft(d->rewindLeft);
- if (d->rewindRight.anchorLine != QDeclarativeAnchorLine::Invalid)
- targetPrivate->anchors()->setRight(d->rewindRight);
- if (d->rewindHCenter.anchorLine != QDeclarativeAnchorLine::Invalid)
- targetPrivate->anchors()->setHorizontalCenter(d->rewindHCenter);
- if (d->rewindTop.anchorLine != QDeclarativeAnchorLine::Invalid)
- targetPrivate->anchors()->setTop(d->rewindTop);
- if (d->rewindBottom.anchorLine != QDeclarativeAnchorLine::Invalid)
- targetPrivate->anchors()->setBottom(d->rewindBottom);
- if (d->rewindVCenter.anchorLine != QDeclarativeAnchorLine::Invalid)
- targetPrivate->anchors()->setVerticalCenter(d->rewindVCenter);
- if (d->rewindBaseline.anchorLine != QDeclarativeAnchorLine::Invalid)
- targetPrivate->anchors()->setBaseline(d->rewindBaseline);
+ //restore previous values (but not previous bindings, i.e. anchors)
d->target->setX(d->rewindX);
d->target->setY(d->rewindY);
if (targetPrivate->widthValid) {
diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp
index 21d7ded5d8..478c7f45ae 100644
--- a/src/declarative/util/qdeclarativetransition.cpp
+++ b/src/declarative/util/qdeclarativetransition.cpp
@@ -99,12 +99,6 @@ QT_BEGIN_NAMESPACE
\sa {QML Animation}, {declarative/animation/states}{states example}, {qmlstates}{States}, {QtDeclarative}
*/
-/*!
- \internal
- \class QDeclarativeTransition
- \brief The QDeclarativeTransition class allows you to define animated transitions that occur on state changes.
-*/
-
//ParallelAnimationWrapper allows us to do a "callback" when the animation finishes, rather than connecting
//and disconnecting signals and slots frequently
class ParallelAnimationWrapper : public QParallelAnimationGroup
diff --git a/src/declarative/util/qdeclarativetransitionmanager.cpp b/src/declarative/util/qdeclarativetransitionmanager.cpp
index 9f198e4f31..d82c4bb89f 100644
--- a/src/declarative/util/qdeclarativetransitionmanager.cpp
+++ b/src/declarative/util/qdeclarativetransitionmanager.cpp
@@ -176,7 +176,7 @@ void QDeclarativeTransitionManager::transition(const QList<QDeclarativeAction> &
if (action.event->isReversable()) {
action.event->clearBindings();
action.event->rewind();
- action.event->clearBindings();
+ action.event->clearBindings(); //### shouldn't be needed
}
continue;
}
diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp
index 7b3d4a8f39..47b502d8c1 100644
--- a/src/declarative/util/qdeclarativexmllistmodel.cpp
+++ b/src/declarative/util/qdeclarativexmllistmodel.cpp
@@ -466,8 +466,6 @@ public:
QList<QDeclarativeXmlListModelRole *> roleObjects;
static void append_role(QDeclarativeListProperty<QDeclarativeXmlListModelRole> *list, QDeclarativeXmlListModelRole *role);
static void clear_role(QDeclarativeListProperty<QDeclarativeXmlListModelRole> *list);
- static void removeAt_role(QDeclarativeListProperty<QDeclarativeXmlListModelRole> *list, int i);
- static void insert_role(QDeclarativeListProperty<QDeclarativeXmlListModelRole> *list, int i, QDeclarativeXmlListModelRole *role);
QList<QList<QVariant> > data;
int redirectCount;
};
@@ -500,11 +498,6 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListProperty<QDecla
}
/*!
- \class QDeclarativeXmlListModel
- \internal
-*/
-
-/*!
\qmlclass XmlListModel QDeclarativeXmlListModel
\ingroup qml-working-with-data
\since 4.7
diff --git a/src/gui/accessible/qaccessible_win.cpp b/src/gui/accessible/qaccessible_win.cpp
index fc8575f8f3..132d01fa97 100644
--- a/src/gui/accessible/qaccessible_win.cpp
+++ b/src/gui/accessible/qaccessible_win.cpp
@@ -42,7 +42,7 @@
#ifndef QT_NO_ACCESSIBILITY
#include "qapplication.h"
-#include "qlibrary.h"
+#include <private/qsystemlibrary_p.h>
#include "qmessagebox.h" // ### dependency
#include "qt_windows.h"
#include "qwidget.h"
@@ -243,7 +243,7 @@ void QAccessible::updateAccessibility(QObject *o, int who, Event reason)
static bool resolvedNWE = false;
if (!resolvedNWE) {
resolvedNWE = true;
- ptrNotifyWinEvent = (PtrNotifyWinEvent)QLibrary::resolve(QLatin1String("user32"), "NotifyWinEvent");
+ ptrNotifyWinEvent = (PtrNotifyWinEvent)QSystemLibrary::resolve(QLatin1String("user32"), "NotifyWinEvent");
}
if (!ptrNotifyWinEvent)
return;
diff --git a/src/gui/dialogs/qfiledialog_win.cpp b/src/gui/dialogs/qfiledialog_win.cpp
index 258707c2db..5b192b4e34 100644
--- a/src/gui/dialogs/qfiledialog_win.cpp
+++ b/src/gui/dialogs/qfiledialog_win.cpp
@@ -52,7 +52,7 @@
#include <qbuffer.h>
#include <qdir.h>
#include <qstringlist.h>
-#include <qlibrary.h>
+#include <private/qsystemlibrary_p.h>
#include "qfiledialog_win_p.h"
#ifndef QT_NO_THREAD
@@ -100,10 +100,10 @@ static void qt_win_resolve_libs()
triedResolve = true;
#if !defined(Q_WS_WINCE)
- QLibrary lib(QLatin1String("shell32"));
- ptrSHBrowseForFolder = (PtrSHBrowseForFolder) lib.resolve("SHBrowseForFolderW");
- ptrSHGetPathFromIDList = (PtrSHGetPathFromIDList) lib.resolve("SHGetPathFromIDListW");
- ptrSHGetMalloc = (PtrSHGetMalloc) lib.resolve("SHGetMalloc");
+ QSystemLibrary lib(L"shell32");
+ ptrSHBrowseForFolder = (PtrSHBrowseForFolder)lib.resolve("SHBrowseForFolderW");
+ ptrSHGetPathFromIDList = (PtrSHGetPathFromIDList)lib.resolve("SHGetPathFromIDListW");
+ ptrSHGetMalloc = (PtrSHGetMalloc)lib.resolve("SHGetMalloc");
#else
// CE stores them in a different lib and does not use unicode version
HINSTANCE handle = LoadLibrary(L"Ceshell");
@@ -409,7 +409,7 @@ static bool qt_win_set_IFileDialogOptions(IFileDialog *pfd,
{
if (!pSHCreateItemFromParsingName) {
// This function is available only in Vista & above.
- QLibrary shellLib(QLatin1String("Shell32"));
+ QSystemLibrary shellLib(QLatin1String("Shell32"));
pSHCreateItemFromParsingName = (PtrSHCreateItemFromParsingName)
shellLib.resolve("SHCreateItemFromParsingName");
if (!pSHCreateItemFromParsingName)
diff --git a/src/gui/dialogs/qwizard_win.cpp b/src/gui/dialogs/qwizard_win.cpp
index ad8801a094..5fca8f2272 100644
--- a/src/gui/dialogs/qwizard_win.cpp
+++ b/src/gui/dialogs/qwizard_win.cpp
@@ -43,7 +43,7 @@
#ifndef QT_NO_STYLE_WINDOWSVISTA
#include "qwizard_win_p.h"
-#include "qlibrary.h"
+#include <private/qsystemlibrary_p.h>
#include "qwizard.h"
#include "qpaintengine.h"
#include "qapplication.h"
@@ -706,7 +706,7 @@ bool QVistaHelper::resolveSymbols()
static bool tried = false;
if (!tried) {
tried = true;
- QLibrary dwmLib(QString::fromAscii("dwmapi"));
+ QSystemLibrary dwmLib(L"dwmapi");
pDwmIsCompositionEnabled =
(PtrDwmIsCompositionEnabled)dwmLib.resolve("DwmIsCompositionEnabled");
if (pDwmIsCompositionEnabled) {
@@ -714,7 +714,7 @@ bool QVistaHelper::resolveSymbols()
pDwmExtendFrameIntoClientArea =
(PtrDwmExtendFrameIntoClientArea)dwmLib.resolve("DwmExtendFrameIntoClientArea");
}
- QLibrary themeLib(QString::fromAscii("uxtheme"));
+ QSystemLibrary themeLib(L"uxtheme");
pIsAppThemed = (PtrIsAppThemed)themeLib.resolve("IsAppThemed");
if (pIsAppThemed) {
pDrawThemeBackground = (PtrDrawThemeBackground)themeLib.resolve("DrawThemeBackground");
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 0b3b1647e0..7a5b8de8e2 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -5666,9 +5666,6 @@ void QGraphicsItem::update(const QRectF &rect)
return;
}
- if (d_ptr->discardUpdateRequest())
- return;
-
if (d_ptr->scene)
d_ptr->scene->d_func()->markDirty(this, rect);
}
@@ -7758,18 +7755,21 @@ void QGraphicsItemPrivate::resetHeight()
}
/*!
- \property QGraphicsObject::children
- \internal
+ \property QGraphicsObject::children
+ \since 4.7
+ \internal
*/
/*!
- \property QGraphicsObject::width
- \internal
+ \property QGraphicsObject::width
+ \since 4.7
+ \internal
*/
/*!
- \property QGraphicsObject::height
- \internal
+ \property QGraphicsObject::height
+ \since 4.7
+ \internal
*/
/*!
@@ -7985,24 +7985,6 @@ void QGraphicsItemPrivate::resetHeight()
*/
/*!
- \property QGraphicsObject::children
- \since 4.7
- \internal
-*/
-
-/*!
- \property QGraphicsObject::width
- \since 4.7
- \internal
-*/
-
-/*!
- \property QGraphicsObject::height
- \since 4.7
- \internal
-*/
-
-/*!
\class QAbstractGraphicsShapeItem
\brief The QAbstractGraphicsShapeItem class provides a common base for
all path items.
@@ -10918,8 +10900,8 @@ QVariant QGraphicsSimpleTextItem::extension(const QVariant &variant) const
/*!
\class QGraphicsItemGroup
- \brief The QGraphicsItemGroup class provides treating a group of items as
- one.
+ \brief The QGraphicsItemGroup class provides a container that treats
+ a group of items as a single item.
\since 4.2
\ingroup graphicsview-api
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 3c23884b7a..539685ad42 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -1074,7 +1074,7 @@ void QGraphicsScenePrivate::enableMouseTrackingOnViews()
/*!
Returns all items for the screen position in \a event.
*/
-QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &screenPos,
+QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &/*screenPos*/,
const QPointF &scenePos,
QWidget *widget) const
{
@@ -1083,16 +1083,12 @@ QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &scre
if (!view)
return q->items(scenePos, Qt::IntersectsItemShape, Qt::DescendingOrder, QTransform());
- const QRectF pointRect(QPointF(widget->mapFromGlobal(screenPos)), QSizeF(1, 1));
+ const QRectF pointRect(scenePos, QSizeF(1, 1));
if (!view->isTransformed())
return q->items(pointRect, Qt::IntersectsItemShape, Qt::DescendingOrder);
const QTransform viewTransform = view->viewportTransform();
- if (viewTransform.type() <= QTransform::TxScale) {
- return q->items(viewTransform.inverted().mapRect(pointRect), Qt::IntersectsItemShape,
- Qt::DescendingOrder, viewTransform);
- }
- return q->items(viewTransform.inverted().map(pointRect), Qt::IntersectsItemShape,
+ return q->items(pointRect, Qt::IntersectsItemShape,
Qt::DescendingOrder, viewTransform);
}
@@ -5742,16 +5738,11 @@ void QGraphicsScenePrivate::touchEventHandler(QTouchEvent *sceneTouchEvent)
}
if (sceneTouchEvent->deviceType() == QTouchEvent::TouchScreen) {
- // on touch-screens, combine this touch point with the closest one we find if it
- // is a a direct descendent or ancestor (
+ // on touch-screens, combine this touch point with the closest one we find
int closestTouchPointId = findClosestTouchPointId(touchPoint.scenePos());
QGraphicsItem *closestItem = itemForTouchPointId.value(closestTouchPointId);
- if (!item
- || (closestItem
- && (item->isAncestorOf(closestItem)
- || closestItem->isAncestorOf(item)))) {
+ if (!item || (closestItem && cachedItemsUnderMouse.contains(closestItem)))
item = closestItem;
- }
}
if (!item)
continue;
diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp
index bd3f2efd32..1f155c6e9d 100644
--- a/src/gui/graphicsview/qgraphicstransform.cpp
+++ b/src/gui/graphicsview/qgraphicstransform.cpp
@@ -346,21 +346,24 @@ void QGraphicsScale::applyTo(QMatrix4x4 *matrix) const
/*!
\fn QGraphicsScale::xScaleChanged()
+ \since 4.7
- QGraphicsScale emits this signal when its xScale changes.
+ This signal is emitted whenever the \l xScale property changes.
*/
/*!
\fn QGraphicsScale::yScaleChanged()
+ \since 4.7
- QGraphicsScale emits this signal when its yScale changes.
+ This signal is emitted whenever the \l yScale property changes.
*/
/*!
\fn QGraphicsScale::zScaleChanged()
+ \since 4.7
- QGraphicsScale emits this signal when its zScale changes.
-*/
+ This signal is emitted whenever the \l zScale property changes.
+*/
/*!
\fn QGraphicsScale::scaleChanged()
@@ -583,27 +586,6 @@ void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
\sa QGraphicsRotation::axis
*/
-/*!
- \fn QGraphicsScale::xScaleChanged()
- \since 4.7
-
- This signal is emitted whenever the \l xScale property changes.
-*/
-
-/*!
- \fn QGraphicsScale::yScaleChanged()
- \since 4.7
-
- This signal is emitted whenever the \l yScale property changes.
-*/
-
-/*!
- \fn QGraphicsScale::zScaleChanged()
- \since 4.7
-
- This signal is emitted whenever the \l zScale property changes.
-*/
-
#include "moc_qgraphicstransform.cpp"
QT_END_NAMESPACE
diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp
index 0fabd18bda..1bfe266f69 100644
--- a/src/gui/graphicsview/qgraphicswidget.cpp
+++ b/src/gui/graphicsview/qgraphicswidget.cpp
@@ -937,7 +937,9 @@ void QGraphicsWidget::setStyle(QStyle *style)
QFont QGraphicsWidget::font() const
{
Q_D(const QGraphicsWidget);
- return d->font;
+ QFont fnt = d->font;
+ fnt.resolve(fnt.resolve() | d->inheritedFontResolveMask);
+ return fnt;
}
void QGraphicsWidget::setFont(const QFont &font)
{
diff --git a/src/gui/graphicsview/qgraphicswidget_p.cpp b/src/gui/graphicsview/qgraphicswidget_p.cpp
index f7850cad80..34667337b5 100644
--- a/src/gui/graphicsview/qgraphicswidget_p.cpp
+++ b/src/gui/graphicsview/qgraphicswidget_p.cpp
@@ -254,7 +254,10 @@ void QGraphicsWidgetPrivate::setFont_helper(const QFont &font)
void QGraphicsWidgetPrivate::resolveFont(uint inheritedMask)
{
+ Q_Q(QGraphicsWidget);
inheritedFontResolveMask = inheritedMask;
+ if (QGraphicsWidget *p = q->parentWidget())
+ inheritedFontResolveMask |= p->d_func()->inheritedFontResolveMask;
QFont naturalFont = naturalWidgetFont();
QFont resolvedFont = font.resolve(naturalFont);
updateFont(resolvedFont);
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index ad791309ca..0527ccec48 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -99,7 +99,7 @@ neon:*-g++* {
contains(QMAKE_MAC_XARCH, no) {
DEFINES += QT_NO_MAC_XARCH
} else {
- win32-g++*|!win32:!*-icc* {
+ win32-g++*|!win32:!win32-icc*:!macx-icc* {
mmx {
mmx_compiler.commands = $$QMAKE_CXX -c -Winline
diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp
index 9d571b518d..47249d9873 100644
--- a/src/gui/image/qpixmap_s60.cpp
+++ b/src/gui/image/qpixmap_s60.cpp
@@ -63,6 +63,45 @@ QT_BEGIN_NAMESPACE
const uchar qt_pixmap_bit_mask[] = { 0x01, 0x02, 0x04, 0x08,
0x10, 0x20, 0x40, 0x80 };
+static bool cleanup_function_registered = false;
+static QS60PixmapData *firstPixmap = 0;
+
+// static
+void QS60PixmapData::qt_symbian_register_pixmap(QS60PixmapData *pd)
+{
+ if (!cleanup_function_registered) {
+ qAddPostRoutine(qt_symbian_release_pixmaps);
+ cleanup_function_registered = true;
+ }
+
+ pd->next = firstPixmap;
+ pd->prev = 0;
+ if (firstPixmap)
+ firstPixmap->prev = pd;
+ firstPixmap = pd;
+}
+
+// static
+void QS60PixmapData::qt_symbian_unregister_pixmap(QS60PixmapData *pd)
+{
+ if (pd->next)
+ pd->next->prev = pd->prev;
+ if (pd->prev)
+ pd->prev->next = pd->next;
+ else
+ firstPixmap = pd->next;
+}
+
+// static
+void QS60PixmapData::qt_symbian_release_pixmaps()
+{
+ // Scan all QS60PixmapData objects in the system and destroy them.
+ QS60PixmapData *pd = firstPixmap;
+ while (pd != 0) {
+ pd->release();
+ pd = pd->next;
+ }
+}
/*
\class QSymbianFbsClient
@@ -356,15 +395,18 @@ QS60PixmapData::QS60PixmapData(PixelType type) : QRasterPixmapData(type),
cfbsBitmap(0),
pengine(0),
bytes(0),
- formatLocked(false)
+ formatLocked(false),
+ next(0),
+ prev(0)
{
-
+ qt_symbian_register_pixmap(this);
}
QS60PixmapData::~QS60PixmapData()
{
release();
delete symbianBitmapDataAccess;
+ qt_symbian_unregister_pixmap(this);
}
void QS60PixmapData::resize(int width, int height)
@@ -789,7 +831,6 @@ void* QS60PixmapData::toNativeType(NativeType type)
bool convertToArgb32 = false;
bool needsCopy = false;
- QSysInfo::SymbianVersion symbianVersion = QSysInfo::symbianVersion();
if (!(S60->supportsPremultipliedAlpha)) {
// Convert argb32_premultiplied to argb32 since Symbian 9.2 does
// not support premultipied format.
diff --git a/src/gui/image/qpixmap_s60_p.h b/src/gui/image/qpixmap_s60_p.h
index 85c9ebe751..42cc830c37 100644
--- a/src/gui/image/qpixmap_s60_p.h
+++ b/src/gui/image/qpixmap_s60_p.h
@@ -120,6 +120,13 @@ private:
bool formatLocked;
+ QS60PixmapData *next;
+ QS60PixmapData *prev;
+
+ static void qt_symbian_register_pixmap(QS60PixmapData *pd);
+ static void qt_symbian_unregister_pixmap(QS60PixmapData *pd);
+ static void qt_symbian_release_pixmaps();
+
friend class QPixmap;
friend class QS60WindowSurface;
friend class QS60PaintEngine;
diff --git a/src/gui/inputmethod/qcoefepinputcontext_p.h b/src/gui/inputmethod/qcoefepinputcontext_p.h
index d5243c3f07..ac40bba0a3 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_p.h
+++ b/src/gui/inputmethod/qcoefepinputcontext_p.h
@@ -66,10 +66,10 @@
QT_BEGIN_NAMESPACE
-class QCoeFepInputContext : public QInputContext,
- public MCoeFepAwareTextEditor,
- public MCoeFepAwareTextEditor_Extension1,
- public MObjectProvider
+class Q_AUTOTEST_EXPORT QCoeFepInputContext : public QInputContext,
+ public MCoeFepAwareTextEditor,
+ public MCoeFepAwareTextEditor_Extension1,
+ public MObjectProvider
{
Q_OBJECT
@@ -84,6 +84,7 @@ public:
void update();
bool filterEvent(const QEvent *event);
+ bool symbianFilterEvent(QWidget *keyWidget, const QSymbianEvent *event);
void mouseHandler( int x, QMouseEvent *event);
bool isComposing() const { return !m_preeditString.isEmpty(); }
@@ -151,9 +152,10 @@ private:
int m_inlinePosition;
MFepInlineTextFormatRetriever *m_formatRetriever;
MFepPointerEventHandlerDuringInlineEdit *m_pointerHandler;
- int m_cursorPos;
QBasicTimer m_tempPreeditStringTimeout;
bool m_hasTempPreeditString;
+
+ friend class tst_QInputContext;
};
QT_END_NAMESPACE
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index c4d60a526b..af86d77530 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -47,6 +47,7 @@
#include <qgraphicsview.h>
#include <qgraphicsscene.h>
#include <qgraphicswidget.h>
+#include <qsymbianevent.h>
#include <private/qcore_symbian_p.h>
#include <fepitfr.h>
@@ -79,7 +80,6 @@ QCoeFepInputContext::QCoeFepInputContext(QObject *parent)
m_inlinePosition(0),
m_formatRetriever(0),
m_pointerHandler(0),
- m_cursorPos(0),
m_hasTempPreeditString(false)
{
m_fepState->SetObjectProvider(this);
@@ -237,11 +237,17 @@ bool QCoeFepInputContext::filterEvent(const QEvent *event)
break;
}
+ QString widgetText = focusWidget()->inputMethodQuery(Qt::ImSurroundingText).toString();
+ int maxLength = focusWidget()->inputMethodQuery(Qt::ImMaximumTextLength).toInt();
+ if (!keyEvent->text().isEmpty() && widgetText.size() + m_preeditString.size() >= maxLength) {
+ // Don't send key events with string content if the widget is "full".
+ return true;
+ }
+
if (keyEvent->type() == QEvent::KeyPress
&& focusWidget()->inputMethodHints() & Qt::ImhHiddenText
&& !keyEvent->text().isEmpty()) {
// Send some temporary preedit text in order to make text visible for a moment.
- m_cursorPos = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
m_preeditString = keyEvent->text();
QList<QInputMethodEvent::Attribute> attributes;
QInputMethodEvent imEvent(m_preeditString, attributes);
@@ -282,6 +288,18 @@ bool QCoeFepInputContext::filterEvent(const QEvent *event)
return false;
}
+bool QCoeFepInputContext::symbianFilterEvent(QWidget *keyWidget, const QSymbianEvent *event)
+{
+ Q_UNUSED(keyWidget);
+ if (event->type() == QSymbianEvent::CommandEvent)
+ // A command basically means the same as a button being pushed. With Qt buttons
+ // that would normally result in a reset of the input method due to the focus change.
+ // This should also happen for commands.
+ reset();
+
+ return false;
+}
+
void QCoeFepInputContext::timerEvent(QTimerEvent *timerEvent)
{
if (timerEvent->timerId() == m_tempPreeditStringTimeout.timerId())
@@ -297,10 +315,6 @@ void QCoeFepInputContext::commitTemporaryPreeditString()
return;
commitCurrentString(false);
-
- //update cursor position, now this pre-edit text has been committed.
- //this prevents next keypress overwriting it (QTBUG-11673)
- m_cursorPos = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
}
void QCoeFepInputContext::mouseHandler( int x, QMouseEvent *event)
@@ -368,6 +382,9 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
const bool anytextmodes = hints & (ImhUppercaseOnly | ImhLowercaseOnly | ImhEmailCharactersOnly | ImhUrlCharactersOnly);
const bool numbersOnly = anynumbermodes && !anytextmodes;
const bool noOnlys = !(hints & ImhExclusiveInputMask);
+ // if alphanumeric input, or if multiple incompatible number modes are selected;
+ // then make all symbols available in numeric mode too.
+ const bool needsCharMap= !numbersOnly || ((hints & ImhFormattedNumbersOnly) && (hints & ImhDialableCharactersOnly));
TInt flags;
Qt::InputMethodHints oldHints = hints;
@@ -467,9 +484,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
if (hints & ImhNoPredictiveText || hints & ImhHiddenText) {
flags |= EAknEditorFlagNoT9;
}
- // if alphanumeric input, or if multiple incompatible number modes are selected;
- // then make all symbols available in numeric mode too.
- if (!numbersOnly || ((hints & ImhFormattedNumbersOnly) && (hints & ImhDialableCharactersOnly)))
+ if (needsCharMap)
flags |= EAknEditorFlagUseSCTNumericCharmap;
m_fepState->SetFlags(flags);
ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateFlagsUpdate);
@@ -494,8 +509,10 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG);
} else if (hints & ImhEmailCharactersOnly) {
m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_EMAIL_ADDR_SPECIAL_CHARACTER_TABLE_DIALOG);
- } else {
+ } else if (needsCharMap) {
m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG);
+ } else {
+ m_fepState->SetSpecialCharacterTableResourceId(0);
}
if (hints & ImhHiddenText) {
@@ -596,8 +613,6 @@ void QCoeFepInputContext::StartFepInlineEditL(const TDesC& aInitialInlineText,
commitTemporaryPreeditString();
- m_cursorPos = w->inputMethodQuery(Qt::ImCursorPosition).toInt();
-
QList<QInputMethodEvent::Attribute> attributes;
m_cursorVisibility = aCursorVisibility ? 1 : 0;
@@ -612,9 +627,10 @@ void QCoeFepInputContext::StartFepInlineEditL(const TDesC& aInitialInlineText,
// Let's remove the selected text if aInitialInlineText is empty and there is selected text
if (m_preeditString.isEmpty()) {
int anchor = w->inputMethodQuery(Qt::ImAnchorPosition).toInt();
- int replacementLength = qAbs(m_cursorPos-anchor);
+ int cursorPos = w->inputMethodQuery(Qt::ImCursorPosition).toInt();
+ int replacementLength = qAbs(cursorPos-anchor);
if (replacementLength > 0) {
- int replacementStart = m_cursorPos < anchor ? 0 : -replacementLength;
+ int replacementStart = cursorPos < anchor ? 0 : -replacementLength;
QList<QInputMethodEvent::Attribute> clearSelectionAttributes;
QInputMethodEvent clearSelectionEvent(QLatin1String(""), clearSelectionAttributes);
clearSelectionEvent.setCommitString(QLatin1String(""), replacementStart, replacementLength);
@@ -647,8 +663,13 @@ void QCoeFepInputContext::UpdateFepInlineTextL(const TDesC& aNewInlineText,
m_inlinePosition,
m_cursorVisibility,
QVariant()));
- m_preeditString = qt_TDesC2QString(aNewInlineText);
- QInputMethodEvent event(m_preeditString, attributes);
+ QString newPreeditString = qt_TDesC2QString(aNewInlineText);
+ QInputMethodEvent event(newPreeditString, attributes);
+ if (newPreeditString.isEmpty() && m_preeditString.isEmpty()) {
+ // In Symbian world this means "erase last character".
+ event.setCommitString(QLatin1String(""), -1, 1);
+ }
+ m_preeditString = newPreeditString;
sendEvent(event);
}
@@ -818,25 +839,13 @@ void QCoeFepInputContext::DoCommitFepInlineEditL()
void QCoeFepInputContext::commitCurrentString(bool cancelFepTransaction)
{
- int longPress = 0;
-
- if (m_preeditString.size() == 0) {
- QWidget *w = focusWidget();
- if (!cancelFepTransaction && w) {
- // We must replace the last character only if the input box has already accepted one
- if (w->inputMethodQuery(Qt::ImCursorPosition).toInt() != m_cursorPos)
- longPress = 1;
- }
- }
-
QList<QInputMethodEvent::Attribute> attributes;
QInputMethodEvent event(QLatin1String(""), attributes);
- event.setCommitString(m_preeditString, 0-longPress, longPress);
+ event.setCommitString(m_preeditString, 0, 0);
m_preeditString.clear();
sendEvent(event);
m_hasTempPreeditString = false;
- longPress = 0;
if (cancelFepTransaction) {
CCoeFep* fep = CCoeEnv::Static()->Fep();
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index b5af8b6ddd..ce5c2c6155 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -813,6 +813,12 @@ void QApplicationPrivate::construct(
if (testLib.load()) {
typedef void (*TasInitialize)(void);
TasInitialize initFunction = (TasInitialize)testLib.resolve("qt_testability_init");
+#ifdef Q_OS_SYMBIAN
+ // resolving method by name does not work on Symbian OS so need to use ordinal
+ if(!initFunction) {
+ initFunction = (TasInitialize)testLib.resolve("1");
+ }
+#endif
if (initFunction) {
initFunction();
} else {
diff --git a/src/gui/kernel/qapplication_mac.mm b/src/gui/kernel/qapplication_mac.mm
index 321492dfde..dd819e5ce3 100644
--- a/src/gui/kernel/qapplication_mac.mm
+++ b/src/gui/kernel/qapplication_mac.mm
@@ -737,9 +737,6 @@ static void qt_post_window_change_event(QWidget *widget)
*/
static void qt_mac_update_child_gl_widgets(QWidget *widget)
{
- if (widget->isWindow())
- return;
-
// Update all OpenGL child widgets for the given widget.
QList<QWidgetPrivate::GlWidgetInfo> &glWidgets = qt_widget_private(widget)->glWidgets;
QList<QWidgetPrivate::GlWidgetInfo>::iterator end = glWidgets.end();
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index 7c5e7909b6..e9379180c7 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -129,7 +129,13 @@ void QS60Data::setStatusPaneAndButtonGroupVisibility(bool statusPaneVisible, boo
statusPaneVisibilityChanged = (s->IsVisible() != statusPaneVisible);
s->MakeVisible(statusPaneVisible);
}
- if (buttonGroupVisibilityChanged && !statusPaneVisibilityChanged)
+ if (buttonGroupVisibilityChanged || statusPaneVisibilityChanged) {
+ const QSize size = qt_TRect2QRect(static_cast<CEikAppUi*>(S60->appUi())->ClientRect()).size();
+ const QSize oldSize; // note that QDesktopWidget::resizeEvent ignores the QResizeEvent contents
+ QResizeEvent event(size, oldSize);
+ QApplication::instance()->sendEvent(QApplication::desktop(), &event);
+ }
+ if (buttonGroupVisibilityChanged && !statusPaneVisibilityChanged && QApplication::activeWindow())
// Ensure that control rectangle is updated
static_cast<QSymbianControl *>(QApplication::activeWindow()->winId())->handleClientAreaChange();
}
@@ -1242,17 +1248,28 @@ void QSymbianControl::FocusChanged(TDrawNow /* aDrawNow */)
S60->setStatusPaneAndButtonGroupVisibility(statusPaneVisibility, buttonGroupVisibility);
#endif
} else if (QApplication::activeWindow() == qwidget->window()) {
- if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || S60->menuBeingConstructed) {
- QWidget *fw = QApplication::focusWidget();
- if (fw) {
- QFocusEvent event(QEvent::FocusOut, Qt::PopupFocusReason);
- QCoreApplication::sendEvent(fw, &event);
- }
- m_symbianPopupIsOpen = true;
- return;
+ bool focusedControlFound = false;
+ WId winId = 0;
+ for (QWidget *w = qwidget->parentWidget(); w && (winId = w->internalWinId()); w = w->parentWidget()) {
+ if (winId->IsFocused() && winId->IsVisible()) {
+ focusedControlFound = true;
+ break;
+ } else if (w->isWindow())
+ break;
}
+ if (!focusedControlFound) {
+ if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || S60->menuBeingConstructed) {
+ QWidget *fw = QApplication::focusWidget();
+ if (fw) {
+ QFocusEvent event(QEvent::FocusOut, Qt::PopupFocusReason);
+ QCoreApplication::sendEvent(fw, &event);
+ }
+ m_symbianPopupIsOpen = true;
+ return;
+ }
- QApplication::setActiveWindow(0);
+ QApplication::setActiveWindow(0);
+ }
}
// else { We don't touch the active window unless we were explicitly activated or deactivated }
}
@@ -1344,6 +1361,11 @@ void QSymbianControl::setFocusSafely(bool focus)
}
}
+bool QSymbianControl::isControlActive()
+{
+ return IsActivated() ? true : false;
+}
+
/*!
\typedef QApplication::QS60MainApplicationFactory
\since 4.6
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index 0c48bfdc30..78028eb1f4 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -68,7 +68,6 @@ extern void qt_wince_hide_taskbar(HWND hwnd); //defined in qguifunctions_wince.c
#include "qdatetime.h"
#include "qpointer.h"
#include "qhash.h"
-#include "qlibrary.h"
#include "qmetaobject.h"
#include "qmime.h"
#include "qpainter.h"
@@ -94,6 +93,7 @@ extern void qt_wince_hide_taskbar(HWND hwnd); //defined in qguifunctions_wince.c
#include "qdebug.h"
#include <private/qkeymapper_p.h>
#include <private/qlocale_p.h>
+#include <private/qsystemlibrary_p.h>
#include "qevent_p.h"
//#define ALIEN_DEBUG
@@ -206,7 +206,7 @@ static void resolveAygLibs()
{
if (!aygResolved) {
aygResolved = true;
- QLibrary ayglib(QLatin1String("aygshell"));
+ QSystemLibrary ayglib(QLatin1String("aygshell"));
if (!ayglib.load())
return;
ptrRecognizeGesture = (AygRecognizeGesture) ayglib.resolve("SHRecognizeGesture");
@@ -833,10 +833,10 @@ void qt_init(QApplicationPrivate *priv, int)
#ifndef Q_OS_WINCE
ptrUpdateLayeredWindowIndirect =
- (PtrUpdateLayeredWindowIndirect) QLibrary::resolve(QLatin1String("user32"),
+ (PtrUpdateLayeredWindowIndirect) QSystemLibrary::resolve(QLatin1String("user32"),
"UpdateLayeredWindowIndirect");
ptrUpdateLayeredWindow =
- (PtrUpdateLayeredWindow) QLibrary::resolve(QLatin1String("user32"),
+ (PtrUpdateLayeredWindow) QSystemLibrary::resolve(QLatin1String("user32"),
"UpdateLayeredWindow");
if (ptrUpdateLayeredWindow && !ptrUpdateLayeredWindowIndirect)
@@ -844,7 +844,7 @@ void qt_init(QApplicationPrivate *priv, int)
// Notify Vista and Windows 7 that we support highter DPI settings
ptrSetProcessDPIAware = (PtrSetProcessDPIAware)
- QLibrary::resolve(QLatin1String("user32"), "SetProcessDPIAware");
+ QSystemLibrary::resolve(QLatin1String("user32"), "SetProcessDPIAware");
if (ptrSetProcessDPIAware)
ptrSetProcessDPIAware();
#endif
@@ -865,30 +865,28 @@ void qt_init(QApplicationPrivate *priv, int)
#elif !defined(Q_WS_WINCE)
#if !defined(QT_NO_NATIVE_GESTURES)
priv->GetGestureInfo =
- (PtrGetGestureInfo)QLibrary::resolve(QLatin1String("user32"),
+ (PtrGetGestureInfo)QSystemLibrary::resolve(QLatin1String("user32"),
"GetGestureInfo");
priv->GetGestureExtraArgs =
- (PtrGetGestureExtraArgs)QLibrary::resolve(QLatin1String("user32"),
+ (PtrGetGestureExtraArgs)QSystemLibrary::resolve(QLatin1String("user32"),
"GetGestureExtraArgs");
priv->CloseGestureInfoHandle =
- (PtrCloseGestureInfoHandle)QLibrary::resolve(QLatin1String("user32"),
+ (PtrCloseGestureInfoHandle)QSystemLibrary::resolve(QLatin1String("user32"),
"CloseGestureInfoHandle");
priv->SetGestureConfig =
- (PtrSetGestureConfig)QLibrary::resolve(QLatin1String("user32"),
+ (PtrSetGestureConfig)QSystemLibrary::resolve(QLatin1String("user32"),
"SetGestureConfig");
priv->GetGestureConfig =
- (PtrGetGestureConfig)QLibrary::resolve(QLatin1String("user32"),
+ (PtrGetGestureConfig)QSystemLibrary::resolve(QLatin1String("user32"),
"GetGestureConfig");
#endif // QT_NO_NATIVE_GESTURES
+ QSystemLibrary libTheme(QLatin1String("uxtheme"));
priv->BeginPanningFeedback =
- (PtrBeginPanningFeedback)QLibrary::resolve(QLatin1String("uxtheme"),
- "BeginPanningFeedback");
+ (PtrBeginPanningFeedback)libTheme.resolve("BeginPanningFeedback");
priv->UpdatePanningFeedback =
- (PtrUpdatePanningFeedback)QLibrary::resolve(QLatin1String("uxtheme"),
- "UpdatePanningFeedback");
+ (PtrUpdatePanningFeedback)libTheme.resolve("UpdatePanningFeedback");
priv->EndPanningFeedback =
- (PtrEndPanningFeedback)QLibrary::resolve(QLatin1String("uxtheme"),
- "EndPanningFeedback");
+ (PtrEndPanningFeedback)libTheme.resolve("EndPanningFeedback");
#endif
#endif // QT_NO_GESTURES
}
@@ -2338,7 +2336,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa
if (!oleaccChecked) {
oleaccChecked = true;
#if !defined(Q_OS_WINCE)
- ptrLresultFromObject = (PtrLresultFromObject)QLibrary::resolve(QLatin1String("oleacc.dll"), "LresultFromObject");
+ ptrLresultFromObject = (PtrLresultFromObject)QSystemLibrary::resolve(QLatin1String("oleacc"), "LresultFromObject");
#endif
}
if (ptrLresultFromObject) {
@@ -3142,7 +3140,7 @@ bool QETWidget::translateMouseEvent(const MSG &msg)
if (curWin != 0) {
if (!trackMouseEventLookup) {
trackMouseEventLookup = true;
- ptrTrackMouseEvent = (PtrTrackMouseEvent)QLibrary::resolve(QLatin1String("comctl32"), "_TrackMouseEvent");
+ ptrTrackMouseEvent = (PtrTrackMouseEvent)QSystemLibrary::resolve(QLatin1String("comctl32"), "_TrackMouseEvent");
}
if (ptrTrackMouseEvent && !qApp->d_func()->inPopupMode()) {
// We always have to set the tracking, since
@@ -3677,7 +3675,7 @@ static void initWinTabFunctions()
if (!qt_is_gui_used)
return;
- QLibrary library(QLatin1String("wintab32"));
+ QSystemLibrary library(QLatin1String("wintab32"));
if (library.load()) {
ptrWTInfo = (PtrWTInfo)library.resolve("WTInfoW");
ptrWTGet = (PtrWTGet)library.resolve("WTGetW");
@@ -4100,7 +4098,7 @@ void QApplicationPrivate::initializeMultitouch_sys()
value & (QT_NID_INTEGRATED_TOUCH | QT_NID_EXTERNAL_TOUCH | QT_NID_MULTI_INPUT);
}
- QLibrary library(QLatin1String("user32"));
+ QSystemLibrary library(QLatin1String("user32"));
// MinGW (g++ 3.4.5) accepts only C casts.
RegisterTouchWindow = (PtrRegisterTouchWindow)(library.resolve("RegisterTouchWindow"));
GetTouchInputInfo = (PtrGetTouchInputInfo)(library.resolve("GetTouchInputInfo"));
diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
index e4d984818f..7495f6d9b6 100644
--- a/src/gui/kernel/qapplication_x11.cpp
+++ b/src/gui/kernel/qapplication_x11.cpp
@@ -3642,6 +3642,11 @@ int QApplication::x11ProcessEvent(XEvent* event)
case MapNotify: // window shown
if (widget->isWindow()) {
+ // if we got a MapNotify when we were not waiting for it, it most
+ // likely means the user has already asked to hide the window before
+ // it ever being shown, so we try to withdraw a window after sending
+ // the QShowEvent.
+ bool pendingHide = widget->testAttribute(Qt::WA_WState_ExplicitShowHide) && widget->testAttribute(Qt::WA_WState_Hidden);
widget->d_func()->topData()->waitingForMapNotify = 0;
if (widget->windowType() != Qt::Popup) {
@@ -3661,6 +3666,8 @@ int QApplication::x11ProcessEvent(XEvent* event)
widget->setAttribute(Qt::WA_WState_Visible, true);
}
}
+ if (pendingHide) // hide the window
+ XWithdrawWindow(X11->display, widget->internalWinId(), widget->x11Info().screen());
}
break;
diff --git a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
index 679514946c..ddf1a2738f 100644
--- a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
+++ b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
@@ -58,6 +58,8 @@ QT_BEGIN_NAMESPACE
extern Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum); // qcocoaview.mm
extern QPointer<QWidget> qt_button_down; //qapplication_mac.cpp
extern const QStringList& qEnabledDraggedTypes(); // qmime_mac.cpp
+extern void qt_event_request_window_change(QWidget *); // qapplication_mac.mm
+extern void qt_mac_send_posted_gl_updates(QWidget *widget); // qapplication_mac.mm
Q_GLOBAL_STATIC(QPointer<QWidget>, currentDragTarget);
@@ -227,6 +229,19 @@ QT_END_NAMESPACE
[self release];
}
+- (void)setInitialFirstResponder:(NSView *)view
+{
+ // This method is called the first time the window is placed on screen and
+ // is the earliest point in time we can connect OpenGL contexts to NSViews.
+ QWidget *qwidget = [[QT_MANGLE_NAMESPACE(QCocoaWindowDelegate) sharedDelegate] qt_qwidgetForWindow:self];
+ if (qwidget) {
+ qt_event_request_window_change(qwidget);
+ qt_mac_send_posted_gl_updates(qwidget);
+ }
+
+ [super setInitialFirstResponder:view];
+}
+
- (BOOL)makeFirstResponder:(NSResponder *)responder
{
// For some reason Cocoa wants to flip the first responder
diff --git a/src/gui/kernel/qdesktopwidget_win.cpp b/src/gui/kernel/qdesktopwidget_win.cpp
index 07dbc24b91..1b2dfe7a82 100644
--- a/src/gui/kernel/qdesktopwidget_win.cpp
+++ b/src/gui/kernel/qdesktopwidget_win.cpp
@@ -42,7 +42,7 @@
#include "qdesktopwidget.h"
#include "qt_windows.h"
#include "qapplication_p.h"
-#include "qlibrary.h"
+#include <private/qsystemlibrary_p.h>
#include <qvector.h>
#include <limits.h>
#ifdef Q_WS_WINCE
@@ -155,7 +155,7 @@ void QDesktopWidgetPrivate::init(QDesktopWidget *that)
screenCount = 0;
#ifndef Q_OS_WINCE
- QLibrary user32Lib(QLatin1String("user32"));
+ QSystemLibrary user32Lib(QLatin1String("user32"));
if (user32Lib.load()) {
enumDisplayMonitors = (EnumFunc)user32Lib.resolve("EnumDisplayMonitors");
getMonitorInfo = (InfoFunc)user32Lib.resolve("GetMonitorInfoW");
@@ -173,7 +173,7 @@ void QDesktopWidgetPrivate::init(QDesktopWidget *that)
enumDisplayMonitors = 0;
getMonitorInfo = 0;
#else
- QLibrary coreLib(QLatin1String("coredll"));
+ QSystemLibrary coreLib(QLatin1String("coredll"));
if (coreLib.load()) {
// CE >= 4.0 case
enumDisplayMonitors = (EnumFunc)coreLib.resolve("EnumDisplayMonitors");
diff --git a/src/gui/kernel/qeventdispatcher_mac.mm b/src/gui/kernel/qeventdispatcher_mac.mm
index 89f01d8ea9..515c6d3b9a 100644
--- a/src/gui/kernel/qeventdispatcher_mac.mm
+++ b/src/gui/kernel/qeventdispatcher_mac.mm
@@ -830,6 +830,7 @@ NSModalSession QEventDispatcherMacPrivate::currentModalSession()
[window setLevel:levelBeforeEnterModal];
}
currentModalSessionCached = info.session;
+ cleanupModalSessionsNeeded = false;
}
return currentModalSessionCached;
}
@@ -881,6 +882,10 @@ void QEventDispatcherMacPrivate::cleanupModalSessions()
for (int i=stackSize-1; i>=0; --i) {
QCocoaModalSessionInfo &info = cocoaModalSessionStack[i];
if (info.widget) {
+ // This session has a widget, and is therefore not marked
+ // as stopped. So just make it current. There might still be other
+ // stopped sessions on the stack, but those will be stopped on
+ // a later "cleanup" call.
currentModalSessionCached = info.session;
break;
}
@@ -926,6 +931,7 @@ void QEventDispatcherMacPrivate::endModalSession(QWidget *widget)
if (i == stackSize-1) {
// The top sessions ended. Interrupt the event dispatcher
// to start spinning the correct session immidiatly:
+ currentModalSessionCached = 0;
cleanupModalSessionsNeeded = true;
QEventDispatcherMac::instance()->interrupt();
}
diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index e768a21f30..5c8034082e 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -162,7 +162,7 @@ void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType typ
QMap<ObjectGesture, QList<QGesture *> >::Iterator iter = m_objectGestures.begin();
while (iter != m_objectGestures.end()) {
ObjectGesture objectGesture = iter.key();
- if (objectGesture.gesture == type && target == objectGesture.object.data()) {
+ if (objectGesture.gesture == type && target == objectGesture.object) {
QSet<QGesture *> gestures = iter.value().toSet();
for (QHash<QGestureRecognizer *, QSet<QGesture *> >::iterator
it = m_obsoleteGestures.begin(), e = m_obsoleteGestures.end(); it != e; ++it) {
@@ -172,6 +172,7 @@ void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType typ
m_deletedRecognizers.remove(g);
m_gestureToRecognizer.remove(g);
}
+
qDeleteAll(gestures);
iter = m_objectGestures.erase(iter);
} else {
@@ -595,8 +596,9 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
if (gesture->hasHotSpot()) {
// guess the target widget using the hotspot of the gesture
QPoint pt = gesture->hotSpot().toPoint();
- if (QWidget *w = qApp->topLevelAt(pt)) {
- target = w->childAt(w->mapFromGlobal(pt));
+ if (QWidget *topLevel = qApp->topLevelAt(pt)) {
+ QWidget *child = topLevel->childAt(topLevel->mapFromGlobal(pt));
+ target = child ? child : topLevel;
}
} else {
// or use the context of the gesture
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index 747cb1ae52..0d84b67434 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -106,13 +106,13 @@ private:
struct ObjectGesture
{
- QWeakPointer<QObject> object;
+ QObject* object;
Qt::GestureType gesture;
ObjectGesture(QObject *o, const Qt::GestureType &g) : object(o), gesture(g) { }
inline bool operator<(const ObjectGesture &rhs) const
{
- if (object.data() < rhs.object.data())
+ if (object < rhs.object)
return true;
if (object == rhs.object)
return gesture < rhs.gesture;
diff --git a/src/gui/kernel/qsoftkeymanager_s60.cpp b/src/gui/kernel/qsoftkeymanager_s60.cpp
index 6325d9502c..fee1580082 100644
--- a/src/gui/kernel/qsoftkeymanager_s60.cpp
+++ b/src/gui/kernel/qsoftkeymanager_s60.cpp
@@ -401,7 +401,7 @@ bool QSoftKeyManagerPrivateS60::handleCommand(int command)
foreach(QAction *menuAction, action->menu()->actions()) {
QMenu *menu = menuAction->menu();
if(menu)
- menuBar->addMenu(action->menu());
+ menuBar->addMenu(menu);
else
menuBar->addAction(menuAction);
}
diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h
index ad6a99a3c1..7fd2baa5d8 100644
--- a/src/gui/kernel/qt_s60_p.h
+++ b/src/gui/kernel/qt_s60_p.h
@@ -87,7 +87,7 @@ const TInt KInternalStatusPaneChange = 0x50000000;
//this macro exists because EColor16MAP enum value doesn't exist in Symbian OS 9.2
#define Q_SYMBIAN_ECOLOR16MAP TDisplayMode(13)
-class QS60ThreadLocalData
+class Q_AUTOTEST_EXPORT QS60ThreadLocalData
{
public:
QS60ThreadLocalData();
@@ -171,7 +171,7 @@ public:
#endif
};
-QS60Data* qGlobalS60Data();
+Q_AUTOTEST_EXPORT QS60Data* qGlobalS60Data();
#define S60 qGlobalS60Data()
class QAbstractLongTapObserver
@@ -211,6 +211,8 @@ public:
void setFocusSafely(bool focus);
+ bool isControlActive();
+
#ifdef Q_WS_S60
void FadeBehindPopup(bool fade){ popupFader.FadeBehindPopup( this, this, fade); }
void HandleStatusPaneSizeChange();
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 3ebe9c31b3..819e555569 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -4889,6 +4889,8 @@ void QWidgetPrivate::resolveLayoutDirection()
has been called for the parent do not inherit the parent's layout
direction.
+ This method no longer affects text layout direction since Qt 4.7.
+
\sa QApplication::layoutDirection
*/
void QWidget::setLayoutDirection(Qt::LayoutDirection direction)
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index 7494f92983..c98c05aa43 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -366,7 +366,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de
// Symbian windows are always created in an inactive state
// We perform this assignment for the case where the window is being re-created
- // as aa result of a call to setParent_sys, on either this widget or one of its
+ // as a result of a call to setParent_sys, on either this widget or one of its
// ancestors.
extra->activated = 0;
@@ -410,7 +410,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de
// Symbian windows are always created in an inactive state
// We perform this assignment for the case where the window is being re-created
- // as aa result of a call to setParent_sys, on either this widget or one of its
+ // as a result of a call to setParent_sys, on either this widget or one of its
// ancestors.
extra->activated = 0;
@@ -503,8 +503,10 @@ void QWidgetPrivate::show_sys()
// Can't use AppUi directly because it privately inherits from MEikStatusPaneObserver.
QSymbianControl *desktopControl = static_cast<QSymbianControl *>(QApplication::desktop()->winId());
S60->statusPane()->SetObserver(desktopControl);
- if (isFullscreen)
- S60->statusPane()->MakeVisible(false);
+ if (isFullscreen) {
+ const bool cbaVisible = S60->buttonGroupContainer() && S60->buttonGroupContainer()->IsVisible();
+ S60->setStatusPaneAndButtonGroupVisibility(false, cbaVisible);
+ }
}
}
}
@@ -954,7 +956,10 @@ void QWidgetPrivate::registerTouchWindow()
Q_Q(QWidget);
if (q->testAttribute(Qt::WA_WState_Created) && q->windowType() != Qt::Desktop) {
RWindow *rwindow = static_cast<RWindow *>(q->effectiveWinId()->DrawableWindow());
- rwindow->EnableAdvancedPointers();
+ QSymbianControl *window = static_cast<QSymbianControl *>(q->effectiveWinId());
+ //Enabling advanced pointer events for controls that already have active windows causes a panic.
+ if (!window->isControlActive())
+ rwindow->EnableAdvancedPointers();
}
#endif
}
diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp
index 59035b16a0..3d206fdefc 100644
--- a/src/gui/kernel/qwidget_win.cpp
+++ b/src/gui/kernel/qwidget_win.cpp
@@ -47,7 +47,6 @@
#include "qevent.h"
#include "qimage.h"
#include "qlayout.h"
-#include "qlibrary.h"
#include "qpainter.h"
#include "qstack.h"
#include "qt_windows.h"
@@ -65,6 +64,7 @@
#include <private/qapplication_p.h>
#include <private/qwininputcontext_p.h>
#include <private/qpaintengine_raster_p.h>
+#include <private/qsystemlibrary_p.h>
#if defined(Q_WS_WINCE)
#include "qguifunctions_wince.h"
@@ -148,7 +148,7 @@ static void init_wintab_functions()
#else
if (!qt_is_gui_used)
return;
- QLibrary library(QLatin1String("wintab32"));
+ QSystemLibrary library(QLatin1String("wintab32"));
ptrWTOpen = (PtrWTOpen)library.resolve("WTOpenW");
ptrWTInfo = (PtrWTInfo)library.resolve("WTInfoW");
ptrWTClose = (PtrWTClose)library.resolve("WTClose");
@@ -1890,7 +1890,7 @@ void QWidgetPrivate::setWindowOpacity_sys(qreal level)
static bool function_resolved = false;
if (!function_resolved) {
ptrSetLayeredWindowAttributes =
- (PtrSetLayeredWindowAttributes) QLibrary::resolve(QLatin1String("user32"),
+ (PtrSetLayeredWindowAttributes) QSystemLibrary::resolve(QLatin1String("user32"),
"SetLayeredWindowAttributes");
function_resolved = true;
}
diff --git a/src/gui/painting/qblendfunctions.cpp b/src/gui/painting/qblendfunctions.cpp
index 24908cec0d..0edf256315 100644
--- a/src/gui/painting/qblendfunctions.cpp
+++ b/src/gui/painting/qblendfunctions.cpp
@@ -254,10 +254,10 @@ void qt_scale_image_argb32_on_rgb16(uchar *destPixels, int dbpl,
}
}
-static void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
- const uchar *src, int sbpl,
- int w, int h,
- int const_alpha)
+void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
+ const uchar *src, int sbpl,
+ int w, int h,
+ int const_alpha)
{
#ifdef QT_DEBUG_DRAW
printf("qt_blend_rgb16_on_rgb16: dst=(%p, %d), src=(%p, %d), dim=(%d, %d) alpha=%d\n",
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 276da9362e..bd5b0bdf09 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -46,7 +46,6 @@
#include <private/qdrawhelper_armv6_p.h>
#include <private/qdrawhelper_neon_p.h>
#include <private/qmath_p.h>
-#include <private/qsimd_p.h>
#include <qmath.h>
QT_BEGIN_NAMESPACE
@@ -656,6 +655,86 @@ const uint * QT_FASTCALL fetchTransformed(uint *buffer, const Operator *, const
return buffer;
}
+/** \internal
+ interpolate 4 argb pixels with the distx and disty factor.
+ distx and disty bust be between 0 and 16
+ */
+static inline uint interpolate_4_pixels_16(uint tl, uint tr, uint bl, uint br, int distx, int disty)
+{
+ uint distxy = distx * disty;
+ //idistx * disty = (16-distx) * disty = 16*disty - distxy
+ //idistx * idisty = (16-distx) * (16-disty) = 16*16 - 16*distx -16*dity + distxy
+ uint tlrb = (tl & 0x00ff00ff) * (16*16 - 16*distx - 16*disty + distxy);
+ uint tlag = ((tl & 0xff00ff00) >> 8) * (16*16 - 16*distx - 16*disty + distxy);
+ uint trrb = ((tr & 0x00ff00ff) * (distx*16 - distxy));
+ uint trag = (((tr & 0xff00ff00) >> 8) * (distx*16 - distxy));
+ uint blrb = ((bl & 0x00ff00ff) * (disty*16 - distxy));
+ uint blag = (((bl & 0xff00ff00) >> 8) * (disty*16 - distxy));
+ uint brrb = ((br & 0x00ff00ff) * (distxy));
+ uint brag = (((br & 0xff00ff00) >> 8) * (distxy));
+ return (((tlrb + trrb + blrb + brrb) >> 8) & 0x00ff00ff) | ((tlag + trag + blag + brag) & 0xff00ff00);
+}
+
+#if defined(QT_ALWAYS_HAVE_SSE2)
+#define interpolate_4_pixels_16_sse2(tl, tr, bl, br, distx, disty, colorMask, v_256, b) \
+{ \
+ const __m128i dxdy = _mm_mullo_epi16 (distx, disty); \
+ const __m128i distx_ = _mm_slli_epi16(distx, 4); \
+ const __m128i disty_ = _mm_slli_epi16(disty, 4); \
+ const __m128i idxidy = _mm_add_epi16(dxdy, _mm_sub_epi16(v_256, _mm_add_epi16(distx_, disty_))); \
+ const __m128i dxidy = _mm_sub_epi16(distx_, dxdy); \
+ const __m128i idxdy = _mm_sub_epi16(disty_, dxdy); \
+ \
+ __m128i tlAG = _mm_srli_epi16(tl, 8); \
+ __m128i tlRB = _mm_and_si128(tl, colorMask); \
+ __m128i trAG = _mm_srli_epi16(tr, 8); \
+ __m128i trRB = _mm_and_si128(tr, colorMask); \
+ __m128i blAG = _mm_srli_epi16(bl, 8); \
+ __m128i blRB = _mm_and_si128(bl, colorMask); \
+ __m128i brAG = _mm_srli_epi16(br, 8); \
+ __m128i brRB = _mm_and_si128(br, colorMask); \
+ \
+ tlAG = _mm_mullo_epi16(tlAG, idxidy); \
+ tlRB = _mm_mullo_epi16(tlRB, idxidy); \
+ trAG = _mm_mullo_epi16(trAG, dxidy); \
+ trRB = _mm_mullo_epi16(trRB, dxidy); \
+ blAG = _mm_mullo_epi16(blAG, idxdy); \
+ blRB = _mm_mullo_epi16(blRB, idxdy); \
+ brAG = _mm_mullo_epi16(brAG, dxdy); \
+ brRB = _mm_mullo_epi16(brRB, dxdy); \
+ \
+ /* Add the values, and shift to only keep 8 significant bits per colors */ \
+ __m128i rAG =_mm_add_epi16(_mm_add_epi16(tlAG, trAG), _mm_add_epi16(blAG, brAG)); \
+ __m128i rRB =_mm_add_epi16(_mm_add_epi16(tlRB, trRB), _mm_add_epi16(blRB, brRB)); \
+ rAG = _mm_andnot_si128(colorMask, rAG); \
+ rRB = _mm_srli_epi16(rRB, 8); \
+ _mm_storeu_si128((__m128i*)(b), _mm_or_si128(rAG, rRB)); \
+}
+#endif
+
+
+template<TextureBlendType blendType>
+Q_STATIC_TEMPLATE_FUNCTION inline void fetchTransformedBilinear_pixelBounds(int max, int l1, int l2, int &v1, int &v2)
+{
+ if (blendType == BlendTransformedBilinearTiled) {
+ v1 %= max;
+ if (v1 < 0) v1 += max;
+ v2 = v1 + 1;
+ v2 %= max;
+ } else {
+ if (v1 < l1) {
+ v2 = v1 = l1;
+ } else if (v1 >= l2) {
+ v2 = v1 = l2;
+ } else {
+ v2 = v1 + 1;
+ }
+ }
+
+ Q_ASSERT(v1 >= 0 && v1 < max);
+ Q_ASSERT(v2 >= 0 && v2 < max);
+}
+
template<TextureBlendType blendType, QImage::Format format> /* blendType = BlendTransformedBilinear or BlendTransformedBilinearTiled */
Q_STATIC_TEMPLATE_FUNCTION
const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator *, const QSpanData *data,
@@ -676,13 +755,13 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator *
int image_x1 = data->texture.x1;
int image_y1 = data->texture.y1;
- int image_x2 = data->texture.x2;
- int image_y2 = data->texture.y2;
+ int image_x2 = data->texture.x2 - 1;
+ int image_y2 = data->texture.y2 - 1;
const qreal cx = x + 0.5;
const qreal cy = y + 0.5;
- const uint *end = buffer + length;
+ uint *end = buffer + length;
uint *b = buffer;
if (data->fast_matrix) {
// The increment pr x in the scanline
@@ -696,64 +775,295 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator *
fx -= half_point;
fy -= half_point;
- while (b < end) {
- int x1 = (fx >> 16);
- int x2;
+
+ if (fdy == 0) { //simple scale, no rotation
int y1 = (fy >> 16);
int y2;
+ fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+ const uchar *s1 = data->texture.scanLine(y1);
+ const uchar *s2 = data->texture.scanLine(y2);
- if (blendType == BlendTransformedBilinearTiled) {
- x1 %= image_width;
- if (x1 < 0) x1 += image_width;
- x2 = x1 + 1;
- x2 %= image_width;
-
- y1 %= image_height;
- if (y1 < 0) y1 += image_height;
- y2 = y1 + 1;
- y2 %= image_height;
- } else {
- if (x1 < image_x1) {
- x2 = x1 = image_x1;
- } else if (x1 >= image_x2 - 1) {
- x2 = x1 = image_x2 - 1;
+ if (fdx <= fixed_scale && fdx > 0) { // scale up on X
+ int disty = (fy & 0x0000ffff) >> 8;
+ int idisty = 256 - disty;
+ int x = fx >> 16;
+
+ // The idea is first to do the interpolation between the row s1 and the row s2
+ // into an intermediate buffer, then we interpolate between two pixel of this buffer.
+
+ // intermediate_buffer[0] is a buffer of red-blue component of the pixel, in the form 0x00RR00BB
+ // intermediate_buffer[1] is the alpha-green component of the pixel, in the form 0x00AA00GG
+ quint32 intermediate_buffer[2][buffer_size + 2];
+ // count is the size used in the intermediate_buffer.
+ int count = qCeil(length * data->m11) + 2; //+1 for the last pixel to interpolate with, and +1 for rounding errors.
+ Q_ASSERT(count <= buffer_size + 2); //length is supposed to be <= buffer_size and data->m11 < 1 in this case
+ int f = 0;
+ int lim = count;
+ if (blendType == BlendTransformedBilinearTiled) {
+ x %= image_width;
+ if (x < 0) x += image_width;
} else {
- x2 = x1 + 1;
+ lim = qMin(count, image_x2-x+1);
+ if (x < image_x1) {
+ Q_ASSERT(x <= image_x2);
+ uint t = fetch(s1, image_x1, data->texture.colorTable);
+ uint b = fetch(s2, image_x1, data->texture.colorTable);
+ quint32 rb = (((t & 0xff00ff) * idisty + (b & 0xff00ff) * disty) >> 8) & 0xff00ff;
+ quint32 ag = ((((t>>8) & 0xff00ff) * idisty + ((b>>8) & 0xff00ff) * disty) >> 8) & 0xff00ff;
+ do {
+ intermediate_buffer[0][f] = rb;
+ intermediate_buffer[1][f] = ag;
+ f++;
+ x++;
+ } while (x < image_x1 && f < lim);
+ }
}
- if (y1 < image_y1) {
- y2 = y1 = image_y1;
- } else if (y1 >= image_y2 - 1) {
- y2 = y1 = image_y2 - 1;
- } else {
- y2 = y1 + 1;
+
+#if defined(QT_ALWAYS_HAVE_SSE2)
+ if (blendType != BlendTransformedBilinearTiled &&
+ (format == QImage::Format_ARGB32_Premultiplied || format == QImage::Format_RGB32)) {
+
+ const __m128i disty_ = _mm_set1_epi16(disty);
+ const __m128i idisty_ = _mm_set1_epi16(idisty);
+ const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+
+ lim -= 3;
+ for (; f < lim; x += 4, f += 4) {
+ // Load 4 pixels from s1, and split the alpha-green and red-blue component
+ __m128i top = _mm_loadu_si128((__m128i*)((const uint *)(s1)+x));
+ __m128i topAG = _mm_srli_epi16(top, 8);
+ __m128i topRB = _mm_and_si128(top, colorMask);
+ // Multiplies each colour component by idisty
+ topAG = _mm_mullo_epi16 (topAG, idisty_);
+ topRB = _mm_mullo_epi16 (topRB, idisty_);
+
+ // Same for the s2 vector
+ __m128i bottom = _mm_loadu_si128((__m128i*)((const uint *)(s2)+x));
+ __m128i bottomAG = _mm_srli_epi16(bottom, 8);
+ __m128i bottomRB = _mm_and_si128(bottom, colorMask);
+ bottomAG = _mm_mullo_epi16 (bottomAG, disty_);
+ bottomRB = _mm_mullo_epi16 (bottomRB, disty_);
+
+ // Add the values, and shift to only keep 8 significant bits per colors
+ __m128i rAG =_mm_add_epi16(topAG, bottomAG);
+ rAG = _mm_srli_epi16(rAG, 8);
+ _mm_storeu_si128((__m128i*)(&intermediate_buffer[1][f]), rAG);
+ __m128i rRB =_mm_add_epi16(topRB, bottomRB);
+ rRB = _mm_srli_epi16(rRB, 8);
+ _mm_storeu_si128((__m128i*)(&intermediate_buffer[0][f]), rRB);
+ }
+ }
+#endif
+ for (; f < count; f++) { // Same as above but without sse2
+ if (blendType == BlendTransformedBilinearTiled) {
+ if (x >= image_width) x -= image_width;
+ } else {
+ x = qMin(x, image_x2);
+ }
+
+ uint t = fetch(s1, x, data->texture.colorTable);
+ uint b = fetch(s2, x, data->texture.colorTable);
+
+ intermediate_buffer[0][f] = (((t & 0xff00ff) * idisty + (b & 0xff00ff) * disty) >> 8) & 0xff00ff;
+ intermediate_buffer[1][f] = ((((t>>8) & 0xff00ff) * idisty + ((b>>8) & 0xff00ff) * disty) >> 8) & 0xff00ff;
+ x++;
+ }
+ // Now interpolate the values from the intermediate_buffer to get the final result.
+ fx &= fixed_scale - 1;
+ Q_ASSERT((fx >> 16) == 0);
+ while (b < end) {
+ register int x1 = (fx >> 16);
+ register int x2 = x1 + 1;
+ Q_ASSERT(x1 >= 0);
+ Q_ASSERT(x2 < count);
+
+ register int distx = (fx & 0x0000ffff) >> 8;
+ register int idistx = 256 - distx;
+ int rb = ((intermediate_buffer[0][x1] * idistx + intermediate_buffer[0][x2] * distx) >> 8) & 0xff00ff;
+ int ag = (intermediate_buffer[1][x1] * idistx + intermediate_buffer[1][x2] * distx) & 0xff00ff00;
+ *b = rb | ag;
+ b++;
+ fx += fdx;
+ }
+ } else if ((fdx < 0 && fdx > -(fixed_scale / 8)) || fabs(data->m22) < (1./8.)) { // scale up more than 8x
+ int y1 = (fy >> 16);
+ int y2;
+ fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+ const uchar *s1 = data->texture.scanLine(y1);
+ const uchar *s2 = data->texture.scanLine(y2);
+ int disty = (fy & 0x0000ffff) >> 8;
+ int idisty = 256 - disty;
+ while (b < end) {
+ int x1 = (fx >> 16);
+ int x2;
+ fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+ uint tl = fetch(s1, x1, data->texture.colorTable);
+ uint tr = fetch(s1, x2, data->texture.colorTable);
+ uint bl = fetch(s2, x1, data->texture.colorTable);
+ uint br = fetch(s2, x2, data->texture.colorTable);
+
+ int distx = (fx & 0x0000ffff) >> 8;
+ int idistx = 256 - distx;
+
+ uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
+ uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
+ *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
+
+ fx += fdx;
+ ++b;
+ }
+ } else { //scale down
+ int y1 = (fy >> 16);
+ int y2;
+ fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+ const uchar *s1 = data->texture.scanLine(y1);
+ const uchar *s2 = data->texture.scanLine(y2);
+ int disty = (fy & 0x0000ffff) >> 12;
+
+#if defined(QT_ALWAYS_HAVE_SSE2)
+ if (blendType != BlendTransformedBilinearTiled &&
+ (format == QImage::Format_ARGB32_Premultiplied || format == QImage::Format_RGB32)) {
+
+ //prolog to get into the bounds
+ while (b < end) {
+ int x1 = (fx >> 16);
+ int x2;
+ fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+ if (x1 != x2) //break if we are insided the bounds.
+ break;
+ uint tl = fetch(s1, x1, data->texture.colorTable);
+ uint tr = fetch(s1, x2, data->texture.colorTable);
+ uint bl = fetch(s2, x1, data->texture.colorTable);
+ uint br = fetch(s2, x2, data->texture.colorTable);
+ int distx = (fx & 0x0000ffff) >> 12;
+ *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty);
+ fx += fdx;
+ ++b;
+ }
+ uint *boundedEnd;
+ if (fdx > 0)
+ boundedEnd = qMin(end, buffer + uint((image_x2 - (fx >> 16)) / data->m11));
+ else
+ boundedEnd = qMin(end, buffer + uint((image_x1 - (fx >> 16)) / data->m11));
+ boundedEnd -= 3;
+
+ const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+ //const __m128i distShuffleMask = _mm_set_epi8(13, 12, 13, 12, 9, 8, 9, 8, 5, 4, 5, 4, 1, 0, 1, 0);
+ const __m128i v_256 = _mm_set1_epi16(256);
+ const __m128i v_disty = _mm_set1_epi16(disty);
+ __m128i v_fdx = _mm_set1_epi32(fdx*4);
+
+ ptrdiff_t secondLine = reinterpret_cast<const uint *>(s2) - reinterpret_cast<const uint *>(s1);
+
+ union Vect_buffer { __m128i vect; quint32 i[4]; };
+ Vect_buffer v_fx;
+
+ for (int i = 0; i < 4; i++) {
+ v_fx.i[i] = fx;
+ fx += fdx;
+ }
+
+ while (b < boundedEnd) {
+
+ Vect_buffer tl, tr, bl, br;
+
+ for (int i = 0; i < 4; i++) {
+ int x1 = v_fx.i[i] >> 16;
+ const uint *addr_tl = reinterpret_cast<const uint *>(s1) + x1;
+ const uint *addr_tr = addr_tl + 1;
+ tl.i[i] = *addr_tl;
+ tr.i[i] = *addr_tr;
+ bl.i[i] = *(addr_tl+secondLine);
+ br.i[i] = *(addr_tr+secondLine);
+ }
+ __m128i v_distx = _mm_srli_epi16(v_fx.vect, 12); //distx = (fx & 0x0000ffff) >> 12;
+ //v_distx = _mm_shuffle_epi8(v_disty, distShuffleMask); //distx |= distx << 16;
+ v_distx = _mm_shufflehi_epi16(v_distx, _MM_SHUFFLE(2,2,0,0));
+ v_distx = _mm_shufflelo_epi16(v_distx, _MM_SHUFFLE(2,2,0,0));
+
+ interpolate_4_pixels_16_sse2(tl.vect, tr.vect, bl.vect, br.vect, v_distx, v_disty, colorMask, v_256, b);
+ b+=4;
+ v_fx.vect = _mm_add_epi32(v_fx.vect, v_fdx);
+ }
+ fx = v_fx.i[0];
+ }
+#endif
+ while (b < end) {
+ int x1 = (fx >> 16);
+ int x2;
+ fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+ uint tl = fetch(s1, x1, data->texture.colorTable);
+ uint tr = fetch(s1, x2, data->texture.colorTable);
+ uint bl = fetch(s2, x1, data->texture.colorTable);
+ uint br = fetch(s2, x2, data->texture.colorTable);
+ int distx = (fx & 0x0000ffff) >> 12;
+ *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty);
+ fx += fdx;
+ ++b;
}
}
+ } else { //rotation
+ if (fabs(data->m11) > 8 || fabs(data->m22) > 8) {
+ //if we are zooming more than 8 times, we use 8bit precision for the position.
+ while (b < end) {
+ int x1 = (fx >> 16);
+ int x2;
+ int y1 = (fy >> 16);
+ int y2;
- Q_ASSERT(x1 >= 0 && x1 < image_width);
- Q_ASSERT(x2 >= 0 && x2 < image_width);
- Q_ASSERT(y1 >= 0 && y1 < image_height);
- Q_ASSERT(y2 >= 0 && y2 < image_height);
+ fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+ fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
- const uchar *s1 = data->texture.scanLine(y1);
- const uchar *s2 = data->texture.scanLine(y2);
+ const uchar *s1 = data->texture.scanLine(y1);
+ const uchar *s2 = data->texture.scanLine(y2);
- uint tl = fetch(s1, x1, data->texture.colorTable);
- uint tr = fetch(s1, x2, data->texture.colorTable);
- uint bl = fetch(s2, x1, data->texture.colorTable);
- uint br = fetch(s2, x2, data->texture.colorTable);
+ uint tl = fetch(s1, x1, data->texture.colorTable);
+ uint tr = fetch(s1, x2, data->texture.colorTable);
+ uint bl = fetch(s2, x1, data->texture.colorTable);
+ uint br = fetch(s2, x2, data->texture.colorTable);
- int distx = (fx & 0x0000ffff) >> 8;
- int disty = (fy & 0x0000ffff) >> 8;
- int idistx = 256 - distx;
- int idisty = 256 - disty;
+ int distx = (fx & 0x0000ffff) >> 8;
+ int disty = (fy & 0x0000ffff) >> 8;
+ int idistx = 256 - distx;
+ int idisty = 256 - disty;
- uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
- uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
- *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
+ uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
+ uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
+ *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
- fx += fdx;
- fy += fdy;
- ++b;
+ fx += fdx;
+ fy += fdy;
+ ++b;
+ }
+ } else {
+ //we are zooming less than 8x, use 4bit precision
+ while (b < end) {
+ int x1 = (fx >> 16);
+ int x2;
+ int y1 = (fy >> 16);
+ int y2;
+
+ fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+ fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+
+ const uchar *s1 = data->texture.scanLine(y1);
+ const uchar *s2 = data->texture.scanLine(y2);
+
+ uint tl = fetch(s1, x1, data->texture.colorTable);
+ uint tr = fetch(s1, x2, data->texture.colorTable);
+ uint bl = fetch(s2, x1, data->texture.colorTable);
+ uint br = fetch(s2, x2, data->texture.colorTable);
+
+ int distx = (fx & 0x0000ffff) >> 12;
+ int disty = (fy & 0x0000ffff) >> 12;
+
+ *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty);
+
+ fx += fdx;
+ fy += fdy;
+ ++b;
+ }
+ }
}
} else {
const qreal fdx = data->m11;
@@ -779,37 +1089,8 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator *
int idistx = 256 - distx;
int idisty = 256 - disty;
- if (blendType == BlendTransformedBilinearTiled) {
- x1 %= image_width;
- if (x1 < 0) x1 += image_width;
- x2 = x1 + 1;
- x2 %= image_width;
-
- y1 %= image_height;
- if (y1 < 0) y1 += image_height;
- y2 = y1 + 1;
- y2 %= image_height;
- } else {
- if (x1 < 0) {
- x2 = x1 = 0;
- } else if (x1 >= image_width - 1) {
- x2 = x1 = image_width - 1;
- } else {
- x2 = x1 + 1;
- }
- if (y1 < 0) {
- y2 = y1 = 0;
- } else if (y1 >= image_height - 1) {
- y2 = y1 = image_height - 1;
- } else {
- y2 = y1 + 1;
- }
- }
-
- Q_ASSERT(x1 >= 0 && x1 < image_width);
- Q_ASSERT(x2 >= 0 && x2 < image_width);
- Q_ASSERT(y1 >= 0 && y1 < image_height);
- Q_ASSERT(y2 >= 0 && y2 < image_height);
+ fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+ fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
const uchar *s1 = data->texture.scanLine(y1);
const uchar *s2 = data->texture.scanLine(y2);
@@ -1309,7 +1590,7 @@ static const uint L2CacheLineLengthInInts = L2CacheLineLength/sizeof(uint);
}\
}
-static void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint, uint const_alpha)
{
comp_func_Clear_impl(dest, length, const_alpha);
}
@@ -1323,7 +1604,7 @@ void QT_FASTCALL comp_func_Clear(uint *dest, const uint *, int length, uint cons
result = s
dest = s * ca + d * cia
*/
-static void QT_FASTCALL comp_func_solid_Source(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Source(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255) {
QT_MEMFILL_UINT(dest, length, color);
@@ -1352,7 +1633,7 @@ void QT_FASTCALL comp_func_Source(uint *dest, const uint *src, int length, uint
}
}
-static void QT_FASTCALL comp_func_solid_Destination(uint *, int, uint, uint)
+void QT_FASTCALL comp_func_solid_Destination(uint *, int, uint, uint)
{
}
@@ -1366,7 +1647,7 @@ void QT_FASTCALL comp_func_Destination(uint *, const uint *, int, uint)
= s * ca + d * (sia * ca + cia)
= s * ca + d * (1 - sa*ca)
*/
-static void QT_FASTCALL comp_func_solid_SourceOver(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SourceOver(uint *dest, int length, uint color, uint const_alpha)
{
if ((const_alpha & qAlpha(color)) == 255) {
QT_MEMFILL_UINT(dest, length, color);
@@ -1407,7 +1688,7 @@ void QT_FASTCALL comp_func_SourceOver(uint *dest, const uint *src, int length, u
dest = (d + s * dia) * ca + d * cia
= d + s * dia * ca
*/
-static void QT_FASTCALL comp_func_solid_DestinationOver(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_DestinationOver(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha != 255)
color = BYTE_MUL(color, const_alpha);
@@ -1442,7 +1723,7 @@ void QT_FASTCALL comp_func_DestinationOver(uint *dest, const uint *src, int leng
result = s * da
dest = s * da * ca + d * cia
*/
-static void QT_FASTCALL comp_func_solid_SourceIn(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SourceIn(uint *dest, int length, uint color, uint const_alpha)
{
PRELOAD_INIT(dest)
if (const_alpha == 255) {
@@ -1485,7 +1766,7 @@ void QT_FASTCALL comp_func_SourceIn(uint *dest, const uint *src, int length, uin
dest = d * sa * ca + d * cia
= d * (sa * ca + cia)
*/
-static void QT_FASTCALL comp_func_solid_DestinationIn(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_DestinationIn(uint *dest, int length, uint color, uint const_alpha)
{
uint a = qAlpha(color);
if (const_alpha != 255) {
@@ -1521,7 +1802,7 @@ void QT_FASTCALL comp_func_DestinationIn(uint *dest, const uint *src, int length
dest = s * dia * ca + d * cia
*/
-static void QT_FASTCALL comp_func_solid_SourceOut(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SourceOut(uint *dest, int length, uint color, uint const_alpha)
{
PRELOAD_INIT(dest)
if (const_alpha == 255) {
@@ -1564,7 +1845,7 @@ void QT_FASTCALL comp_func_SourceOut(uint *dest, const uint *src, int length, ui
dest = d * sia * ca + d * cia
= d * (sia * ca + cia)
*/
-static void QT_FASTCALL comp_func_solid_DestinationOut(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_DestinationOut(uint *dest, int length, uint color, uint const_alpha)
{
uint a = qAlpha(~color);
if (const_alpha != 255)
@@ -1600,7 +1881,7 @@ void QT_FASTCALL comp_func_DestinationOut(uint *dest, const uint *src, int lengt
= s*ca * da + d * (sia*ca + cia)
= s*ca * da + d * (1 - sa*ca)
*/
-static void QT_FASTCALL comp_func_solid_SourceAtop(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SourceAtop(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha != 255) {
color = BYTE_MUL(color, const_alpha);
@@ -1638,7 +1919,7 @@ void QT_FASTCALL comp_func_SourceAtop(uint *dest, const uint *src, int length, u
dest = d*sa*ca + s*dia*ca + d *cia
= s*ca * dia + d * (sa*ca + cia)
*/
-static void QT_FASTCALL comp_func_solid_DestinationAtop(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_DestinationAtop(uint *dest, int length, uint color, uint const_alpha)
{
uint a = qAlpha(color);
if (const_alpha != 255) {
@@ -1681,7 +1962,7 @@ void QT_FASTCALL comp_func_DestinationAtop(uint *dest, const uint *src, int leng
= s*ca * dia + d * (sia*ca + cia)
= s*ca * dia + d * (1 - sa*ca)
*/
-static void QT_FASTCALL comp_func_solid_XOR(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_XOR(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha != 255)
color = BYTE_MUL(color, const_alpha);
@@ -1757,14 +2038,12 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Plus_impl(uint *dest, int
for (int i = 0; i < length; ++i) {
PRELOAD_COND(dest)
uint d = dest[i];
-#define MIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
- d = (MIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
-#undef MIX
+ d = comp_func_Plus_one_pixel(d, s);
coverage.store(&dest[i], d);
}
}
-static void QT_FASTCALL comp_func_solid_Plus(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Plus(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_Plus_impl(dest, length, color, QFullCoverage());
@@ -1781,9 +2060,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Plus_impl(uint *dest, const uin
uint d = dest[i];
uint s = src[i];
-#define MIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
- d = (MIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
-#undef MIX
+ d = comp_func_Plus_one_pixel(d, s);
coverage.store(&dest[i], d);
}
@@ -1830,7 +2107,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Multiply_impl(uint *dest,
}
}
-static void QT_FASTCALL comp_func_solid_Multiply(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Multiply(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_Multiply_impl(dest, length, color, QFullCoverage());
@@ -1898,7 +2175,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Screen_impl(uint *dest, i
}
}
-static void QT_FASTCALL comp_func_solid_Screen(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Screen(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_Screen_impl(dest, length, color, QFullCoverage());
@@ -1977,7 +2254,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Overlay_impl(uint *dest,
}
}
-static void QT_FASTCALL comp_func_solid_Overlay(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Overlay(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_Overlay_impl(dest, length, color, QFullCoverage());
@@ -2050,7 +2327,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Darken_impl(uint *dest, i
}
}
-static void QT_FASTCALL comp_func_solid_Darken(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Darken(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_Darken_impl(dest, length, color, QFullCoverage());
@@ -2123,7 +2400,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Lighten_impl(uint *dest,
}
}
-static void QT_FASTCALL comp_func_solid_Lighten(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Lighten(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_Lighten_impl(dest, length, color, QFullCoverage());
@@ -2206,7 +2483,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_ColorDodge_impl(uint *des
}
}
-static void QT_FASTCALL comp_func_solid_ColorDodge(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_ColorDodge(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_ColorDodge_impl(dest, length, color, QFullCoverage());
@@ -2289,7 +2566,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_ColorBurn_impl(uint *dest
}
}
-static void QT_FASTCALL comp_func_solid_ColorBurn(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_ColorBurn(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_ColorBurn_impl(dest, length, color, QFullCoverage());
@@ -2369,7 +2646,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_HardLight_impl(uint *dest
}
}
-static void QT_FASTCALL comp_func_solid_HardLight(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_HardLight(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_HardLight_impl(dest, length, color, QFullCoverage());
@@ -2460,7 +2737,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_SoftLight_impl(uint *dest
}
}
-static void QT_FASTCALL comp_func_solid_SoftLight(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SoftLight(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_SoftLight_impl(dest, length, color, QFullCoverage());
@@ -2533,7 +2810,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Difference_impl(uint *des
}
}
-static void QT_FASTCALL comp_func_solid_Difference(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Difference(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_Difference_impl(dest, length, color, QFullCoverage());
@@ -2600,7 +2877,7 @@ Q_STATIC_TEMPLATE_FUNCTION inline void QT_FASTCALL comp_func_solid_Exclusion_imp
}
}
-static void QT_FASTCALL comp_func_solid_Exclusion(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Exclusion(uint *dest, int length, uint color, uint const_alpha)
{
if (const_alpha == 255)
comp_func_solid_Exclusion_impl(dest, length, color, QFullCoverage());
@@ -2644,10 +2921,10 @@ void QT_FASTCALL comp_func_Exclusion(uint *dest, const uint *src, int length, ui
# pragma pop
#endif
-static void QT_FASTCALL rasterop_solid_SourceOrDestination(uint *dest,
- int length,
- uint color,
- uint const_alpha)
+void QT_FASTCALL rasterop_solid_SourceOrDestination(uint *dest,
+ int length,
+ uint color,
+ uint const_alpha)
{
Q_UNUSED(const_alpha);
while (length--)
@@ -2664,10 +2941,10 @@ void QT_FASTCALL rasterop_SourceOrDestination(uint *dest,
*dest++ |= *src++;
}
-static void QT_FASTCALL rasterop_solid_SourceAndDestination(uint *dest,
- int length,
- uint color,
- uint const_alpha)
+void QT_FASTCALL rasterop_solid_SourceAndDestination(uint *dest,
+ int length,
+ uint color,
+ uint const_alpha)
{
Q_UNUSED(const_alpha);
color |= 0xff000000;
@@ -2687,10 +2964,10 @@ void QT_FASTCALL rasterop_SourceAndDestination(uint *dest,
}
}
-static void QT_FASTCALL rasterop_solid_SourceXorDestination(uint *dest,
- int length,
- uint color,
- uint const_alpha)
+void QT_FASTCALL rasterop_solid_SourceXorDestination(uint *dest,
+ int length,
+ uint color,
+ uint const_alpha)
{
Q_UNUSED(const_alpha);
color &= 0x00ffffff;
@@ -2710,10 +2987,10 @@ void QT_FASTCALL rasterop_SourceXorDestination(uint *dest,
}
}
-static void QT_FASTCALL rasterop_solid_NotSourceAndNotDestination(uint *dest,
- int length,
- uint color,
- uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSourceAndNotDestination(uint *dest,
+ int length,
+ uint color,
+ uint const_alpha)
{
Q_UNUSED(const_alpha);
color = ~color;
@@ -2735,10 +3012,10 @@ void QT_FASTCALL rasterop_NotSourceAndNotDestination(uint *dest,
}
}
-static void QT_FASTCALL rasterop_solid_NotSourceOrNotDestination(uint *dest,
- int length,
- uint color,
- uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSourceOrNotDestination(uint *dest,
+ int length,
+ uint color,
+ uint const_alpha)
{
Q_UNUSED(const_alpha);
color = ~color | 0xff000000;
@@ -2760,10 +3037,10 @@ void QT_FASTCALL rasterop_NotSourceOrNotDestination(uint *dest,
}
}
-static void QT_FASTCALL rasterop_solid_NotSourceXorDestination(uint *dest,
- int length,
- uint color,
- uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSourceXorDestination(uint *dest,
+ int length,
+ uint color,
+ uint const_alpha)
{
Q_UNUSED(const_alpha);
color = ~color & 0x00ffffff;
@@ -2785,8 +3062,8 @@ void QT_FASTCALL rasterop_NotSourceXorDestination(uint *dest,
}
}
-static void QT_FASTCALL rasterop_solid_NotSource(uint *dest, int length,
- uint color, uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSource(uint *dest, int length,
+ uint color, uint const_alpha)
{
Q_UNUSED(const_alpha);
qt_memfill(dest, ~color | 0xff000000, length);
@@ -2800,10 +3077,10 @@ void QT_FASTCALL rasterop_NotSource(uint *dest, const uint *src,
*dest++ = ~(*src++) | 0xff000000;
}
-static void QT_FASTCALL rasterop_solid_NotSourceAndDestination(uint *dest,
- int length,
- uint color,
- uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSourceAndDestination(uint *dest,
+ int length,
+ uint color,
+ uint const_alpha)
{
Q_UNUSED(const_alpha);
color = ~color | 0xff000000;
@@ -2825,10 +3102,10 @@ void QT_FASTCALL rasterop_NotSourceAndDestination(uint *dest,
}
}
-static void QT_FASTCALL rasterop_solid_SourceAndNotDestination(uint *dest,
- int length,
- uint color,
- uint const_alpha)
+void QT_FASTCALL rasterop_solid_SourceAndNotDestination(uint *dest,
+ int length,
+ uint color,
+ uint const_alpha)
{
Q_UNUSED(const_alpha);
while (length--) {
@@ -5163,239 +5440,6 @@ static void blend_tiled_rgb444(int count, const QSpan *spans, void *userData)
blend_tiled_generic<RegularSpans>(count, spans, userData);
}
-
-template <SpanMethod spanMethod, TextureBlendType blendType> /* blendType must be either BlendTransformedBilinear or BlendTransformedBilinearTiled */
-Q_STATIC_TEMPLATE_FUNCTION void blend_transformed_bilinear_argb(int count, const QSpan *spans, void *userData)
-{
- QSpanData *data = reinterpret_cast<QSpanData *>(userData);
- if (data->texture.format != QImage::Format_ARGB32_Premultiplied
- && data->texture.format != QImage::Format_RGB32) {
- blend_src_generic<spanMethod>(count, spans, userData);
- return;
- }
-
- CompositionFunction func = functionForMode[data->rasterBuffer->compositionMode];
- uint buffer[buffer_size];
-
- const int image_x1 = data->texture.x1;
- const int image_y1 = data->texture.y1;
- const int image_x2 = data->texture.x2;
- const int image_y2 = data->texture.y2;
- const int image_width = data->texture.width;
- const int image_height = data->texture.height;
- const int scanline_offset = data->texture.bytesPerLine / 4;
-
- if (data->fast_matrix) {
- // The increment pr x in the scanline
- int fdx = (int)(data->m11 * fixed_scale);
- int fdy = (int)(data->m12 * fixed_scale);
-
- while (count--) {
- void *t = data->rasterBuffer->scanLine(spans->y);
-
- uint *target = ((uint *)t) + spans->x;
- uint *image_bits = (uint *)data->texture.imageData;
-
- const qreal cx = spans->x + 0.5;
- const qreal cy = spans->y + 0.5;
-
- int x = int((data->m21 * cy
- + data->m11 * cx + data->dx) * fixed_scale) - half_point;
- int y = int((data->m22 * cy
- + data->m12 * cx + data->dy) * fixed_scale) - half_point;
-
- int length = spans->len;
- const int coverage = (data->texture.const_alpha * spans->coverage) >> 8;
- while (length) {
- int l = qMin(length, buffer_size);
- const uint *end = buffer + l;
- uint *b = buffer;
- while (b < end) {
- int x1 = (x >> 16);
- int x2;
- int y1 = (y >> 16);
- int y2;
-
- if (blendType == BlendTransformedBilinearTiled) {
- x1 %= image_width;
- if (x1 < 0) x1 += image_width;
- x2 = x1 + 1;
- x2 %= image_width;
-
- y1 %= image_height;
- if (y1 < 0) y1 += image_height;
- y2 = y1 + 1;
- y2 %= image_height;
-
- Q_ASSERT(x1 >= 0 && x1 < image_width);
- Q_ASSERT(x2 >= 0 && x2 < image_width);
- Q_ASSERT(y1 >= 0 && y1 < image_height);
- Q_ASSERT(y2 >= 0 && y2 < image_height);
- } else {
- if (x1 < image_x1) {
- x2 = x1 = image_x1;
- } else if (x1 >= image_x2 - 1) {
- x2 = x1 = image_x2 - 1;
- } else {
- x2 = x1 + 1;
- }
- if (y1 < image_y1) {
- y2 = y1 = image_y1;
- } else if (y1 >= image_y2 - 1) {
- y2 = y1 = image_y2 - 1;
- } else {
- y2 = y1 + 1;
- }
- }
-
- int y1_offset = y1 * scanline_offset;
- int y2_offset = y2 * scanline_offset;
-
-#if defined(Q_IRIX_GCC3_3_WORKAROUND)
- uint tl = gccBug(image_bits[y1_offset + x1]);
- uint tr = gccBug(image_bits[y1_offset + x2]);
- uint bl = gccBug(image_bits[y2_offset + x1]);
- uint br = gccBug(image_bits[y2_offset + x2]);
-#else
- uint tl = image_bits[y1_offset + x1];
- uint tr = image_bits[y1_offset + x2];
- uint bl = image_bits[y2_offset + x1];
- uint br = image_bits[y2_offset + x2];
-#endif
-
- int distx = (x & 0x0000ffff) >> 8;
- int disty = (y & 0x0000ffff) >> 8;
- int idistx = 256 - distx;
- int idisty = 256 - disty;
-
- uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
- uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
- *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
- ++b;
-
- x += fdx;
- y += fdy;
- }
- if (spanMethod == RegularSpans)
- func(target, buffer, l, coverage);
- else
- drawBufferSpan(data, buffer, buffer_size,
- spans->x + spans->len - length,
- spans->y, l, coverage);
- target += l;
- length -= l;
- }
- ++spans;
- }
- } else {
- const qreal fdx = data->m11;
- const qreal fdy = data->m12;
- const qreal fdw = data->m13;
-
- while (count--) {
- void *t = data->rasterBuffer->scanLine(spans->y);
-
- uint *target = ((uint *)t) + spans->x;
- uint *image_bits = (uint *)data->texture.imageData;
-
- const qreal cx = spans->x + 0.5;
- const qreal cy = spans->y + 0.5;
-
- qreal x = data->m21 * cy + data->m11 * cx + data->dx;
- qreal y = data->m22 * cy + data->m12 * cx + data->dy;
- qreal w = data->m23 * cy + data->m13 * cx + data->m33;
-
- int length = spans->len;
- const int coverage = (data->texture.const_alpha * spans->coverage) >> 8;
- while (length) {
- int l = qMin(length, buffer_size);
- const uint *end = buffer + l;
- uint *b = buffer;
- while (b < end) {
- const qreal iw = w == 0 ? 1 : 1 / w;
- const qreal px = x * iw - 0.5;
- const qreal py = y * iw - 0.5;
-
- int x1 = int(px) - (px < 0);
- int x2;
- int y1 = int(py) - (py < 0);
- int y2;
-
- int distx = int((px - x1) * 256);
- int disty = int((py - y1) * 256);
- int idistx = 256 - distx;
- int idisty = 256 - disty;
-
- if (blendType == BlendTransformedBilinearTiled) {
- x1 %= image_width;
- if (x1 < 0) x1 += image_width;
- x2 = x1 + 1;
- x2 %= image_width;
-
- y1 %= image_height;
- if (y1 < 0) y1 += image_height;
- y2 = y1 + 1;
- y2 %= image_height;
-
- Q_ASSERT(x1 >= 0 && x1 < image_width);
- Q_ASSERT(x2 >= 0 && x2 < image_width);
- Q_ASSERT(y1 >= 0 && y1 < image_height);
- Q_ASSERT(y2 >= 0 && y2 < image_height);
- } else {
- if (x1 < image_x1) {
- x2 = x1 = image_x1;
- } else if (x1 >= image_x2 - 1) {
- x2 = x1 = image_x2 - 1;
- } else {
- x2 = x1 + 1;
- }
- if (y1 < image_y1) {
- y2 = y1 = image_y1;
- } else if (y1 >= image_y2 - 1) {
- y2 = y1 = image_y2 - 1;
- } else {
- y2 = y1 + 1;
- }
- }
-
- int y1_offset = y1 * scanline_offset;
- int y2_offset = y2 * scanline_offset;
-
-#if defined(Q_IRIX_GCC3_3_WORKAROUND)
- uint tl = gccBug(image_bits[y1_offset + x1]);
- uint tr = gccBug(image_bits[y1_offset + x2]);
- uint bl = gccBug(image_bits[y2_offset + x1]);
- uint br = gccBug(image_bits[y2_offset + x2]);
-#else
- uint tl = image_bits[y1_offset + x1];
- uint tr = image_bits[y1_offset + x2];
- uint bl = image_bits[y2_offset + x1];
- uint br = image_bits[y2_offset + x2];
-#endif
-
- uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
- uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
- *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
- ++b;
-
- x += fdx;
- y += fdy;
- w += fdw;
- }
- if (spanMethod == RegularSpans)
- func(target, buffer, l, coverage);
- else
- drawBufferSpan(data, buffer, buffer_size,
- spans->x + spans->len - length,
- spans->y, l, coverage);
- target += l;
- length -= l;
- }
- ++spans;
- }
- }
-}
-
template <class DST, class SRC>
Q_STATIC_TEMPLATE_FUNCTION void blendTransformedBilinear(int count, const QSpan *spans,
void *userData)
@@ -6646,7 +6690,7 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // Indexed8
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // RGB32
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB32
- blend_transformed_bilinear_argb<RegularSpans, BlendTransformedBilinear>, // ARGB32_Premultiplied
+ SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB32_Premultiplied
blend_transformed_bilinear_rgb565,
blend_transformed_bilinear_argb8565,
blend_transformed_bilinear_rgb666,
@@ -6665,7 +6709,7 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // Indexed8
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // RGB32
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB32
- blend_transformed_bilinear_argb<RegularSpans, BlendTransformedBilinearTiled>, // ARGB32_Premultiplied
+ SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB32_Premultiplied
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // RGB16
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB8565_Premultiplied
SPANFUNC_POINTER(blend_src_generic, RegularSpans), // RGB666
@@ -6764,7 +6808,7 @@ static const ProcessSpans processTextureSpansCallback[NBlendTypes][QImage::NImag
blend_src_generic<CallbackSpans>, // Indexed8
blend_src_generic<CallbackSpans>, // RGB32
blend_src_generic<CallbackSpans>, // ARGB32
- blend_transformed_bilinear_argb<CallbackSpans, BlendTransformedBilinear>, // ARGB32_Premultiplied
+ blend_src_generic<CallbackSpans>, // ARGB32_Premultiplied
blend_src_generic<CallbackSpans>, // RGB16
blend_src_generic<CallbackSpans>, // ARGB8565_Premultiplied
blend_src_generic<CallbackSpans>, // RGB666
@@ -6783,7 +6827,7 @@ static const ProcessSpans processTextureSpansCallback[NBlendTypes][QImage::NImag
blend_src_generic<CallbackSpans>, // Indexed8
blend_src_generic<CallbackSpans>, // RGB32
blend_src_generic<CallbackSpans>, // ARGB32
- blend_transformed_bilinear_argb<CallbackSpans, BlendTransformedBilinearTiled>, // ARGB32_Premultiplied
+ blend_src_generic<CallbackSpans>, // ARGB32_Premultiplied
blend_src_generic<CallbackSpans>, // RGB16
blend_src_generic<CallbackSpans>, // ARGB8565_Premultiplied
blend_src_generic<CallbackSpans>, // RGB666
@@ -7800,6 +7844,55 @@ void qInitDrawhelperAsm()
#ifdef QT_HAVE_SSE
if (features & SSE) {
+ extern void qt_blend_rgb32_on_rgb32_sse(uchar *destPixels, int dbpl,
+ const uchar *srcPixels, int sbpl,
+ int w, int h,
+ int const_alpha);
+ extern void qt_blend_argb32_on_argb32_sse(uchar *destPixels, int dbpl,
+ const uchar *srcPixels, int sbpl,
+ int w, int h,
+ int const_alpha);
+
+ qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse;
+ qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse;
+ qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse;
+ qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse;
+ }
+#endif // SSE
+
+#ifdef QT_HAVE_SSE2
+ if (features & SSE2) {
+ extern void qt_blend_rgb32_on_rgb32_sse2(uchar *destPixels, int dbpl,
+ const uchar *srcPixels, int sbpl,
+ int w, int h,
+ int const_alpha);
+ extern void qt_blend_argb32_on_argb32_sse2(uchar *destPixels, int dbpl,
+ const uchar *srcPixels, int sbpl,
+ int w, int h,
+ int const_alpha);
+
+ qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
+ qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
+ qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
+ qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
+ }
+
+#ifdef QT_HAVE_SSSE3
+ if (features & SSSE3) {
+ extern void qt_blend_argb32_on_argb32_ssse3(uchar *destPixels, int dbpl,
+ const uchar *srcPixels, int sbpl,
+ int w, int h,
+ int const_alpha);
+
+ qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_ssse3;
+ qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_ssse3;
+ }
+#endif // SSSE3
+
+#endif // SSE2
+
+#ifdef QT_HAVE_SSE
+ if (features & SSE) {
functionForModeAsm = qt_functionForMode_SSE;
functionForModeSolidAsm = qt_functionForModeSolid_SSE;
qDrawHelper[QImage::Format_ARGB32_Premultiplied].blendColor = qt_blend_color_argb_sse;
@@ -7815,9 +7908,9 @@ void qInitDrawhelperAsm()
#ifdef QT_HAVE_SSE2
if (features & SSE2) {
extern void QT_FASTCALL comp_func_SourceOver_sse2(uint *destPixels,
- const uint *srcPixels,
- int length,
- uint const_alpha);
+ const uint *srcPixels,
+ int length,
+ uint const_alpha);
extern void QT_FASTCALL comp_func_solid_SourceOver_sse2(uint *destPixels, int length, uint color, uint const_alpha);
extern void QT_FASTCALL comp_func_Plus_sse2(uint *dst, const uint *src, int length, uint const_alpha);
extern void QT_FASTCALL comp_func_Source_sse2(uint *dst, const uint *src, int length, uint const_alpha);
@@ -7826,51 +7919,16 @@ void qInitDrawhelperAsm()
functionForModeAsm[QPainter::CompositionMode_Source] = comp_func_Source_sse2;
functionForModeAsm[QPainter::CompositionMode_Plus] = comp_func_Plus_sse2;
functionForModeSolidAsm[0] = comp_func_solid_SourceOver_sse2;
-
- extern void qt_blend_rgb32_on_rgb32_sse2(uchar *destPixels, int dbpl,
- const uchar *srcPixels, int sbpl,
- int w, int h,
- int const_alpha);
- extern void qt_blend_argb32_on_argb32_sse2(uchar *destPixels, int dbpl,
- const uchar *srcPixels, int sbpl,
- int w, int h,
- int const_alpha);
-
- qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
- qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
- qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
- qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
-
-#if defined(QT_HAVE_SSSE3)
- if (features & SSSE3) {
- extern void qt_blend_argb32_on_argb32_ssse3(uchar *destPixels, int dbpl,
- const uchar *srcPixels, int sbpl,
- int w, int h,
- int const_alpha);
- qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_ssse3;
- qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_ssse3;
- }
-#endif // QT_HAVE_SSSE3
- } else
-#endif
- {
- extern void qt_blend_rgb32_on_rgb32_sse(uchar *destPixels, int dbpl,
- const uchar *srcPixels, int sbpl,
- int w, int h,
- int const_alpha);
- extern void qt_blend_argb32_on_argb32_sse(uchar *destPixels, int dbpl,
- const uchar *srcPixels, int sbpl,
- int w, int h,
- int const_alpha);
-
-
- qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse;
- qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse;
- qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse;
- qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse;
}
-}
-#endif // SSE
+#endif
+ }
+#elif defined(QT_HAVE_SSE2)
+ // this is the special case when SSE2 is usable but MMX/SSE is not usable (e.g.: Windows x64 + visual studio)
+ if (features & SSE2) {
+ functionForModeAsm = qt_functionForMode_onlySSE2;
+ functionForModeSolidAsm = qt_functionForModeSolid_onlySSE2;
+ }
+#endif
#ifdef QT_HAVE_IWMMXT
if (features & IWMMXT) {
@@ -7900,6 +7958,7 @@ void qInitDrawhelperAsm()
qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_neon;
qBlendFunctions[QImage::Format_RGB16][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_rgb16_neon;
qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB16] = qt_blend_rgb16_on_argb32_neon;
+ qBlendFunctions[QImage::Format_RGB16][QImage::Format_RGB16] = qt_blend_rgb16_on_rgb16_neon;
qScaleFunctions[QImage::Format_RGB16][QImage::Format_ARGB32_Premultiplied] = qt_scale_image_argb32_on_rgb16_neon;
qScaleFunctions[QImage::Format_RGB16][QImage::Format_RGB16] = qt_scale_image_rgb16_on_rgb16_neon;
@@ -7911,11 +7970,13 @@ void qInitDrawhelperAsm()
functionForMode_C[QPainter::CompositionMode_SourceOver] = qt_blend_argb32_on_argb32_scanline_neon;
functionForModeSolid_C[QPainter::CompositionMode_SourceOver] = comp_func_solid_SourceOver_neon;
+ functionForMode_C[QPainter::CompositionMode_Plus] = comp_func_Plus_neon;
destFetchProc[QImage::Format_RGB16] = qt_destFetchRGB16_neon;
destStoreProc[QImage::Format_RGB16] = qt_destStoreRGB16_neon;
qMemRotateFunctions[QImage::Format_RGB16][0] = qt_memrotate90_16_neon;
qMemRotateFunctions[QImage::Format_RGB16][2] = qt_memrotate270_16_neon;
+ qt_memfill32 = qt_memfill32_neon;
}
#endif
diff --git a/src/gui/painting/qdrawhelper_neon.cpp b/src/gui/painting/qdrawhelper_neon.cpp
index 03fe0755f9..0afd07769a 100644
--- a/src/gui/painting/qdrawhelper_neon.cpp
+++ b/src/gui/painting/qdrawhelper_neon.cpp
@@ -51,6 +51,44 @@
QT_BEGIN_NAMESPACE
+void qt_memfill32_neon(quint32 *dest, quint32 value, int count)
+{
+ const int epilogueSize = count % 16;
+ if (count >= 16) {
+ quint32 *const neonEnd = dest + count - epilogueSize;
+ register uint32x4_t valueVector1 asm ("q0") = vdupq_n_u32(value);
+ register uint32x4_t valueVector2 asm ("q1") = valueVector1;
+ while (dest != neonEnd) {
+ asm volatile (
+ "vst2.32 { d0, d1, d2, d3 }, [%[DST]] !\n\t"
+ "vst2.32 { d0, d1, d2, d3 }, [%[DST]] !\n\t"
+ : [DST]"+r" (dest)
+ : [VALUE1]"w"(valueVector1), [VALUE2]"w"(valueVector2)
+ : "memory"
+ );
+ }
+ }
+
+ switch (epilogueSize)
+ {
+ case 15: *dest++ = value;
+ case 14: *dest++ = value;
+ case 13: *dest++ = value;
+ case 12: *dest++ = value;
+ case 11: *dest++ = value;
+ case 10: *dest++ = value;
+ case 9: *dest++ = value;
+ case 8: *dest++ = value;
+ case 7: *dest++ = value;
+ case 6: *dest++ = value;
+ case 5: *dest++ = value;
+ case 4: *dest++ = value;
+ case 3: *dest++ = value;
+ case 2: *dest++ = value;
+ case 1: *dest++ = value;
+ }
+}
+
static inline uint16x8_t qvdiv_255_u16(uint16x8_t x, uint16x8_t half)
{
// result = (x + (x >> 8) + 0x80) >> 8
@@ -129,6 +167,14 @@ pixman_composite_scanline_over_asm_neon (int32_t w,
const uint32_t *dst,
const uint32_t *src);
+extern "C" void
+pixman_composite_src_0565_0565_asm_neon (int32_t w,
+ int32_t h,
+ uint16_t *dst,
+ int32_t dst_stride,
+ uint16_t *src,
+ int32_t src_stride);
+
// qblendfunctions.cpp
void qt_blend_argb32_on_rgb16_const_alpha(uchar *destPixels, int dbpl,
const uchar *srcPixels, int sbpl,
@@ -162,6 +208,96 @@ void qt_blend_rgb16_on_argb32_neon(uchar *destPixels, int dbpl,
pixman_composite_src_0565_8888_asm_neon(w, h, dst, dbpl, src, sbpl);
}
+// qblendfunctions.cpp
+void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
+ const uchar *src, int sbpl,
+ int w, int h,
+ int const_alpha);
+
+template <int N>
+static inline void scanLineBlit16(quint16 *dst, quint16 *src, int dstride)
+{
+ if (N >= 2) {
+ ((quint32 *)dst)[0] = ((quint32 *)src)[0];
+ __builtin_prefetch(dst + dstride, 1, 0);
+ }
+ for (int i = 1; i < N/2; ++i)
+ ((quint32 *)dst)[i] = ((quint32 *)src)[i];
+ if (N & 1)
+ dst[N-1] = src[N-1];
+}
+
+template <int Width>
+static inline void blockBlit16(quint16 *dst, quint16 *src, int dstride, int sstride, int h)
+{
+ union {
+ quintptr address;
+ quint16 *pointer;
+ } u;
+
+ u.pointer = dst;
+
+ if (u.address & 2) {
+ while (h--) {
+ // align dst
+ dst[0] = src[0];
+ if (Width > 1)
+ scanLineBlit16<Width-1>(dst + 1, src + 1, dstride);
+ dst += dstride;
+ src += sstride;
+ }
+ } else {
+ while (h--) {
+ scanLineBlit16<Width>(dst, src, dstride);
+
+ dst += dstride;
+ src += sstride;
+ }
+ }
+}
+
+void qt_blend_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
+ const uchar *srcPixels, int sbpl,
+ int w, int h,
+ int const_alpha)
+{
+ // testing show that the default memcpy is faster for widths 150 and up
+ if (const_alpha != 256 || w >= 150) {
+ qt_blend_rgb16_on_rgb16(destPixels, dbpl, srcPixels, sbpl, w, h, const_alpha);
+ return;
+ }
+
+ int dstride = dbpl / 2;
+ int sstride = sbpl / 2;
+
+ quint16 *dst = (quint16 *) destPixels;
+ quint16 *src = (quint16 *) srcPixels;
+
+ switch (w) {
+#define BLOCKBLIT(n) case n: blockBlit16<n>(dst, src, dstride, sstride, h); return;
+ BLOCKBLIT(1);
+ BLOCKBLIT(2);
+ BLOCKBLIT(3);
+ BLOCKBLIT(4);
+ BLOCKBLIT(5);
+ BLOCKBLIT(6);
+ BLOCKBLIT(7);
+ BLOCKBLIT(8);
+ BLOCKBLIT(9);
+ BLOCKBLIT(10);
+ BLOCKBLIT(11);
+ BLOCKBLIT(12);
+ BLOCKBLIT(13);
+ BLOCKBLIT(14);
+ BLOCKBLIT(15);
+#undef BLOCKBLIT
+ default:
+ break;
+ }
+
+ pixman_composite_src_0565_0565_asm_neon (w, h, dst, dstride, src, sstride);
+}
+
extern "C" void blend_8_pixels_argb32_on_rgb16_neon(quint16 *dst, const quint32 *src, int const_alpha);
void qt_blend_argb32_on_rgb16_neon(uchar *destPixels, int dbpl,
@@ -622,6 +758,61 @@ void QT_FASTCALL comp_func_solid_SourceOver_neon(uint *destPixels, int length, u
}
}
+void QT_FASTCALL comp_func_Plus_neon(uint *dst, const uint *src, int length, uint const_alpha)
+{
+ if (const_alpha == 255) {
+ uint *const end = dst + length;
+ uint *const neonEnd = end - 3;
+
+ while (dst < neonEnd) {
+ asm volatile (
+ "vld2.8 { d0, d1 }, [%[SRC]] !\n\t"
+ "vld2.8 { d2, d3 }, [%[DST]]\n\t"
+ "vqadd.u8 q0, q0, q1\n\t"
+ "vst2.8 { d0, d1 }, [%[DST]] !\n\t"
+ : [DST]"+r" (dst), [SRC]"+r" (src)
+ :
+ : "memory", "d0", "d1", "d2", "d3", "q0", "q1"
+ );
+ }
+
+ while (dst != end) {
+ *dst = comp_func_Plus_one_pixel(*dst, *src);
+ ++dst;
+ ++src;
+ }
+ } else {
+ int x = 0;
+ const int one_minus_const_alpha = 255 - const_alpha;
+ const uint16x8_t constAlphaVector = vdupq_n_u16(const_alpha);
+ const uint16x8_t oneMinusconstAlphaVector = vdupq_n_u16(one_minus_const_alpha);
+
+ const uint16x8_t half = vdupq_n_u16(0x80);
+ for (; x < length - 3; x += 4) {
+ const uint32x4_t src32 = vld1q_u32((uint32_t *)&src[x]);
+ const uint8x16_t src8 = vreinterpretq_u8_u32(src32);
+ uint8x16_t dst8 = vld1q_u8((uint8_t *)&dst[x]);
+ uint8x16_t result = vqaddq_u8(dst8, src8);
+
+ uint16x8_t result_low = vmovl_u8(vget_low_u8(result));
+ uint16x8_t result_high = vmovl_u8(vget_high_u8(result));
+
+ uint16x8_t dst_low = vmovl_u8(vget_low_u8(dst8));
+ uint16x8_t dst_high = vmovl_u8(vget_high_u8(dst8));
+
+ result_low = qvinterpolate_pixel_255(result_low, constAlphaVector, dst_low, oneMinusconstAlphaVector, half);
+ result_high = qvinterpolate_pixel_255(result_high, constAlphaVector, dst_high, oneMinusconstAlphaVector, half);
+
+ const uint32x2_t result32_low = vreinterpret_u32_u8(vmovn_u16(result_low));
+ const uint32x2_t result32_high = vreinterpret_u32_u8(vmovn_u16(result_high));
+ vst1q_u32((uint32_t *)&dst[x], vcombine_u32(result32_low, result32_high));
+ }
+
+ for (; x < length; ++x)
+ dst[x] = comp_func_Plus_one_pixel_const_alpha(dst[x], src[x], const_alpha, one_minus_const_alpha);
+ }
+}
+
static const int tileSize = 32;
extern "C" void qt_rotate90_16_neon(quint16 *dst, const quint16 *src, int sstride, int dstride, int count);
diff --git a/src/gui/painting/qdrawhelper_neon_p.h b/src/gui/painting/qdrawhelper_neon_p.h
index cd2dbfcb0d..d25b7ec37d 100644
--- a/src/gui/painting/qdrawhelper_neon_p.h
+++ b/src/gui/painting/qdrawhelper_neon_p.h
@@ -84,6 +84,11 @@ void qt_blend_rgb16_on_argb32_neon(uchar *destPixels, int dbpl,
int w, int h,
int const_alpha);
+void qt_blend_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
+ const uchar *srcPixels, int sbpl,
+ int w, int h,
+ int const_alpha);
+
void qt_alphamapblit_quint16_neon(QRasterBuffer *rasterBuffer,
int x, int y, quint32 color,
const uchar *bitmap,
@@ -120,6 +125,7 @@ void qt_transform_image_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
const QTransform &targetRectTransform,
int const_alpha);
+void qt_memfill32_neon(quint32 *dest, quint32 value, int count);
void qt_memrotate90_16_neon(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl);
void qt_memrotate270_16_neon(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl);
@@ -131,6 +137,7 @@ void QT_FASTCALL qt_destStoreRGB16_neon(QRasterBuffer *rasterBuffer,
int x, int y, const uint *buffer, int length);
void QT_FASTCALL comp_func_solid_SourceOver_neon(uint *destPixels, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_Plus_neon(uint *dst, const uint *src, int length, uint const_alpha);
#endif // QT_HAVE_NEON
diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h
index d04c70d451..0cc2e409e1 100644
--- a/src/gui/painting/qdrawhelper_p.h
+++ b/src/gui/painting/qdrawhelper_p.h
@@ -62,6 +62,7 @@
#define QT_FT_END_HEADER
#endif
#include "private/qrasterdefs_p.h"
+#include <private/qsimd_p.h>
#ifdef Q_WS_QWS
#include "QtGui/qscreen_qws.h"
@@ -69,13 +70,6 @@
QT_BEGIN_NAMESPACE
-#if defined(Q_OS_MAC) && (defined(__ppc__) || defined(__ppc64__))
-#undef QT_HAVE_MMX
-#undef QT_HAVE_SSE
-#undef QT_HAVE_SSE2
-#undef QT_HAVE_3DNOW
-#endif
-
#if defined(Q_CC_MSVC) && _MSCVER <= 1300 && !defined(Q_CC_INTEL)
#define Q_STATIC_TEMPLATE_SPECIALIZATION static
#else
@@ -1944,6 +1938,30 @@ const uint qt_bayer_matrix[16][16] = {
((((argb >> 24) * alpha) >> 8) << 24) | (argb & 0x00ffffff)
+#if QT_POINTER_SIZE == 8 // 64-bit versions
+#define AMIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
+#define MIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
+#else // 32 bits
+// The mask for alpha can overflow over 32 bits
+#define AMIX(mask) quint32(qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
+#define MIX(mask) (qMin(((quint32(s)&mask) + (quint32(d)&mask)), quint32(mask)))
+#endif
+
+inline int comp_func_Plus_one_pixel_const_alpha(uint d, const uint s, const uint const_alpha, const uint one_minus_const_alpha)
+{
+ const int result = (AMIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
+ return INTERPOLATE_PIXEL_255(result, const_alpha, d, one_minus_const_alpha);
+}
+
+inline int comp_func_Plus_one_pixel(uint d, const uint s)
+{
+ const int result = (AMIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
+ return result;
+}
+
+#undef MIX
+#undef AMIX
+
// prototypes of all the composition functions
void QT_FASTCALL comp_func_SourceOver(uint *dest, const uint *src, int length, uint const_alpha);
void QT_FASTCALL comp_func_DestinationOver(uint *dest, const uint *src, int length, uint const_alpha);
@@ -1979,6 +1997,41 @@ void QT_FASTCALL rasterop_NotSource(uint *dest, const uint *src, int length, uin
void QT_FASTCALL rasterop_NotSourceAndDestination(uint *dest, const uint *src, int length, uint const_alpha);
void QT_FASTCALL rasterop_SourceAndNotDestination(uint *dest, const uint *src, int length, uint const_alpha);
+// prototypes of all the solid composition functions
+void QT_FASTCALL comp_func_solid_SourceOver(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_DestinationOver(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Source(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Destination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_SourceIn(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_DestinationIn(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_SourceOut(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_DestinationOut(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_SourceAtop(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_DestinationAtop(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_XOR(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Plus(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Multiply(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Screen(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Overlay(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Darken(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Lighten(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_ColorDodge(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_ColorBurn(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_HardLight(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_SoftLight(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Difference(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Exclusion(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_SourceOrDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_SourceAndDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_SourceXorDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSourceAndNotDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSourceOrNotDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSourceXorDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSource(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSourceAndDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_SourceAndNotDestination(uint *dest, int length, uint color, uint const_alpha);
+
QT_END_NAMESPACE
#endif // QDRAWHELPER_P_H
diff --git a/src/gui/painting/qdrawhelper_sse2.cpp b/src/gui/painting/qdrawhelper_sse2.cpp
index 22c0384c08..ba2ba323f9 100644
--- a/src/gui/painting/qdrawhelper_sse2.cpp
+++ b/src/gui/painting/qdrawhelper_sse2.cpp
@@ -43,7 +43,6 @@
#ifdef QT_HAVE_SSE2
-#include <private/qsimd_p.h>
#include <private/qdrawingprimitive_sse2_p.h>
#include <private/qpaintengine_raster_p.h>
@@ -161,22 +160,6 @@ void QT_FASTCALL comp_func_SourceOver_sse2(uint *destPixels, const uint *srcPixe
}
}
-inline int comp_func_Plus_one_pixel_const_alpha(uint d, const uint s, const uint const_alpha, const uint one_minus_const_alpha)
-{
-#define MIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
- const int result = (MIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
-#undef MIX
- return INTERPOLATE_PIXEL_255(result, const_alpha, d, one_minus_const_alpha);
-}
-
-inline int comp_func_Plus_one_pixel(uint d, const uint s)
-{
-#define MIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
- const int result = (MIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
-#undef MIX
- return result;
-}
-
void QT_FASTCALL comp_func_Plus_sse2(uint *dst, const uint *src, int length, uint const_alpha)
{
int x = 0;
@@ -328,6 +311,78 @@ void QT_FASTCALL comp_func_solid_SourceOver_sse2(uint *destPixels, int length, u
}
}
+CompositionFunctionSolid qt_functionForModeSolid_onlySSE2[numCompositionFunctions] = {
+ comp_func_solid_SourceOver_sse2,
+ comp_func_solid_DestinationOver,
+ comp_func_solid_Clear,
+ comp_func_solid_Source,
+ comp_func_solid_Destination,
+ comp_func_solid_SourceIn,
+ comp_func_solid_DestinationIn,
+ comp_func_solid_SourceOut,
+ comp_func_solid_DestinationOut,
+ comp_func_solid_SourceAtop,
+ comp_func_solid_DestinationAtop,
+ comp_func_solid_XOR,
+ comp_func_solid_Plus,
+ comp_func_solid_Multiply,
+ comp_func_solid_Screen,
+ comp_func_solid_Overlay,
+ comp_func_solid_Darken,
+ comp_func_solid_Lighten,
+ comp_func_solid_ColorDodge,
+ comp_func_solid_ColorBurn,
+ comp_func_solid_HardLight,
+ comp_func_solid_SoftLight,
+ comp_func_solid_Difference,
+ comp_func_solid_Exclusion,
+ rasterop_solid_SourceOrDestination,
+ rasterop_solid_SourceAndDestination,
+ rasterop_solid_SourceXorDestination,
+ rasterop_solid_NotSourceAndNotDestination,
+ rasterop_solid_NotSourceOrNotDestination,
+ rasterop_solid_NotSourceXorDestination,
+ rasterop_solid_NotSource,
+ rasterop_solid_NotSourceAndDestination,
+ rasterop_solid_SourceAndNotDestination
+};
+
+CompositionFunction qt_functionForMode_onlySSE2[numCompositionFunctions] = {
+ comp_func_SourceOver_sse2,
+ comp_func_DestinationOver,
+ comp_func_Clear,
+ comp_func_Source_sse2,
+ comp_func_Destination,
+ comp_func_SourceIn,
+ comp_func_DestinationIn,
+ comp_func_SourceOut,
+ comp_func_DestinationOut,
+ comp_func_SourceAtop,
+ comp_func_DestinationAtop,
+ comp_func_XOR,
+ comp_func_Plus_sse2,
+ comp_func_Multiply,
+ comp_func_Screen,
+ comp_func_Overlay,
+ comp_func_Darken,
+ comp_func_Lighten,
+ comp_func_ColorDodge,
+ comp_func_ColorBurn,
+ comp_func_HardLight,
+ comp_func_SoftLight,
+ comp_func_Difference,
+ comp_func_Exclusion,
+ rasterop_SourceOrDestination,
+ rasterop_SourceAndDestination,
+ rasterop_SourceXorDestination,
+ rasterop_NotSourceAndNotDestination,
+ rasterop_NotSourceOrNotDestination,
+ rasterop_NotSourceXorDestination,
+ rasterop_NotSource,
+ rasterop_NotSourceAndDestination,
+ rasterop_SourceAndNotDestination
+};
+
void qt_memfill16_sse2(quint16 *dest, quint16 value, int count)
{
if (count < 3) {
diff --git a/src/gui/painting/qdrawhelper_ssse3.cpp b/src/gui/painting/qdrawhelper_ssse3.cpp
index 9c02009d72..4cb40895ba 100644
--- a/src/gui/painting/qdrawhelper_ssse3.cpp
+++ b/src/gui/painting/qdrawhelper_ssse3.cpp
@@ -39,11 +39,10 @@
**
****************************************************************************/
+#include <private/qdrawhelper_x86_p.h>
#ifdef QT_HAVE_SSSE3
-#include <private/qsimd_p.h>
-#include <private/qdrawhelper_x86_p.h>
#include <private/qdrawingprimitive_sse2_p.h>
QT_BEGIN_NAMESPACE
diff --git a/src/gui/painting/qdrawhelper_x86_p.h b/src/gui/painting/qdrawhelper_x86_p.h
index d7282a7fc3..09ccd77f52 100644
--- a/src/gui/painting/qdrawhelper_x86_p.h
+++ b/src/gui/painting/qdrawhelper_x86_p.h
@@ -122,6 +122,9 @@ void qt_blend_rgb32_on_rgb32_sse2(uchar *destPixels, int dbpl,
const uchar *srcPixels, int sbpl,
int w, int h,
int const_alpha);
+
+extern CompositionFunction qt_functionForMode_onlySSE2[];
+extern CompositionFunctionSolid qt_functionForModeSolid_onlySSE2[];
#endif // QT_HAVE_SSE2
#ifdef QT_HAVE_IWMMXT
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index be900060b8..c6046acd5a 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -696,9 +696,9 @@ void QPainterPrivate::updateEmulationSpecifier(QPainterState *s)
skip = false;
- QBrush penBrush = s->pen.brush();
- Qt::BrushStyle brushStyle = s->brush.style();
- Qt::BrushStyle penBrushStyle = penBrush.style();
+ QBrush penBrush = (qpen_style(s->pen) == Qt::NoPen) ? QBrush(Qt::NoBrush) : qpen_brush(s->pen);
+ Qt::BrushStyle brushStyle = qbrush_style(s->brush);
+ Qt::BrushStyle penBrushStyle = qbrush_style(penBrush);
alpha = (penBrushStyle != Qt::NoBrush
&& (penBrushStyle < Qt::LinearGradientPattern && penBrush.color().alpha() != 255)
&& !penBrush.isOpaque())
@@ -5863,7 +5863,8 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText
}
bool paintEngineSupportsTransformations = d->extended->type() == QPaintEngine::OpenGL2
- || d->extended->type() == QPaintEngine::OpenVG;
+ || d->extended->type() == QPaintEngine::OpenVG
+ || d->extended->type() == QPaintEngine::OpenGL;
if (paintEngineSupportsTransformations && !staticText_d->untransformedCoordinates) {
staticText_d->untransformedCoordinates = true;
@@ -5907,7 +5908,7 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText
// Recreate the layout of the static text because the matrix or font has changed
if (staticTextNeedsReinit)
- staticText_d->init();
+ staticText_d->init();
if (transformedPosition != staticText_d->position) { // Translate to actual position
QFixed fx = QFixed::fromReal(transformedPosition.x());
@@ -9027,7 +9028,7 @@ void QPainter::drawPixmapFragments(const PixmapFragment *fragments, int fragment
{
Q_D(QPainter);
- if (!d->engine)
+ if (!d->engine || pixmap.isNull())
return;
#ifndef QT_NO_DEBUG
diff --git a/src/gui/painting/qtransform.h b/src/gui/painting/qtransform.h
index 212a582217..11f267337c 100644
--- a/src/gui/painting/qtransform.h
+++ b/src/gui/painting/qtransform.h
@@ -64,7 +64,6 @@ class QVariant;
class Q_GUI_EXPORT QTransform
{
- Q_ENUMS(TransformationType)
public:
enum TransformationType {
TxNone = 0x00,
diff --git a/src/gui/styles/qcleanlooksstyle.cpp b/src/gui/styles/qcleanlooksstyle.cpp
index ada5293320..306219d01f 100644
--- a/src/gui/styles/qcleanlooksstyle.cpp
+++ b/src/gui/styles/qcleanlooksstyle.cpp
@@ -2157,7 +2157,7 @@ void QCleanlooksStyle::drawControl(ControlElement element, const QStyleOption *o
}
if (button->features & QStyleOptionButton::HasMenu)
- ir = ir.adjusted(0, 0, -pixelMetric(PM_MenuButtonIndicator, button, widget), 0);
+ ir = ir.adjusted(0, 0, -proxy()->pixelMetric(PM_MenuButtonIndicator, button, widget), 0);
proxy()->drawItemText(painter, ir, tf, button->palette, (button->state & State_Enabled),
button->text, QPalette::ButtonText);
}
@@ -4014,8 +4014,8 @@ QRect QCleanlooksStyle::subControlRect(ComplexControl control, const QStyleOptio
switch (subControl) {
case SC_SliderHandle: {
if (slider->orientation == Qt::Horizontal) {
- rect.setHeight(pixelMetric(PM_SliderThickness));
- rect.setWidth(pixelMetric(PM_SliderLength));
+ rect.setHeight(proxy()->pixelMetric(PM_SliderThickness));
+ rect.setWidth(proxy()->pixelMetric(PM_SliderLength));
int centerY = slider->rect.center().y() - rect.height() / 2;
if (slider->tickPosition & QSlider::TicksAbove)
centerY += tickSize;
@@ -4023,8 +4023,8 @@ QRect QCleanlooksStyle::subControlRect(ComplexControl control, const QStyleOptio
centerY -= tickSize;
rect.moveTop(centerY);
} else {
- rect.setWidth(pixelMetric(PM_SliderThickness));
- rect.setHeight(pixelMetric(PM_SliderLength));
+ rect.setWidth(proxy()->pixelMetric(PM_SliderThickness));
+ rect.setHeight(proxy()->pixelMetric(PM_SliderLength));
int centerX = slider->rect.center().x() - rect.width() / 2;
if (slider->tickPosition & QSlider::TicksAbove)
centerX += tickSize;
diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp
index c989bd3d8a..c5429dd0f5 100644
--- a/src/gui/styles/qgtkstyle.cpp
+++ b/src/gui/styles/qgtkstyle.cpp
@@ -836,7 +836,10 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element,
case PE_PanelItemViewItem:
if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option)) {
- if (vopt->backgroundBrush.style() != Qt::NoBrush) {
+ uint resolve_mask = vopt->palette.resolve();
+ if (vopt->backgroundBrush.style() != Qt::NoBrush
+ || (resolve_mask & (1 << QPalette::Base)))
+ {
QPointF oldBO = painter->brushOrigin();
painter->setBrushOrigin(vopt->rect.topLeft());
painter->fillRect(vopt->rect, vopt->backgroundBrush);
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index e28403bf4d..358c6aa494 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -154,6 +154,9 @@ QS60StylePrivate::~QS60StylePrivate()
{
clearCaches(); //deletes also background image
deleteThemePalette();
+#ifdef Q_WS_S60
+ removeAnimations();
+#endif
}
void QS60StylePrivate::drawSkinElement(SkinElements element, QPainter *painter,
@@ -1097,8 +1100,7 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
}
State mflags = bflags;
if (toolBtn->state & State_Sunken) {
- if (toolBtn->activeSubControls & SC_ToolButton)
- bflags |= State_Sunken;
+ bflags |= State_Sunken;
mflags |= State_Sunken;
}
@@ -1114,11 +1116,6 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
if (bflags & (State_Sunken | State_On | State_Raised | State_Enabled)) {
tool.rect = button.unite(menuRect);
tool.state = bflags;
- const QToolButton *toolButtonWidget = qobject_cast<const QToolButton *>(widget);
- const QS60StylePrivate::SkinElements element =
- ((toolButtonWidget && toolButtonWidget->isDown()) || (option->state & State_Sunken)) ?
- QS60StylePrivate::SE_ToolBarButtonPressed : QS60StylePrivate::SE_ToolBarButton;
- QS60StylePrivate::drawSkinElement(element, painter, tool.rect, flags);
drawPrimitive(PE_PanelButtonTool, &tool, painter, widget);
}
if (toolBtn->subControls & SC_ToolButtonMenu) {
@@ -2174,9 +2171,12 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
case PE_PanelButtonBevel:
case PE_FrameButtonBevel:
if (QS60StylePrivate::canDrawThemeBackground(option->palette.base(), widget)) {
- const bool isPressed = option->state & State_Sunken;
- const QS60StylePrivate::SkinElements skinElement =
- isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal;
+ const bool isPressed = (option->state & State_Sunken) || (option->state & State_On);
+ QS60StylePrivate::SkinElements skinElement;
+ if (element == PE_PanelButtonTool)
+ skinElement = isPressed ? QS60StylePrivate::SE_ToolBarButtonPressed : QS60StylePrivate::SE_ToolBarButton;
+ else
+ skinElement = isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal;
QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags);
} else {
commonStyleDraws = true;
@@ -2340,16 +2340,20 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
tableView = true;
QS60StylePrivate::SkinElements element;
+ bool themeGraphicDefined = false;
QRect elementRect = option->rect;
//draw item is drawn as pressed, if it already has focus.
if (isPressed && (hasFocus || isSelected)) {
+ themeGraphicDefined = true;
element = tableView ? QS60StylePrivate::SE_TableItemPressed : QS60StylePrivate::SE_ListItemPressed;
} else if (hasFocus || (isSelected && selectionBehavior != QAbstractItemView::SelectItems)) {
element = QS60StylePrivate::SE_ListHighlight;
elementRect = highlightRect;
+ themeGraphicDefined = true;
}
- QS60StylePrivate::drawSkinElement(element, painter, elementRect, flags);
+ if (themeGraphicDefined)
+ QS60StylePrivate::drawSkinElement(element, painter, elementRect, flags);
} else {
QCommonStyle::drawPrimitive(element, option, painter, widget);
}
diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h
index 836969a99a..51ced96edb 100644
--- a/src/gui/styles/qs60style_p.h
+++ b/src/gui/styles/qs60style_p.h
@@ -571,6 +571,7 @@ public:
void startAnimation(QS60StyleEnums::SkinParts animation);
void stopAnimation(QS60StyleEnums::SkinParts animation);
static QS60StyleAnimation* animationDefinition(QS60StyleEnums::SkinParts part);
+ static void removeAnimations();
#endif
diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp
index f44b85e7d6..5dda42e74a 100644
--- a/src/gui/styles/qs60style_s60.cpp
+++ b/src/gui/styles/qs60style_s60.cpp
@@ -1152,6 +1152,12 @@ QS60StylePrivate::QS60StylePrivate()
setActiveLayout();
}
+void QS60StylePrivate::removeAnimations()
+{
+ //currently only one animation in the list.
+ m_animations()->removeFirst();
+}
+
QColor QS60StylePrivate::s60Color(QS60StyleEnums::ColorLists list,
int index, const QStyleOption *option)
{
diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp
index 579dd0b7da..720dd6d2d8 100644
--- a/src/gui/styles/qwindowsstyle.cpp
+++ b/src/gui/styles/qwindowsstyle.cpp
@@ -44,7 +44,7 @@
#if !defined(QT_NO_STYLE_WINDOWS) || defined(QT_PLUGIN)
-#include "qlibrary.h"
+#include <private/qsystemlibrary_p.h>
#include "qapplication.h"
#include "qbitmap.h"
#include "qdrawutil.h" // for now
@@ -126,7 +126,7 @@ QWindowsStylePrivate::QWindowsStylePrivate()
#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
if ((QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA
&& QSysInfo::WindowsVersion < QSysInfo::WV_NT_based)) {
- QLibrary shellLib(QLatin1String("shell32"));
+ QSystemLibrary shellLib(QLatin1String("shell32"));
pSHGetStockIconInfo = (PtrSHGetStockIconInfo)shellLib.resolve("SHGetStockIconInfo");
}
#endif
@@ -921,9 +921,9 @@ static const char *const question_xpm[] = {
static QPixmap loadIconFromShell32( int resourceId, int size )
{
#ifdef Q_OS_WINCE
- HMODULE hmod = LoadLibrary(L"ceshell.dll");
+ HMODULE hmod = LoadLibrary(L"ceshell");
#else
- HMODULE hmod = LoadLibrary(L"shell32.dll");
+ HMODULE hmod = QSystemLibrary::load(L"shell32");
#endif
if( hmod ) {
HICON iconHandle = (HICON)LoadImage(hmod, MAKEINTRESOURCE(resourceId), IMAGE_ICON, size, size, 0);
diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp
index 851159248f..58542e5252 100644
--- a/src/gui/styles/qwindowsvistastyle.cpp
+++ b/src/gui/styles/qwindowsvistastyle.cpp
@@ -42,6 +42,7 @@
#include "qwindowsvistastyle.h"
#include "qwindowsvistastyle_p.h"
#include <private/qstylehelper_p.h>
+#include <private/qsystemlibrary_p.h>
#if !defined(QT_NO_STYLE_WINDOWSVISTA) || defined(QT_PLUGIN)
@@ -2574,7 +2575,7 @@ bool QWindowsVistaStylePrivate::resolveSymbols()
static bool tried = false;
if (!tried) {
tried = true;
- QLibrary themeLib(QLatin1String("uxtheme"));
+ QSystemLibrary themeLib(QLatin1String("uxtheme"));
pSetWindowTheme = (PtrSetWindowTheme )themeLib.resolve("SetWindowTheme");
pIsThemePartDefined = (PtrIsThemePartDefined )themeLib.resolve("IsThemePartDefined");
pGetThemePartSize = (PtrGetThemePartSize )themeLib.resolve("GetThemePartSize");
diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp
index 8743807016..d36011c9ca 100644
--- a/src/gui/styles/qwindowsxpstyle.cpp
+++ b/src/gui/styles/qwindowsxpstyle.cpp
@@ -48,7 +48,7 @@
#include <private/qapplication_p.h>
#include <private/qstylehelper_p.h>
#include <private/qwidget_p.h>
-#include <qlibrary.h>
+#include <private/qsystemlibrary_p.h>
#include <qpainter.h>
#include <qpaintengine.h>
#include <qwidget.h>
@@ -344,7 +344,7 @@ bool QWindowsXPStylePrivate::resolveSymbols()
static bool tried = false;
if (!tried) {
tried = true;
- QLibrary themeLib(QLatin1String("uxtheme"));
+ QSystemLibrary themeLib(QLatin1String("uxtheme"));
pIsAppThemed = (PtrIsAppThemed)themeLib.resolve("IsAppThemed");
if (pIsAppThemed) {
pIsThemeActive = (PtrIsThemeActive )themeLib.resolve("IsThemeActive");
diff --git a/src/gui/text/qfont_s60.cpp b/src/gui/text/qfont_s60.cpp
index ccd17a2123..d39f30a7c7 100644
--- a/src/gui/text/qfont_s60.cpp
+++ b/src/gui/text/qfont_s60.cpp
@@ -40,15 +40,21 @@
****************************************************************************/
#include "qfont.h"
+#include "qfont_p.h"
#include <private/qt_s60_p.h>
#include <private/qpixmap_s60_p.h>
#include "qmutex.h"
QT_BEGIN_NAMESPACE
-#if 1
#ifdef QT_NO_FREETYPE
Q_GLOBAL_STATIC(QMutex, lastResortFamilyMutex);
+extern QStringList qt_symbian_fontFamiliesOnFontServer(); // qfontdatabase_s60.cpp
+Q_GLOBAL_STATIC_WITH_INITIALIZER(QStringList, fontFamiliesOnFontServer, {
+ // We are only interested in the initial font families. No Application fonts.
+ // Therefore, we are allowed to cache the list.
+ x->append(qt_symbian_fontFamiliesOnFontServer());
+});
#endif // QT_NO_FREETYPE
QString QFont::lastResortFamily() const
@@ -70,7 +76,7 @@ QString QFont::lastResortFamily() const
lock.relock();
}
return family;
-#else
+#else // QT_NO_FREETYPE
// For the FreeType case we just hard code the face name, since otherwise on
// East Asian systems we may get a name for a stroke based (non-ttf) font.
@@ -82,15 +88,24 @@ QString QFont::lastResortFamily() const
return QLatin1String(isJapaneseOrChineseSystem?"Heisei Kaku Gothic S60":"Series 60 Sans");
#endif // QT_NO_FREETYPE
}
-#else // 0
-QString QFont::lastResortFamily() const
-{
- return QLatin1String("Series 60 Sans");
-}
-#endif // 0
QString QFont::defaultFamily() const
{
+#ifdef QT_NO_FREETYPE
+ switch(d->request.styleHint) {
+ case QFont::SansSerif: {
+ static const char* const preferredSansSerif[] = {"Nokia Sans S60", "Series 60 Sans"};
+ for (int i = 0; i < sizeof preferredSansSerif / sizeof preferredSansSerif[0]; ++i) {
+ const QString sansSerif = QLatin1String(preferredSansSerif[i]);
+ if (fontFamiliesOnFontServer()->contains(sansSerif))
+ return sansSerif;
+ }
+ }
+ // No break. Intentional fall through.
+ default:
+ return lastResortFamily();
+ }
+#endif // QT_NO_FREETYPE
return lastResortFamily();
}
diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp
index 0b38aaba14..ec252cdb49 100644
--- a/src/gui/text/qfontdatabase_s60.cpp
+++ b/src/gui/text/qfontdatabase_s60.cpp
@@ -58,6 +58,21 @@
QT_BEGIN_NAMESPACE
+QStringList qt_symbian_fontFamiliesOnFontServer() // Also used in qfont_s60.cpp
+{
+ QStringList result;
+ QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock);
+ const int numTypeFaces = S60->screenDevice()->NumTypefaces();
+ for (int i = 0; i < numTypeFaces; i++) {
+ TTypefaceSupport typefaceSupport;
+ S60->screenDevice()->TypefaceSupport(typefaceSupport, i);
+ const QString familyName((const QChar *)typefaceSupport.iTypeface.iName.Ptr(), typefaceSupport.iTypeface.iName.Length());
+ result.append(familyName);
+ }
+ lock.relock();
+ return result;
+}
+
QFileInfoList alternativeFilePaths(const QString &path, const QStringList &nameFilters,
QDir::Filters filters = QDir::NoFilter, QDir::SortFlags sort = QDir::NoSort,
bool uniqueFileNames = true)
@@ -99,6 +114,7 @@ public:
~QSymbianFontDatabaseExtrasImplementation();
const QSymbianTypeFaceExtras *extras(const QString &typeface, bool bold, bool italic) const;
+ void addFontFileToFontStore(const QFileInfo &fontFileInfo);
#ifndef Q_SYMBIAN_HAS_FONTTABLE_API
struct CFontFromFontStoreReleaser {
@@ -150,11 +166,8 @@ QSymbianFontDatabaseExtrasImplementation::QSymbianFontDatabaseExtrasImplementati
m_store->InstallRasterizerL(m_rasterizer);
CleanupStack::Pop(m_rasterizer););
- foreach (const QFileInfo &fontFileInfo, fontFiles) {
- const QString fontFile = QDir::toNativeSeparators(fontFileInfo.absoluteFilePath());
- TPtrC fontFilePtr(qt_QString2TPtrC(fontFile));
- QT_TRAP_THROWING(m_store->AddFileL(fontFilePtr));
- }
+ foreach (const QFileInfo &fontFileInfo, fontFiles)
+ addFontFileToFontStore(fontFileInfo);
#endif // !Q_SYMBIAN_HAS_FONTTABLE_API
}
@@ -250,6 +263,14 @@ const QSymbianTypeFaceExtras *QSymbianFontDatabaseExtrasImplementation::extras(c
}
return m_extrasHash.value(searchKey);
}
+
+void QSymbianFontDatabaseExtrasImplementation::addFontFileToFontStore(const QFileInfo &fontFileInfo)
+{
+ const QString fontFile = QDir::toNativeSeparators(fontFileInfo.absoluteFilePath());
+ TPtrC fontFilePtr(qt_QString2TPtrC(fontFile));
+ QT_TRAP_THROWING(m_store->AddFileL(fontFilePtr));
+}
+
#else // QT_NO_FREETYPE
class QFontEngineFTS60 : public QFontEngineFT
{
@@ -310,6 +331,57 @@ void QFontEngineMultiS60::loadEngine(int at)
Q_ASSERT(engines[at]);
}
+static bool addFontToScreenDevice(int screenDeviceFontIndex,
+ const QSymbianFontDatabaseExtrasImplementation *dbExtras)
+{
+ TTypefaceSupport typefaceSupport;
+ S60->screenDevice()->TypefaceSupport(typefaceSupport, screenDeviceFontIndex);
+ CFont *font; // We have to get a font instance in order to know all the details
+ TFontSpec fontSpec(typefaceSupport.iTypeface.iName, 11);
+ if (S60->screenDevice()->GetNearestFontInPixels(font, fontSpec) != KErrNone)
+ return false;
+ QScopedPointer<CFont, QSymbianFontDatabaseExtrasImplementation::CFontFromScreenDeviceReleaser> sFont(font);
+ if (font->TypeUid() != KCFbsFontUid)
+ return false;
+ TOpenFontFaceAttrib faceAttrib;
+ const CFbsFont *cfbsFont = static_cast<const CFbsFont *>(font);
+ cfbsFont->GetFaceAttrib(faceAttrib);
+
+ QtFontStyle::Key styleKey;
+ styleKey.style = faceAttrib.IsItalic()?QFont::StyleItalic:QFont::StyleNormal;
+ styleKey.weight = faceAttrib.IsBold()?QFont::Bold:QFont::Normal;
+
+ QString familyName((const QChar *)typefaceSupport.iTypeface.iName.Ptr(), typefaceSupport.iTypeface.iName.Length());
+ QtFontFamily *family = privateDb()->family(familyName, true);
+ family->fixedPitch = faceAttrib.IsMonoWidth();
+ QtFontFoundry *foundry = family->foundry(QString(), true);
+ QtFontStyle *style = foundry->style(styleKey, true);
+ style->smoothScalable = typefaceSupport.iIsScalable;
+ style->pixelSize(0, true);
+
+ const QSymbianTypeFaceExtras *typeFaceExtras =
+ dbExtras->extras(familyName, faceAttrib.IsBold(), faceAttrib.IsItalic());
+ const QByteArray os2Table = typeFaceExtras->getSfntTable(MAKE_TAG('O', 'S', '/', '2'));
+ const unsigned char* data = reinterpret_cast<const unsigned char*>(os2Table.constData());
+ const unsigned char* ulUnicodeRange = data + 42;
+ quint32 unicodeRange[4] = {
+ qFromBigEndian<quint32>(ulUnicodeRange),
+ qFromBigEndian<quint32>(ulUnicodeRange + 4),
+ qFromBigEndian<quint32>(ulUnicodeRange + 8),
+ qFromBigEndian<quint32>(ulUnicodeRange + 12)
+ };
+ const unsigned char* ulCodePageRange = data + 78;
+ quint32 codePageRange[2] = {
+ qFromBigEndian<quint32>(ulCodePageRange),
+ qFromBigEndian<quint32>(ulCodePageRange + 4)
+ };
+ const QList<QFontDatabase::WritingSystem> writingSystems =
+ determineWritingSystemsFromTrueTypeBits(unicodeRange, codePageRange);
+ foreach (const QFontDatabase::WritingSystem system, writingSystems)
+ family->writingSystems[system] = QtFontFamily::Supported;
+ return true;
+}
+
static void initializeDb()
{
QFontDatabasePrivate *db = privateDb();
@@ -325,59 +397,9 @@ static void initializeDb()
const int numTypeFaces = S60->screenDevice()->NumTypefaces();
const QSymbianFontDatabaseExtrasImplementation *dbExtras =
static_cast<const QSymbianFontDatabaseExtrasImplementation*>(db->symbianExtras);
- bool fontAdded = false;
- for (int i = 0; i < numTypeFaces; i++) {
- TTypefaceSupport typefaceSupport;
- S60->screenDevice()->TypefaceSupport(typefaceSupport, i);
- CFont *font; // We have to get a font instance in order to know all the details
- TFontSpec fontSpec(typefaceSupport.iTypeface.iName, 11);
- if (S60->screenDevice()->GetNearestFontInPixels(font, fontSpec) != KErrNone)
- continue;
- QScopedPointer<CFont, QSymbianFontDatabaseExtrasImplementation::CFontFromScreenDeviceReleaser> sFont(font);
- if (font->TypeUid() == KCFbsFontUid) {
- TOpenFontFaceAttrib faceAttrib;
- const CFbsFont *cfbsFont = static_cast<const CFbsFont *>(font);
- cfbsFont->GetFaceAttrib(faceAttrib);
-
- QtFontStyle::Key styleKey;
- styleKey.style = faceAttrib.IsItalic()?QFont::StyleItalic:QFont::StyleNormal;
- styleKey.weight = faceAttrib.IsBold()?QFont::Bold:QFont::Normal;
-
- QString familyName((const QChar *)typefaceSupport.iTypeface.iName.Ptr(), typefaceSupport.iTypeface.iName.Length());
- QtFontFamily *family = db->family(familyName, true);
- family->fixedPitch = faceAttrib.IsMonoWidth();
- QtFontFoundry *foundry = family->foundry(QString(), true);
- QtFontStyle *style = foundry->style(styleKey, true);
- style->smoothScalable = typefaceSupport.iIsScalable;
- style->pixelSize(0, true);
-
- const QSymbianTypeFaceExtras *typeFaceExtras =
- dbExtras->extras(familyName, faceAttrib.IsBold(), faceAttrib.IsItalic());
- const QByteArray os2Table = typeFaceExtras->getSfntTable(MAKE_TAG('O', 'S', '/', '2'));
- const unsigned char* data = reinterpret_cast<const unsigned char*>(os2Table.constData());
- const unsigned char* ulUnicodeRange = data + 42;
- quint32 unicodeRange[4] = {
- qFromBigEndian<quint32>(ulUnicodeRange),
- qFromBigEndian<quint32>(ulUnicodeRange + 4),
- qFromBigEndian<quint32>(ulUnicodeRange + 8),
- qFromBigEndian<quint32>(ulUnicodeRange + 12)
- };
- const unsigned char* ulCodePageRange = data + 78;
- quint32 codePageRange[2] = {
- qFromBigEndian<quint32>(ulCodePageRange),
- qFromBigEndian<quint32>(ulCodePageRange + 4)
- };
- const QList<QFontDatabase::WritingSystem> writingSystems =
- determineWritingSystemsFromTrueTypeBits(unicodeRange, codePageRange);
- foreach (const QFontDatabase::WritingSystem system, writingSystems)
- family->writingSystems[system] = QtFontFamily::Supported;
-
- fontAdded = true;
- }
- }
+ for (int i = 0; i < numTypeFaces; i++)
+ addFontToScreenDevice(i, dbExtras);
- Q_ASSERT(fontAdded);
-
lock.relock();
#else // QT_NO_FREETYPE
diff --git a/src/gui/text/qfontdatabase_win.cpp b/src/gui/text/qfontdatabase_win.cpp
index c50d363d94..8a03c5d75e 100644
--- a/src/gui/text/qfontdatabase_win.cpp
+++ b/src/gui/text/qfontdatabase_win.cpp
@@ -45,7 +45,7 @@
#include "qfont_p.h"
#include "qfontengine_p.h"
#include "qpaintdevice.h"
-#include "qlibrary.h"
+#include <private/qsystemlibrary_p.h>
#include "qabstractfileengine.h"
#include "qendian.h"
@@ -1049,7 +1049,7 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
{
if(!fnt->data.isEmpty()) {
#ifndef Q_OS_WINCE
- PtrAddFontMemResourceEx ptrAddFontMemResourceEx = (PtrAddFontMemResourceEx)QLibrary::resolve(QLatin1String("gdi32"),
+ PtrAddFontMemResourceEx ptrAddFontMemResourceEx = (PtrAddFontMemResourceEx)QSystemLibrary::resolve(QLatin1String("gdi32"),
"AddFontMemResourceEx");
if (!ptrAddFontMemResourceEx)
return;
@@ -1111,7 +1111,7 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
if (AddFontResource((LPCWSTR)fnt->fileName.utf16()) == 0)
return;
#else
- PtrAddFontResourceExW ptrAddFontResourceExW = (PtrAddFontResourceExW)QLibrary::resolve(QLatin1String("gdi32"),
+ PtrAddFontResourceExW ptrAddFontResourceExW = (PtrAddFontResourceExW)QSystemLibrary::resolve(QLatin1String("gdi32"),
"AddFontResourceExW");
if (!ptrAddFontResourceExW
|| ptrAddFontResourceExW((wchar_t*)fnt->fileName.utf16(), FR_PRIVATE, 0) == 0)
@@ -1140,7 +1140,7 @@ bool QFontDatabase::removeApplicationFont(int handle)
if (!removeSucceeded)
return false;
#else
- PtrRemoveFontMemResourceEx ptrRemoveFontMemResourceEx = (PtrRemoveFontMemResourceEx)QLibrary::resolve(QLatin1String("gdi32"),
+ PtrRemoveFontMemResourceEx ptrRemoveFontMemResourceEx = (PtrRemoveFontMemResourceEx)QSystemLibrary::resolve(QLatin1String("gdi32"),
"RemoveFontMemResourceEx");
if (!ptrRemoveFontMemResourceEx
|| !ptrRemoveFontMemResourceEx(font.handle))
@@ -1151,7 +1151,7 @@ bool QFontDatabase::removeApplicationFont(int handle)
if (!RemoveFontResource((LPCWSTR)font.fileName.utf16()))
return false;
#else
- PtrRemoveFontResourceExW ptrRemoveFontResourceExW = (PtrRemoveFontResourceExW)QLibrary::resolve(QLatin1String("gdi32"),
+ PtrRemoveFontResourceExW ptrRemoveFontResourceExW = (PtrRemoveFontResourceExW)QSystemLibrary::resolve(QLatin1String("gdi32"),
"RemoveFontResourceExW");
if (!ptrRemoveFontResourceExW
|| !ptrRemoveFontResourceExW((LPCWSTR)font.fileName.utf16(), FR_PRIVATE, 0))
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 1c705ae911..398029b741 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -874,8 +874,8 @@ const uchar *QFontEngine::getCMap(const uchar *table, uint tableSize, bool *isSy
enum {
Invalid,
- Symbol,
AppleRoman,
+ Symbol,
Unicode11,
Unicode,
MicrosoftUnicode,
@@ -939,7 +939,7 @@ const uchar *QFontEngine::getCMap(const uchar *table, uint tableSize, bool *isSy
return 0;
resolveTable:
- *isSymbolFont = (score == Symbol);
+ *isSymbolFont = (symbolTable > -1);
unsigned int unicode_table = qFromBigEndian<quint32>(maps + 8*tableToUse + 4);
@@ -1093,6 +1093,18 @@ const QVector<QRgb> &QFontEngine::grayPalette()
return *qt_grayPalette();
}
+QFixed QFontEngine::lastRightBearing(const QGlyphLayout &glyphs, bool round)
+{
+ if (glyphs.numGlyphs >= 1) {
+ glyph_t glyph = glyphs.glyphs[glyphs.numGlyphs - 1];
+ glyph_metrics_t gi = boundingBox(glyph);
+ if (gi.isValid())
+ return round ? QFixed(qRound(gi.xoff - gi.x - gi.width))
+ : QFixed(gi.xoff - gi.x - gi.width);
+ }
+ return 0;
+}
+
// ------------------------------------------------------------------
// The box font engine
// ------------------------------------------------------------------
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp
index 1ee714444b..814ad21650 100644
--- a/src/gui/text/qfontengine_ft.cpp
+++ b/src/gui/text/qfontengine_ft.cpp
@@ -94,6 +94,13 @@ QT_BEGIN_NAMESPACE
#define Y_SIZE(face,i) ((face)->available_sizes[i].height << 6)
#endif
+/* FreeType 2.1.10 starts to provide FT_GlyphSlot_Embolden */
+#if (FREETYPE_MAJOR*10000+FREETYPE_MINOR*100+FREETYPE_PATCH) >= 20110
+#define Q_FT_GLYPHSLOT_EMBOLDEN(slot) FT_GlyphSlot_Embolden(slot)
+#else
+#define Q_FT_GLYPHSLOT_EMBOLDEN(slot)
+#endif
+
#define FLOOR(x) ((x) & -64)
#define CEIL(x) (((x)+63) & -64)
#define TRUNC(x) ((x) >> 6)
@@ -799,7 +806,7 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyphMetrics(QGlyphSet *set, uint glyph
}
FT_GlyphSlot slot = face->glyph;
- if (embolden) FT_GlyphSlot_Embolden(slot);
+ if (embolden) Q_FT_GLYPHSLOT_EMBOLDEN(slot);
int left = slot->metrics.horiBearingX;
int right = slot->metrics.horiBearingX + slot->metrics.width;
int top = slot->metrics.horiBearingY;
@@ -945,7 +952,7 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph, Glyph
return 0;
FT_GlyphSlot slot = face->glyph;
- if (embolden) FT_GlyphSlot_Embolden(slot);
+ if (embolden) Q_FT_GLYPHSLOT_EMBOLDEN(slot);
FT_Library library = qt_getFreetype();
info.xOff = TRUNC(ROUND(slot->advance.x));
@@ -1563,8 +1570,6 @@ bool QFontEngineFT::stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs
FT_Face face = freetype->face;
for ( int i = 0; i < len; ++i ) {
unsigned int uc = getChar(str, i, len);
- if (mirrored)
- uc = QChar::mirroredChar(uc);
glyphs->glyphs[glyph_pos] = uc < QFreetypeFace::cmapCacheSize ? freetype->cmapCache[uc] : 0;
if ( !glyphs->glyphs[glyph_pos] ) {
glyph_t glyph;
diff --git a/src/gui/text/qfontengine_mac.mm b/src/gui/text/qfontengine_mac.mm
index 91b608253a..bdf3848b71 100644
--- a/src/gui/text/qfontengine_mac.mm
+++ b/src/gui/text/qfontengine_mac.mm
@@ -455,12 +455,13 @@ bool QCoreTextFontEngine::stringToCMap(const QChar *, int, QGlyphLayout *, int *
glyph_metrics_t QCoreTextFontEngine::boundingBox(const QGlyphLayout &glyphs)
{
QFixed w;
+ bool round = fontDef.styleStrategy & QFont::ForceIntegerMetrics;
+
for (int i = 0; i < glyphs.numGlyphs; ++i) {
- w += (fontDef.styleStrategy & QFont::ForceIntegerMetrics)
- ? glyphs.effectiveAdvance(i).round()
- : glyphs.effectiveAdvance(i);
+ w += round ? glyphs.effectiveAdvance(i).round()
+ : glyphs.effectiveAdvance(i);
}
- return glyph_metrics_t(0, -(ascent()), w, ascent()+descent(), w, 0);
+ return glyph_metrics_t(0, -(ascent()), w - lastRightBearing(glyphs, round), ascent()+descent(), w, 0);
}
glyph_metrics_t QCoreTextFontEngine::boundingBox(glyph_t glyph)
{
@@ -1480,12 +1481,12 @@ void QFontEngineMac::recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFla
glyph_metrics_t QFontEngineMac::boundingBox(const QGlyphLayout &glyphs)
{
QFixed w;
+ bool round = fontDef.styleStrategy & QFont::ForceIntegerMetrics;
for (int i = 0; i < glyphs.numGlyphs; ++i) {
- w += (fontDef.styleStrategy & QFont::ForceIntegerMetrics)
- ? glyphs.effectiveAdvance(i).round()
- : glyphs.effectiveAdvance(i);
+ w += round ? glyphs.effectiveAdvance(i).round()
+ : glyphs.effectiveAdvance(i);
}
- return glyph_metrics_t(0, -(ascent()), w, ascent()+descent(), w, 0);
+ return glyph_metrics_t(0, -(ascent()), w - lastRightBearing(glyphs, round), ascent()+descent(), w, 0);
}
glyph_metrics_t QFontEngineMac::boundingBox(glyph_t glyph)
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h
index 897f76f774..48f3ce0035 100644
--- a/src/gui/text/qfontengine_p.h
+++ b/src/gui/text/qfontengine_p.h
@@ -253,6 +253,7 @@ public:
protected:
static const QVector<QRgb> &grayPalette();
+ QFixed lastRightBearing(const QGlyphLayout &glyphs, bool round = false);
private:
struct GlyphCacheEntry {
diff --git a/src/gui/text/qfontengine_qpf.cpp b/src/gui/text/qfontengine_qpf.cpp
index a0593cc478..53b6910ee0 100644
--- a/src/gui/text/qfontengine_qpf.cpp
+++ b/src/gui/text/qfontengine_qpf.cpp
@@ -578,8 +578,6 @@ bool QFontEngineQPF::stringToCMap(const QChar *str, int len, QGlyphLayout *glyph
if (symbol) {
for (int i = 0; i < len; ++i) {
unsigned int uc = getChar(str, i, len);
- if (mirrored)
- uc = QChar::mirroredChar(uc);
glyphs->glyphs[glyph_pos] = getTrueTypeGlyphIndex(cmap, uc);
if(!glyphs->glyphs[glyph_pos] && uc < 0x100)
glyphs->glyphs[glyph_pos] = getTrueTypeGlyphIndex(cmap, uc + 0xf000);
diff --git a/src/gui/text/qfontengine_qws.cpp b/src/gui/text/qfontengine_qws.cpp
index a7a95d07ba..decc89c503 100644
--- a/src/gui/text/qfontengine_qws.cpp
+++ b/src/gui/text/qfontengine_qws.cpp
@@ -557,7 +557,7 @@ glyph_metrics_t QFontEngineQPF1::boundingBox(const QGlyphLayout &glyphs)
QFixed w = 0;
for (int i = 0; i < glyphs.numGlyphs; ++i)
w += glyphs.effectiveAdvance(i);
- return glyph_metrics_t(0, -ascent(), w, ascent()+descent()+1, w, 0);
+ return glyph_metrics_t(0, -ascent(), w - lastRightBearing(glyphs), ascent()+descent()+1, w, 0);
}
glyph_metrics_t QFontEngineQPF1::boundingBox(glyph_t glyph)
diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp
index 52a1fe70b1..5980f201d3 100644
--- a/src/gui/text/qfontengine_s60.cpp
+++ b/src/gui/text/qfontengine_s60.cpp
@@ -166,6 +166,11 @@ const uchar *QSymbianTypeFaceExtras::cmap() const
return reinterpret_cast<const uchar *>(m_cmapTable.constData());
}
+bool QSymbianTypeFaceExtras::isSymbolCMap() const
+{
+ return m_symbolCMap;
+}
+
CFont *QSymbianTypeFaceExtras::fontOwner() const
{
return m_cFont;
@@ -256,7 +261,7 @@ bool QFontEngineS60::stringToCMap(const QChar *characters, int len, QGlyphLayout
for (int i = 0; i < len; ++i) {
const unsigned int uc = getChar(characters, i, len);
*g++ = QFontEngine::getTrueTypeGlyphIndex(cmap,
- isRtl ? QChar::mirroredChar(uc) : uc);
+ (isRtl && !m_extras->isSymbolCMap()) ? QChar::mirroredChar(uc) : uc);
}
glyphs->numGlyphs = g - glyphs->glyphs;
@@ -345,7 +350,7 @@ glyph_metrics_t QFontEngineS60::boundingBox(const QGlyphLayout &glyphs)
for (int i = 0; i < glyphs.numGlyphs; ++i)
w += glyphs.effectiveAdvance(i);
- return glyph_metrics_t(0, -ascent(), w, ascent()+descent()+1, w, 0);
+ return glyph_metrics_t(0, -ascent(), w - lastRightBearing(glyphs), ascent()+descent()+1, w, 0);
}
glyph_metrics_t QFontEngineS60::boundingBox_const(glyph_t glyph) const
diff --git a/src/gui/text/qfontengine_s60_p.h b/src/gui/text/qfontengine_s60_p.h
index d65f13bbe5..d05c23c4e0 100644
--- a/src/gui/text/qfontengine_s60_p.h
+++ b/src/gui/text/qfontengine_s60_p.h
@@ -81,6 +81,7 @@ public:
bool getSfntTableData(uint tag, uchar *buffer, uint *length) const;
const uchar *cmap() const;
CFont *fontOwner() const;
+ bool isSymbolCMap() const;
private:
CFont* m_cFont;
diff --git a/src/gui/text/qfontengine_win.cpp b/src/gui/text/qfontengine_win.cpp
index a805612ac4..82de0d5ac0 100644
--- a/src/gui/text/qfontengine_win.cpp
+++ b/src/gui/text/qfontengine_win.cpp
@@ -50,7 +50,7 @@
#include "qt_windows.h"
#include <private/qapplication_p.h>
-#include <qlibrary.h>
+#include <private/qsystemlibrary_p.h>
#include <qpaintdevice.h>
#include <qpainter.h>
#include <limits.h>
@@ -140,7 +140,7 @@ static void resolveGetCharWidthI()
if (resolvedGetCharWidthI)
return;
resolvedGetCharWidthI = true;
- ptrGetCharWidthI = (PtrGetCharWidthI)QLibrary::resolve(QLatin1String("gdi32"), "GetCharWidthI");
+ ptrGetCharWidthI = (PtrGetCharWidthI)QSystemLibrary::resolve(QLatin1String("gdi32"), "GetCharWidthI");
}
#endif // !defined(Q_WS_WINCE)
@@ -487,7 +487,7 @@ glyph_metrics_t QFontEngineWin::boundingBox(const QGlyphLayout &glyphs)
for (int i = 0; i < glyphs.numGlyphs; ++i)
w += glyphs.effectiveAdvance(i);
- return glyph_metrics_t(0, -tm.tmAscent, w, tm.tmHeight, w, 0);
+ return glyph_metrics_t(0, -tm.tmAscent, w - lastRightBearing(glyphs), tm.tmHeight, w, 0);
}
#ifndef Q_WS_WINCE
diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp
index 21c2e0246c..b950b13028 100644
--- a/src/gui/text/qstatictext.cpp
+++ b/src/gui/text/qstatictext.cpp
@@ -400,9 +400,9 @@ QStaticTextPrivate::QStaticTextPrivate()
QStaticTextPrivate::QStaticTextPrivate(const QStaticTextPrivate &other)
: text(other.text), font(other.font), textWidth(other.textWidth), matrix(other.matrix),
- items(0), itemCount(0), glyphPool(0), positionPool(0), charPool(0), needsRelayout(true),
- useBackendOptimizations(other.useBackendOptimizations), textFormat(other.textFormat),
- untransformedCoordinates(other.untransformedCoordinates)
+ items(0), itemCount(0), glyphPool(0), positionPool(0), charPool(0), textOption(other.textOption),
+ needsRelayout(true), useBackendOptimizations(other.useBackendOptimizations),
+ textFormat(other.textFormat), untransformedCoordinates(other.untransformedCoordinates)
{
}
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 8d6dd6ced6..05de8f5ad8 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -1646,7 +1646,6 @@ glyph_metrics_t QTextEngine::boundingBox(int from, int len) const
for (int i = 0; i < layoutData->items.size(); i++) {
const QScriptItem *si = layoutData->items.constData() + i;
- QFontEngine *fe = fontEngine(*si);
int pos = si->position;
int ilen = length(i);
@@ -1676,6 +1675,7 @@ glyph_metrics_t QTextEngine::boundingBox(int from, int len) const
while (charFrom < ilen && logClusters[charFrom] == glyphStart)
charFrom++;
if (charFrom < ilen) {
+ QFontEngine *fe = fontEngine(*si);
glyphStart = logClusters[charFrom];
int charEnd = from + len - 1 - pos;
if (charEnd >= ilen)
@@ -1694,11 +1694,6 @@ glyph_metrics_t QTextEngine::boundingBox(int from, int len) const
gm.yoff += m.yoff;
}
}
-
- glyph_t glyph = glyphs.glyphs[logClusters[ilen - 1]];
- glyph_metrics_t gi = fe->boundingBox(glyph);
- if (gi.isValid())
- gm.width -= qRound(gi.xoff - gi.x - gi.width);
}
}
return gm;
@@ -2144,8 +2139,11 @@ bool QTextEngine::LayoutData::reallocate(int totalGlyphs)
void **newMem = memory;
newMem = (void **)::realloc(memory_on_stack ? 0 : memory, newAllocated*sizeof(void *));
- Q_CHECK_PTR(newMem);
- if (memory_on_stack && newMem)
+ if (!newMem) {
+ layoutState = LayoutFailed;
+ return false;
+ }
+ if (memory_on_stack)
memcpy(newMem, memory, allocated*sizeof(void *));
memory = newMem;
memory_on_stack = false;
@@ -2265,6 +2263,9 @@ bool QTextEngine::atWordSeparator(int position) const
case ',':
case '?':
case '!':
+ case '@':
+ case '#':
+ case '$':
case ':':
case ';':
case '-':
@@ -2285,6 +2286,7 @@ bool QTextEngine::atWordSeparator(int position) const
case '*':
case '\'':
case '"':
+ case '`':
case '~':
case '|':
return true;
diff --git a/src/gui/util/qdesktopservices_s60.cpp b/src/gui/util/qdesktopservices_s60.cpp
index 24f6ccfb8f..cd023cb360 100644
--- a/src/gui/util/qdesktopservices_s60.cpp
+++ b/src/gui/util/qdesktopservices_s60.cpp
@@ -223,6 +223,7 @@ static void handleOtherSchemesL(const TDesC& aUrl)
TApaTask task = taskList.FindApp(KUidBrowser);
if (task.Exists()){
// Switch to existing browser instance
+ task.BringToForeground();
HBufC8* param8 = HBufC8::NewLC(buf16->Length());
param8->Des().Append(buf16->Des());
task.SendMessage(TUid::Uid( 0 ), *param8); // Uid is not used
diff --git a/src/gui/util/qdesktopservices_win.cpp b/src/gui/util/qdesktopservices_win.cpp
index aab7e16631..735de0419e 100644
--- a/src/gui/util/qdesktopservices_win.cpp
+++ b/src/gui/util/qdesktopservices_win.cpp
@@ -41,7 +41,7 @@
#include <qsettings.h>
#include <qdir.h>
-#include <qlibrary.h>
+#include <private/qsystemlibrary_p.h>
#include <qurl.h>
#include <qstringlist.h>
#include <qprocess.h>
@@ -177,9 +177,9 @@ QString QDesktopServices::storageLocation(StandardLocation type)
QString result;
#ifndef Q_OS_WINCE
- QLibrary library(QLatin1String("shell32"));
+ QSystemLibrary library(QLatin1String("shell32"));
#else
- QLibrary library(QLatin1String("coredll"));
+ QSystemLibrary library(QLatin1String("coredll"));
#endif // Q_OS_WINCE
typedef BOOL (WINAPI*GetSpecialFolderPath)(HWND, LPWSTR, int, BOOL);
static GetSpecialFolderPath SHGetSpecialFolderPath =
diff --git a/src/gui/util/qsystemtrayicon_win.cpp b/src/gui/util/qsystemtrayicon_win.cpp
index a9585b994a..fc5de44ee6 100644
--- a/src/gui/util/qsystemtrayicon_win.cpp
+++ b/src/gui/util/qsystemtrayicon_win.cpp
@@ -54,7 +54,7 @@
#include <windowsx.h>
#include <commctrl.h>
-#include <QLibrary>
+#include <private/qsystemlibrary_p.h>
#include <QApplication>
#include <QSettings>
@@ -155,14 +155,14 @@ QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *object)
// Allow the WM_TASKBARCREATED message through the UIPI filter on Windows Vista and higher
static PtrChangeWindowMessageFilterEx pChangeWindowMessageFilterEx =
- (PtrChangeWindowMessageFilterEx)QLibrary::resolve(QLatin1String("user32"), "ChangeWindowMessageFilterEx");
+ (PtrChangeWindowMessageFilterEx)QSystemLibrary::resolve(QLatin1String("user32"), "ChangeWindowMessageFilterEx");
if (pChangeWindowMessageFilterEx) {
// Call the safer ChangeWindowMessageFilterEx API if available
pChangeWindowMessageFilterEx(winId(), MYWM_TASKBARCREATED, Q_MSGFLT_ALLOW, 0);
} else {
static PtrChangeWindowMessageFilter pChangeWindowMessageFilter =
- (PtrChangeWindowMessageFilter)QLibrary::resolve(QLatin1String("user32"), "ChangeWindowMessageFilter");
+ (PtrChangeWindowMessageFilter)QSystemLibrary::resolve(QLatin1String("user32"), "ChangeWindowMessageFilter");
if (pChangeWindowMessageFilter) {
// Call the deprecated ChangeWindowMessageFilter API otherwise
@@ -350,7 +350,7 @@ void QSystemTrayIconPrivate::install_sys()
QRect QSystemTrayIconSys::findIconGeometry(const int iconId)
{
static PtrShell_NotifyIconGetRect Shell_NotifyIconGetRect =
- (PtrShell_NotifyIconGetRect)QLibrary::resolve(QLatin1String("shell32"), "Shell_NotifyIconGetRect");
+ (PtrShell_NotifyIconGetRect)QSystemLibrary::resolve(QLatin1String("shell32"), "Shell_NotifyIconGetRect");
if (Shell_NotifyIconGetRect) {
Q_NOTIFYICONIDENTIFIER nid;
diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index 917a325ead..96d2acdd06 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -2849,7 +2849,8 @@ void QComboBox::mousePressEvent(QMouseEvent *e)
if (sc == QStyle::SC_ComboBoxArrow)
d->updateArrow(QStyle::State_Sunken);
#ifdef QT_KEYPAD_NAVIGATION
- if (!d->lineEdit) {
+ //if the container already exists, then d->viewContainer() is safe to call
+ if (d->container) {
#endif
// We've restricted the next couple of lines, because by not calling
// viewContainer(), we avoid creating the QComboBoxPrivateContainer.
diff --git a/src/gui/widgets/qdatetimeedit.cpp b/src/gui/widgets/qdatetimeedit.cpp
index 7a61dc7e01..bd6c57703d 100644
--- a/src/gui/widgets/qdatetimeedit.cpp
+++ b/src/gui/widgets/qdatetimeedit.cpp
@@ -248,7 +248,7 @@ void QDateTimeEdit::setDateTime(const QDateTime &datetime)
/*!
\property QDateTimeEdit::date
- \brief the QDate that is set in the QDateTimeEdit
+ \brief the QDate that is set in the widget
By default, this property contains a date that refers to January 1, 2000.
@@ -279,7 +279,7 @@ void QDateTimeEdit::setDate(const QDate &date)
/*!
\property QDateTimeEdit::time
- \brief the QTime that is set in the QDateTimeEdit
+ \brief the QTime that is set in the widget
By default, this property contains a time of 00:00:00 and 0 milliseconds.
@@ -1555,13 +1555,6 @@ QTimeEdit::QTimeEdit(const QTime &time, QWidget *parent)
{
}
-/*!
- \property QTimeEdit::time
- \brief the QTime that is shown in the widget
-
- By default, this property contains a time of 00:00:00 and 0 milliseconds.
-*/
-
/*!
\class QDateEdit
@@ -1616,13 +1609,6 @@ QDateEdit::QDateEdit(const QDate &date, QWidget *parent)
{
}
-/*!
- \property QDateEdit::date
- \brief the QDate that is shown in the widget
-
- By default, this property contains a date referring to January 1, 2000.
-*/
-
// --- QDateTimeEditPrivate ---
diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp
index 6ed621ba0b..f742d32f9f 100644
--- a/src/gui/widgets/qlinecontrol.cpp
+++ b/src/gui/widgets/qlinecontrol.cpp
@@ -419,7 +419,7 @@ void QLineControl::processInputMethodEvent(QInputMethodEvent *event)
int c = m_cursor; // cursor position after insertion of commit string
- if (event->replacementStart() == 0)
+ if (event->replacementStart() <= 0)
c += event->commitString().length() + qMin(-event->replacementStart(), event->replacementLength());
m_cursor += event->replacementStart();
@@ -527,7 +527,7 @@ void QLineControl::draw(QPainter *painter, const QPoint &offset, const QRect &cl
int cursor = m_cursor;
if (m_preeditCursor != -1)
cursor += m_preeditCursor;
- if(!m_blinkPeriod || m_blinkStatus)
+ if (!m_hideCursor && (!m_blinkPeriod || m_blinkStatus))
m_textLayout.drawCursor(painter, offset, cursor, m_cursorWidth);
}
}
diff --git a/src/gui/widgets/qlineedit.cpp b/src/gui/widgets/qlineedit.cpp
index 981e934ecf..caaef6866e 100644
--- a/src/gui/widgets/qlineedit.cpp
+++ b/src/gui/widgets/qlineedit.cpp
@@ -1929,7 +1929,11 @@ void QLineEdit::paintEvent(QPaintEvent *)
// text doesn't fit, text document is to the left of lineRect; align
// right
d->hscroll = widthUsed - lineRect.width() + 1;
+ } else {
+ //in case the text is bigger than the lineedit, the hscroll can never be negative
+ d->hscroll = qMax(0, d->hscroll);
}
+
// the y offset is there to keep the baseline constant in case we have script changes in the text.
QPoint topLeft = lineRect.topLeft() - QPoint(d->hscroll, d->control->ascent() - fm.ascent());
diff --git a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
index 6c38911c92..4983840aed 100644
--- a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
+++ b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
@@ -95,30 +95,61 @@ public:
/*!
\qmlclass FolderListModel QDeclarativeFolderListModel
\ingroup qml-working-with-data
- \brief The FolderListModel provides a model of the contents of a folder in a filesystem.
+ \brief The FolderListModel provides a model of the contents of a file system folder.
- FolderListModel provides access to the local filesystem. The \e folder property
- specifies the folder to list.
+ FolderListModel provides access to information about the contents of a folder
+ in the local file system, exposing a list of files to views and other data components.
- Qt uses "/" as a universal directory separator in the same way that "/" is
- used as a path separator in URLs. If you always use "/" as a directory
- separator, Qt will translate your paths to conform to the underlying
- operating system.
-
- This type is made available by importing the \c Qt.labs.folderlistmodel module.
- \e {Elements in the Qt.labs module are not guaranteed to remain compatible
+ \note This type is made available by importing the \c Qt.labs.folderlistmodel module.
+ \e{Elements in the Qt.labs module are not guaranteed to remain compatible
in future versions.}
\bold{import Qt.labs.folderlistmodel 1.0}
- The roles available are:
+ The \l folder property specifies the folder to access. Information about the
+ files and directories in the folder is supplied via the model's interface.
+ Components access names and paths via the following roles:
+
\list
\o fileName
\o filePath
\endlist
- Additionally a file entry can be differentiated from a folder entry
- via the \l isFolder() method.
+ Additionally a file entry can be differentiated from a folder entry via the
+ isFolder() method.
+
+ \section1 Filtering
+
+ Various properties can be set to filter the number of files and directories
+ exposed by the model.
+
+ The \l nameFilters property can be set to contain a list of wildcard filters
+ that are applied to names of files and directories, causing only those that
+ match the filters to be exposed.
+
+ Directories can be included or excluded using the \l showDirs property, and
+ navigation directories can also be excluded by setting the \l showDotAndDotDot
+ property to false.
+
+ It is sometimes useful to limit the files and directories exposed to those
+ that the user can access. The \l showOnlyReadable property can be set to
+ enable this feature.
+
+ \section1 Example Usage
+
+ The following example shows a FolderListModel being used to provide a list
+ of QML files in a \l ListView:
+
+ \snippet doc/src/snippets/declarative/folderlistmodel.qml 0
+
+ \section1 Path Separators
+
+ Qt uses "/" as a universal directory separator in the same way that "/" is
+ used as a path separator in URLs. If you always use "/" as a directory
+ separator, Qt will translate your paths to conform to the underlying
+ operating system.
+
+ \sa {QML Data Models}
*/
QDeclarativeFolderListModel::QDeclarativeFolderListModel(QObject *parent)
@@ -168,9 +199,13 @@ int QDeclarativeFolderListModel::rowCount(const QModelIndex &parent) const
/*!
\qmlproperty string FolderListModel::folder
- The \a folder property holds the folder the model is currently providing.
+ The \a folder property holds a URL for the folder that the model is
+ currently providing.
- It is a URL, but must be a file: or qrc: URL (or relative to such a URL).
+ The value is a URL expressed as a string, and must be a \c file: or \c qrc:
+ URL, or a relative URL.
+
+ By default, the value is an invalid URL.
*/
QUrl QDeclarativeFolderListModel::folder() const
{
@@ -214,16 +249,18 @@ QUrl QDeclarativeFolderListModel::parentFolder() const
/*!
\qmlproperty list<string> FolderListModel::nameFilters
- The \a nameFilters property contains a list of filename filters.
+ The \a nameFilters property contains a list of file name filters.
The filters may include the ? and * wildcards.
The example below filters on PNG and JPEG files:
- \code
+ \qml
FolderListModel {
nameFilters: [ "*.png", "*.jpg" ]
}
- \endcode
+ \endqml
+
+ \note Directories are not excluded by filters.
*/
QStringList QDeclarativeFolderListModel::nameFilters() const
{
@@ -335,9 +372,14 @@ void QDeclarativeFolderListModel::dataChanged(const QModelIndex &start, const QM
/*!
\qmlproperty bool FolderListModel::showDirs
- If true (the default), directories are included in the model.
+ If true, directories are included in the model; otherwise only files
+ are included.
+
+ By default, this property is true.
- Note that the nameFilters are ignored for directories.
+ Note that the nameFilters are not applied to directories.
+
+ \sa showDotAndDotDot
*/
bool QDeclarativeFolderListModel::showDirs() const
{
@@ -357,9 +399,12 @@ void QDeclarativeFolderListModel::setShowDirs(bool on)
/*!
\qmlproperty bool FolderListModel::showDotAndDotDot
- If true, the "." and ".." directories are included in the model.
+ If true, the "." and ".." directories are included in the model; otherwise
+ they are excluded.
+
+ By default, this property is false.
- The default is false.
+ \sa showDirs
*/
bool QDeclarativeFolderListModel::showDotAndDotDot() const
{
@@ -379,9 +424,12 @@ void QDeclarativeFolderListModel::setShowDotAndDotDot(bool on)
/*!
\qmlproperty bool FolderListModel::showOnlyReadable
- If true, only readable files and directories are shown.
+ If true, only readable files and directories are shown; otherwise all files
+ and directories are shown.
+
+ By default, this property is false.
- The default is false.
+ \sa showDirs
*/
bool QDeclarativeFolderListModel::showOnlyReadable() const
{
diff --git a/src/imports/particles/qdeclarativeparticles.cpp b/src/imports/particles/qdeclarativeparticles.cpp
index 5cd9c0c760..edb69bcd2a 100644
--- a/src/imports/particles/qdeclarativeparticles.cpp
+++ b/src/imports/particles/qdeclarativeparticles.cpp
@@ -165,14 +165,6 @@ void QDeclarativeParticleMotion::destroy(QDeclarativeParticle &particle)
It has no further properties.
*/
-
-/*!
- \internal
- \class QDeclarativeParticleMotionLinear
- \ingroup group_effects
- \brief The QDeclarativeParticleMotionLinear class moves the particles linearly.
-*/
-
void QDeclarativeParticleMotionLinear::advance(QDeclarativeParticle &p, int interval)
{
p.x += interval * p.x_velocity;
@@ -196,14 +188,6 @@ void QDeclarativeParticleMotionLinear::advance(QDeclarativeParticle &p, int inte
*/
/*!
- \internal
- \class QDeclarativeParticleMotionGravity
- \ingroup group_effects
- \brief The QDeclarativeParticleMotionGravity class moves the particles towards a point.
-
-*/
-
-/*!
\qmlproperty real ParticleMotionGravity::xattractor
\qmlproperty real ParticleMotionGravity::yattractor
These properties hold the x and y coordinates of the point attracting the particles.
@@ -311,16 +295,6 @@ Rectangle {
*/
/*!
- \internal
- \class QDeclarativeParticleMotionWander
- \ingroup group_effects
- \brief The QDeclarativeParticleMotionWander class moves particles in a somewhat random fashion.
-
- The particles will continue roughly in the original direction, however will randomly
- drift to each side.
-*/
-
-/*!
\qmlproperty real ParticleMotionWander::xvariance
\qmlproperty real ParticleMotionWander::yvariance
@@ -709,13 +683,6 @@ Rectangle {
\image particles.gif
*/
-/*!
- \internal
- \class QDeclarativeParticles
- \ingroup group_effects
- \brief The QDeclarativeParticles class generates and moves particles.
-*/
-
QDeclarativeParticles::QDeclarativeParticles(QDeclarativeItem *parent)
: QDeclarativeItem(*(new QDeclarativeParticlesPrivate), parent)
{
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index 837cf66dc3..b35c31809c 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -201,7 +201,7 @@ static void ensureInitialized()
deleteResource())
\value CustomOperation custom operation (created with
- sendCustomRequest())
+ sendCustomRequest()) \since 4.7
\omitvalue UnknownOperation
diff --git a/src/network/access/qnetworkreply.cpp b/src/network/access/qnetworkreply.cpp
index c8b8c1f23c..261ed20490 100644
--- a/src/network/access/qnetworkreply.cpp
+++ b/src/network/access/qnetworkreply.cpp
@@ -283,9 +283,6 @@ QNetworkReplyPrivate::QNetworkReplyPrivate()
The upload is finished when \a bytesSent is equal to \a
bytesTotal. At that time, \a bytesTotal will not be -1.
- This signal is suitable to connecting to QProgressBar::setValue()
- to update the QProgressBar that provides user feedback.
-
\sa downloadProgress()
*/
@@ -306,9 +303,6 @@ QNetworkReplyPrivate::QNetworkReplyPrivate()
The download is finished when \a bytesReceived is equal to \a
bytesTotal. At that time, \a bytesTotal will not be -1.
- This signal is suitable to connecting to QProgressBar::setValue()
- to update the QProgressBar that provides user feedback.
-
Note that the values of both \a bytesReceived and \a bytesTotal
may be different from size(), the total number of bytes
obtained through read() or readAll(), or the value of the
diff --git a/src/network/bearer/qnetworkconfigmanager.cpp b/src/network/bearer/qnetworkconfigmanager.cpp
index 102b347d77..23d7800de9 100644
--- a/src/network/bearer/qnetworkconfigmanager.cpp
+++ b/src/network/bearer/qnetworkconfigmanager.cpp
@@ -45,16 +45,45 @@
#include "qbearerengine_p.h"
#include <QtCore/qstringlist.h>
+#include <QtCore/qcoreapplication.h>
#ifndef QT_NO_BEARERMANAGEMENT
QT_BEGIN_NAMESPACE
-Q_GLOBAL_STATIC(QNetworkConfigurationManagerPrivate, connManager);
+#define Q_GLOBAL_STATIC_QAPP_DESTRUCTION(TYPE, NAME) \
+ Q_GLOBAL_STATIC_INIT(TYPE, NAME); \
+ static void NAME##_cleanup() \
+ { \
+ delete this_##NAME.pointer; \
+ this_##NAME.pointer = 0; \
+ this_##NAME.destroyed = true; \
+ } \
+ static TYPE *NAME() \
+ { \
+ if (!this_##NAME.pointer && !this_##NAME.destroyed) { \
+ TYPE *x = new TYPE; \
+ if (!this_##NAME.pointer.testAndSetOrdered(0, x)) \
+ delete x; \
+ else \
+ qAddPostRoutine(NAME##_cleanup); \
+ } \
+ return this_##NAME.pointer; \
+ }
+
+Q_GLOBAL_STATIC_QAPP_DESTRUCTION(QNetworkConfigurationManagerPrivate, connManager);
QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate()
{
- return connManager();
+ static bool initialized = false;
+
+ QNetworkConfigurationManagerPrivate *m = connManager();
+ if (!initialized) {
+ initialized = true;
+ m->updateConfigurations();
+ }
+
+ return m;
}
/*!
@@ -178,7 +207,7 @@ QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate()
QNetworkConfigurationManager::QNetworkConfigurationManager( QObject* parent )
: QObject(parent)
{
- QNetworkConfigurationManagerPrivate *priv = connManager();
+ QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate();
connect(priv, SIGNAL(configurationAdded(QNetworkConfiguration)),
this, SIGNAL(configurationAdded(QNetworkConfiguration)));
diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp
index dd174bf51e..d38892080f 100644
--- a/src/network/bearer/qnetworkconfigmanager_p.cpp
+++ b/src/network/bearer/qnetworkconfigmanager_p.cpp
@@ -64,9 +64,6 @@ QNetworkConfigurationManagerPrivate::QNetworkConfigurationManagerPrivate()
{
qRegisterMetaType<QNetworkConfiguration>("QNetworkConfiguration");
qRegisterMetaType<QNetworkConfigurationPrivatePointer>("QNetworkConfigurationPrivatePointer");
-
- moveToThread(QCoreApplicationPrivate::mainThread());
- updateConfigurations();
}
QNetworkConfigurationManagerPrivate::~QNetworkConfigurationManagerPrivate()
@@ -359,6 +356,13 @@ void QNetworkConfigurationManagerPrivate::updateConfigurations()
if (sender())
return;
+ if (thread() != QCoreApplicationPrivate::mainThread()) {
+ if (thread() != QThread::currentThread())
+ return;
+
+ moveToThread(QCoreApplicationPrivate::mainThread());
+ }
+
updating = false;
#ifndef QT_NO_LIBRARY
diff --git a/src/network/kernel/qauthenticator.cpp b/src/network/kernel/qauthenticator.cpp
index d61c6863ea..18cc14e207 100644
--- a/src/network/kernel/qauthenticator.cpp
+++ b/src/network/kernel/qauthenticator.cpp
@@ -52,10 +52,13 @@
#include <qstring.h>
#include <qdatetime.h>
+//#define NTLMV1_CLIENT
QT_BEGIN_NAMESPACE
+#ifdef NTLMV1_CLIENT
#include "../../3rdparty/des/des.cpp"
+#endif
static QByteArray qNtlmPhase1();
static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phase2data);
@@ -203,17 +206,29 @@ QString QAuthenticator::user() const
void QAuthenticator::setUser(const QString &user)
{
detach();
-
int separatorPosn = 0;
- separatorPosn = user.indexOf(QLatin1String("\\"));
- if (separatorPosn == -1) {
- //No domain name present
+ switch(d->method) {
+ case QAuthenticatorPrivate::DigestMd5:
+ case QAuthenticatorPrivate::Ntlm:
+ if((separatorPosn = user.indexOf(QLatin1String("\\"))) != -1)
+ {
+ //domain name is present
+ d->realm = user.left(separatorPosn);
+ d->user = user.mid(separatorPosn + 1);
+ } else if((separatorPosn = user.indexOf(QLatin1String("@"))) != -1) {
+ //domain name is present
+ d->realm = user.mid(separatorPosn + 1);
+ d->user = user.left(separatorPosn);
+ } else {
+ d->user = user;
+ d->realm.clear();
+ }
+ break;
+ // For other auth mechanisms, domain name will be part of username
+ default:
d->user = user;
- } else {
- //domain name is present
- d->realm = user.left(separatorPosn);
- d->user = user.mid(separatorPosn+1);
+ break;
}
}
@@ -1178,11 +1193,9 @@ static QByteArray clientChallenge(const QAuthenticatorPrivate *ctx)
}
// caller has to ensure a valid targetInfoBuff
-static bool qExtractServerTime(const QByteArray& targetInfoBuff,
- quint64 *serverTime)
+static QByteArray qExtractServerTime(const QByteArray& targetInfoBuff)
{
- Q_ASSERT(serverTime != 0);
- bool retValue = false;
+ QByteArray timeArray;
QDataStream ds(targetInfoBuff);
ds.setByteOrder(QDataStream::LittleEndian);
@@ -1193,19 +1206,16 @@ static bool qExtractServerTime(const QByteArray& targetInfoBuff,
ds >> avLen;
while(avId != 0) {
if(avId == AVTIMESTAMP) {
- QByteArray timeArray(avLen, 0);
+ timeArray.resize(avLen);
//avLen size of QByteArray is allocated
ds.readRawData(timeArray.data(), avLen);
- bool ok;
- *serverTime = timeArray.toHex().toLongLong(&ok, 16);
- retValue = true;
break;
}
ds.skipRawData(avLen);
ds >> avId;
ds >> avLen;
}
- return retValue;
+ return timeArray;
}
static QByteArray qEncodeNtlmv2Response(const QAuthenticatorPrivate *ctx,
@@ -1228,9 +1238,17 @@ static QByteArray qEncodeNtlmv2Response(const QAuthenticatorPrivate *ctx,
ds.writeRawData(reserved1.constData(), reserved1.size());
quint64 time = 0;
+ QByteArray timeArray;
+
+ if(ch.targetInfo.len)
+ {
+ timeArray = qExtractServerTime(ch.targetInfoBuff);
+ }
//if server sends time, use it instead of current time
- if(!(ch.targetInfo.len && qExtractServerTime(ch.targetInfoBuff, &time))) {
+ if(timeArray.size()) {
+ ds.writeRawData(timeArray.constData(), timeArray.size());
+ } else {
QDateTime currentTime(QDate::currentDate(),
QTime::currentTime(), Qt::UTC);
@@ -1242,8 +1260,8 @@ static QByteArray qEncodeNtlmv2Response(const QAuthenticatorPrivate *ctx,
// represented as 100 nano seconds
time = Q_UINT64_C(time * 10000000);
+ ds << time;
}
- ds << time;
//8 byte client challenge
QByteArray clientCh = clientChallenge(ctx);
diff --git a/src/network/kernel/qhostinfo_unix.cpp b/src/network/kernel/qhostinfo_unix.cpp
index 3112dd6896..9e3da612c2 100644
--- a/src/network/kernel/qhostinfo_unix.cpp
+++ b/src/network/kernel/qhostinfo_unix.cpp
@@ -247,7 +247,10 @@ QHostInfo QHostInfoAgent::fromName(const QString &hostName)
#ifndef QT_NO_IPV6
else if (node->ai_family == AF_INET6) {
QHostAddress addr;
- addr.setAddress(((sockaddr_in6 *) node->ai_addr)->sin6_addr.s6_addr);
+ sockaddr_in6 *sa6 = (sockaddr_in6 *) node->ai_addr;
+ addr.setAddress(sa6->sin6_addr.s6_addr);
+ if (sa6->sin6_scope_id)
+ addr.setScopeId(QString::number(sa6->sin6_scope_id));
if (!addresses.contains(addr))
addresses.append(addr);
}
diff --git a/src/network/kernel/qhostinfo_win.cpp b/src/network/kernel/qhostinfo_win.cpp
index b30204b50b..8241c84a0f 100644
--- a/src/network/kernel/qhostinfo_win.cpp
+++ b/src/network/kernel/qhostinfo_win.cpp
@@ -49,7 +49,7 @@
#include "qhostinfo_p.h"
#include "private/qnativesocketengine_p.h"
#include <ws2tcpip.h>
-#include <qlibrary.h>
+#include <private/qsystemlibrary_p.h>
#include <qmutex.h>
#include <qurl.h>
#include <private/qmutexpool_p.h>
@@ -90,13 +90,13 @@ static void resolveLibrary()
// Attempt to resolve getaddrinfo(); without it we'll have to fall
// back to gethostbyname(), which has no IPv6 support.
#if !defined(Q_OS_WINCE)
- local_getaddrinfo = (getaddrinfoProto) QLibrary::resolve(QLatin1String("ws2_32.dll"), "getaddrinfo");
- local_freeaddrinfo = (freeaddrinfoProto) QLibrary::resolve(QLatin1String("ws2_32.dll"), "freeaddrinfo");
- local_getnameinfo = (getnameinfoProto) QLibrary::resolve(QLatin1String("ws2_32.dll"), "getnameinfo");
+ local_getaddrinfo = (getaddrinfoProto) QSystemLibrary::resolve(QLatin1String("ws2_32"), "getaddrinfo");
+ local_freeaddrinfo = (freeaddrinfoProto) QSystemLibrary::resolve(QLatin1String("ws2_32"), "freeaddrinfo");
+ local_getnameinfo = (getnameinfoProto) QSystemLibrary::resolve(QLatin1String("ws2_32"), "getnameinfo");
#else
- local_getaddrinfo = (getaddrinfoProto) QLibrary::resolve(QLatin1String("ws2.dll"), "getaddrinfo");
- local_freeaddrinfo = (freeaddrinfoProto) QLibrary::resolve(QLatin1String("ws2.dll"), "freeaddrinfo");
- local_getnameinfo = (getnameinfoProto) QLibrary::resolve(QLatin1String("ws2.dll"), "getnameinfo");
+ local_getaddrinfo = (getaddrinfoProto) QSystemLibrary::resolve(QLatin1String("ws2"), "getaddrinfo");
+ local_freeaddrinfo = (freeaddrinfoProto) QSystemLibrary::resolve(QLatin1String("ws2"), "freeaddrinfo");
+ local_getnameinfo = (getnameinfoProto) QSystemLibrary::resolve(QLatin1String("ws2"), "getnameinfo");
#endif
}
diff --git a/src/network/kernel/qnetworkinterface_win.cpp b/src/network/kernel/qnetworkinterface_win.cpp
index 056650daee..a1d1df6473 100644
--- a/src/network/kernel/qnetworkinterface_win.cpp
+++ b/src/network/kernel/qnetworkinterface_win.cpp
@@ -48,6 +48,7 @@
#include <qhostinfo.h>
#include <qhash.h>
#include <qurl.h>
+#include <private/qsystemlibrary_p.h>
QT_BEGIN_NAMESPACE
@@ -66,7 +67,7 @@ static void resolveLibs()
if (!done) {
done = true;
- HINSTANCE iphlpapiHnd = LoadLibrary(L"iphlpapi");
+ HINSTANCE iphlpapiHnd = QSystemLibrary::load(L"iphlpapi");
if (iphlpapiHnd == NULL)
return;
diff --git a/src/network/kernel/qnetworkproxy_win.cpp b/src/network/kernel/qnetworkproxy_win.cpp
index 537107eb54..a72ef38a6f 100644
--- a/src/network/kernel/qnetworkproxy_win.cpp
+++ b/src/network/kernel/qnetworkproxy_win.cpp
@@ -51,6 +51,7 @@
#include <string.h>
#include <qt_windows.h>
#include <wininet.h>
+#include <private/qsystemlibrary_p.h>
/*
* Information on the WinHTTP DLL:
@@ -277,15 +278,15 @@ void QWindowsSystemProxy::init()
return;
#else
// load the winhttp.dll library
- HINSTANCE winhttpHnd = LoadLibrary(L"winhttp");
- if (!winhttpHnd)
+ QSystemLibrary lib(L"winhttp");
+ if (!lib.load())
return; // failed to load
- ptrWinHttpOpen = (PtrWinHttpOpen)GetProcAddress(winhttpHnd, "WinHttpOpen");
- ptrWinHttpCloseHandle = (PtrWinHttpCloseHandle)GetProcAddress(winhttpHnd, "WinHttpCloseHandle");
- ptrWinHttpGetProxyForUrl = (PtrWinHttpGetProxyForUrl)GetProcAddress(winhttpHnd, "WinHttpGetProxyForUrl");
- ptrWinHttpGetDefaultProxyConfiguration = (PtrWinHttpGetDefaultProxyConfiguration)GetProcAddress(winhttpHnd, "WinHttpGetDefaultProxyConfiguration");
- ptrWinHttpGetIEProxyConfigForCurrentUser = (PtrWinHttpGetIEProxyConfigForCurrentUser)GetProcAddress(winhttpHnd, "WinHttpGetIEProxyConfigForCurrentUser");
+ ptrWinHttpOpen = (PtrWinHttpOpen)lib.resolve("WinHttpOpen");
+ ptrWinHttpCloseHandle = (PtrWinHttpCloseHandle)lib.resolve("WinHttpCloseHandle");
+ ptrWinHttpGetProxyForUrl = (PtrWinHttpGetProxyForUrl)lib.resolve("WinHttpGetProxyForUrl");
+ ptrWinHttpGetDefaultProxyConfiguration = (PtrWinHttpGetDefaultProxyConfiguration)lib.resolve("WinHttpGetDefaultProxyConfiguration");
+ ptrWinHttpGetIEProxyConfigForCurrentUser = (PtrWinHttpGetIEProxyConfigForCurrentUser)lib.resolve("WinHttpGetIEProxyConfigForCurrentUser");
// Try to obtain the Internet Explorer configuration.
WINHTTP_CURRENT_USER_IE_PROXY_CONFIG ieProxyConfig;
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index fe288633ea..f6bfbac27c 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -352,10 +352,13 @@ bool QNativeSocketEnginePrivate::nativeConnect(const QHostAddress &addr, quint16
memset(&sockAddrIPv6, 0, sizeof(sockAddrIPv6));
sockAddrIPv6.sin6_family = AF_INET6;
sockAddrIPv6.sin6_port = htons(port);
+
+ QString scopeid = addr.scopeId();
+ bool ok;
+ sockAddrIPv6.sin6_scope_id = scopeid.toInt(&ok);
#ifndef QT_NO_IPV6IFNAME
- sockAddrIPv6.sin6_scope_id = ::if_nametoindex(addr.scopeId().toLatin1().data());
-#else
- sockAddrIPv6.sin6_scope_id = addr.scopeId().toInt();
+ if (!ok)
+ sockAddrIPv6.sin6_scope_id = ::if_nametoindex(scopeid.toLatin1());
#endif
Q_IPV6ADDR ip6 = addr.toIPv6Address();
memcpy(&sockAddrIPv6.sin6_addr.s6_addr, &ip6, sizeof(ip6));
diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp
index 8177b4f5c9..477ef45b12 100644
--- a/src/network/socket/qnativesocketengine_win.cpp
+++ b/src/network/socket/qnativesocketengine_win.cpp
@@ -207,6 +207,7 @@ static inline void qt_socket_setPortAndAddress(SOCKET socketDescriptor, sockaddr
if (address.protocol() == QAbstractSocket::IPv6Protocol) {
memset(sockAddrIPv6, 0, sizeof(qt_sockaddr_in6));
sockAddrIPv6->sin6_family = AF_INET6;
+ sockAddrIPv6->sin6_scope_id = address.scopeId().toInt();
WSAHtons(socketDescriptor, port, &(sockAddrIPv6->sin6_port));
Q_IPV6ADDR tmp = address.toIPv6Address();
memcpy(&(sockAddrIPv6->sin6_addr.qt_s6_addr), &tmp, sizeof(tmp));
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index 91265f3173..f18c62954a 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -1966,6 +1966,11 @@ void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPri
QMutexLocker locker(&globalData()->mutex);
const QSslConfigurationPrivate *global = globalData()->config.constData();
+ if (!global) {
+ ptr = 0;
+ return;
+ }
+
ptr->ref = 1;
ptr->peerCertificate = global->peerCertificate;
ptr->peerCertificateChain = global->peerCertificateChain;
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index 94b1568dda..5033393569 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -71,6 +71,9 @@ QT_BEGIN_NAMESPACE
PtrCertFindCertificateInStore QSslSocketPrivate::ptrCertFindCertificateInStore = 0;
PtrCertCloseStore QSslSocketPrivate::ptrCertCloseStore = 0;
#elif defined(Q_OS_SYMBIAN)
+#include <e32base.h>
+#include <e32std.h>
+#include <e32debug.h>
#include <QtCore/private/qcore_symbian_p.h>
#endif
@@ -570,120 +573,138 @@ void QSslSocketPrivate::resetDefaultCiphers()
#if defined(Q_OS_SYMBIAN)
-QCertificateRetriever::QCertificateRetriever(QCertificateConsumer* parent)
- : CActive(EPriorityStandard)
- , certStore(0)
- , certFilter(0)
- , consumer(parent)
- , currentCertificateIndex(0)
- , certDescriptor(0, 0)
+CSymbianCertificateRetriever::CSymbianCertificateRetriever() : CActive(CActive::EPriorityStandard),
+ iSequenceError(KErrNone)
{
- CActiveScheduler::Add(this);
- QT_TRAP_THROWING(certStore = CUnifiedCertStore::NewL(qt_s60GetRFs(), EFalse));
- QT_TRAP_THROWING(certFilter = CCertAttributeFilter::NewL());
- certFilter->SetFormat(EX509Certificate);
}
-QCertificateRetriever::~QCertificateRetriever()
+CSymbianCertificateRetriever::~CSymbianCertificateRetriever()
{
- delete certFilter;
- delete certStore;
- Cancel();
+ iThread.Close();
}
-void QCertificateRetriever::fetch()
+CSymbianCertificateRetriever* CSymbianCertificateRetriever::NewL()
{
- certStore->Initialize(iStatus);
- state = Initializing;
- SetActive();
+ CSymbianCertificateRetriever* self = new (ELeave) CSymbianCertificateRetriever();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
}
-void QCertificateRetriever::list()
+int CSymbianCertificateRetriever::GetCertificates(QList<QByteArray> &certificates)
{
- certStore->List(certs, *certFilter, iStatus);
- state = Listing;
- SetActive();
+ iCertificates = &certificates;
+
+ TRequestStatus status;
+ iThread.Logon(status);
+ iThread.Resume();
+ User::WaitForRequest(status);
+ if (iThread.ExitType() == EExitKill)
+ return KErrDied;
+ else
+ return status.Int(); // Logon() completes with the thread's exit value
}
-void QCertificateRetriever::retrieveNextCertificate()
+void CSymbianCertificateRetriever::doThreadEntryL()
{
- CCTCertInfo* cert = certs[currentCertificateIndex];
- currentCertificate.resize(cert->Size());
- certDescriptor.Set((TUint8*)currentCertificate.data(), 0, currentCertificate.size());
- certStore->Retrieve(*cert, certDescriptor, iStatus);
- state = RetrievingCertificates;
+ CActiveScheduler* activeScheduler = new (ELeave) CActiveScheduler;
+ CleanupStack::PushL(activeScheduler);
+ CActiveScheduler::Install(activeScheduler);
+
+ CActiveScheduler::Add(this);
+
+ // These aren't deleted in the destructor so leaving the to CS is ok
+ iCertStore = CUnifiedCertStore::NewLC(qt_s60GetRFs(), EFalse);
+ iCertFilter = CCertAttributeFilter::NewLC();
+
+ // Kick off the sequence by initializing the cert store
+ iState = Initializing;
+ iCertStore->Initialize(iStatus);
SetActive();
-}
-void QCertificateRetriever::RunL()
-{
- QT_TRYCATCH_LEAVING(run());
+ CActiveScheduler::Start();
+
+ // Sequence complete, clean up
+
+ // These MUST be cleaned up before the installed CActiveScheduler is destroyed and can't be left to the
+ // destructor of CSymbianCertificateRetriever. Otherwise the destructor of CActiveScheduler will get
+ // stuck.
+ iCertInfos.Close();
+ CleanupStack::PopAndDestroy(3); // activeScheduler, iCertStore, iCertFilter
}
-void QCertificateRetriever::run()
+
+TInt CSymbianCertificateRetriever::ThreadEntryPoint(TAny* aParams)
{
- switch (state) {
- case Initializing:
- list();
- break;
- case Listing:
- currentCertificateIndex = 0;
- retrieveNextCertificate();
- break;
- case RetrievingCertificates:
- consumer->addEncodedCertificate(currentCertificate);
- currentCertificate = QByteArray();
+ CTrapCleanup* cleanupStack = CTrapCleanup::New();
- currentCertificateIndex++;
+ CSymbianCertificateRetriever* self = (CSymbianCertificateRetriever*) aParams;
+ TRAPD(err, self->doThreadEntryL());
+ delete cleanupStack;
- if (currentCertificateIndex < certs.Count())
- retrieveNextCertificate();
- else
- consumer->finish();
- break;
- }
+ // doThreadEntryL() can leave only before the retrieval sequence is started
+ if (err)
+ return err;
+ else
+ return self->iSequenceError; // return any error that occured during the retrieval
}
-void QCertificateRetriever::DoCancel()
+void CSymbianCertificateRetriever::ConstructL()
{
- switch (state) {
- case Initializing:
- certStore->CancelInitialize();
- break;
- case Listing:
- certStore->CancelList();
- break;
- case RetrievingCertificates:
- certStore->CancelRetrieve();
- break;
- }
+ User::LeaveIfError(iThread.Create(_L("CertWorkerThread"),
+ CSymbianCertificateRetriever::ThreadEntryPoint, 16384, NULL, this));
}
-QCertificateConsumer::QCertificateConsumer(QObject* parent)
- : QObject(parent)
- , retriever(0)
+void CSymbianCertificateRetriever::DoCancel()
{
+ // We never cancel the sequence
}
-QCertificateConsumer::~QCertificateConsumer()
+TInt CSymbianCertificateRetriever::RunError(TInt aError)
{
- delete retriever;
+ // If something goes wrong in the sequence, abort the sequence
+ iSequenceError = aError; // this gets reported to the client in the TRequestStatus
+ CActiveScheduler::Stop();
+ return KErrNone;
}
-void QCertificateConsumer::finish()
+void CSymbianCertificateRetriever::GetCertificateL()
{
- delete retriever;
- retriever = 0;
- emit finished();
+ CCTCertInfo* certInfo = iCertInfos[iCurrentCertIndex];
+ iCertificateData.resize(certInfo->Size());
+ TPtr8 des((TUint8*)iCertificateData.data(), 0, iCertificateData.size());
+ iCertStore->Retrieve(*certInfo, des, iStatus);
+ iState = RetrievingCertificates;
+ SetActive();
}
-void QCertificateConsumer::start()
+void CSymbianCertificateRetriever::RunL()
{
- retriever = new QCertificateRetriever(this);
- Q_CHECK_PTR(retriever);
- retriever->fetch();
-}
+ switch (iState) {
+ case Initializing:
+ iState = Listing;
+ iCertStore->List(iCertInfos, *iCertFilter, iStatus);
+ SetActive();
+ break;
+ case Listing:
+ iCurrentCertIndex = 0;
+ GetCertificateL();
+ break;
+
+ case RetrievingCertificates:
+ iCertificates->append(iCertificateData);
+ iCertificateData = QByteArray();
+ iCurrentCertIndex++;
+ if (iCurrentCertIndex < iCertInfos.Count())
+ GetCertificateL();
+ else
+ // Stop the scheduler to return to the thread entry function
+ CActiveScheduler::Stop();
+ break;
+ }
+}
#endif // defined(Q_OS_SYMBIAN)
QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
@@ -760,23 +781,15 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
systemCerts.append(QSslCertificate::fromPath(QLatin1String("/usr/share/ssl/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // Centos, Redhat, SuSE
systemCerts.append(QSslCertificate::fromPath(QLatin1String("/usr/local/ssl/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // Normal OpenSSL Tarball
#elif defined(Q_OS_SYMBIAN)
- QThread* certThread = new QThread;
+ QList<QByteArray> certs;
+ QScopedPointer<CSymbianCertificateRetriever> retriever(CSymbianCertificateRetriever::NewL());
- QCertificateConsumer *consumer = new QCertificateConsumer();
- consumer->moveToThread(certThread);
- QObject::connect(certThread, SIGNAL(started()), consumer, SLOT(start()));
- QObject::connect(consumer, SIGNAL(finished()), certThread, SLOT(quit()), Qt::DirectConnection);
-
- certThread->start();
- certThread->wait();
- foreach (const QByteArray &encodedCert, consumer->encodedCertificates()) {
+ retriever->GetCertificates(certs);
+ foreach (const QByteArray &encodedCert, certs) {
QSslCertificate cert(encodedCert, QSsl::Der);
if (!cert.isNull())
systemCerts.append(cert);
}
-
- delete consumer;
- delete certThread;
#endif
return systemCerts;
diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h
index 7a4e6b6e04..dec98ae5f9 100644
--- a/src/network/ssl/qsslsocket_openssl_p.h
+++ b/src/network/ssl/qsslsocket_openssl_p.h
@@ -120,67 +120,56 @@ public:
};
#if defined(Q_OS_SYMBIAN)
+
+#include <QByteArray>
+#include <e32base.h>
+#include <f32file.h>
#include <unifiedcertstore.h> // link against certstore.lib
#include <ccertattributefilter.h> // link against ctframework.lib
-class QCertificateRetriever;
+// The purpose of this class is to wrap the asynchronous API of Symbian certificate store to one
+// synchronizable call. The user of this class needs to provide a TRequestStatus object which can
+// be used with User::WaitForRequest() unlike with the calls of the certificate store API.
+// A thread is used instead of a CActiveSchedulerWait scheme, because that would make the call
+// asynchronous (other events might be processed during the call even though the call would be seemingly
+// synchronous).
-class QCertificateConsumer : public QObject
+class CSymbianCertificateRetriever : public CActive
{
- Q_OBJECT
public:
- QCertificateConsumer(QObject* parent = 0);
- ~QCertificateConsumer();
-
- void finish();
-
- void addEncodedCertificate(const QByteArray& certificate)
- { certificates.append(certificate); }
- QList<QByteArray> encodedCertificates() const { return certificates; }
-
-public slots:
- void start();
+ static CSymbianCertificateRetriever* NewL();
+ ~CSymbianCertificateRetriever();
-signals:
- void finished();
+ int GetCertificates(QList<QByteArray> &aCertificates);
private:
- QList<QByteArray> certificates;
- QCertificateRetriever *retriever;
-};
-
-
-class QCertificateRetriever : public CActive
-{
-public:
- QCertificateRetriever(QCertificateConsumer* consumer);
- ~QCertificateRetriever();
-
- void fetch();
+ void ConstructL();
+ CSymbianCertificateRetriever();
+ static TInt ThreadEntryPoint(TAny* aParams);
+ void doThreadEntryL();
+ void GetCertificateL();
+ void DoCancel();
+ void RunL();
+ TInt RunError(TInt aError);
private:
- virtual void RunL();
- virtual void DoCancel();
-
- void run();
- void list();
- void retrieveNextCertificate();
-
enum {
Initializing,
Listing,
RetrievingCertificates
- } state;
-
- CUnifiedCertStore* certStore;
- RMPointerArray<CCTCertInfo> certs;
- CCertAttributeFilter* certFilter;
- QCertificateConsumer* consumer;
- int currentCertificateIndex;
- QByteArray currentCertificate;
- TPtr8 certDescriptor;
+ } iState;
+
+ RThread iThread;
+ CUnifiedCertStore* iCertStore;
+ RMPointerArray<CCTCertInfo> iCertInfos;
+ CCertAttributeFilter* iCertFilter;
+ TInt iCurrentCertIndex;
+ QByteArray iCertificateData;
+ QList<QByteArray>* iCertificates;
+ TInt iSequenceError;
};
+
#endif
diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
index d1225c1ec9..6affa36596 100644
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
@@ -42,7 +42,11 @@
#include "qsslsocket_openssl_symbols_p.h"
-#include <QtCore/qlibrary.h>
+#ifdef Q_OS_WIN
+# include <private/qsystemlibrary_p.h>
+#else
+# include <QtCore/qlibrary.h>
+#endif
#include <QtCore/qmutex.h>
#include <private/qmutexpool_p.h>
#include <QtCore/qdatetime.h>
@@ -345,22 +349,22 @@ static QStringList findAllLibSsl()
}
# endif
-static QPair<QLibrary*, QLibrary*> loadOpenSsl()
+#ifdef Q_OS_WIN
+static QPair<QSystemLibrary*, QSystemLibrary*> loadOpenSslWin32()
{
- QPair<QLibrary*,QLibrary*> pair;
+ QPair<QSystemLibrary*,QSystemLibrary*> pair;
pair.first = 0;
pair.second = 0;
-# ifdef Q_OS_WIN
- QLibrary *ssleay32 = new QLibrary(QLatin1String("ssleay32"));
- if (!ssleay32->load()) {
+ QSystemLibrary *ssleay32 = new QSystemLibrary(QLatin1String("ssleay32"));
+ if (!ssleay32->load(false)) {
// Cannot find ssleay32.dll
delete ssleay32;
return pair;
}
- QLibrary *libeay32 = new QLibrary(QLatin1String("libeay32"));
- if (!libeay32->load()) {
+ QSystemLibrary *libeay32 = new QSystemLibrary(QLatin1String("libeay32"));
+ if (!libeay32->load(false)) {
delete ssleay32;
delete libeay32;
return pair;
@@ -369,7 +373,16 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
pair.first = ssleay32;
pair.second = libeay32;
return pair;
-# elif defined(Q_OS_SYMBIAN)
+}
+#else
+
+static QPair<QLibrary*, QLibrary*> loadOpenSsl()
+{
+ QPair<QLibrary*,QLibrary*> pair;
+ pair.first = 0;
+ pair.second = 0;
+
+# if defined(Q_OS_SYMBIAN)
QLibrary *libssl = new QLibrary(QLatin1String("libssl"));
if (!libssl->load()) {
// Cannot find ssleay32.dll
@@ -469,6 +482,7 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
return pair;
# endif
}
+#endif
bool q_resolveOpenSslSymbols()
{
@@ -483,7 +497,11 @@ bool q_resolveOpenSslSymbols()
return false;
triedToResolveSymbols = true;
+#ifdef Q_OS_WIN
+ QPair<QSystemLibrary *, QSystemLibrary *> libs = loadOpenSslWin32();
+#else
QPair<QLibrary *, QLibrary *> libs = loadOpenSsl();
+#endif
if (!libs.first || !libs.second)
// failed to load them
return false;
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 18192e3073..aa217f6792 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -591,6 +591,12 @@ void QGL2PaintEngineEx::endNativePainting()
d->nativePaintingActive = false;
}
+void QGL2PaintEngineEx::invalidateState()
+{
+ Q_D(QGL2PaintEngineEx);
+ d->needsSync = true;
+}
+
bool QGL2PaintEngineEx::isNativePaintingActive() const {
Q_D(const QGL2PaintEngineEx);
return d->nativePaintingActive;
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
index 59b90d84c0..b255e750b9 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
@@ -151,6 +151,8 @@ public:
void beginNativePainting();
void endNativePainting();
+ void invalidateState();
+
QPixmapFilter *pixmapFilter(int type, const QPixmapFilter *prototype);
void setRenderTextActive(bool);
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 70ddc20312..74ab422645 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -2110,11 +2110,8 @@ void QGLContextPrivate::syncGlState()
#ifdef QT_NO_EGL
void QGLContextPrivate::swapRegion(const QRegion *)
{
- static bool firstWarning = true;
- if (firstWarning) {
- qWarning() << "::swapRegion called but not supported!";
- firstWarning = false;
- }
+ Q_Q(QGLContext);
+ q->swapBuffers();
}
#endif
@@ -5269,6 +5266,10 @@ QGLExtensions::Extensions QGLExtensions::currentContextExtensions()
glExtensions |= FragmentProgram;
if (extensions.match("GL_ARB_fragment_shader"))
glExtensions |= FragmentShader;
+ if (extensions.match("GL_ARB_shader_objects"))
+ glExtensions |= FragmentShader;
+ if (extensions.match("GL_ARB_ES2_compatibility"))
+ glExtensions |= ES2Compatibility;
if (extensions.match("GL_ARB_texture_mirrored_repeat"))
glExtensions |= MirroredRepeat;
if (extensions.match("GL_EXT_framebuffer_object"))
@@ -5289,6 +5290,7 @@ QGLExtensions::Extensions QGLExtensions::currentContextExtensions()
glExtensions |= FramebufferObject;
glExtensions |= GenerateMipmap;
glExtensions |= FragmentShader;
+ glExtensions |= ES2Compatibility;
#endif
#if defined(QT_OPENGL_ES_1)
if (extensions.match("GL_OES_framebuffer_object"))
diff --git a/src/opengl/qgl_mac.mm b/src/opengl/qgl_mac.mm
index 66fe7d33ed..f023a97c75 100644
--- a/src/opengl/qgl_mac.mm
+++ b/src/opengl/qgl_mac.mm
@@ -697,9 +697,17 @@ void QGLContext::updatePaintDevice()
QWidget *w = (QWidget *)d->paintDevice;
NSView *view = qt_mac_nativeview_for(w);
- // ideally we would use QWidget::isVisible(), but we get "invalid drawable" errors
- if (![(NSWindow *)qt_mac_window_for(w) isVisible])
- return;
+ // Trying to attach the GL context to the NSView will fail with
+ // "invalid drawable" if done too soon, but we have to make sure
+ // the connection is made before the first paint event. Using
+ // the NSView do to this check fails as the NSView is visible
+ // before it's safe to connect, and using the NSWindow fails as
+ // the NSWindow will become visible after the first paint event.
+ // This leaves us with the QWidget, who's visible state seems
+ // to match the point in time when it's safe to connect.
+ if (!w || !w->isVisible())
+ return; // Not safe to attach GL context to view yet
+
if ([static_cast<NSOpenGLContext *>(d->cx) view] != view && ![view isHidden])
[static_cast<NSOpenGLContext *>(d->cx) setView:view];
} else if (d->paintDevice->devType() == QInternal::Pixmap) {
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index be76af535c..a57ff41be4 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -288,7 +288,8 @@ public:
DDSTextureCompression = 0x00008000,
ETC1TextureCompression = 0x00010000,
PVRTCTextureCompression = 0x00020000,
- FragmentShader = 0x00040000
+ FragmentShader = 0x00040000,
+ ES2Compatibility = 0x00080000
};
Q_DECLARE_FLAGS(Extensions, Extension)
diff --git a/src/opengl/qgl_win.cpp b/src/opengl/qgl_win.cpp
index 5ab944a8d2..8eb61772d0 100644
--- a/src/opengl/qgl_win.cpp
+++ b/src/opengl/qgl_win.cpp
@@ -1042,7 +1042,7 @@ int QGLContext::choosePixelFormat(void* dummyPfd, HDC pdc)
iAttributes[i++] = WGL_DRAW_TO_WINDOW_ARB;
iAttributes[i++] = TRUE;
iAttributes[i++] = WGL_COLOR_BITS_ARB;
- iAttributes[i++] = 32;
+ iAttributes[i++] = 24;
iAttributes[i++] = WGL_DOUBLE_BUFFER_ARB;
iAttributes[i++] = d->glFormat.doubleBuffer();
if (d->glFormat.stereo()) {
diff --git a/src/opengl/qglshaderprogram.cpp b/src/opengl/qglshaderprogram.cpp
index 74382b00f2..bc1c0090df 100644
--- a/src/opengl/qglshaderprogram.cpp
+++ b/src/opengl/qglshaderprogram.cpp
@@ -97,6 +97,10 @@ QT_BEGIN_NAMESPACE
to just features that are present in GLSL/ES, and avoid
standard variable names that only work on the desktop.
+ If the \c{GL_ARB_ES2_compatibility} extension is present,
+ then the above prefix is not added because the desktop OpenGL
+ implementation supports precision qualifiers.
+
\section1 Simple shader example
\snippet doc/src/snippets/code/src_opengl_qglshaderprogram.cpp 1
@@ -394,8 +398,10 @@ bool QGLShader::compileSourceCode(const char *source)
srclen.append(GLint(headerLen));
}
#ifdef QGL_DEFINE_QUALIFIERS
- src.append(qualifierDefines);
- srclen.append(GLint(sizeof(qualifierDefines) - 1));
+ if (!(QGLExtensions::glExtensions() & QGLExtensions::ES2Compatibility)) {
+ src.append(qualifierDefines);
+ srclen.append(GLint(sizeof(qualifierDefines) - 1));
+ }
#endif
#ifdef QGL_REDEFINE_HIGHP
if (d->shaderType == Fragment) {
diff --git a/src/opengl/qpixmapdata_gl.cpp b/src/opengl/qpixmapdata_gl.cpp
index 1efd3982e3..89000bb3f7 100644
--- a/src/opengl/qpixmapdata_gl.cpp
+++ b/src/opengl/qpixmapdata_gl.cpp
@@ -472,13 +472,42 @@ bool QGLPixmapData::scroll(int dx, int dy, const QRect &rect)
void QGLPixmapData::copy(const QPixmapData *data, const QRect &rect)
{
- if (data->classId() != QPixmapData::OpenGLClass) {
+ if (data->classId() != QPixmapData::OpenGLClass || !static_cast<const QGLPixmapData *>(data)->useFramebufferObjects()) {
QPixmapData::copy(data, rect);
return;
}
- // can be optimized to do a framebuffer blit or similar ...
- QPixmapData::copy(data, rect);
+ const QGLPixmapData *other = static_cast<const QGLPixmapData *>(data);
+ if (other->m_renderFbo) {
+ QGLShareContextScope ctx(qt_gl_share_widget()->context());
+
+ resize(rect.width(), rect.height());
+ m_hasAlpha = other->m_hasAlpha;
+ ensureCreated();
+
+ if (!ctx->d_ptr->fbo)
+ glGenFramebuffers(1, &ctx->d_ptr->fbo);
+
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER_EXT, ctx->d_ptr->fbo);
+ glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
+ GL_TEXTURE_2D, m_texture.id, 0);
+
+ if (!other->m_renderFbo->isBound())
+ glBindFramebuffer(GL_READ_FRAMEBUFFER_EXT, other->m_renderFbo->handle());
+
+ glDisable(GL_SCISSOR_TEST);
+ if (ctx->d_ptr->active_engine && ctx->d_ptr->active_engine->type() == QPaintEngine::OpenGL2)
+ static_cast<QGL2PaintEngineEx *>(ctx->d_ptr->active_engine)->invalidateState();
+
+ glBlitFramebufferEXT(rect.x(), rect.y(), rect.x() + rect.width(), rect.y() + rect.height(),
+ 0, 0, w, h,
+ GL_COLOR_BUFFER_BIT,
+ GL_NEAREST);
+
+ glBindFramebuffer(GL_FRAMEBUFFER_EXT, ctx->d_ptr->current_fbo);
+ } else {
+ QPixmapData::copy(data, rect);
+ }
}
void QGLPixmapData::fill(const QColor &color)
@@ -623,11 +652,12 @@ void QGLPixmapData::copyBackFromRenderFbo(bool keepCurrentFboBound) const
}
}
-bool QGLPixmapData::useFramebufferObjects()
+bool QGLPixmapData::useFramebufferObjects() const
{
return QGLFramebufferObject::hasOpenGLFramebufferObjects()
&& QGLFramebufferObject::hasOpenGLFramebufferBlit()
- && qt_gl_preferGL2Engine();
+ && qt_gl_preferGL2Engine()
+ && (w * h > 32*32); // avoid overhead of FBOs for small pixmaps
}
QPaintEngine* QGLPixmapData::paintEngine() const
diff --git a/src/opengl/qpixmapdata_gl_p.h b/src/opengl/qpixmapdata_gl_p.h
index 736a28e051..4cb67b0952 100644
--- a/src/opengl/qpixmapdata_gl_p.h
+++ b/src/opengl/qpixmapdata_gl_p.h
@@ -145,7 +145,7 @@ private:
void copyBackFromRenderFbo(bool keepCurrentFboBound) const;
QSize size() const { return QSize(w, h); }
- static bool useFramebufferObjects();
+ bool useFramebufferObjects() const;
QImage fillImage(const QColor &color) const;
diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp
index 25c05014d3..52abe5a60b 100644
--- a/src/opengl/qwindowsurface_gl.cpp
+++ b/src/opengl/qwindowsurface_gl.cpp
@@ -428,6 +428,20 @@ static void drawTexture(const QRectF &rect, GLuint tex_id, const QSize &texSize,
void QGLWindowSurface::beginPaint(const QRegion &)
{
+ if (! context())
+ return;
+
+ int clearFlags = 0;
+
+ if (context()->d_func()->workaround_needsFullClearOnEveryFrame)
+ clearFlags = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT;
+ else if (context()->format().alpha())
+ clearFlags = GL_COLOR_BUFFER_BIT;
+
+ if (clearFlags) {
+ glClearColor(0.0, 0.0, 0.0, 0.0);
+ glClear(clearFlags);
+ }
}
void QGLWindowSurface::endPaint(const QRegion &rgn)
@@ -567,7 +581,9 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint &
const int ty1 = parent->height() - rect.top();
if (window() == parent || d_ptr->fbo->format().samples() <= 1) {
- // glBindFramebuffer(GL_DRAW_FRAMEBUFFER_EXT, 0);
+ if (ctx->d_ptr->current_fbo != 0)
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER_EXT, 0);
+
glBindFramebuffer(GL_READ_FRAMEBUFFER_EXT, d_ptr->fbo->handle());
glBlitFramebufferEXT(sx0, sy0, sx1, sy1,
@@ -600,6 +616,8 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint &
qgl_fbo_pool()->release(temp);
}
+
+ ctx->d_ptr->current_fbo = 0;
}
#if !defined(QT_OPENGL_ES_2)
else {
diff --git a/src/plugins/bearer/connman/connman.pro b/src/plugins/bearer/connman/connman.pro
index 4be752bcca..dec408c724 100644
--- a/src/plugins/bearer/connman/connman.pro
+++ b/src/plugins/bearer/connman/connman.pro
@@ -4,12 +4,14 @@ include(../../qpluginbase.pri)
QT = core network dbus
HEADERS += qconnmanservice_linux_p.h \
+ qofonoservice_linux_p.h \
qconnmanengine.h \
../qnetworksession_impl.h \
../qbearerengine_impl.h
SOURCES += main.cpp \
qconnmanservice_linux.cpp \
+ qofonoservice_linux.cpp \
qconnmanengine.cpp \
../qnetworksession_impl.cpp
diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp
index 341f7cda2a..a8b8911176 100644
--- a/src/plugins/bearer/connman/qconnmanengine.cpp
+++ b/src/plugins/bearer/connman/qconnmanengine.cpp
@@ -41,6 +41,7 @@
#include "qconnmanengine.h"
#include "qconnmanservice_linux_p.h"
+#include "qofonoservice_linux_p.h"
#include "../qnetworksession_impl.h"
#include <QtNetwork/private/qnetworkconfiguration_p.h>
@@ -109,7 +110,6 @@ void QConnmanEngine::initialize()
QList<QNetworkConfigurationPrivate *> QConnmanEngine::getConfigurations()
{
QMutexLocker locker(&mutex);
- // foundConfigurations.clear();
getNetworkListing();
QList<QNetworkConfigurationPrivate *> fetchedConfigurations;
QNetworkConfigurationPrivate* cpPriv = 0;
@@ -131,7 +131,6 @@ QList<QNetworkConfigurationPrivate *> QConnmanEngine::getConfigurations()
delete config;
}
return fetchedConfigurations;
-// return foundConfigurations;
}
void QConnmanEngine::getNetworkListing()
@@ -149,7 +148,6 @@ void QConnmanEngine::getNetworkListing()
}
}
-
void QConnmanEngine::doRequestUpdate()
{
connmanManager->requestScan("");
@@ -184,11 +182,24 @@ void QConnmanEngine::connectToId(const QString &id)
void QConnmanEngine::disconnectFromId(const QString &id)
{
QMutexLocker locker(&mutex);
- QConnmanServiceInterface serv(serviceFromId(id));
+ QString servicePath = serviceFromId(id);
+ QConnmanServiceInterface serv(servicePath);
if(!serv.isValid()) {
emit connectionError(id, DisconnectionError);
} else {
- serv.disconnect();
+ if(serv.getType() != "cellular") {
+ serv.disconnect();
+ } else {
+ QOfonoManagerInterface ofonoManager(0);
+ QString modemPath = ofonoManager.currentModem().path();
+ QOfonoDataConnectionManagerInterface dc(modemPath,0);
+ foreach(const QDBusObjectPath dcPath,dc.getPrimaryContexts()) {
+ if(dcPath.path().contains(servicePath.section("_",-1))) {
+ QOfonoPrimaryDataContextInterface primaryContext(dcPath.path(),0);
+ primaryContext.setActive(false);
+ }
+ }
+ }
}
}
@@ -324,7 +335,6 @@ QString QConnmanEngine::getServiceForNetwork(const QString &netPath)
return QString();
}
-
void QConnmanEngine::propertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value)
{
Q_UNUSED(path);
@@ -376,7 +386,7 @@ void QConnmanEngine::servicePropertyChangedContext(const QString &path,const QSt
}
}
-void QConnmanEngine::networkPropertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value)
+void QConnmanEngine::networkPropertyChangedContext(const QString &/*path*/,const QString &/*item*/, const QDBusVariant &/*value*/)
{
QMutexLocker locker(&mutex);
}
@@ -388,7 +398,6 @@ void QConnmanEngine::devicePropertyChangedContext(const QString &devpath,const Q
QConnmanNetworkInterface network(devpath, this);
-
QDBusArgument arg = qvariant_cast<QDBusArgument>(value.variant());
QStringList remainingNetworks = qdbus_cast<QStringList>(arg);
QString devicetype;
@@ -502,10 +511,18 @@ QNetworkConfiguration::StateFlags QConnmanEngine::getStateForService(const QStri
QMutexLocker locker(&mutex);
QConnmanServiceInterface serv(service);
QNetworkConfiguration::StateFlags flag = QNetworkConfiguration::Defined;
- if(serv.isFavorite()) {
- flag = ( flag | QNetworkConfiguration::Discovered);
+ if( serv.getType() == "cellular") {
+ if(serv.isSetupRequired()) {
+ flag = ( flag | QNetworkConfiguration::Defined);
+ } else {
+ flag = ( flag | QNetworkConfiguration::Discovered);
+ }
} else {
- flag = QNetworkConfiguration::Undefined;
+ if(serv.isFavorite()) {
+ flag = ( flag | QNetworkConfiguration::Discovered);
+ } else {
+ flag = QNetworkConfiguration::Undefined;
+ }
}
if(serv.getState() == "ready" || serv.getState() == "online") {
@@ -524,8 +541,7 @@ QNetworkConfiguration::BearerType QConnmanEngine::typeToBearer(const QString &ty
if (type == "bluetooth")
return QNetworkConfiguration::BearerBluetooth;
if (type == "cellular") {
- return QNetworkConfiguration::Bearer2G;
- // not handled: CDMA2000 HSPA
+ return ofonoTechToBearerType(type);
}
if (type == "wimax")
return QNetworkConfiguration::BearerWiMAX;
@@ -536,6 +552,51 @@ QNetworkConfiguration::BearerType QConnmanEngine::typeToBearer(const QString &ty
return QNetworkConfiguration::BearerUnknown;
}
+QNetworkConfiguration::BearerType QConnmanEngine::ofonoTechToBearerType(const QString &/*type*/)
+{
+ QOfonoManagerInterface ofonoManager(this);
+ QOfonoNetworkRegistrationInterface ofonoNetwork(ofonoManager.currentModem().path(),this);
+
+ if(ofonoNetwork.isValid()) {
+ foreach(const QDBusObjectPath op,ofonoNetwork.getOperators() ) {
+ QOfonoNetworkOperatorInterface opIface(op.path(),this);
+
+ foreach(const QString opTech, opIface.getTechnologies()) {
+
+ if(opTech == "gsm") {
+ return QNetworkConfiguration::Bearer2G;
+ }
+ if(opTech == "edge"){
+ return QNetworkConfiguration::BearerCDMA2000; //wrong, I know
+ }
+ if(opTech == "umts"){
+ return QNetworkConfiguration::BearerWCDMA;
+ }
+ if(opTech == "hspa"){
+ return QNetworkConfiguration::BearerHSPA;
+ }
+ if(opTech == "lte"){
+ return QNetworkConfiguration::BearerWiMAX; //not exact
+ }
+ }
+ }
+ }
+ return QNetworkConfiguration::BearerUnknown;
+}
+
+bool QConnmanEngine::isRoamingAllowed(const QString &context)
+{
+ QOfonoManagerInterface ofonoManager(this);
+ QString modemPath = ofonoManager.currentModem().path();
+ QOfonoDataConnectionManagerInterface dc(modemPath,this);
+ foreach(const QDBusObjectPath dcPath,dc.getPrimaryContexts()) {
+ if(dcPath.path().contains(context.section("_",-1))) {
+ return dc.isRoamingAllowed();
+ }
+ }
+ return false;
+}
+
void QConnmanEngine::removeConfiguration(const QString &id)
{
QMutexLocker locker(&mutex);
@@ -564,7 +625,6 @@ void QConnmanEngine::removeConfiguration(const QString &id)
void QConnmanEngine::addServiceConfiguration(const QString &servicePath)
{
-
QMutexLocker locker(&mutex);
QConnmanServiceInterface *serv;
serv = new QConnmanServiceInterface(servicePath);
@@ -589,36 +649,31 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath)
QString networkName = serv->getName();
- if(serv->getType() == "cellular") {
- networkName = serv->getAPN();
- if(networkName.isEmpty()) {
- networkName = serv->getName();
- }
- }
-
- cpPriv->name = networkName;
- cpPriv->isValid = true;
- cpPriv->id = id;
- cpPriv->type = QNetworkConfiguration::InternetAccessPoint;
-
-
const QString connectionType = serv->getType();
if (connectionType == "ethernet") {
cpPriv->bearerType = QNetworkConfiguration::BearerEthernet;
} else if (connectionType == "wifi") {
cpPriv->bearerType = QNetworkConfiguration::BearerWLAN;
} else if (connectionType == "cellular") {
- const QString mode = serv->getMode();
- if (mode == "gprs" || mode == "edge")
- cpPriv->bearerType = QNetworkConfiguration::Bearer2G;
- else if (mode == "umts")
- cpPriv->bearerType = QNetworkConfiguration::BearerWCDMA;
+ cpPriv->bearerType = ofonoTechToBearerType("cellular");
+ if(servicePath.isEmpty()) {
+ networkName = serv->getAPN();
+ if(networkName.isEmpty()) {
+ networkName = serv->getName();
+ }
+ }
+ cpPriv->roamingSupported = isRoamingAllowed(servicePath);
} else if (connectionType == "wimax") {
cpPriv->bearerType = QNetworkConfiguration::BearerWiMAX;
} else {
cpPriv->bearerType = QNetworkConfiguration::BearerUnknown;
}
+ cpPriv->name = networkName;
+ cpPriv->isValid = true;
+ cpPriv->id = id;
+ cpPriv->type = QNetworkConfiguration::InternetAccessPoint;
+
if(serv->getSecurity() == "none") {
cpPriv->purpose = QNetworkConfiguration::PublicPurpose;
} else {
@@ -635,7 +690,6 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath)
foundConfigurations.append(cpPriv);
configInterfaces[cpPriv->id] = device.getInterface();
-
locker.unlock();
emit configurationAdded(ptr);
locker.relock();
@@ -646,7 +700,6 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath)
void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
{
QMutexLocker locker(&mutex);
-
if(networkPath.isNull())
return;
@@ -662,10 +715,9 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
id = QString::number(qHash(networkPath));
} else {
id = QString::number(qHash(servicePath));
- serv = new QConnmanServiceInterface(servicePath,this);
- connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
- this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant)));
-
+ serv = new QConnmanServiceInterface(servicePath,this);
+ connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant)));
}
if (!id.isEmpty() && !accessPointConfigurations.contains(id)) {
@@ -684,7 +736,6 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
if(networkName.isEmpty())
networkName = "Hidden Network";
-
QNetworkConfiguration::BearerType bearerType;
if(servicePath.isEmpty()) {
@@ -693,21 +744,14 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
QConnmanDeviceInterface device(devicePath,this);
bearerType = typeToBearer(device.getType());
} else {
- bearerType = typeToBearer(serv->getType());
- }
-
- if (bearerType == QNetworkConfiguration::Bearer2G) {
- QString mode = serv->getMode();
- if (mode == "gprs" || mode == "edge") {
- bearerType = QNetworkConfiguration::Bearer2G;
- } else if (mode == "umts") {
- bearerType = QNetworkConfiguration::BearerWCDMA;
- }
- if(servicePath.isEmpty()) {
- networkName = serv->getAPN();
- if(networkName.isEmpty()) {
+ if(serv->getType() == "cellular") {
+ bearerType = ofonoTechToBearerType("cellular");
+ if(servicePath.isEmpty()) {
networkName = serv->getName();
}
+ cpPriv->roamingSupported = isRoamingAllowed(servicePath);
+ } else {
+ bearerType = typeToBearer(serv->getType());
}
}
@@ -775,7 +819,19 @@ void QConnmanConnectThread::run()
if(!serv.isValid()) {
emit connectionError(identifier, QBearerEngineImpl::InterfaceLookupError);
} else {
- serv.connect();
+ if(serv.getType() != "cellular") {
+ serv.connect();
+ } else {
+ QOfonoManagerInterface ofonoManager(0);
+ QString modemPath = ofonoManager.currentModem().path();
+ QOfonoDataConnectionManagerInterface dc(modemPath,0);
+ foreach(const QDBusObjectPath dcPath,dc.getPrimaryContexts()) {
+ if(dcPath.path().contains(servicePath.section("_",-1))) {
+ QOfonoPrimaryDataContextInterface primaryContext(dcPath.path(),0);
+ primaryContext.setActive(true);
+ }
+ }
+ }
}
}
diff --git a/src/plugins/bearer/connman/qconnmanengine.h b/src/plugins/bearer/connman/qconnmanengine.h
index 2ee6da531c..569bbc7a73 100644
--- a/src/plugins/bearer/connman/qconnmanengine.h
+++ b/src/plugins/bearer/connman/qconnmanengine.h
@@ -137,7 +137,8 @@ private:
QMap<QString,QStringList> deviceMap; //tech path, device path
QMap<QString, QString> serviceNetworks; //service, network
-
+ QNetworkConfiguration::BearerType ofonoTechToBearerType(const QString &type);
+ bool isRoamingAllowed(const QString &context);
protected:
bool requiresPolling() const;
QConnmanConnectThread *connThread;
diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp
index 3722c43287..549a07a7a1 100644
--- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp
+++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp
@@ -984,12 +984,17 @@ QConnmanCounterInterface::~QConnmanCounterInterface()
quint32 QConnmanCounterInterface::getReceivedByteCount()
{
-return 0;
+ return 0;
}
quint32 QConnmanCounterInterface::getTransmittedByteCount()
{
-return 0;
+ return 0;
+}
+
+quint64 QConnmanCounterInterface::getTimeOnline()
+{
+ return 0;
}
/////////////////////////////////////////
diff --git a/src/plugins/bearer/connman/qconnmanservice_linux_p.h b/src/plugins/bearer/connman/qconnmanservice_linux_p.h
index a2b1e7338d..6e6b7020a7 100644
--- a/src/plugins/bearer/connman/qconnmanservice_linux_p.h
+++ b/src/plugins/bearer/connman/qconnmanservice_linux_p.h
@@ -331,6 +331,7 @@ public:
QString getInterface();
quint32 getReceivedByteCount();
quint32 getTransmittedByteCount();
+ quint64 getTimeOnline();
private:
QConnmanCounterInterfacePrivate *d;
diff --git a/src/plugins/bearer/connman/qofonoservice_linux.cpp b/src/plugins/bearer/connman/qofonoservice_linux.cpp
new file mode 100644
index 0000000000..955f4b13c6
--- /dev/null
+++ b/src/plugins/bearer/connman/qofonoservice_linux.cpp
@@ -0,0 +1,940 @@
+/****************************************************************************
+**
+** 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 plugins 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 <QObject>
+#include <QList>
+#include <QtDBus/QtDBus>
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusError>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusMessage>
+#include <QtDBus/QDBusReply>
+#include <QtDBus/QDBusPendingCallWatcher>
+#include <QtDBus/QDBusObjectPath>
+#include <QtDBus/QDBusPendingCall>
+
+#include "qofonoservice_linux_p.h"
+
+
+QT_BEGIN_NAMESPACE
+static QDBusConnection dbusConnection = QDBusConnection::systemBus();
+
+
+QOfonoManagerInterface::QOfonoManagerInterface( QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ QLatin1String(OFONO_MANAGER_PATH),
+ OFONO_MANAGER_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoManagerInterface::~QOfonoManagerInterface()
+{
+}
+
+QList <QDBusObjectPath> QOfonoManagerInterface::getModems()
+{
+ QVariant var = getProperty("Modems");
+ return qdbus_cast<QList<QDBusObjectPath> >(var);
+}
+
+QDBusObjectPath QOfonoManagerInterface::currentModem()
+{
+ QList<QDBusObjectPath> modems = getModems();
+ foreach(const QDBusObjectPath modem, modems) {
+ QOfonoModemInterface device(modem.path());
+ if(device.isPowered() && device.isOnline())
+ return modem;;
+ }
+ return QDBusObjectPath();
+}
+
+
+void QOfonoManagerInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ QLatin1String(OFONO_MANAGER_PATH),
+ QLatin1String(OFONO_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QOfonoDBusHelper *helper;
+ helper = new QOfonoDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+ QLatin1String(OFONO_MANAGER_PATH),
+ QLatin1String(OFONO_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+ QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+ this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+ }
+}
+
+void QOfonoManagerInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariant QOfonoManagerInterface::getProperty(const QString &property)
+{
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ return map.value(property);
+ } else {
+ qDebug() << Q_FUNC_INFO << "does not contain" << property;
+ }
+ return QVariant();
+}
+
+QVariantMap QOfonoManagerInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ if(reply.isValid())
+ return reply.value();
+ else
+ return QVariantMap();
+}
+
+QOfonoDBusHelper::QOfonoDBusHelper(QObject * parent)
+ : QObject(parent)
+{
+}
+
+QOfonoDBusHelper::~QOfonoDBusHelper()
+{
+}
+
+void QOfonoDBusHelper::propertyChanged(const QString &item, const QDBusVariant &var)
+{
+ QDBusMessage msg = this->message();
+ Q_EMIT propertyChangedContext(msg.path() ,item, var);
+}
+
+
+QOfonoModemInterface::QOfonoModemInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ dbusPathName,
+ OFONO_MODEM_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoModemInterface::~QOfonoModemInterface()
+{
+}
+
+bool QOfonoModemInterface::isPowered()
+{
+ QVariant var = getProperty("Powered");
+ return qdbus_cast<bool>(var);
+}
+
+bool QOfonoModemInterface::isOnline()
+{
+ QVariant var = getProperty("Online");
+ return qdbus_cast<bool>(var);
+}
+
+QString QOfonoModemInterface::getName()
+{
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoModemInterface::getManufacturer()
+{
+ QVariant var = getProperty("Manufacturer");
+ return qdbus_cast<QString>(var);
+
+}
+
+QString QOfonoModemInterface::getModel()
+{
+
+ QVariant var = getProperty("Model");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoModemInterface::getRevision()
+{
+ QVariant var = getProperty("Revision");
+ return qdbus_cast<QString>(var);
+
+}
+QString QOfonoModemInterface::getSerial()
+{
+ QVariant var = getProperty("Serial");
+ return qdbus_cast<QString>(var);
+
+}
+
+QStringList QOfonoModemInterface::getFeatures()
+{
+ //sms, sim
+ QVariant var = getProperty("Features");
+ return qdbus_cast<QStringList>(var);
+}
+
+QStringList QOfonoModemInterface::getInterfaces()
+{
+ QVariant var = getProperty("Interfaces");
+ return qdbus_cast<QStringList>(var);
+}
+
+QString QOfonoModemInterface::defaultInterface()
+{
+ foreach(const QString &modem,getInterfaces()) {
+ return modem;
+ }
+ return QString();
+}
+
+
+void QOfonoModemInterface::connectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_MODEM_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QOfonoDBusHelper *helper;
+ helper = new QOfonoDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_MODEM_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+ QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+ this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+ }}
+
+void QOfonoModemInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariantMap QOfonoModemInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QVariant QOfonoModemInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() << Q_FUNC_INFO << "does not contain" << property;
+ }
+ return var;
+}
+
+
+QOfonoNetworkRegistrationInterface::QOfonoNetworkRegistrationInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ dbusPathName,
+ OFONO_NETWORK_REGISTRATION_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoNetworkRegistrationInterface::~QOfonoNetworkRegistrationInterface()
+{
+}
+
+QString QOfonoNetworkRegistrationInterface::getStatus()
+{
+ /*
+ "unregistered" Not registered to any network
+ "registered" Registered to home network
+ "searching" Not registered, but searching
+ "denied" Registration has been denied
+ "unknown" Status is unknown
+ "roaming" Registered, but roaming*/
+ QVariant var = getProperty("Status");
+ return qdbus_cast<QString>(var);
+}
+
+quint16 QOfonoNetworkRegistrationInterface::getLac()
+{
+ QVariant var = getProperty("LocationAreaCode");
+ return var.value<quint16>();
+}
+
+
+quint32 QOfonoNetworkRegistrationInterface::getCellId()
+{
+ QVariant var = getProperty("CellId");
+ return var.value<quint32>();
+}
+
+QString QOfonoNetworkRegistrationInterface::getTechnology()
+{
+ // "gsm", "edge", "umts", "hspa","lte"
+ QVariant var = getProperty("Technology");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoNetworkRegistrationInterface::getOperatorName()
+{
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+int QOfonoNetworkRegistrationInterface::getSignalStrength()
+{
+ QVariant var = getProperty("Strength");
+ return qdbus_cast<int>(var);
+
+}
+
+QString QOfonoNetworkRegistrationInterface::getBaseStation()
+{
+ QVariant var = getProperty("BaseStation");
+ return qdbus_cast<QString>(var);
+}
+
+QList <QDBusObjectPath> QOfonoNetworkRegistrationInterface::getOperators()
+{
+ QVariant var = getProperty("Operators");
+ return qdbus_cast<QList <QDBusObjectPath> >(var);
+}
+
+void QOfonoNetworkRegistrationInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_NETWORK_REGISTRATION_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QOfonoDBusHelper *helper;
+ helper = new QOfonoDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_NETWORK_REGISTRATION_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+ QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+ this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+ }
+}
+
+void QOfonoNetworkRegistrationInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariant QOfonoNetworkRegistrationInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() << Q_FUNC_INFO << "does not contain" << property;
+ }
+ return var;
+}
+
+QVariantMap QOfonoNetworkRegistrationInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+
+
+QOfonoNetworkOperatorInterface::QOfonoNetworkOperatorInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ dbusPathName,
+ OFONO_NETWORK_OPERATOR_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoNetworkOperatorInterface::~QOfonoNetworkOperatorInterface()
+{
+}
+
+QString QOfonoNetworkOperatorInterface::getName()
+{
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoNetworkOperatorInterface::getStatus()
+{
+ // "unknown", "available", "current" and "forbidden"
+ QVariant var = getProperty("Status");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoNetworkOperatorInterface::getMcc()
+{
+ QVariant var = getProperty("MobileCountryCode");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoNetworkOperatorInterface::getMnc()
+{
+ QVariant var = getProperty("MobileNetworkCode");
+ return qdbus_cast<QString>(var);
+}
+
+QStringList QOfonoNetworkOperatorInterface::getTechnologies()
+{
+ QVariant var = getProperty("Technologies");
+ return qdbus_cast<QStringList>(var);
+}
+
+void QOfonoNetworkOperatorInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_NETWORK_OPERATOR_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QOfonoDBusHelper *helper;
+ helper = new QOfonoDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_NETWORK_OPERATOR_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+ QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+ this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+ }
+}
+
+void QOfonoNetworkOperatorInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariant QOfonoNetworkOperatorInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() << Q_FUNC_INFO << "does not contain" << property;
+ }
+ return var;
+}
+
+QVariantMap QOfonoNetworkOperatorInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QOfonoSimInterface::QOfonoSimInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ dbusPathName,
+ OFONO_SIM_MANAGER_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoSimInterface::~QOfonoSimInterface()
+{
+}
+
+bool QOfonoSimInterface::isPresent()
+{
+ QVariant var = getProperty("Present");
+ return qdbus_cast<bool>(var);
+}
+
+QString QOfonoSimInterface::getHomeMcc()
+{
+ QVariant var = getProperty("MobileCountryCode");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoSimInterface::getHomeMnc()
+{
+ QVariant var = getProperty("MobileNetworkCode");
+ return qdbus_cast<QString>(var);
+}
+
+// QStringList subscriberNumbers();
+// QMap<QString,QString> serviceNumbers();
+QString QOfonoSimInterface::pinRequired()
+{
+ QVariant var = getProperty("PinRequired");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoSimInterface::lockedPins()
+{
+ QVariant var = getProperty("LockedPins");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoSimInterface::cardIdentifier()
+{
+ QVariant var = getProperty("CardIdentifier");
+ return qdbus_cast<QString>(var);
+}
+
+void QOfonoSimInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_SIM_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QOfonoDBusHelper *helper;
+ helper = new QOfonoDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_SIM_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+ QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+ this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+ }
+}
+
+void QOfonoSimInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariant QOfonoSimInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() << Q_FUNC_INFO << "does not contain" << property;
+ }
+ return var;
+}
+
+QVariantMap QOfonoSimInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QOfonoDataConnectionManagerInterface::QOfonoDataConnectionManagerInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ dbusPathName,
+ OFONO_DATA_CONNECTION_MANAGER_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoDataConnectionManagerInterface::~QOfonoDataConnectionManagerInterface()
+{
+}
+
+QList<QDBusObjectPath> QOfonoDataConnectionManagerInterface::getPrimaryContexts()
+{
+ QVariant var = getProperty("PrimaryContexts");
+ return qdbus_cast<QList<QDBusObjectPath> >(var);
+}
+
+bool QOfonoDataConnectionManagerInterface::isAttached()
+{
+ QVariant var = getProperty("Attached");
+ return qdbus_cast<bool>(var);
+}
+
+bool QOfonoDataConnectionManagerInterface::isRoamingAllowed()
+{
+ QVariant var = getProperty("RoamingAllowed");
+ return qdbus_cast<bool>(var);
+}
+
+bool QOfonoDataConnectionManagerInterface::isPowered()
+{
+ QVariant var = getProperty("Powered");
+ return qdbus_cast<bool>(var);
+}
+
+void QOfonoDataConnectionManagerInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_DATA_CONNECTION_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QOfonoDBusHelper *helper;
+ helper = new QOfonoDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_DATA_CONNECTION_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+ QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+ this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+ }
+}
+
+void QOfonoDataConnectionManagerInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariant QOfonoDataConnectionManagerInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() << Q_FUNC_INFO << "does not contain" << property;
+ }
+ return var;
+}
+
+QVariantMap QOfonoDataConnectionManagerInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QOfonoPrimaryDataContextInterface::QOfonoPrimaryDataContextInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ dbusPathName,
+ OFONO_DATA_CONTEXT_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoPrimaryDataContextInterface::~QOfonoPrimaryDataContextInterface()
+{
+}
+
+bool QOfonoPrimaryDataContextInterface::isActive()
+{
+ QVariant var = getProperty("Active");
+ return qdbus_cast<bool>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getApName()
+{
+ QVariant var = getProperty("AccessPointName");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getType()
+{
+ QVariant var = getProperty("Type");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getName()
+{
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+QVariantMap QOfonoPrimaryDataContextInterface::getSettings()
+{
+ QVariant var = getProperty("Settings");
+ return qdbus_cast<QVariantMap>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getInterface()
+{
+ QVariant var = getProperty("Interface");
+ return qdbus_cast<QString>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getAddress()
+{
+ QVariant var = getProperty("Address");
+ return qdbus_cast<QString>(var);
+}
+
+bool QOfonoPrimaryDataContextInterface::setActive(bool on)
+{
+// this->setProperty("Active", QVariant(on));
+
+ return setProp("Active", qVariantFromValue(on));
+}
+
+bool QOfonoPrimaryDataContextInterface::setApn(const QString &name)
+{
+ return setProp("AccessPointName", QVariant::fromValue(name));
+}
+
+void QOfonoPrimaryDataContextInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_DATA_CONTEXT_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QOfonoDBusHelper *helper;
+ helper = new QOfonoDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_DATA_CONTEXT_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+ QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+ this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+ }
+}
+
+void QOfonoPrimaryDataContextInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariant QOfonoPrimaryDataContextInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() << Q_FUNC_INFO << "does not contain" << property;
+ }
+ return var;
+}
+
+QVariantMap QOfonoPrimaryDataContextInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+bool QOfonoPrimaryDataContextInterface::setProp(const QString &property, const QVariant &var)
+{
+ QList<QVariant> args;
+ args << qVariantFromValue(property) << qVariantFromValue(QDBusVariant(var));
+
+ QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,
+ QLatin1String("SetProperty"),
+ args);
+ bool ok = true;
+ if(reply.type() != QDBusMessage::ReplyMessage) {
+ qWarning() << reply.errorMessage();
+ ok = false;
+ }
+ qWarning() << reply.errorMessage();
+ return ok;
+}
+
+QOfonoSmsInterface::QOfonoSmsInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ dbusPathName,
+ OFONO_SMS_MANAGER_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoSmsInterface::~QOfonoSmsInterface()
+{
+}
+
+void QOfonoSmsInterface::connectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_SMS_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QOfonoDBusHelper *helper;
+ helper = new QOfonoDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_SMS_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+ QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+ this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+ }
+
+ if (QLatin1String(signal) == SIGNAL(immediateMessage(QString,QVariantMap))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_SMS_MANAGER_INTERFACE),
+ QLatin1String("ImmediateMessage"),
+ this,SIGNAL(immediateMessage(QString,QVariantMap )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(incomingMessage(QString,QVariantMap))) {
+ if(!connection().connect(QLatin1String(OFONO_SERVICE),
+ this->path(),
+ QLatin1String(OFONO_SMS_MANAGER_INTERFACE),
+ QLatin1String("IncomingMessage"),
+ this,SIGNAL(incomingMessage(QString,QVariantMap)))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+}
+
+void QOfonoSmsInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariant QOfonoSmsInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() << Q_FUNC_INFO << "does not contain" << property;
+ }
+ return var;
+}
+
+QVariantMap QOfonoSmsInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+void QOfonoSmsInterface::sendMessage(const QString &to, const QString &message)
+{
+ QDBusReply<QString> reply = this->call(QLatin1String("SendMessage"),
+ QVariant::fromValue(to),
+ QVariant::fromValue(message));
+ bool ok = true;
+ if(reply.error().type() == QDBusError::InvalidArgs) {
+ qWarning() << reply.error().message();
+ ok = false;
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/bearer/connman/qofonoservice_linux_p.h b/src/plugins/bearer/connman/qofonoservice_linux_p.h
new file mode 100644
index 0000000000..48926664e0
--- /dev/null
+++ b/src/plugins/bearer/connman/qofonoservice_linux_p.h
@@ -0,0 +1,332 @@
+/****************************************************************************
+**
+** 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 plugins 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 QOFONOSERVICE_H
+#define QOFONOSERVICE_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtDBus/QtDBus>
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusError>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusMessage>
+#include <QtDBus/QDBusReply>
+
+#include <QtDBus/QDBusPendingCallWatcher>
+#include <QtDBus/QDBusObjectPath>
+#include <QtDBus/QDBusContext>
+#include <QMap>
+
+#define OFONO_SERVICE "org.ofono"
+#define OFONO_MANAGER_INTERFACE "org.ofono.Manager"
+#define OFONO_MANAGER_PATH "/"
+#define OFONO_MODEM_INTERFACE "org.ofono.Modem"
+#define OFONO_NETWORK_REGISTRATION_INTERFACE "org.ofono.NetworkRegistration"
+#define OFONO_NETWORK_OPERATOR_INTERFACE "org.ofono.NetworkOperator"
+#define OFONO_DATA_CONNECTION_MANAGER_INTERFACE "org.ofono.DataConnectionManager"
+#define OFONO_SIM_MANAGER_INTERFACE "org.ofono.SimManager"
+#define OFONO_DATA_CONTEXT_INTERFACE "org.ofono.PrimaryDataContext"
+
+#define OFONO_SMS_MANAGER_INTERFACE "org.ofono.SmsManager"
+#define OFONO_PHONEBOOK_INTERFACE "org.ofono.Phonebook"
+#define OFONO_MESSAGE_WAITING_INTERFACE "org.ofono.MessageWaiting"
+
+
+
+QT_BEGIN_NAMESPACE
+
+QT_END_NAMESPACE
+
+
+QT_BEGIN_NAMESPACE
+
+class QOfonoManagerInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QOfonoManagerInterface( QObject *parent = 0);
+ ~QOfonoManagerInterface();
+
+ QDBusObjectPath path() const;
+
+ QVariantMap getProperties();
+ bool setProperty(const QString &name, const QDBusVariant &value);
+ QList <QDBusObjectPath> getModems();
+ QDBusObjectPath currentModem();
+
+Q_SIGNALS:
+ void propertyChanged(const QString &, const QDBusVariant &value);
+ void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+
+};
+
+
+class QOfonoDBusHelper: public QObject, protected QDBusContext
+ {
+ Q_OBJECT
+ public:
+ QOfonoDBusHelper(QObject *parent = 0);
+ ~QOfonoDBusHelper();
+
+ public slots:
+ void propertyChanged(const QString &, const QDBusVariant &);
+ Q_SIGNALS:
+ void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+};
+
+class QOfonoModemInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QOfonoModemInterface(const QString &dbusModemPathName, QObject *parent = 0);
+ ~QOfonoModemInterface();
+
+ QVariantMap getProperties();
+ //properties
+ bool isPowered();
+ bool isOnline();
+ QString getName();
+ QString getManufacturer();
+ QString getModel();
+ QString getRevision();
+ QString getSerial();
+
+ QStringList getFeatures(); //sms, sim
+ QStringList getInterfaces();
+ QString defaultInterface();
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+Q_SIGNALS:
+ void propertyChanged(const QString &, const QDBusVariant &value);
+ void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+};
+
+
+class QOfonoNetworkRegistrationInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QOfonoNetworkRegistrationInterface(const QString &dbusModemPathName, QObject *parent = 0);
+ ~QOfonoNetworkRegistrationInterface();
+
+ QVariantMap getProperties();
+
+ //properties
+ QString getStatus();
+ quint16 getLac();
+ quint32 getCellId();
+ QString getTechnology();
+ QString getOperatorName();
+ int getSignalStrength();
+ QString getBaseStation();
+ QList <QDBusObjectPath> getOperators();
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+Q_SIGNALS:
+ void propertyChanged(const QString &, const QDBusVariant &value);
+ void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+
+};
+
+class QOfonoNetworkOperatorInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+//modem or operator paths
+ QOfonoNetworkOperatorInterface(const QString &dbusPathName, QObject *parent = 0);
+ ~QOfonoNetworkOperatorInterface();
+
+ QVariantMap getProperties();
+
+ //properties
+ QString getName();
+ QString getStatus();// "unknown", "available", "current" and "forbidden"
+ QString getMcc();
+ QString getMnc();
+ QStringList getTechnologies();
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+};
+
+class QOfonoSimInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QOfonoSimInterface(const QString &dbusModemPathName, QObject *parent = 0);
+ ~QOfonoSimInterface();
+
+ QVariantMap getProperties();
+
+ //properties
+ bool isPresent();
+ QString getHomeMcc();
+ QString getHomeMnc();
+// QStringList subscriberNumbers();
+// QMap<QString,QString> serviceNumbers();
+ QString pinRequired();
+ QString lockedPins();
+ QString cardIdentifier();
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+};
+
+
+class QOfonoDataConnectionManagerInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QOfonoDataConnectionManagerInterface(const QString &dbusPathName, QObject *parent = 0);
+ ~QOfonoDataConnectionManagerInterface();
+
+ QVariantMap getProperties();
+
+ //properties
+ QList<QDBusObjectPath> getPrimaryContexts();
+ bool isAttached();
+ bool isRoamingAllowed();
+ bool isPowered();
+
+ bool setPower(bool on);
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+};
+
+
+class QOfonoPrimaryDataContextInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QOfonoPrimaryDataContextInterface(const QString &dbusPathName, QObject *parent = 0);
+ ~QOfonoPrimaryDataContextInterface();
+
+ QVariantMap getProperties();
+
+ //properties
+ bool isActive();
+ QString getApName();
+ QString getType();
+ QString getName();
+ QVariantMap getSettings();
+ QString getInterface();
+ QString getAddress();
+
+ bool setActive(bool on);
+ bool setApn(const QString &name);
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+ bool setProp(const QString &, const QVariant &var);
+};
+
+class QOfonoSmsInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QOfonoSmsInterface(const QString &dbusModemPathName, QObject *parent = 0);
+ ~QOfonoSmsInterface();
+
+ QVariantMap getProperties();
+ void sendMessage(const QString &to, const QString &message);
+
+ //properties
+ QString serviceCenterAddress();
+ bool useDeliveryReports();
+ QString bearer();
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+
+Q_SIGNALS:
+ void propertyChanged(const QString &, const QDBusVariant &value);
+ void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+ void immediateMessage(const QString &message, const QVariantMap &info);
+ void incomingMessage(const QString &message, const QVariantMap &info);
+};
+
+#endif //QOFONOSERVICE_H
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm
index 131f36d39e..844e38b103 100644
--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm
@@ -305,50 +305,53 @@ void QScanThread::getUserConfigurations()
SCDynamicStoreRef dynRef = SCDynamicStoreCreate(kCFAllocatorSystemDefault, (CFStringRef)@"Qt corewlan", nil, nil);
NSDictionary * airportPlist = (NSDictionary *)SCDynamicStoreCopyValue(dynRef, (CFStringRef)[NSString stringWithFormat:@"Setup:/Network/Interface/%@/AirPort", nsInterfaceName]);
CFRelease(dynRef);
-
- NSDictionary *prefNetDict = [airportPlist objectForKey:@"PreferredNetworks"];
-
- NSArray *thisSsidarray = [prefNetDict valueForKey:@"SSID_STR"];
- for(NSString *ssidkey in thisSsidarray) {
- QString thisSsid = qt_mac_NSStringToQString(ssidkey);
- if(!userProfiles.contains(thisSsid)) {
- QMap <QString,QString> map;
- map.insert(thisSsid, qt_mac_NSStringToQString(nsInterfaceName));
- userProfiles.insert(thisSsid, map);
+ if(airportPlist != nil) {
+ NSDictionary *prefNetDict = [airportPlist objectForKey:@"PreferredNetworks"];
+
+ NSArray *thisSsidarray = [prefNetDict valueForKey:@"SSID_STR"];
+ for(NSString *ssidkey in thisSsidarray) {
+ QString thisSsid = qt_mac_NSStringToQString(ssidkey);
+ if(!userProfiles.contains(thisSsid)) {
+ QMap <QString,QString> map;
+ map.insert(thisSsid, qt_mac_NSStringToQString(nsInterfaceName));
+ userProfiles.insert(thisSsid, map);
+ }
}
+ CFRelease(airportPlist);
}
- CFRelease(airportPlist);
// 802.1X user profiles
QString userProfilePath = QDir::homePath() + "/Library/Preferences/com.apple.eap.profiles.plist";
NSDictionary* eapDict = [[[NSDictionary alloc] initWithContentsOfFile:qt_mac_QStringToNSString(userProfilePath)] autorelease];
- NSString *profileStr= @"Profiles";
- NSString *nameStr = @"UserDefinedName";
- NSString *networkSsidStr = @"Wireless Network";
- for (id profileKey in eapDict) {
- if ([profileStr isEqualToString:profileKey]) {
- NSDictionary *itemDict = [eapDict objectForKey:profileKey];
- for (id itemKey in itemDict) {
-
- NSInteger dictSize = [itemKey count];
- id objects[dictSize];
- id keys[dictSize];
-
- [itemKey getObjects:objects andKeys:keys];
- QString networkName;
- QString ssid;
- for(int i = 0; i < dictSize; i++) {
- if([nameStr isEqualToString:keys[i]]) {
- networkName = qt_mac_NSStringToQString(objects[i]);
- }
- if([networkSsidStr isEqualToString:keys[i]]) {
- ssid = qt_mac_NSStringToQString(objects[i]);
- }
- if(!userProfiles.contains(networkName)
- && !ssid.isEmpty()) {
- QMap<QString,QString> map;
- map.insert(ssid, qt_mac_NSStringToQString(nsInterfaceName));
- userProfiles.insert(networkName, map);
+ if(eapDict != nil) {
+ NSString *profileStr= @"Profiles";
+ NSString *nameStr = @"UserDefinedName";
+ NSString *networkSsidStr = @"Wireless Network";
+ for (id profileKey in eapDict) {
+ if ([profileStr isEqualToString:profileKey]) {
+ NSDictionary *itemDict = [eapDict objectForKey:profileKey];
+ for (id itemKey in itemDict) {
+
+ NSInteger dictSize = [itemKey count];
+ id objects[dictSize];
+ id keys[dictSize];
+
+ [itemKey getObjects:objects andKeys:keys];
+ QString networkName;
+ QString ssid;
+ for(int i = 0; i < dictSize; i++) {
+ if([nameStr isEqualToString:keys[i]]) {
+ networkName = qt_mac_NSStringToQString(objects[i]);
+ }
+ if([networkSsidStr isEqualToString:keys[i]]) {
+ ssid = qt_mac_NSStringToQString(objects[i]);
+ }
+ if(!userProfiles.contains(networkName)
+ && !ssid.isEmpty()) {
+ QMap<QString,QString> map;
+ map.insert(ssid, qt_mac_NSStringToQString(nsInterfaceName));
+ userProfiles.insert(networkName, map);
+ }
}
}
}
@@ -855,6 +858,8 @@ quint64 QCoreWlanEngine::startTime(const QString &id)
NSString *filePath = @"/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist";
NSDictionary* plistDict = [[[NSDictionary alloc] initWithContentsOfFile:filePath] autorelease];
+ if(plistDict == nil)
+ return timestamp;
NSString *input = @"KnownNetworks";
NSString *timeStampStr = @"_timeStamp";
@@ -864,9 +869,13 @@ quint64 QCoreWlanEngine::startTime(const QString &id)
if ([input isEqualToString:key]) {
NSDictionary *knownNetworksDict = [plistDict objectForKey:key];
+ if(knownNetworksDict == nil)
+ return timestamp;
for (id networkKey in knownNetworksDict) {
bool isFound = false;
NSDictionary *itemDict = [knownNetworksDict objectForKey:networkKey];
+ if(itemDict == nil)
+ return timestamp;
NSInteger dictSize = [itemDict count];
id objects[dictSize];
id keys[dictSize];
diff --git a/src/plugins/bearer/icd/qnetworksession_impl.cpp b/src/plugins/bearer/icd/qnetworksession_impl.cpp
index 3170bf6261..8013d30a39 100644
--- a/src/plugins/bearer/icd/qnetworksession_impl.cpp
+++ b/src/plugins/bearer/icd/qnetworksession_impl.cpp
@@ -888,12 +888,12 @@ void QNetworkSessionPrivateImpl::close()
state = QNetworkSession::Closing;
emit stateChanged(state);
+ // we fake a disconnection, session error is sent
+ updateState(QNetworkSession::Disconnected);
+
opened = false;
isOpen = false;
- // we fake a disconnection, session error is not sent
- updateState(QNetworkSession::Disconnected);
-
icd.disconnect(ICD_CONNECTION_FLAG_APPLICATION_EVENT);
startTime = QDateTime();
} else {
diff --git a/src/plugins/bearer/symbian/qnetworksession_impl.cpp b/src/plugins/bearer/symbian/qnetworksession_impl.cpp
index 1de4c0f3ac..7f81397dba 100644
--- a/src/plugins/bearer/symbian/qnetworksession_impl.cpp
+++ b/src/plugins/bearer/symbian/qnetworksession_impl.cpp
@@ -48,6 +48,14 @@
#include <stdapis/sys/socket.h>
#include <stdapis/net/if.h>
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
+#include <cmmanager.h>
+#endif
+
+#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+#include <extendedconnpref.h>
+#endif
+
#ifndef QT_NO_BEARERMANAGEMENT
QT_BEGIN_NAMESPACE
@@ -102,19 +110,20 @@ QNetworkSessionPrivateImpl::~QNetworkSessionPrivateImpl()
// Cancel possible RConnection::Start()
Cancel();
iSocketServ.Close();
-
+
// Close global 'Open C' RConnection
// Clears also possible unsetdefaultif() flags.
setdefaultif(0);
-
+
iConnectionMonitor.Close();
iOpenCLibrary.Close();
#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
- qDebug() << "QNS this : " << QString::number((uint)this) << " - destroyed (and setdefaultif(0))";
+ qDebug() << "QNS this : " << QString::number((uint)this)
+ << " - destroyed (and setdefaultif(0))";
#endif
}
-void QNetworkSessionPrivateImpl::configurationStateChanged(TUint32 accessPointId, TUint32 connMonId, QNetworkSession::State newState)
+void QNetworkSessionPrivateImpl::configurationStateChanged(quint32 accessPointId, quint32 connMonId, QNetworkSession::State newState)
{
if (iHandleStateNotificationsFromManager) {
#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
@@ -171,8 +180,10 @@ void QNetworkSessionPrivateImpl::syncStateWithInterface()
return;
if (iFirstSync) {
- QObject::connect(engine, SIGNAL(configurationStateChanged(TUint32, TUint32, QNetworkSession::State)),
- this, SLOT(configurationStateChanged(TUint32, TUint32, QNetworkSession::State)));
+ QObject::connect(engine,
+ SIGNAL(configurationStateChanged(quint32,quint32,QNetworkSession::State)),
+ this,
+ SLOT(configurationStateChanged(quint32,quint32,QNetworkSession::State)));
// Listen to configuration removals, so that in case the configuration
// this session is based on is removed, session knows to enter Invalid -state.
QObject::connect(engine, SIGNAL(configurationRemoved(QNetworkConfigurationPrivatePointer)),
@@ -523,7 +534,7 @@ void QNetworkSessionPrivateImpl::close(bool allowSignals)
Cancel(); // closes iConnection
iSocketServ.Close();
-
+
// Close global 'Open C' RConnection. If OpenC supports,
// close the defaultif for good to avoid difficult timing
// and bouncing issues of network going immediately back up
@@ -910,13 +921,13 @@ QNetworkConfiguration QNetworkSessionPrivateImpl::activeConfiguration(TUint32 ia
if (iapId == 0) {
_LIT(KSetting, "IAP\\Id");
iConnection.GetIntSetting(KSetting, iapId);
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
// Check if this is an Easy WLAN configuration. On Symbian^3 RConnection may report
// the used configuration as 'EasyWLAN' IAP ID if someone has just opened the configuration
// from WLAN Scan dialog, _and_ that connection is still up. We need to find the
// real matching configuration. Function alters the Easy WLAN ID to real IAP ID (only if
// easy WLAN):
- engine->easyWlanTrueIapId(iapId);
+ easyWlanTrueIapId(iapId);
#endif
}
@@ -956,12 +967,18 @@ QNetworkConfiguration QNetworkSessionPrivateImpl::activeConfiguration(TUint32 ia
}
}
} else {
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
- // On Symbian^3 (only, not earlier or Symbian^4) if the SNAP was not reachable, it triggers
- // user choice type of activity (EasyWLAN). As a result, a new IAP may be created, and
- // hence if was not found yet. Therefore update configurations and see if there is something new.
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
+ // On Symbian^3 (only, not earlier or Symbian^4) if the SNAP was not reachable, it
+ // triggers user choice type of activity (EasyWLAN). As a result, a new IAP may be
+ // created, and hence if was not found yet. Therefore update configurations and see if
+ // there is something new.
+
// 1. Update knowledge from the databases.
- engine->requestUpdate();
+ if (thread() != engine->thread())
+ QMetaObject::invokeMethod(engine, "requestUpdate", Qt::BlockingQueuedConnection);
+ else
+ engine->requestUpdate();
+
// 2. Check if new configuration was created during connection creation
QList<QString> knownConfigs = engine->accessPointConfigurationIdentifiers();
#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
@@ -1014,7 +1031,12 @@ QNetworkConfiguration QNetworkSessionPrivateImpl::activeConfiguration(TUint32 ia
} else {
// Check if new (WLAN) IAP was created in IAP/SNAP dialog
// 1. Sync internal configurations array to commsdb first
- engine->updateConfigurations();
+ if (thread() != engine->thread()) {
+ QMetaObject::invokeMethod(engine, "requestUpdate",
+ Qt::BlockingQueuedConnection);
+ } else {
+ engine->requestUpdate();
+ }
// 2. Check if new configuration was created during connection creation
QStringList knownConfigs = engine->accessPointConfigurationIdentifiers();
if (knownConfigs.count() > iKnownConfigsBeforeConnectionStart.count()) {
@@ -1327,7 +1349,7 @@ bool QNetworkSessionPrivateImpl::newState(QNetworkSession::State newState, TUint
}
}
}
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
// If the retVal is not true here, it means that the status update may apply to an IAP outside of
// SNAP (session is based on SNAP but follows IAP outside of it), which may occur on Symbian^3 EasyWlan.
if (retVal == false && activeConfig.isValid() &&
@@ -1457,6 +1479,64 @@ void QNetworkSessionPrivateImpl::handleSymbianConnectionStatusChange(TInt aConne
}
}
+#if defined(SNAP_FUNCTIONALITY_AVAILABLE)
+bool QNetworkSessionPrivateImpl::easyWlanTrueIapId(TUint32 &trueIapId) const
+{
+ RCmManager iCmManager;
+ TRAPD(err, iCmManager.OpenL());
+ if (err != KErrNone)
+ return false;
+
+ // Check if this is easy wlan id in the first place
+ if (trueIapId != iCmManager.EasyWlanIdL()) {
+ iCmManager.Close();
+ return false;
+ }
+
+ iCmManager.Close();
+
+ // Loop through all connections that connection monitor is aware
+ // and check for IAPs based on easy WLAN
+ TRequestStatus status;
+ TUint connectionCount;
+ iConnectionMonitor.GetConnectionCount(connectionCount, status);
+ User::WaitForRequest(status);
+ TUint connectionId;
+ TUint subConnectionCount;
+ TUint apId;
+ if (status.Int() == KErrNone) {
+ for (TUint i = 1; i <= connectionCount; i++) {
+ iConnectionMonitor.GetConnectionInfo(i, connectionId, subConnectionCount);
+ iConnectionMonitor.GetUintAttribute(connectionId, subConnectionCount,
+ KIAPId, apId, status);
+ User::WaitForRequest(status);
+ if (apId == trueIapId) {
+ TBuf<50>easyWlanNetworkName;
+ iConnectionMonitor.GetStringAttribute(connectionId, 0, KNetworkName,
+ easyWlanNetworkName, status);
+ User::WaitForRequest(status);
+ if (status.Int() != KErrNone)
+ continue;
+
+ const QString ssid = QString::fromUtf16(easyWlanNetworkName.Ptr(),
+ easyWlanNetworkName.Length());
+
+ QNetworkConfigurationPrivatePointer ptr = engine->configurationFromSsid(ssid);
+ if (ptr) {
+#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
+ qDebug() << "QNCM easyWlanTrueIapId(), found true IAP ID: "
+ << toSymbianConfig(ptr)->numericIdentifier();
+#endif
+ trueIapId = toSymbianConfig(ptr)->numericIdentifier();
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+#endif
+
ConnectionProgressNotifier::ConnectionProgressNotifier(QNetworkSessionPrivateImpl& owner, RConnection& connection)
: CActive(CActive::EPriorityUserInput), iOwner(owner), iConnection(connection)
{
diff --git a/src/plugins/bearer/symbian/qnetworksession_impl.h b/src/plugins/bearer/symbian/qnetworksession_impl.h
index aac9321cae..8e3e9976fd 100644
--- a/src/plugins/bearer/symbian/qnetworksession_impl.h
+++ b/src/plugins/bearer/symbian/qnetworksession_impl.h
@@ -64,9 +64,6 @@
#ifdef SNAP_FUNCTIONALITY_AVAILABLE
#include <comms-infras/cs_mobility_apiext.h>
#endif
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
- #include <extendedconnpref.h>
-#endif
QT_BEGIN_NAMESPACE
@@ -132,7 +129,8 @@ protected: // From CActive
void DoCancel();
private Q_SLOTS:
- void configurationStateChanged(TUint32 accessPointId, TUint32 connMonId, QNetworkSession::State newState);
+ void configurationStateChanged(quint32 accessPointId, quint32 connMonId,
+ QNetworkSession::State newState);
void configurationRemoved(QNetworkConfigurationPrivatePointer config);
void configurationAdded(QNetworkConfigurationPrivatePointer config);
@@ -147,6 +145,11 @@ private:
QNetworkInterface interface(TUint iapId) const;
#endif
+#if defined(SNAP_FUNCTIONALITY_AVAILABLE)
+ bool easyWlanTrueIapId(TUint32 &trueIapId) const;
+#endif
+
+
private: // data
SymbianEngine *engine;
diff --git a/src/plugins/bearer/symbian/symbianengine.cpp b/src/plugins/bearer/symbian/symbianengine.cpp
index 959346107a..2e2b67197a 100644
--- a/src/plugins/bearer/symbian/symbianengine.cpp
+++ b/src/plugins/bearer/symbian/symbianengine.cpp
@@ -692,7 +692,7 @@ void SymbianEngine::updateActiveAccessPoints()
User::WaitForRequest(status);
QString ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(apId));
QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(ident);
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
if (!ptr) {
// If IAP was not found, check if the update was about EasyWLAN
ptr = configurationFromEasyWlan(apId, connectionId);
@@ -1054,7 +1054,7 @@ void SymbianEngine::EventL(const CConnMonEventBase& aEvent)
QString ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(apId));
QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(ident);
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
if (!ptr) {
// Check if status was regarding EasyWLAN
ptr = configurationFromEasyWlan(apId, connectionId);
@@ -1079,7 +1079,7 @@ void SymbianEngine::EventL(const CConnMonEventBase& aEvent)
User::WaitForRequest(status);
QString ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(apId));
QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(ident);
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
if (!ptr) {
// Check for EasyWLAN
ptr = configurationFromEasyWlan(apId, connectionId);
@@ -1189,7 +1189,7 @@ void SymbianEngine::EventL(const CConnMonEventBase& aEvent)
User::WaitForRequest(status);
QString ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(apId));
QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(ident);
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
if (!ptr) {
// If IAP was not found, check if the update was about EasyWLAN
ptr = configurationFromEasyWlan(apId, connectionId);
@@ -1210,11 +1210,39 @@ void SymbianEngine::EventL(const CConnMonEventBase& aEvent)
}
}
-#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+/*
+ Returns the network configuration that matches the given SSID.
+*/
+QNetworkConfigurationPrivatePointer SymbianEngine::configurationFromSsid(const QString &ssid)
+{
+ QMutexLocker locker(&mutex);
+
+ // Browser through all items and check their name for match
+ QHash<QString, QNetworkConfigurationPrivatePointer>::ConstIterator i =
+ accessPointConfigurations.constBegin();
+ while (i != accessPointConfigurations.constEnd()) {
+ QNetworkConfigurationPrivatePointer ptr = i.value();
+
+ QMutexLocker configLocker(&ptr->mutex);
+
+ if (ptr->name == ssid) {
+#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
+ qDebug() << "QNCM EasyWlan uses real SSID: " << ssid;
+#endif
+ return ptr;
+ }
+ ++i;
+ }
+
+ return QNetworkConfigurationPrivatePointer();
+}
+
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
// Tries to derive configuration from EasyWLAN.
// First checks if the interface brought up was EasyWLAN, then derives the real SSID,
// and looks up configuration based on that one.
-QNetworkConfigurationPrivatePointer SymbianEngine::configurationFromEasyWlan(TUint32 apId, TUint connectionId)
+QNetworkConfigurationPrivatePointer SymbianEngine::configurationFromEasyWlan(TUint32 apId,
+ TUint connectionId)
{
if (apId == iCmManager.EasyWlanIdL()) {
TRequestStatus status;
@@ -1223,11 +1251,12 @@ QNetworkConfigurationPrivatePointer SymbianEngine::configurationFromEasyWlan(TUi
easyWlanNetworkName, status );
User::WaitForRequest(status);
if (status.Int() == KErrNone) {
- QString realSSID = QString::fromUtf16(easyWlanNetworkName.Ptr(), easyWlanNetworkName.Length());
+ const QString realSSID = QString::fromUtf16(easyWlanNetworkName.Ptr(),
+ easyWlanNetworkName.Length());
// Browser through all items and check their name for match
- QHash<QString, QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> >::const_iterator i =
- accessPointConfigurations.constBegin();
+ QHash<QString, QNetworkConfigurationPrivatePointer>::ConstIterator i =
+ accessPointConfigurations.constBegin();
while (i != accessPointConfigurations.constEnd()) {
QNetworkConfigurationPrivatePointer ptr = i.value();
@@ -1245,45 +1274,6 @@ QNetworkConfigurationPrivatePointer SymbianEngine::configurationFromEasyWlan(TUi
}
return QNetworkConfigurationPrivatePointer();
}
-
-bool SymbianEngine::easyWlanTrueIapId(TUint32& trueIapId)
-{
- // Check if this is easy wlan id in the first place
- if (trueIapId != iCmManager.EasyWlanIdL())
- return false;
-
- // Loop through all connections that connection monitor is aware
- // and check for IAPs based on easy WLAN
- TRequestStatus status;
- TUint connectionCount;
- iConnectionMonitor.GetConnectionCount(connectionCount, status);
- User::WaitForRequest(status);
- TUint connectionId;
- TUint subConnectionCount;
- TUint apId;
- if (status.Int() == KErrNone) {
- for (TUint i = 1; i <= connectionCount; i++) {
- iConnectionMonitor.GetConnectionInfo(i, connectionId, subConnectionCount);
- iConnectionMonitor.GetUintAttribute(connectionId, subConnectionCount,
- KIAPId, apId, status);
- User::WaitForRequest(status);
- if (apId == trueIapId) {
- QNetworkConfigurationPrivatePointer ptr =
- configurationFromEasyWlan(apId, connectionId);
- if (ptr) {
-#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
- qDebug() << "QNCM easyWlanTrueIapId(), found true IAP ID: "
- << toSymbianConfig(ptr)->numericIdentifier();
-#endif
- trueIapId = toSymbianConfig(ptr)->numericIdentifier();
- return true;
- }
- }
- }
- }
- return false;
-}
-
#endif
// Sessions may use this function to report configuration state changes,
diff --git a/src/plugins/bearer/symbian/symbianengine.h b/src/plugins/bearer/symbian/symbianengine.h
index 1fe63954ea..7c1076ed2b 100644
--- a/src/plugins/bearer/symbian/symbianengine.h
+++ b/src/plugins/bearer/symbian/symbianengine.h
@@ -138,10 +138,15 @@ public:
QStringList accessPointConfigurationIdentifiers();
+ QNetworkConfigurationPrivatePointer configurationFromSsid(const QString &ssid);
+
+ // For QNetworkSessionPrivateImpl to indicate about state changes
+ void configurationStateChangeReport(TUint32 accessPointId, QNetworkSession::State newState);
+
Q_SIGNALS:
void onlineStateChanged(bool isOnline);
- void configurationStateChanged(TUint32 accessPointId, TUint32 connMonId,
+ void configurationStateChanged(quint32 accessPointId, quint32 connMonId,
QNetworkSession::State newState);
public Q_SLOTS:
@@ -187,12 +192,9 @@ protected:
private:
// MConnectionMonitorObserver
void EventL(const CConnMonEventBase& aEvent);
- // For QNetworkSessionPrivate to indicate about state changes
- void configurationStateChangeReport(TUint32 accessPointId,
- QNetworkSession::State newState);
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
- QNetworkConfigurationPrivatePointer configurationFromEasyWlan(TUint32 apId, TUint connectionId);
- bool easyWlanTrueIapId(TUint32& trueIapId);
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
+ QNetworkConfigurationPrivatePointer configurationFromEasyWlan(TUint32 apId,
+ TUint connectionId);
#endif
private: // Data
@@ -212,7 +214,6 @@ private: // Data
friend class QNetworkSessionPrivate;
friend class AccessPointsAvailabilityScanner;
- friend class QNetworkSessionPrivateImpl;
#ifdef SNAP_FUNCTIONALITY_AVAILABLE
RCmManager iCmManager;
diff --git a/src/qt3support/network/q3dns.cpp b/src/qt3support/network/q3dns.cpp
index ab042c4137..e0e9909d10 100644
--- a/src/qt3support/network/q3dns.cpp
+++ b/src/qt3support/network/q3dns.cpp
@@ -41,6 +41,7 @@
#include "qplatformdefs.h"
#include "qbytearray.h"
+#include <private/qsystemlibrary_p.h>
#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined(Q_OS_CYGWIN)
# include "qt_windows.h"
#else
@@ -2299,7 +2300,7 @@ void Q3Dns::doResInit()
bool gotNetworkParams = false;
// try the API call GetNetworkParams() first and use registry lookup only
// as a fallback
- HINSTANCE hinstLib = LoadLibrary( L"iphlpapi" );
+ HINSTANCE hinstLib = QSystemLibrary::load( L"iphlpapi" );
if ( hinstLib != 0 ) {
#ifdef Q_OS_WINCE
GNP getNetworkParams = (GNP) GetProcAddress( hinstLib, L"GetNetworkParams" );
diff --git a/src/s60installs/bwins/QtDeclarativeu.def b/src/s60installs/bwins/QtDeclarativeu.def
index bc6d0aacba..50c948a4ff 100644
--- a/src/s60installs/bwins/QtDeclarativeu.def
+++ b/src/s60installs/bwins/QtDeclarativeu.def
@@ -10,248 +10,248 @@ EXPORTS
??6QDeclarativeInfo@@QAEAAV0@_J@Z @ 9 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(long long)
?propertyOffset@QDeclarativeOpenMetaObjectType@@QBEHXZ @ 10 NONAME ; int QDeclarativeOpenMetaObjectType::propertyOffset(void) const
??0QDeclarativeText@@QAE@PAVQDeclarativeItem@@@Z @ 11 NONAME ; QDeclarativeText::QDeclarativeText(class QDeclarativeItem *)
- ?trUtf8@QDeclarativePixmapReply@@SA?AVQString@@PBD0H@Z @ 12 NONAME ABSENT ; class QString QDeclarativePixmapReply::trUtf8(char const *, char const *, int)
- ?propertyTypeName@QDeclarativeProperty@@QBEPBDXZ @ 13 NONAME ; char const * QDeclarativeProperty::propertyTypeName(void) const
- ?wantsFocusChanged@QDeclarativeItem@@IAEX_N@Z @ 14 NONAME ABSENT ; void QDeclarativeItem::wantsFocusChanged(bool)
- ?getStaticMetaObject@QDeclarativeDebugService@@SAABUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const & QDeclarativeDebugService::getStaticMetaObject(void)
- ?setLeft@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 16 NONAME ; void QDeclarativeAnchors::setLeft(class QDeclarativeAnchorLine const &)
- ?qt_metacall@QDeclarativeExpression@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 17 NONAME ; int QDeclarativeExpression::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?staticMetaObject@QDeclarativePen@@2UQMetaObject@@B @ 18 NONAME ; struct QMetaObject const QDeclarativePen::staticMetaObject
- ?transformOriginChanged@QDeclarativeItem@@IAEXW4TransformOrigin@1@@Z @ 19 NONAME ; void QDeclarativeItem::transformOriginChanged(enum QDeclarativeItem::TransformOrigin)
- ?isStored@QMetaPropertyBuilder@@QBE_NXZ @ 20 NONAME ; bool QMetaPropertyBuilder::isStored(void) const
- ?elapsed@QDeclarativeItemPrivate@@SA_JAAVQElapsedTimer@@@Z @ 21 NONAME ; long long QDeclarativeItemPrivate::elapsed(class QElapsedTimer &)
- ?clearComponentCache@QDeclarativeEngine@@QAEXXZ @ 22 NONAME ; void QDeclarativeEngine::clearComponentCache(void)
- ?tr@QDeclarativeDebugObjectExpressionWatch@@SA?AVQString@@PBD0H@Z @ 23 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::tr(char const *, char const *, int)
- ??_EQDeclarativePixmapReply@@UAE@I@Z @ 24 NONAME ABSENT ; QDeclarativePixmapReply::~QDeclarativePixmapReply(unsigned int)
- ??1QDeclarativeParserStatus@@UAE@XZ @ 25 NONAME ; QDeclarativeParserStatus::~QDeclarativeParserStatus(void)
- ?gradient@QDeclarativeRectangle@@QBEPAVQDeclarativeGradient@@XZ @ 26 NONAME ; class QDeclarativeGradient * QDeclarativeRectangle::gradient(void) const
- ?setReadable@QMetaPropertyBuilder@@QAEX_N@Z @ 27 NONAME ; void QMetaPropertyBuilder::setReadable(bool)
- ?d_func@QDeclarativeExpression@@AAEPAVQDeclarativeExpressionPrivate@@XZ @ 28 NONAME ; class QDeclarativeExpressionPrivate * QDeclarativeExpression::d_func(void)
- ??1QDeclarativeDomValueValueSource@@QAE@XZ @ 29 NONAME ; QDeclarativeDomValueValueSource::~QDeclarativeDomValueValueSource(void)
- ??_EQDeclarativeStateGroup@@UAE@I@Z @ 30 NONAME ; QDeclarativeStateGroup::~QDeclarativeStateGroup(unsigned int)
- ?property@QDeclarativeDomObject@@QBE?AVQDeclarativeDomProperty@@ABVQByteArray@@@Z @ 31 NONAME ; class QDeclarativeDomProperty QDeclarativeDomObject::property(class QByteArray const &) const
- ?tr@QDeclarativeAnchors@@SA?AVQString@@PBD0H@Z @ 32 NONAME ; class QString QDeclarativeAnchors::tr(char const *, char const *, int)
- ?location@QDeclarativeCustomParserNode@@QBE?AULocation@QDeclarativeParser@@XZ @ 33 NONAME ; struct QDeclarativeParser::Location QDeclarativeCustomParserNode::location(void) const
- ??0QDeclarativeComponent@@QAE@PAVQDeclarativeEngine@@ABVQString@@PAVQObject@@@Z @ 34 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QString const &, class QObject *)
- ?d_func@QDeclarativeContext@@AAEPAVQDeclarativeContextPrivate@@XZ @ 35 NONAME ; class QDeclarativeContextPrivate * QDeclarativeContext::d_func(void)
- ?resetLeft@QDeclarativeAnchors@@QAEXXZ @ 36 NONAME ; void QDeclarativeAnchors::resetLeft(void)
- ?staticMetaObject@QDeclarativePixmapReply@@2UQMetaObject@@B @ 37 NONAME ABSENT ; struct QMetaObject const QDeclarativePixmapReply::staticMetaObject
- ?setOfflineStoragePath@QDeclarativeEngine@@QAEXABVQString@@@Z @ 38 NONAME ; void QDeclarativeEngine::setOfflineStoragePath(class QString const &)
- ?getStaticMetaObject@QListModelInterface@@SAABUQMetaObject@@XZ @ 39 NONAME ; struct QMetaObject const & QListModelInterface::getStaticMetaObject(void)
- ?tr@QDeclarativeEngine@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString QDeclarativeEngine::tr(char const *, char const *, int)
- ??0QDeclarativeEngine@@QAE@PAVQObject@@@Z @ 41 NONAME ; QDeclarativeEngine::QDeclarativeEngine(class QObject *)
- ??0QDeclarativeDebugObjectReference@@QAE@ABV0@@Z @ 42 NONAME ; QDeclarativeDebugObjectReference::QDeclarativeDebugObjectReference(class QDeclarativeDebugObjectReference const &)
- ?set@QDeclarativeListModel@@QAEXHABVQScriptValue@@@Z @ 43 NONAME ; void QDeclarativeListModel::set(int, class QScriptValue const &)
- ?tr@QDeclarativeState@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString QDeclarativeState::tr(char const *, char const *, int)
- ?metaObject@QDeclarativeBinding@@UBEPBUQMetaObject@@XZ @ 45 NONAME ; struct QMetaObject const * QDeclarativeBinding::metaObject(void) const
- ?setUser@QMetaPropertyBuilder@@QAEX_N@Z @ 46 NONAME ; void QMetaPropertyBuilder::setUser(bool)
- ?tr@QDeclarativeDebugRootContextQuery@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString QDeclarativeDebugRootContextQuery::tr(char const *, char const *)
- ?setHorizontalCenterOffset@QDeclarativeAnchors@@QAEXM@Z @ 48 NONAME ; void QDeclarativeAnchors::setHorizontalCenterOffset(float)
- ??0QDeclarativeProperty@@QAE@XZ @ 49 NONAME ; QDeclarativeProperty::QDeclarativeProperty(void)
- ?valueType@QDeclarativeValueTypeFactory@@SAPAVQDeclarativeValueType@@H@Z @ 50 NONAME ; class QDeclarativeValueType * QDeclarativeValueTypeFactory::valueType(int)
- ??1QDeclarativeText@@UAE@XZ @ 51 NONAME ; QDeclarativeText::~QDeclarativeText(void)
- ?getStaticMetaObject@QDeclarativeText@@SAABUQMetaObject@@XZ @ 52 NONAME ; struct QMetaObject const & QDeclarativeText::getStaticMetaObject(void)
- ?isDesignable@QMetaPropertyBuilder@@QBE_NXZ @ 53 NONAME ; bool QMetaPropertyBuilder::isDesignable(void) const
- ?tr@QDeclarativeStateGroup@@SA?AVQString@@PBD0H@Z @ 54 NONAME ; class QString QDeclarativeStateGroup::tr(char const *, char const *, int)
- ?errors@QDeclarativeView@@QBE?AV?$QList@VQDeclarativeError@@@@XZ @ 55 NONAME ; class QList<class QDeclarativeError> QDeclarativeView::errors(void) const
- ??0QPacket@@QAE@ABV0@@Z @ 56 NONAME ; QPacket::QPacket(class QPacket const &)
- ??1QDeclarativeDebugObjectExpressionWatch@@UAE@XZ @ 57 NONAME ; QDeclarativeDebugObjectExpressionWatch::~QDeclarativeDebugObjectExpressionWatch(void)
- ?bottom@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 58 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::bottom(void) const
- ??_EQDeclarativeDebugObjectQuery@@UAE@I@Z @ 59 NONAME ; QDeclarativeDebugObjectQuery::~QDeclarativeDebugObjectQuery(unsigned int)
- ??0QDeclarativeDomObject@@QAE@XZ @ 60 NONAME ; QDeclarativeDomObject::QDeclarativeDomObject(void)
- ?errors@QDeclarativeDomDocument@@QBE?AV?$QList@VQDeclarativeError@@@@XZ @ 61 NONAME ; class QList<class QDeclarativeError> QDeclarativeDomDocument::errors(void) const
- ?toChanged@QDeclarativeTransition@@IAEXXZ @ 62 NONAME ; void QDeclarativeTransition::toChanged(void)
- ?registerAutoParentFunction@QDeclarativePrivate@@YAHP6A?AW4AutoParentResult@1@PAVQObject@@0@Z@Z @ 63 NONAME ABSENT ; int QDeclarativePrivate::registerAutoParentFunction(enum QDeclarativePrivate::AutoParentResult (*)(class QObject *, class QObject *))
- ?objectOwnership@QDeclarativeEngine@@SA?AW4ObjectOwnership@1@PAVQObject@@@Z @ 64 NONAME ; enum QDeclarativeEngine::ObjectOwnership QDeclarativeEngine::objectOwnership(class QObject *)
- ??0QDeclarativeDebugWatch@@QAE@PAVQObject@@@Z @ 65 NONAME ; QDeclarativeDebugWatch::QDeclarativeDebugWatch(class QObject *)
- ?value@QDeclarativePropertyMap@@QBE?AVQVariant@@ABVQString@@@Z @ 66 NONAME ; class QVariant QDeclarativePropertyMap::value(class QString const &) const
- ?trUtf8@QDeclarativePropertyMap@@SA?AVQString@@PBD0@Z @ 67 NONAME ; class QString QDeclarativePropertyMap::trUtf8(char const *, char const *)
- ?isWaiting@QDeclarativeDebugQuery@@QBE_NXZ @ 68 NONAME ; bool QDeclarativeDebugQuery::isWaiting(void) const
- ??1Variant@QDeclarativeParser@@QAE@XZ @ 69 NONAME ; QDeclarativeParser::Variant::~Variant(void)
- ??0Variant@QDeclarativeParser@@QAE@ABVQString@@@Z @ 70 NONAME ; QDeclarativeParser::Variant::Variant(class QString const &)
- ?paintedSizeChanged@QDeclarativeText@@IAEXXZ @ 71 NONAME ; void QDeclarativeText::paintedSizeChanged(void)
- ??1QDeclarativeDebugClient@@UAE@XZ @ 72 NONAME ; QDeclarativeDebugClient::~QDeclarativeDebugClient(void)
- ?trUtf8@QPacketProtocol@@SA?AVQString@@PBD0@Z @ 73 NONAME ; class QString QPacketProtocol::trUtf8(char const *, char const *)
- ?trUtf8@QDeclarativeListModel@@SA?AVQString@@PBD0@Z @ 74 NONAME ; class QString QDeclarativeListModel::trUtf8(char const *, char const *)
- ?qt_metacast@QDeclarativeState@@UAEPAXPBD@Z @ 75 NONAME ; void * QDeclarativeState::qt_metacast(char const *)
- ??1QDeclarativeDebugContextReference@@QAE@XZ @ 76 NONAME ; QDeclarativeDebugContextReference::~QDeclarativeDebugContextReference(void)
- ?getStaticMetaObject@QDeclarativeStateOperation@@SAABUQMetaObject@@XZ @ 77 NONAME ; struct QMetaObject const & QDeclarativeStateOperation::getStaticMetaObject(void)
- ?isInvalid@QDeclarativeDomValue@@QBE_NXZ @ 78 NONAME ; bool QDeclarativeDomValue::isInvalid(void) const
- ?trUtf8@QDeclarativeText@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString QDeclarativeText::trUtf8(char const *, char const *, int)
- ??0QDeclarativeListReference@@QAE@ABV0@@Z @ 80 NONAME ; QDeclarativeListReference::QDeclarativeListReference(class QDeclarativeListReference const &)
- ?registerType@QDeclarativePrivate@@YAHABURegisterInterface@1@@Z @ 81 NONAME ABSENT ; int QDeclarativePrivate::registerType(struct QDeclarativePrivate::RegisterInterface const &)
- ?classBegin@QDeclarativeItem@@MAEXXZ @ 82 NONAME ; void QDeclarativeItem::classBegin(void)
- ?setTransformOrigin@QDeclarativeItem@@QAEXW4TransformOrigin@1@@Z @ 83 NONAME ; void QDeclarativeItem::setTransformOrigin(enum QDeclarativeItem::TransformOrigin)
- ?request@QDeclarativePixmapCache@@SAPAVQDeclarativePixmapReply@@PAVQDeclarativeEngine@@ABVQUrl@@HH@Z @ 84 NONAME ABSENT ; class QDeclarativePixmapReply * QDeclarativePixmapCache::request(class QDeclarativeEngine *, class QUrl const &, int, int)
- ?event@QDeclarativeItem@@MAE_NPAVQEvent@@@Z @ 85 NONAME ; bool QDeclarativeItem::event(class QEvent *)
- ?setAttributes@QMetaMethodBuilder@@QAEXH@Z @ 86 NONAME ; void QMetaMethodBuilder::setAttributes(int)
- ??_EQDeclarativeDebugObjectReference@@QAE@I@Z @ 87 NONAME ; QDeclarativeDebugObjectReference::~QDeclarativeDebugObjectReference(unsigned int)
- ?qt_metacall@QDeclarativeDebugQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 88 NONAME ; int QDeclarativeDebugQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?findState@QDeclarativeStateGroup@@QBEPAVQDeclarativeState@@ABVQString@@@Z @ 89 NONAME ; class QDeclarativeState * QDeclarativeStateGroup::findState(class QString const &) const
- ?asScript@Variant@QDeclarativeParser@@QBE?AVQString@@XZ @ 90 NONAME ; class QString QDeclarativeParser::Variant::asScript(void) const
- ?qt_metacast@QDeclarativeExtensionPlugin@@UAEPAXPBD@Z @ 91 NONAME ; void * QDeclarativeExtensionPlugin::qt_metacast(char const *)
- ?objectId@QDeclarativeDomObject@@QBE?AVQString@@XZ @ 92 NONAME ; class QString QDeclarativeDomObject::objectId(void) const
- ?right@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 93 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::right(void) const
- ?removeFromObject@QDeclarativeAbstractBinding@@QAEXXZ @ 94 NONAME ; void QDeclarativeAbstractBinding::removeFromObject(void)
- ?resizeMode@QDeclarativeView@@QBE?AW4ResizeMode@1@XZ @ 95 NONAME ; enum QDeclarativeView::ResizeMode QDeclarativeView::resizeMode(void) const
- ?object@QDeclarativeOpenMetaObject@@QBEPAVQObject@@XZ @ 96 NONAME ; class QObject * QDeclarativeOpenMetaObject::object(void) const
- ?staticMetaObject@QDeclarativeBehavior@@2UQMetaObject@@B @ 97 NONAME ; struct QMetaObject const QDeclarativeBehavior::staticMetaObject
- ?toObject@QDeclarativeDomValue@@QBE?AVQDeclarativeDomObject@@XZ @ 98 NONAME ; class QDeclarativeDomObject QDeclarativeDomValue::toObject(void) const
- ?setLine@QDeclarativeError@@QAEXH@Z @ 99 NONAME ; void QDeclarativeError::setLine(int)
- ??6QDeclarativeInfo@@QAEAAV0@K@Z @ 100 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(unsigned long)
- ??0QDeclarativeDebugConnection@@QAE@PAVQObject@@@Z @ 101 NONAME ; QDeclarativeDebugConnection::QDeclarativeDebugConnection(class QObject *)
- ?qt_metacast@QDeclarativeDebugQuery@@UAEPAXPBD@Z @ 102 NONAME ; void * QDeclarativeDebugQuery::qt_metacast(char const *)
- ?isValid@QDeclarativeGridScaledImage@@QBE_NXZ @ 103 NONAME ; bool QDeclarativeGridScaledImage::isValid(void) const
- ?qt_metacast@QDeclarativeContext@@UAEPAXPBD@Z @ 104 NONAME ; void * QDeclarativeContext::qt_metacast(char const *)
- ?metaObject@QDeclarativeDebugClient@@UBEPBUQMetaObject@@XZ @ 105 NONAME ; struct QMetaObject const * QDeclarativeDebugClient::metaObject(void) const
- ?transitions@QDeclarativeItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeTransition@@@@XZ @ 106 NONAME ; class QDeclarativeListProperty<class QDeclarativeTransition> QDeclarativeItemPrivate::transitions(void)
- ??0QDeclarativeDebugPropertyWatch@@QAE@PAVQObject@@@Z @ 107 NONAME ; QDeclarativeDebugPropertyWatch::QDeclarativeDebugPropertyWatch(class QObject *)
- ??_EQDeclarativeDebugPropertyReference@@QAE@I@Z @ 108 NONAME ; QDeclarativeDebugPropertyReference::~QDeclarativeDebugPropertyReference(unsigned int)
- ?itemsChanged@QListModelInterface@@IAEXHHABV?$QList@H@@@Z @ 109 NONAME ; void QListModelInterface::itemsChanged(int, int, class QList<int> const &)
- ??6@YA?AVQDebug@@V0@PAVQDeclarativeItem@@@Z @ 110 NONAME ; class QDebug operator<<(class QDebug, class QDeclarativeItem *)
- ?write@QDeclarativePropertyPrivate@@SA_NABVQDeclarativeProperty@@ABVQVariant@@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 111 NONAME ; bool QDeclarativePropertyPrivate::write(class QDeclarativeProperty const &, class QVariant const &, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
- ?verticalTileRule@QDeclarativeGridScaledImage@@QBE?AW4TileMode@QDeclarativeBorderImage@@XZ @ 112 NONAME ; enum QDeclarativeBorderImage::TileMode QDeclarativeGridScaledImage::verticalTileRule(void) const
- ?tr@QDeclarativeDebugObjectQuery@@SA?AVQString@@PBD0@Z @ 113 NONAME ; class QString QDeclarativeDebugObjectQuery::tr(char const *, char const *)
- ?isDynamic@QMetaPropertyBuilder@@QBE_NXZ @ 114 NONAME ; bool QMetaPropertyBuilder::isDynamic(void) const
- ?removeClassInfo@QMetaObjectBuilder@@QAEXH@Z @ 115 NONAME ; void QMetaObjectBuilder::removeClassInfo(int)
- ?warnings@QDeclarativeEngine@@IAEXABV?$QList@VQDeclarativeError@@@@@Z @ 116 NONAME ; void QDeclarativeEngine::warnings(class QList<class QDeclarativeError> const &)
- ?description@QDeclarativeError@@QBE?AVQString@@XZ @ 117 NONAME ; class QString QDeclarativeError::description(void) const
- ?binding@QDeclarativeDebugPropertyReference@@QBE?AVQString@@XZ @ 118 NONAME ; class QString QDeclarativeDebugPropertyReference::binding(void) const
- ?trUtf8@QDeclarativePen@@SA?AVQString@@PBD0@Z @ 119 NONAME ; class QString QDeclarativePen::trUtf8(char const *, char const *)
- ?readValueProperty@QDeclarativePropertyPrivate@@QAE?AVQVariant@@XZ @ 120 NONAME ; class QVariant QDeclarativePropertyPrivate::readValueProperty(void)
- ?propertyType@QDeclarativeDomDynamicProperty@@QBEHXZ @ 121 NONAME ; int QDeclarativeDomDynamicProperty::propertyType(void) const
- ?gridBottom@QDeclarativeGridScaledImage@@QBEHXZ @ 122 NONAME ; int QDeclarativeGridScaledImage::gridBottom(void) const
- ?setRadius@QDeclarativeRectangle@@QAEXM@Z @ 123 NONAME ; void QDeclarativeRectangle::setRadius(float)
- ?d_func@QDeclarativeBehavior@@AAEPAVQDeclarativeBehaviorPrivate@@XZ @ 124 NONAME ; class QDeclarativeBehaviorPrivate * QDeclarativeBehavior::d_func(void)
- ?isValid@QDeclarativePen@@QAE_NXZ @ 125 NONAME ; bool QDeclarativePen::isValid(void)
- ?result@QDeclarativeDebugExpressionQuery@@QBE?AVQVariant@@XZ @ 126 NONAME ; class QVariant QDeclarativeDebugExpressionQuery::result(void) const
- ?isEnumOrFlag@QMetaPropertyBuilder@@QBE_NXZ @ 127 NONAME ; bool QMetaPropertyBuilder::isEnumOrFlag(void) const
- ?addToObject@QDeclarativeAbstractBinding@@QAEXPAVQObject@@@Z @ 128 NONAME ; void QDeclarativeAbstractBinding::addToObject(class QObject *)
- ?trUtf8@QDeclarativeView@@SA?AVQString@@PBD0H@Z @ 129 NONAME ; class QString QDeclarativeView::trUtf8(char const *, char const *, int)
- ?d_func@QDeclarativeAnchors@@AAEPAVQDeclarativeAnchorsPrivate@@XZ @ 130 NONAME ; class QDeclarativeAnchorsPrivate * QDeclarativeAnchors::d_func(void)
- ??1QPacket@@UAE@XZ @ 131 NONAME ; QPacket::~QPacket(void)
- ?top@QDeclarativeScaleGrid@@QBEHXZ @ 132 NONAME ; int QDeclarativeScaleGrid::top(void) const
- ?setExpression@QDeclarativeExpression@@QAEXABVQString@@@Z @ 133 NONAME ; void QDeclarativeExpression::setExpression(class QString const &)
- ??1QDeclarativeDebugEngineReference@@QAE@XZ @ 134 NONAME ; QDeclarativeDebugEngineReference::~QDeclarativeDebugEngineReference(void)
- ??0QDeclarativeStateOperation@@QAE@PAVQObject@@@Z @ 135 NONAME ; QDeclarativeStateOperation::QDeclarativeStateOperation(class QObject *)
- ?transform_clear@QDeclarativeItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsTransform@@@@@Z @ 136 NONAME ; void QDeclarativeItemPrivate::transform_clear(class QDeclarativeListProperty<class QGraphicsTransform> *)
- ?staticMetaObject@QDeclarativeValueType@@2UQMetaObject@@B @ 137 NONAME ; struct QMetaObject const QDeclarativeValueType::staticMetaObject
- ?propertyName@QDeclarativeDomDynamicProperty@@QBE?AVQByteArray@@XZ @ 138 NONAME ; class QByteArray QDeclarativeDomDynamicProperty::propertyName(void) const
- ?getStaticMetaObject@QDeclarativePixmapReply@@SAABUQMetaObject@@XZ @ 139 NONAME ABSENT ; struct QMetaObject const & QDeclarativePixmapReply::getStaticMetaObject(void)
- ?focusChanged@QDeclarativeItem@@IAEX_N@Z @ 140 NONAME ; void QDeclarativeItem::focusChanged(bool)
- ?getStaticMetaObject@QDeclarativeBinding@@SAABUQMetaObject@@XZ @ 141 NONAME ; struct QMetaObject const & QDeclarativeBinding::getStaticMetaObject(void)
- ?copy@QDeclarativeMetaType@@SA_NHPAXPBX@Z @ 142 NONAME ; bool QDeclarativeMetaType::copy(int, void *, void const *)
- ?qt_metacall@QDeclarativeDebugEnginesQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 143 NONAME ; int QDeclarativeDebugEnginesQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?tr@QDeclarativeDebugWatch@@SA?AVQString@@PBD0@Z @ 144 NONAME ; class QString QDeclarativeDebugWatch::tr(char const *, char const *)
- ?setEnumOrFlag@QMetaPropertyBuilder@@QAEX_N@Z @ 145 NONAME ; void QMetaPropertyBuilder::setEnumOrFlag(bool)
- ?getStaticMetaObject@QDeclarativeRectangle@@SAABUQMetaObject@@XZ @ 146 NONAME ; struct QMetaObject const & QDeclarativeRectangle::getStaticMetaObject(void)
- ?isValid@QDeclarativeProperty@@QBE_NXZ @ 147 NONAME ; bool QDeclarativeProperty::isValid(void) const
- ?isConnected@QDeclarativeDebugClient@@QBE_NXZ @ 148 NONAME ; bool QDeclarativeDebugClient::isConnected(void) const
- ?enabled@QDeclarativeBinding@@QBE_NXZ @ 149 NONAME ; bool QDeclarativeBinding::enabled(void) const
- ?setSource@QDeclarativeView@@QAEXABVQUrl@@@Z @ 150 NONAME ; void QDeclarativeView::setSource(class QUrl const &)
- ??_EQDeclarativeDebugService@@UAE@I@Z @ 151 NONAME ; QDeclarativeDebugService::~QDeclarativeDebugService(unsigned int)
- ??0QDeclarativeDomDynamicProperty@@QAE@ABV0@@Z @ 152 NONAME ; QDeclarativeDomDynamicProperty::QDeclarativeDomDynamicProperty(class QDeclarativeDomDynamicProperty const &)
- ?className@QDeclarativeDebugObjectReference@@QBE?AVQString@@XZ @ 153 NONAME ; class QString QDeclarativeDebugObjectReference::className(void) const
- ?indexOfSlot@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 154 NONAME ; int QMetaObjectBuilder::indexOfSlot(class QByteArray const &)
- ?tr@QDeclarativeDebugConnection@@SA?AVQString@@PBD0H@Z @ 155 NONAME ; class QString QDeclarativeDebugConnection::tr(char const *, char const *, int)
- ?progressChanged@QDeclarativeComponent@@IAEXM@Z @ 156 NONAME ; void QDeclarativeComponent::progressChanged(float)
- ?hasError@QDeclarativeExpression@@QBE_NXZ @ 157 NONAME ; bool QDeclarativeExpression::hasError(void) const
- ?property@QMetaObjectBuilder@@QBE?AVQMetaPropertyBuilder@@H@Z @ 158 NONAME ; class QMetaPropertyBuilder QMetaObjectBuilder::property(int) const
- ?index@QDeclarativeType@@QBEHXZ @ 159 NONAME ; int QDeclarativeType::index(void) const
- ?tr@QDeclarativeRectangle@@SA?AVQString@@PBD0@Z @ 160 NONAME ; class QString QDeclarativeRectangle::tr(char const *, char const *)
- ?release@QDeclarativePixmapReply@@AAE_N_N@Z @ 161 NONAME ABSENT ; bool QDeclarativePixmapReply::release(bool)
- ??0QDeclarativeScaleGrid@@QAE@PAVQObject@@@Z @ 162 NONAME ; QDeclarativeScaleGrid::QDeclarativeScaleGrid(class QObject *)
- ?engines@QDeclarativeDebugEnginesQuery@@QBE?AV?$QList@VQDeclarativeDebugEngineReference@@@@XZ @ 163 NONAME ; class QList<class QDeclarativeDebugEngineReference> QDeclarativeDebugEnginesQuery::engines(void) const
- ?qt_metacall@QDeclarativeDebugPropertyWatch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 164 NONAME ; int QDeclarativeDebugPropertyWatch::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?metaObject@QDeclarativeAnchors@@UBEPBUQMetaObject@@XZ @ 165 NONAME ; struct QMetaObject const * QDeclarativeAnchors::metaObject(void) const
- ?sceneResized@QDeclarativeView@@IAEXVQSize@@@Z @ 166 NONAME ; void QDeclarativeView::sceneResized(class QSize)
- ?subFocusItemChange@QDeclarativeItemPrivate@@UAEXXZ @ 167 NONAME ; void QDeclarativeItemPrivate::subFocusItemChange(void)
- ?hasNotifySignal@QDeclarativeDebugPropertyReference@@QBE_NXZ @ 168 NONAME ; bool QDeclarativeDebugPropertyReference::hasNotifySignal(void) const
- ?addSlot@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@@Z @ 169 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addSlot(class QByteArray const &)
- ?trUtf8@QDeclarativeStateOperation@@SA?AVQString@@PBD0@Z @ 170 NONAME ; class QString QDeclarativeStateOperation::trUtf8(char const *, char const *)
- ?propertyCreated@QDeclarativeOpenMetaObjectType@@MAEXHAAVQMetaPropertyBuilder@@@Z @ 171 NONAME ; void QDeclarativeOpenMetaObjectType::propertyCreated(int, class QMetaPropertyBuilder &)
- ??1QDeclarativeItemPrivate@@UAE@XZ @ 172 NONAME ; QDeclarativeItemPrivate::~QDeclarativeItemPrivate(void)
- ?clear@QDeclarativePropertyMap@@QAEXABVQString@@@Z @ 173 NONAME ; void QDeclarativePropertyMap::clear(class QString const &)
- ?tr@QDeclarativeDebugClient@@SA?AVQString@@PBD0H@Z @ 174 NONAME ; class QString QDeclarativeDebugClient::tr(char const *, char const *, int)
- ?read@QDeclarativeProperty@@SA?AVQVariant@@PAVQObject@@ABVQString@@PAVQDeclarativeEngine@@@Z @ 175 NONAME ; class QVariant QDeclarativeProperty::read(class QObject *, class QString const &, class QDeclarativeEngine *)
- ?insert@QDeclarativePropertyMap@@QAEXABVQString@@ABVQVariant@@@Z @ 176 NONAME ; void QDeclarativePropertyMap::insert(class QString const &, class QVariant const &)
- ??1QDeclarativeContext@@UAE@XZ @ 177 NONAME ; QDeclarativeContext::~QDeclarativeContext(void)
- ?operationCount@QDeclarativeState@@QBEHXZ @ 178 NONAME ; int QDeclarativeState::operationCount(void) const
- ?getStaticMetaObject@QDeclarativeItem@@SAABUQMetaObject@@XZ @ 179 NONAME ; struct QMetaObject const & QDeclarativeItem::getStaticMetaObject(void)
- ?trUtf8@QDeclarativeBehavior@@SA?AVQString@@PBD0H@Z @ 180 NONAME ; class QString QDeclarativeBehavior::trUtf8(char const *, char const *, int)
- ?status@QDeclarativeComponent@@QBE?AW4Status@1@XZ @ 181 NONAME ; enum QDeclarativeComponent::Status QDeclarativeComponent::status(void) const
- ?boundingRect@QDeclarativeItem@@UBE?AVQRectF@@XZ @ 182 NONAME ; class QRectF QDeclarativeItem::boundingRect(void) const
- ?availableInVersion@QDeclarativeType@@QBE_NHH@Z @ 183 NONAME ; bool QDeclarativeType::availableInVersion(int, int) const
- ?getStaticMetaObject@QDeclarativeDebugWatch@@SAABUQMetaObject@@XZ @ 184 NONAME ; struct QMetaObject const & QDeclarativeDebugWatch::getStaticMetaObject(void)
- ??_EQDeclarativeRectangle@@UAE@I@Z @ 185 NONAME ; QDeclarativeRectangle::~QDeclarativeRectangle(unsigned int)
- ?setTopMargin@QDeclarativeAnchors@@QAEXM@Z @ 186 NONAME ; void QDeclarativeAnchors::setTopMargin(float)
- ??5@YAAAVQDataStream@@AAV0@AAUQDeclarativeObjectProperty@QDeclarativeEngineDebugServer@@@Z @ 187 NONAME ; class QDataStream & operator>>(class QDataStream &, struct QDeclarativeEngineDebugServer::QDeclarativeObjectProperty &)
- ??1QDeclarativeValueTypeFactory@@QAE@XZ @ 188 NONAME ; QDeclarativeValueTypeFactory::~QDeclarativeValueTypeFactory(void)
- ?metaObject@QDeclarativeDebugObjectExpressionWatch@@UBEPBUQMetaObject@@XZ @ 189 NONAME ; struct QMetaObject const * QDeclarativeDebugObjectExpressionWatch::metaObject(void) const
- ??0QDeclarativeComponent@@QAE@PAVQObject@@@Z @ 190 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QObject *)
- ?qt_metacast@QDeclarativeItem@@UAEPAXPBD@Z @ 191 NONAME ; void * QDeclarativeItem::qt_metacast(char const *)
- ?changes@QDeclarativeState@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeStateOperation@@@@XZ @ 192 NONAME ; class QDeclarativeListProperty<class QDeclarativeStateOperation> QDeclarativeState::changes(void)
- ?resizeEvent@QDeclarativeView@@MAEXPAVQResizeEvent@@@Z @ 193 NONAME ; void QDeclarativeView::resizeEvent(class QResizeEvent *)
- ?d_func@QDeclarativeBinding@@ABEPBVQDeclarativeBindingPrivate@@XZ @ 194 NONAME ; class QDeclarativeBindingPrivate const * QDeclarativeBinding::d_func(void) const
- ?wrapMode@QDeclarativeText@@QBE?AW4WrapMode@1@XZ @ 195 NONAME ; enum QDeclarativeText::WrapMode QDeclarativeText::wrapMode(void) const
- ?centerIn@QDeclarativeAnchors@@QBEPAVQGraphicsObject@@XZ @ 196 NONAME ; class QGraphicsObject * QDeclarativeAnchors::centerIn(void) const
- ??0QDeclarativeType@@AAE@HABURegisterType@QDeclarativePrivate@@@Z @ 197 NONAME ; QDeclarativeType::QDeclarativeType(int, struct QDeclarativePrivate::RegisterType const &)
- ?trUtf8@QDeclarativeComponent@@SA?AVQString@@PBD0H@Z @ 198 NONAME ; class QString QDeclarativeComponent::trUtf8(char const *, char const *, int)
- ??0QMetaObjectBuilder@@QAE@PBUQMetaObject@@V?$QFlags@W4AddMember@QMetaObjectBuilder@@@@@Z @ 199 NONAME ; QMetaObjectBuilder::QMetaObjectBuilder(struct QMetaObject const *, class QFlags<enum QMetaObjectBuilder::AddMember>)
- ?quit@QDeclarativeEngine@@IAEXXZ @ 200 NONAME ; void QDeclarativeEngine::quit(void)
- ??0QMetaEnumBuilder@@AAE@PBVQMetaObjectBuilder@@H@Z @ 201 NONAME ; QMetaEnumBuilder::QMetaEnumBuilder(class QMetaObjectBuilder const *, int)
- ?setBottom@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 202 NONAME ; void QDeclarativeAnchors::setBottom(class QDeclarativeAnchorLine const &)
- ??0QDeclarativeCustomParser@@QAE@XZ @ 203 NONAME ; QDeclarativeCustomParser::QDeclarativeCustomParser(void)
- ?value@QDeclarativeOpenMetaObject@@QBE?AVQVariant@@ABVQByteArray@@@Z @ 204 NONAME ; class QVariant QDeclarativeOpenMetaObject::value(class QByteArray const &) const
- ?styleColor@QDeclarativeText@@QBE?AVQColor@@XZ @ 205 NONAME ; class QColor QDeclarativeText::styleColor(void) const
- ?centerInChanged@QDeclarativeAnchors@@IAEXXZ @ 206 NONAME ; void QDeclarativeAnchors::centerInChanged(void)
- ?colorChanged@QDeclarativeRectangle@@IAEXXZ @ 207 NONAME ; void QDeclarativeRectangle::colorChanged(void)
- ??0QDeclarativePropertyPrivate@@QAE@ABV0@@Z @ 208 NONAME ; QDeclarativePropertyPrivate::QDeclarativePropertyPrivate(class QDeclarativePropertyPrivate const &)
- ?loadUrl@QDeclarativeComponent@@QAEXABVQUrl@@@Z @ 209 NONAME ; void QDeclarativeComponent::loadUrl(class QUrl const &)
- ?beginCreate@QDeclarativeComponent@@UAEPAVQObject@@PAVQDeclarativeContext@@@Z @ 210 NONAME ; class QObject * QDeclarativeComponent::beginCreate(class QDeclarativeContext *)
- ?setRight@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 211 NONAME ; void QDeclarativeAnchors::setRight(class QDeclarativeAnchorLine const &)
- ?needsNotifySignal@QDeclarativeProperty@@QBE_NXZ @ 212 NONAME ; bool QDeclarativeProperty::needsNotifySignal(void) const
- ?fill@QDeclarativeAnchors@@QBEPAVQGraphicsObject@@XZ @ 213 NONAME ; class QGraphicsObject * QDeclarativeAnchors::fill(void) const
- ?url@QDeclarativePixmapReply@@QBEABVQUrl@@XZ @ 214 NONAME ABSENT ; class QUrl const & QDeclarativePixmapReply::url(void) const
- ?top@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 215 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::top(void) const
- ?clear@QDeclarativeListReference@@QBE_NXZ @ 216 NONAME ; bool QDeclarativeListReference::clear(void) const
- ?parentChanged@QDeclarativeItem@@IAEXPAV1@@Z @ 217 NONAME ; void QDeclarativeItem::parentChanged(class QDeclarativeItem *)
- ?columnNumber@QDeclarativeDebugFileReference@@QBEHXZ @ 218 NONAME ; int QDeclarativeDebugFileReference::columnNumber(void) const
- ??0QDeclarativeListModel@@AAE@_NPAVQObject@@@Z @ 219 NONAME ; QDeclarativeListModel::QDeclarativeListModel(bool, class QObject *)
- ?apply@QDeclarativeState@@QAEXPAVQDeclarativeStateGroup@@PAVQDeclarativeTransition@@PAV1@@Z @ 220 NONAME ; void QDeclarativeState::apply(class QDeclarativeStateGroup *, class QDeclarativeTransition *, class QDeclarativeState *)
- ?isValid@QDeclarativeDomProperty@@QBE_NXZ @ 221 NONAME ; bool QDeclarativeDomProperty::isValid(void) const
- ?trUtf8@QDeclarativeDebugExpressionQuery@@SA?AVQString@@PBD0@Z @ 222 NONAME ; class QString QDeclarativeDebugExpressionQuery::trUtf8(char const *, char const *)
- ?statusChanged@QDeclarativeView@@IAEXW4Status@1@@Z @ 223 NONAME ; void QDeclarativeView::statusChanged(enum QDeclarativeView::Status)
- ?componentComplete@QDeclarativeText@@UAEXXZ @ 224 NONAME ; void QDeclarativeText::componentComplete(void)
- ?canCount@QDeclarativeListReference@@QBE_NXZ @ 225 NONAME ; bool QDeclarativeListReference::canCount(void) const
- ??1QListModelInterface@@UAE@XZ @ 226 NONAME ; QListModelInterface::~QListModelInterface(void)
- ??0QDeclarativeAnchors@@QAE@PAVQObject@@@Z @ 227 NONAME ; QDeclarativeAnchors::QDeclarativeAnchors(class QObject *)
- ?resources_at@QDeclarativeItemPrivate@@SAPAVQObject@@PAV?$QDeclarativeListProperty@VQObject@@@@H@Z @ 228 NONAME ; class QObject * QDeclarativeItemPrivate::resources_at(class QDeclarativeListProperty<class QObject> *, int)
- ?isExtendedType@QDeclarativeType@@QBE_NXZ @ 229 NONAME ; bool QDeclarativeType::isExtendedType(void) const
- ?top@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 230 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::top(void) const
- ??0QDeclarativePropertyMap@@QAE@PAVQObject@@@Z @ 231 NONAME ; QDeclarativePropertyMap::QDeclarativePropertyMap(class QObject *)
- ??0QDeclarativeExpression@@IAE@PAVQDeclarativeContextData@@PAXPAVQDeclarativeRefCount@@PAVQObject@@ABVQString@@HAAVQDeclarativeExpressionPrivate@@@Z @ 232 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContextData *, void *, class QDeclarativeRefCount *, class QObject *, class QString const &, int, class QDeclarativeExpressionPrivate &)
- ?setColor@QDeclarativeText@@QAEXABVQColor@@@Z @ 233 NONAME ; void QDeclarativeText::setColor(class QColor const &)
- ?hasStdCppSet@QMetaPropertyBuilder@@QBE_NXZ @ 234 NONAME ; bool QMetaPropertyBuilder::hasStdCppSet(void) const
- ??0QDeclarativeDebugFileReference@@QAE@ABV0@@Z @ 235 NONAME ; QDeclarativeDebugFileReference::QDeclarativeDebugFileReference(class QDeclarativeDebugFileReference const &)
- ?toValueInterceptor@QDeclarativeDomValue@@QBE?AVQDeclarativeDomValueValueInterceptor@@XZ @ 236 NONAME ; class QDeclarativeDomValueValueInterceptor QDeclarativeDomValue::toValueInterceptor(void) const
- ??0QDeclarativeDebugEngineReference@@QAE@H@Z @ 237 NONAME ; QDeclarativeDebugEngineReference::QDeclarativeDebugEngineReference(int)
- ?state@QDeclarativeItemPrivate@@QBE?AVQString@@XZ @ 238 NONAME ; class QString QDeclarativeItemPrivate::state(void) const
- ??1QDeclarativePropertyValueInterceptor@@UAE@XZ @ 239 NONAME ; QDeclarativePropertyValueInterceptor::~QDeclarativePropertyValueInterceptor(void)
- ?getStaticMetaObject@QDeclarativePropertyMap@@SAABUQMetaObject@@XZ @ 240 NONAME ; struct QMetaObject const & QDeclarativePropertyMap::getStaticMetaObject(void)
- ??1QDeclarativeScaleGrid@@UAE@XZ @ 241 NONAME ; QDeclarativeScaleGrid::~QDeclarativeScaleGrid(void)
- ?idString@QDeclarativeDebugObjectReference@@QBE?AVQString@@XZ @ 242 NONAME ; class QString QDeclarativeDebugObjectReference::idString(void) const
- ?customTypeData@QDeclarativeDomObject@@QBE?AVQByteArray@@XZ @ 243 NONAME ; class QByteArray QDeclarativeDomObject::customTypeData(void) const
- ?stop@QDeclarativeTransition@@QAEXXZ @ 244 NONAME ; void QDeclarativeTransition::stop(void)
- ?data@QDeclarativeListModel@@UBE?AV?$QHash@HVQVariant@@@@HABV?$QList@H@@@Z @ 245 NONAME ; class QHash<int, class QVariant> QDeclarativeListModel::data(int, class QList<int> const &) const
- ?verticalCenterOffset@QDeclarativeAnchors@@QBEMXZ @ 246 NONAME ; float QDeclarativeAnchors::verticalCenterOffset(void) const
- ?metaObject@QDeclarativeText@@UBEPBUQMetaObject@@XZ @ 247 NONAME ; struct QMetaObject const * QDeclarativeText::metaObject(void) const
- ??0QDeclarativeComponent@@QAE@PAVQDeclarativeEngine@@PAVQObject@@@Z @ 248 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QObject *)
- ?createProperty@QDeclarativeOpenMetaObjectType@@QAEHABVQByteArray@@@Z @ 249 NONAME ; int QDeclarativeOpenMetaObjectType::createProperty(class QByteArray const &)
- ??0QDeclarativeContext@@QAE@PAVQDeclarativeEngine@@PAVQObject@@@Z @ 250 NONAME ; QDeclarativeContext::QDeclarativeContext(class QDeclarativeEngine *, class QObject *)
- ??6QDeclarativeInfo@@QAEAAV0@M@Z @ 251 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(float)
- ??4QDeclarativeDomValueLiteral@@QAEAAV0@ABV0@@Z @ 252 NONAME ; class QDeclarativeDomValueLiteral & QDeclarativeDomValueLiteral::operator=(class QDeclarativeDomValueLiteral const &)
- ?setScript@QDeclarativeScriptString@@QAEXABVQString@@@Z @ 253 NONAME ; void QDeclarativeScriptString::setScript(class QString const &)
+ ?propertyTypeName@QDeclarativeProperty@@QBEPBDXZ @ 12 NONAME ; char const * QDeclarativeProperty::propertyTypeName(void) const
+ ?getStaticMetaObject@QDeclarativeDebugService@@SAABUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const & QDeclarativeDebugService::getStaticMetaObject(void)
+ ?setLeft@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 14 NONAME ; void QDeclarativeAnchors::setLeft(class QDeclarativeAnchorLine const &)
+ ?qt_metacall@QDeclarativeExpression@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 15 NONAME ; int QDeclarativeExpression::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?staticMetaObject@QDeclarativePen@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const QDeclarativePen::staticMetaObject
+ ?transformOriginChanged@QDeclarativeItem@@IAEXW4TransformOrigin@1@@Z @ 17 NONAME ; void QDeclarativeItem::transformOriginChanged(enum QDeclarativeItem::TransformOrigin)
+ ?isStored@QMetaPropertyBuilder@@QBE_NXZ @ 18 NONAME ; bool QMetaPropertyBuilder::isStored(void) const
+ ?elapsed@QDeclarativeItemPrivate@@SA_JAAVQElapsedTimer@@@Z @ 19 NONAME ; long long QDeclarativeItemPrivate::elapsed(class QElapsedTimer &)
+ ?clearComponentCache@QDeclarativeEngine@@QAEXXZ @ 20 NONAME ; void QDeclarativeEngine::clearComponentCache(void)
+ ?forceActiveFocus@QDeclarativeItem@@QAEXXZ @ 21 NONAME ; void QDeclarativeItem::forceActiveFocus(void)
+ ?tr@QDeclarativeDebugObjectExpressionWatch@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::tr(char const *, char const *, int)
+ ??1QDeclarativeParserStatus@@UAE@XZ @ 23 NONAME ; QDeclarativeParserStatus::~QDeclarativeParserStatus(void)
+ ?gradient@QDeclarativeRectangle@@QBEPAVQDeclarativeGradient@@XZ @ 24 NONAME ; class QDeclarativeGradient * QDeclarativeRectangle::gradient(void) const
+ ?setReadable@QMetaPropertyBuilder@@QAEX_N@Z @ 25 NONAME ; void QMetaPropertyBuilder::setReadable(bool)
+ ?d_func@QDeclarativeExpression@@AAEPAVQDeclarativeExpressionPrivate@@XZ @ 26 NONAME ; class QDeclarativeExpressionPrivate * QDeclarativeExpression::d_func(void)
+ ??1QDeclarativeDomValueValueSource@@QAE@XZ @ 27 NONAME ; QDeclarativeDomValueValueSource::~QDeclarativeDomValueValueSource(void)
+ ??_EQDeclarativeStateGroup@@UAE@I@Z @ 28 NONAME ; QDeclarativeStateGroup::~QDeclarativeStateGroup(unsigned int)
+ ?property@QDeclarativeDomObject@@QBE?AVQDeclarativeDomProperty@@ABVQByteArray@@@Z @ 29 NONAME ; class QDeclarativeDomProperty QDeclarativeDomObject::property(class QByteArray const &) const
+ ?tr@QDeclarativeAnchors@@SA?AVQString@@PBD0H@Z @ 30 NONAME ; class QString QDeclarativeAnchors::tr(char const *, char const *, int)
+ ?location@QDeclarativeCustomParserNode@@QBE?AULocation@QDeclarativeParser@@XZ @ 31 NONAME ; struct QDeclarativeParser::Location QDeclarativeCustomParserNode::location(void) const
+ ??0QDeclarativeComponent@@QAE@PAVQDeclarativeEngine@@ABVQString@@PAVQObject@@@Z @ 32 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QString const &, class QObject *)
+ ?d_func@QDeclarativeContext@@AAEPAVQDeclarativeContextPrivate@@XZ @ 33 NONAME ; class QDeclarativeContextPrivate * QDeclarativeContext::d_func(void)
+ ?resetLeft@QDeclarativeAnchors@@QAEXXZ @ 34 NONAME ; void QDeclarativeAnchors::resetLeft(void)
+ ?setOfflineStoragePath@QDeclarativeEngine@@QAEXABVQString@@@Z @ 35 NONAME ; void QDeclarativeEngine::setOfflineStoragePath(class QString const &)
+ ?getStaticMetaObject@QListModelInterface@@SAABUQMetaObject@@XZ @ 36 NONAME ; struct QMetaObject const & QListModelInterface::getStaticMetaObject(void)
+ ?tr@QDeclarativeEngine@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString QDeclarativeEngine::tr(char const *, char const *, int)
+ ??0QDeclarativeEngine@@QAE@PAVQObject@@@Z @ 38 NONAME ; QDeclarativeEngine::QDeclarativeEngine(class QObject *)
+ ??0QDeclarativeDebugObjectReference@@QAE@ABV0@@Z @ 39 NONAME ; QDeclarativeDebugObjectReference::QDeclarativeDebugObjectReference(class QDeclarativeDebugObjectReference const &)
+ ?set@QDeclarativeListModel@@QAEXHABVQScriptValue@@@Z @ 40 NONAME ; void QDeclarativeListModel::set(int, class QScriptValue const &)
+ ?tr@QDeclarativeState@@SA?AVQString@@PBD0H@Z @ 41 NONAME ; class QString QDeclarativeState::tr(char const *, char const *, int)
+ ?metaObject@QDeclarativeBinding@@UBEPBUQMetaObject@@XZ @ 42 NONAME ; struct QMetaObject const * QDeclarativeBinding::metaObject(void) const
+ ?setUser@QMetaPropertyBuilder@@QAEX_N@Z @ 43 NONAME ; void QMetaPropertyBuilder::setUser(bool)
+ ?tr@QDeclarativeDebugRootContextQuery@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString QDeclarativeDebugRootContextQuery::tr(char const *, char const *)
+ ?setHorizontalCenterOffset@QDeclarativeAnchors@@QAEXM@Z @ 45 NONAME ; void QDeclarativeAnchors::setHorizontalCenterOffset(float)
+ ?connectDownloadProgress@QDeclarativePixmap@@QAE_NPAVQObject@@H@Z @ 46 NONAME ; bool QDeclarativePixmap::connectDownloadProgress(class QObject *, int)
+ ??0QDeclarativeProperty@@QAE@XZ @ 47 NONAME ; QDeclarativeProperty::QDeclarativeProperty(void)
+ ?valueType@QDeclarativeValueTypeFactory@@SAPAVQDeclarativeValueType@@H@Z @ 48 NONAME ; class QDeclarativeValueType * QDeclarativeValueTypeFactory::valueType(int)
+ ??1QDeclarativeText@@UAE@XZ @ 49 NONAME ; QDeclarativeText::~QDeclarativeText(void)
+ ?getStaticMetaObject@QDeclarativeText@@SAABUQMetaObject@@XZ @ 50 NONAME ; struct QMetaObject const & QDeclarativeText::getStaticMetaObject(void)
+ ?isDesignable@QMetaPropertyBuilder@@QBE_NXZ @ 51 NONAME ; bool QMetaPropertyBuilder::isDesignable(void) const
+ ?tr@QDeclarativeStateGroup@@SA?AVQString@@PBD0H@Z @ 52 NONAME ; class QString QDeclarativeStateGroup::tr(char const *, char const *, int)
+ ?errors@QDeclarativeView@@QBE?AV?$QList@VQDeclarativeError@@@@XZ @ 53 NONAME ; class QList<class QDeclarativeError> QDeclarativeView::errors(void) const
+ ??0QPacket@@QAE@ABV0@@Z @ 54 NONAME ; QPacket::QPacket(class QPacket const &)
+ ??1QDeclarativeDebugObjectExpressionWatch@@UAE@XZ @ 55 NONAME ; QDeclarativeDebugObjectExpressionWatch::~QDeclarativeDebugObjectExpressionWatch(void)
+ ?status@QDeclarativePixmap@@QBE?AW4Status@1@XZ @ 56 NONAME ; enum QDeclarativePixmap::Status QDeclarativePixmap::status(void) const
+ ?bottom@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 57 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::bottom(void) const
+ ??_EQDeclarativeDebugObjectQuery@@UAE@I@Z @ 58 NONAME ; QDeclarativeDebugObjectQuery::~QDeclarativeDebugObjectQuery(unsigned int)
+ ??0QDeclarativeDomObject@@QAE@XZ @ 59 NONAME ; QDeclarativeDomObject::QDeclarativeDomObject(void)
+ ?errors@QDeclarativeDomDocument@@QBE?AV?$QList@VQDeclarativeError@@@@XZ @ 60 NONAME ; class QList<class QDeclarativeError> QDeclarativeDomDocument::errors(void) const
+ ?toChanged@QDeclarativeTransition@@IAEXXZ @ 61 NONAME ; void QDeclarativeTransition::toChanged(void)
+ ?objectOwnership@QDeclarativeEngine@@SA?AW4ObjectOwnership@1@PAVQObject@@@Z @ 62 NONAME ; enum QDeclarativeEngine::ObjectOwnership QDeclarativeEngine::objectOwnership(class QObject *)
+ ??0QDeclarativeDebugWatch@@QAE@PAVQObject@@@Z @ 63 NONAME ; QDeclarativeDebugWatch::QDeclarativeDebugWatch(class QObject *)
+ ?value@QDeclarativePropertyMap@@QBE?AVQVariant@@ABVQString@@@Z @ 64 NONAME ; class QVariant QDeclarativePropertyMap::value(class QString const &) const
+ ?trUtf8@QDeclarativePropertyMap@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString QDeclarativePropertyMap::trUtf8(char const *, char const *)
+ ?isWaiting@QDeclarativeDebugQuery@@QBE_NXZ @ 66 NONAME ; bool QDeclarativeDebugQuery::isWaiting(void) const
+ ??1Variant@QDeclarativeParser@@QAE@XZ @ 67 NONAME ; QDeclarativeParser::Variant::~Variant(void)
+ ??0Variant@QDeclarativeParser@@QAE@ABVQString@@@Z @ 68 NONAME ; QDeclarativeParser::Variant::Variant(class QString const &)
+ ?paintedSizeChanged@QDeclarativeText@@IAEXXZ @ 69 NONAME ; void QDeclarativeText::paintedSizeChanged(void)
+ ??1QDeclarativeDebugClient@@UAE@XZ @ 70 NONAME ; QDeclarativeDebugClient::~QDeclarativeDebugClient(void)
+ ?trUtf8@QPacketProtocol@@SA?AVQString@@PBD0@Z @ 71 NONAME ; class QString QPacketProtocol::trUtf8(char const *, char const *)
+ ?trUtf8@QDeclarativeListModel@@SA?AVQString@@PBD0@Z @ 72 NONAME ; class QString QDeclarativeListModel::trUtf8(char const *, char const *)
+ ?qt_metacast@QDeclarativeState@@UAEPAXPBD@Z @ 73 NONAME ; void * QDeclarativeState::qt_metacast(char const *)
+ ??1QDeclarativeDebugContextReference@@QAE@XZ @ 74 NONAME ; QDeclarativeDebugContextReference::~QDeclarativeDebugContextReference(void)
+ ?getStaticMetaObject@QDeclarativeStateOperation@@SAABUQMetaObject@@XZ @ 75 NONAME ; struct QMetaObject const & QDeclarativeStateOperation::getStaticMetaObject(void)
+ ?isInvalid@QDeclarativeDomValue@@QBE_NXZ @ 76 NONAME ; bool QDeclarativeDomValue::isInvalid(void) const
+ ?trUtf8@QDeclarativeText@@SA?AVQString@@PBD0H@Z @ 77 NONAME ; class QString QDeclarativeText::trUtf8(char const *, char const *, int)
+ ??0QDeclarativeListReference@@QAE@ABV0@@Z @ 78 NONAME ; QDeclarativeListReference::QDeclarativeListReference(class QDeclarativeListReference const &)
+ ?classBegin@QDeclarativeItem@@MAEXXZ @ 79 NONAME ; void QDeclarativeItem::classBegin(void)
+ ?setTransformOrigin@QDeclarativeItem@@QAEXW4TransformOrigin@1@@Z @ 80 NONAME ; void QDeclarativeItem::setTransformOrigin(enum QDeclarativeItem::TransformOrigin)
+ ?event@QDeclarativeItem@@MAE_NPAVQEvent@@@Z @ 81 NONAME ; bool QDeclarativeItem::event(class QEvent *)
+ ?setAttributes@QMetaMethodBuilder@@QAEXH@Z @ 82 NONAME ; void QMetaMethodBuilder::setAttributes(int)
+ ?imageType@QDeclarativeImageProvider@@QBE?AW4ImageType@1@XZ @ 83 NONAME ; enum QDeclarativeImageProvider::ImageType QDeclarativeImageProvider::imageType(void) const
+ ??_EQDeclarativeDebugObjectReference@@QAE@I@Z @ 84 NONAME ; QDeclarativeDebugObjectReference::~QDeclarativeDebugObjectReference(unsigned int)
+ ?qt_metacall@QDeclarativeDebugQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 85 NONAME ; int QDeclarativeDebugQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?findState@QDeclarativeStateGroup@@QBEPAVQDeclarativeState@@ABVQString@@@Z @ 86 NONAME ; class QDeclarativeState * QDeclarativeStateGroup::findState(class QString const &) const
+ ?asScript@Variant@QDeclarativeParser@@QBE?AVQString@@XZ @ 87 NONAME ; class QString QDeclarativeParser::Variant::asScript(void) const
+ ?qt_metacast@QDeclarativeExtensionPlugin@@UAEPAXPBD@Z @ 88 NONAME ; void * QDeclarativeExtensionPlugin::qt_metacast(char const *)
+ ?objectId@QDeclarativeDomObject@@QBE?AVQString@@XZ @ 89 NONAME ; class QString QDeclarativeDomObject::objectId(void) const
+ ?right@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 90 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::right(void) const
+ ?removeFromObject@QDeclarativeAbstractBinding@@QAEXXZ @ 91 NONAME ; void QDeclarativeAbstractBinding::removeFromObject(void)
+ ?resizeMode@QDeclarativeView@@QBE?AW4ResizeMode@1@XZ @ 92 NONAME ; enum QDeclarativeView::ResizeMode QDeclarativeView::resizeMode(void) const
+ ?object@QDeclarativeOpenMetaObject@@QBEPAVQObject@@XZ @ 93 NONAME ; class QObject * QDeclarativeOpenMetaObject::object(void) const
+ ?staticMetaObject@QDeclarativeBehavior@@2UQMetaObject@@B @ 94 NONAME ; struct QMetaObject const QDeclarativeBehavior::staticMetaObject
+ ?toObject@QDeclarativeDomValue@@QBE?AVQDeclarativeDomObject@@XZ @ 95 NONAME ; class QDeclarativeDomObject QDeclarativeDomValue::toObject(void) const
+ ?setLine@QDeclarativeError@@QAEXH@Z @ 96 NONAME ; void QDeclarativeError::setLine(int)
+ ??6QDeclarativeInfo@@QAEAAV0@K@Z @ 97 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(unsigned long)
+ ??0QDeclarativeDebugConnection@@QAE@PAVQObject@@@Z @ 98 NONAME ; QDeclarativeDebugConnection::QDeclarativeDebugConnection(class QObject *)
+ ?qt_metacast@QDeclarativeDebugQuery@@UAEPAXPBD@Z @ 99 NONAME ; void * QDeclarativeDebugQuery::qt_metacast(char const *)
+ ?isValid@QDeclarativeGridScaledImage@@QBE_NXZ @ 100 NONAME ; bool QDeclarativeGridScaledImage::isValid(void) const
+ ?qt_metacast@QDeclarativeContext@@UAEPAXPBD@Z @ 101 NONAME ; void * QDeclarativeContext::qt_metacast(char const *)
+ ?metaObject@QDeclarativeDebugClient@@UBEPBUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const * QDeclarativeDebugClient::metaObject(void) const
+ ?transitions@QDeclarativeItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeTransition@@@@XZ @ 103 NONAME ; class QDeclarativeListProperty<class QDeclarativeTransition> QDeclarativeItemPrivate::transitions(void)
+ ??0QDeclarativeDebugPropertyWatch@@QAE@PAVQObject@@@Z @ 104 NONAME ; QDeclarativeDebugPropertyWatch::QDeclarativeDebugPropertyWatch(class QObject *)
+ ??_EQDeclarativeDebugPropertyReference@@QAE@I@Z @ 105 NONAME ; QDeclarativeDebugPropertyReference::~QDeclarativeDebugPropertyReference(unsigned int)
+ ?itemsChanged@QListModelInterface@@IAEXHHABV?$QList@H@@@Z @ 106 NONAME ; void QListModelInterface::itemsChanged(int, int, class QList<int> const &)
+ ??6@YA?AVQDebug@@V0@PAVQDeclarativeItem@@@Z @ 107 NONAME ; class QDebug operator<<(class QDebug, class QDeclarativeItem *)
+ ?write@QDeclarativePropertyPrivate@@SA_NABVQDeclarativeProperty@@ABVQVariant@@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 108 NONAME ; bool QDeclarativePropertyPrivate::write(class QDeclarativeProperty const &, class QVariant const &, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
+ ?verticalTileRule@QDeclarativeGridScaledImage@@QBE?AW4TileMode@QDeclarativeBorderImage@@XZ @ 109 NONAME ; enum QDeclarativeBorderImage::TileMode QDeclarativeGridScaledImage::verticalTileRule(void) const
+ ?tr@QDeclarativeDebugObjectQuery@@SA?AVQString@@PBD0@Z @ 110 NONAME ; class QString QDeclarativeDebugObjectQuery::tr(char const *, char const *)
+ ?isDynamic@QMetaPropertyBuilder@@QBE_NXZ @ 111 NONAME ; bool QMetaPropertyBuilder::isDynamic(void) const
+ ?removeClassInfo@QMetaObjectBuilder@@QAEXH@Z @ 112 NONAME ; void QMetaObjectBuilder::removeClassInfo(int)
+ ?warnings@QDeclarativeEngine@@IAEXABV?$QList@VQDeclarativeError@@@@@Z @ 113 NONAME ; void QDeclarativeEngine::warnings(class QList<class QDeclarativeError> const &)
+ ?description@QDeclarativeError@@QBE?AVQString@@XZ @ 114 NONAME ; class QString QDeclarativeError::description(void) const
+ ?binding@QDeclarativeDebugPropertyReference@@QBE?AVQString@@XZ @ 115 NONAME ; class QString QDeclarativeDebugPropertyReference::binding(void) const
+ ?trUtf8@QDeclarativePen@@SA?AVQString@@PBD0@Z @ 116 NONAME ; class QString QDeclarativePen::trUtf8(char const *, char const *)
+ ?readValueProperty@QDeclarativePropertyPrivate@@QAE?AVQVariant@@XZ @ 117 NONAME ; class QVariant QDeclarativePropertyPrivate::readValueProperty(void)
+ ?propertyType@QDeclarativeDomDynamicProperty@@QBEHXZ @ 118 NONAME ; int QDeclarativeDomDynamicProperty::propertyType(void) const
+ ?gridBottom@QDeclarativeGridScaledImage@@QBEHXZ @ 119 NONAME ; int QDeclarativeGridScaledImage::gridBottom(void) const
+ ?setRadius@QDeclarativeRectangle@@QAEXM@Z @ 120 NONAME ; void QDeclarativeRectangle::setRadius(float)
+ ?d_func@QDeclarativeBehavior@@AAEPAVQDeclarativeBehaviorPrivate@@XZ @ 121 NONAME ; class QDeclarativeBehaviorPrivate * QDeclarativeBehavior::d_func(void)
+ ?isValid@QDeclarativePen@@QAE_NXZ @ 122 NONAME ; bool QDeclarativePen::isValid(void)
+ ?result@QDeclarativeDebugExpressionQuery@@QBE?AVQVariant@@XZ @ 123 NONAME ; class QVariant QDeclarativeDebugExpressionQuery::result(void) const
+ ?isEnumOrFlag@QMetaPropertyBuilder@@QBE_NXZ @ 124 NONAME ; bool QMetaPropertyBuilder::isEnumOrFlag(void) const
+ ?addToObject@QDeclarativeAbstractBinding@@QAEXPAVQObject@@@Z @ 125 NONAME ; void QDeclarativeAbstractBinding::addToObject(class QObject *)
+ ?trUtf8@QDeclarativeView@@SA?AVQString@@PBD0H@Z @ 126 NONAME ; class QString QDeclarativeView::trUtf8(char const *, char const *, int)
+ ?d_func@QDeclarativeAnchors@@AAEPAVQDeclarativeAnchorsPrivate@@XZ @ 127 NONAME ; class QDeclarativeAnchorsPrivate * QDeclarativeAnchors::d_func(void)
+ ??1QPacket@@UAE@XZ @ 128 NONAME ; QPacket::~QPacket(void)
+ ?top@QDeclarativeScaleGrid@@QBEHXZ @ 129 NONAME ; int QDeclarativeScaleGrid::top(void) const
+ ?setExpression@QDeclarativeExpression@@QAEXABVQString@@@Z @ 130 NONAME ; void QDeclarativeExpression::setExpression(class QString const &)
+ ??1QDeclarativeDebugEngineReference@@QAE@XZ @ 131 NONAME ; QDeclarativeDebugEngineReference::~QDeclarativeDebugEngineReference(void)
+ ??0QDeclarativeStateOperation@@QAE@PAVQObject@@@Z @ 132 NONAME ; QDeclarativeStateOperation::QDeclarativeStateOperation(class QObject *)
+ ?transform_clear@QDeclarativeItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsTransform@@@@@Z @ 133 NONAME ; void QDeclarativeItemPrivate::transform_clear(class QDeclarativeListProperty<class QGraphicsTransform> *)
+ ?staticMetaObject@QDeclarativeValueType@@2UQMetaObject@@B @ 134 NONAME ; struct QMetaObject const QDeclarativeValueType::staticMetaObject
+ ?propertyName@QDeclarativeDomDynamicProperty@@QBE?AVQByteArray@@XZ @ 135 NONAME ; class QByteArray QDeclarativeDomDynamicProperty::propertyName(void) const
+ ?focusChanged@QDeclarativeItem@@IAEX_N@Z @ 136 NONAME ; void QDeclarativeItem::focusChanged(bool)
+ ?getStaticMetaObject@QDeclarativeBinding@@SAABUQMetaObject@@XZ @ 137 NONAME ; struct QMetaObject const & QDeclarativeBinding::getStaticMetaObject(void)
+ ?copy@QDeclarativeMetaType@@SA_NHPAXPBX@Z @ 138 NONAME ; bool QDeclarativeMetaType::copy(int, void *, void const *)
+ ?qt_metacall@QDeclarativeDebugEnginesQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 139 NONAME ; int QDeclarativeDebugEnginesQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?tr@QDeclarativeDebugWatch@@SA?AVQString@@PBD0@Z @ 140 NONAME ; class QString QDeclarativeDebugWatch::tr(char const *, char const *)
+ ?setEnumOrFlag@QMetaPropertyBuilder@@QAEX_N@Z @ 141 NONAME ; void QMetaPropertyBuilder::setEnumOrFlag(bool)
+ ?getStaticMetaObject@QDeclarativeRectangle@@SAABUQMetaObject@@XZ @ 142 NONAME ; struct QMetaObject const & QDeclarativeRectangle::getStaticMetaObject(void)
+ ?isValid@QDeclarativeProperty@@QBE_NXZ @ 143 NONAME ; bool QDeclarativeProperty::isValid(void) const
+ ?isConnected@QDeclarativeDebugClient@@QBE_NXZ @ 144 NONAME ; bool QDeclarativeDebugClient::isConnected(void) const
+ ?enabled@QDeclarativeBinding@@QBE_NXZ @ 145 NONAME ; bool QDeclarativeBinding::enabled(void) const
+ ?setSource@QDeclarativeView@@QAEXABVQUrl@@@Z @ 146 NONAME ; void QDeclarativeView::setSource(class QUrl const &)
+ ??_EQDeclarativeDebugService@@UAE@I@Z @ 147 NONAME ; QDeclarativeDebugService::~QDeclarativeDebugService(unsigned int)
+ ??0QDeclarativeDomDynamicProperty@@QAE@ABV0@@Z @ 148 NONAME ; QDeclarativeDomDynamicProperty::QDeclarativeDomDynamicProperty(class QDeclarativeDomDynamicProperty const &)
+ ?className@QDeclarativeDebugObjectReference@@QBE?AVQString@@XZ @ 149 NONAME ; class QString QDeclarativeDebugObjectReference::className(void) const
+ ?indexOfSlot@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 150 NONAME ; int QMetaObjectBuilder::indexOfSlot(class QByteArray const &)
+ ?tr@QDeclarativeDebugConnection@@SA?AVQString@@PBD0H@Z @ 151 NONAME ; class QString QDeclarativeDebugConnection::tr(char const *, char const *, int)
+ ?progressChanged@QDeclarativeComponent@@IAEXM@Z @ 152 NONAME ; void QDeclarativeComponent::progressChanged(float)
+ ?hasError@QDeclarativeExpression@@QBE_NXZ @ 153 NONAME ; bool QDeclarativeExpression::hasError(void) const
+ ?error@QDeclarativePixmap@@QBE?AVQString@@XZ @ 154 NONAME ; class QString QDeclarativePixmap::error(void) const
+ ?property@QMetaObjectBuilder@@QBE?AVQMetaPropertyBuilder@@H@Z @ 155 NONAME ; class QMetaPropertyBuilder QMetaObjectBuilder::property(int) const
+ ?index@QDeclarativeType@@QBEHXZ @ 156 NONAME ; int QDeclarativeType::index(void) const
+ ?tr@QDeclarativeRectangle@@SA?AVQString@@PBD0@Z @ 157 NONAME ; class QString QDeclarativeRectangle::tr(char const *, char const *)
+ ??0QDeclarativeScaleGrid@@QAE@PAVQObject@@@Z @ 158 NONAME ; QDeclarativeScaleGrid::QDeclarativeScaleGrid(class QObject *)
+ ?engines@QDeclarativeDebugEnginesQuery@@QBE?AV?$QList@VQDeclarativeDebugEngineReference@@@@XZ @ 159 NONAME ; class QList<class QDeclarativeDebugEngineReference> QDeclarativeDebugEnginesQuery::engines(void) const
+ ?qt_metacall@QDeclarativeDebugPropertyWatch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 160 NONAME ; int QDeclarativeDebugPropertyWatch::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?metaObject@QDeclarativeAnchors@@UBEPBUQMetaObject@@XZ @ 161 NONAME ; struct QMetaObject const * QDeclarativeAnchors::metaObject(void) const
+ ??BQDeclarativePixmap@@QBEABVQPixmap@@XZ @ 162 NONAME ; QDeclarativePixmap::operator class QPixmap const &(void) const
+ ?sceneResized@QDeclarativeView@@IAEXVQSize@@@Z @ 163 NONAME ; void QDeclarativeView::sceneResized(class QSize)
+ ?subFocusItemChange@QDeclarativeItemPrivate@@UAEXXZ @ 164 NONAME ; void QDeclarativeItemPrivate::subFocusItemChange(void)
+ ?hasNotifySignal@QDeclarativeDebugPropertyReference@@QBE_NXZ @ 165 NONAME ; bool QDeclarativeDebugPropertyReference::hasNotifySignal(void) const
+ ?addSlot@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@@Z @ 166 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addSlot(class QByteArray const &)
+ ?trUtf8@QDeclarativeStateOperation@@SA?AVQString@@PBD0@Z @ 167 NONAME ; class QString QDeclarativeStateOperation::trUtf8(char const *, char const *)
+ ?propertyCreated@QDeclarativeOpenMetaObjectType@@MAEXHAAVQMetaPropertyBuilder@@@Z @ 168 NONAME ; void QDeclarativeOpenMetaObjectType::propertyCreated(int, class QMetaPropertyBuilder &)
+ ??1QDeclarativeItemPrivate@@UAE@XZ @ 169 NONAME ; QDeclarativeItemPrivate::~QDeclarativeItemPrivate(void)
+ ?clear@QDeclarativePropertyMap@@QAEXABVQString@@@Z @ 170 NONAME ; void QDeclarativePropertyMap::clear(class QString const &)
+ ?tr@QDeclarativeDebugClient@@SA?AVQString@@PBD0H@Z @ 171 NONAME ; class QString QDeclarativeDebugClient::tr(char const *, char const *, int)
+ ?read@QDeclarativeProperty@@SA?AVQVariant@@PAVQObject@@ABVQString@@PAVQDeclarativeEngine@@@Z @ 172 NONAME ; class QVariant QDeclarativeProperty::read(class QObject *, class QString const &, class QDeclarativeEngine *)
+ ?insert@QDeclarativePropertyMap@@QAEXABVQString@@ABVQVariant@@@Z @ 173 NONAME ; void QDeclarativePropertyMap::insert(class QString const &, class QVariant const &)
+ ??1QDeclarativeContext@@UAE@XZ @ 174 NONAME ; QDeclarativeContext::~QDeclarativeContext(void)
+ ?operationCount@QDeclarativeState@@QBEHXZ @ 175 NONAME ; int QDeclarativeState::operationCount(void) const
+ ?getStaticMetaObject@QDeclarativeItem@@SAABUQMetaObject@@XZ @ 176 NONAME ; struct QMetaObject const & QDeclarativeItem::getStaticMetaObject(void)
+ ?qtAnimationStateChanged@QDeclarativeBehavior@@AAEXW4State@QAbstractAnimation@@0@Z @ 177 NONAME ; void QDeclarativeBehavior::qtAnimationStateChanged(enum QAbstractAnimation::State, enum QAbstractAnimation::State)
+ ?trUtf8@QDeclarativeBehavior@@SA?AVQString@@PBD0H@Z @ 178 NONAME ; class QString QDeclarativeBehavior::trUtf8(char const *, char const *, int)
+ ?status@QDeclarativeComponent@@QBE?AW4Status@1@XZ @ 179 NONAME ; enum QDeclarativeComponent::Status QDeclarativeComponent::status(void) const
+ ?boundingRect@QDeclarativeItem@@UBE?AVQRectF@@XZ @ 180 NONAME ; class QRectF QDeclarativeItem::boundingRect(void) const
+ ?availableInVersion@QDeclarativeType@@QBE_NHH@Z @ 181 NONAME ; bool QDeclarativeType::availableInVersion(int, int) const
+ ?getStaticMetaObject@QDeclarativeDebugWatch@@SAABUQMetaObject@@XZ @ 182 NONAME ; struct QMetaObject const & QDeclarativeDebugWatch::getStaticMetaObject(void)
+ ??_EQDeclarativeRectangle@@UAE@I@Z @ 183 NONAME ; QDeclarativeRectangle::~QDeclarativeRectangle(unsigned int)
+ ?setTopMargin@QDeclarativeAnchors@@QAEXM@Z @ 184 NONAME ; void QDeclarativeAnchors::setTopMargin(float)
+ ??5@YAAAVQDataStream@@AAV0@AAUQDeclarativeObjectProperty@QDeclarativeEngineDebugServer@@@Z @ 185 NONAME ; class QDataStream & operator>>(class QDataStream &, struct QDeclarativeEngineDebugServer::QDeclarativeObjectProperty &)
+ ??1QDeclarativeValueTypeFactory@@QAE@XZ @ 186 NONAME ; QDeclarativeValueTypeFactory::~QDeclarativeValueTypeFactory(void)
+ ?metaObject@QDeclarativeDebugObjectExpressionWatch@@UBEPBUQMetaObject@@XZ @ 187 NONAME ; struct QMetaObject const * QDeclarativeDebugObjectExpressionWatch::metaObject(void) const
+ ??0QDeclarativeComponent@@QAE@PAVQObject@@@Z @ 188 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QObject *)
+ ?qt_metacast@QDeclarativeItem@@UAEPAXPBD@Z @ 189 NONAME ; void * QDeclarativeItem::qt_metacast(char const *)
+ ?changes@QDeclarativeState@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeStateOperation@@@@XZ @ 190 NONAME ; class QDeclarativeListProperty<class QDeclarativeStateOperation> QDeclarativeState::changes(void)
+ ?resizeEvent@QDeclarativeView@@MAEXPAVQResizeEvent@@@Z @ 191 NONAME ; void QDeclarativeView::resizeEvent(class QResizeEvent *)
+ ?d_func@QDeclarativeBinding@@ABEPBVQDeclarativeBindingPrivate@@XZ @ 192 NONAME ; class QDeclarativeBindingPrivate const * QDeclarativeBinding::d_func(void) const
+ ?wrapMode@QDeclarativeText@@QBE?AW4WrapMode@1@XZ @ 193 NONAME ; enum QDeclarativeText::WrapMode QDeclarativeText::wrapMode(void) const
+ ?centerIn@QDeclarativeAnchors@@QBEPAVQGraphicsObject@@XZ @ 194 NONAME ; class QGraphicsObject * QDeclarativeAnchors::centerIn(void) const
+ ??0QDeclarativeType@@AAE@HABURegisterType@QDeclarativePrivate@@@Z @ 195 NONAME ; QDeclarativeType::QDeclarativeType(int, struct QDeclarativePrivate::RegisterType const &)
+ ?trUtf8@QDeclarativeComponent@@SA?AVQString@@PBD0H@Z @ 196 NONAME ; class QString QDeclarativeComponent::trUtf8(char const *, char const *, int)
+ ??0QMetaObjectBuilder@@QAE@PBUQMetaObject@@V?$QFlags@W4AddMember@QMetaObjectBuilder@@@@@Z @ 197 NONAME ; QMetaObjectBuilder::QMetaObjectBuilder(struct QMetaObject const *, class QFlags<enum QMetaObjectBuilder::AddMember>)
+ ?quit@QDeclarativeEngine@@IAEXXZ @ 198 NONAME ; void QDeclarativeEngine::quit(void)
+ ?qmlregister@QDeclarativePrivate@@YAHW4RegistrationType@1@PAX@Z @ 199 NONAME ; int QDeclarativePrivate::qmlregister(enum QDeclarativePrivate::RegistrationType, void *)
+ ??0QMetaEnumBuilder@@AAE@PBVQMetaObjectBuilder@@H@Z @ 200 NONAME ; QMetaEnumBuilder::QMetaEnumBuilder(class QMetaObjectBuilder const *, int)
+ ?setBottom@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 201 NONAME ; void QDeclarativeAnchors::setBottom(class QDeclarativeAnchorLine const &)
+ ??0QDeclarativeCustomParser@@QAE@XZ @ 202 NONAME ; QDeclarativeCustomParser::QDeclarativeCustomParser(void)
+ ?value@QDeclarativeOpenMetaObject@@QBE?AVQVariant@@ABVQByteArray@@@Z @ 203 NONAME ; class QVariant QDeclarativeOpenMetaObject::value(class QByteArray const &) const
+ ?styleColor@QDeclarativeText@@QBE?AVQColor@@XZ @ 204 NONAME ; class QColor QDeclarativeText::styleColor(void) const
+ ?centerInChanged@QDeclarativeAnchors@@IAEXXZ @ 205 NONAME ; void QDeclarativeAnchors::centerInChanged(void)
+ ?colorChanged@QDeclarativeRectangle@@IAEXXZ @ 206 NONAME ; void QDeclarativeRectangle::colorChanged(void)
+ ??0QDeclarativePropertyPrivate@@QAE@ABV0@@Z @ 207 NONAME ; QDeclarativePropertyPrivate::QDeclarativePropertyPrivate(class QDeclarativePropertyPrivate const &)
+ ?loadUrl@QDeclarativeComponent@@QAEXABVQUrl@@@Z @ 208 NONAME ; void QDeclarativeComponent::loadUrl(class QUrl const &)
+ ?beginCreate@QDeclarativeComponent@@UAEPAVQObject@@PAVQDeclarativeContext@@@Z @ 209 NONAME ; class QObject * QDeclarativeComponent::beginCreate(class QDeclarativeContext *)
+ ?setRight@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 210 NONAME ; void QDeclarativeAnchors::setRight(class QDeclarativeAnchorLine const &)
+ ?needsNotifySignal@QDeclarativeProperty@@QBE_NXZ @ 211 NONAME ; bool QDeclarativeProperty::needsNotifySignal(void) const
+ ?fill@QDeclarativeAnchors@@QBEPAVQGraphicsObject@@XZ @ 212 NONAME ; class QGraphicsObject * QDeclarativeAnchors::fill(void) const
+ ?top@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 213 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::top(void) const
+ ?clear@QDeclarativeListReference@@QBE_NXZ @ 214 NONAME ; bool QDeclarativeListReference::clear(void) const
+ ?parentChanged@QDeclarativeItem@@IAEXPAV1@@Z @ 215 NONAME ; void QDeclarativeItem::parentChanged(class QDeclarativeItem *)
+ ?columnNumber@QDeclarativeDebugFileReference@@QBEHXZ @ 216 NONAME ; int QDeclarativeDebugFileReference::columnNumber(void) const
+ ??0QDeclarativeListModel@@AAE@_NPAVQObject@@@Z @ 217 NONAME ; QDeclarativeListModel::QDeclarativeListModel(bool, class QObject *)
+ ?apply@QDeclarativeState@@QAEXPAVQDeclarativeStateGroup@@PAVQDeclarativeTransition@@PAV1@@Z @ 218 NONAME ; void QDeclarativeState::apply(class QDeclarativeStateGroup *, class QDeclarativeTransition *, class QDeclarativeState *)
+ ?isValid@QDeclarativeDomProperty@@QBE_NXZ @ 219 NONAME ; bool QDeclarativeDomProperty::isValid(void) const
+ ?trUtf8@QDeclarativeDebugExpressionQuery@@SA?AVQString@@PBD0@Z @ 220 NONAME ; class QString QDeclarativeDebugExpressionQuery::trUtf8(char const *, char const *)
+ ?statusChanged@QDeclarativeView@@IAEXW4Status@1@@Z @ 221 NONAME ; void QDeclarativeView::statusChanged(enum QDeclarativeView::Status)
+ ?componentComplete@QDeclarativeText@@UAEXXZ @ 222 NONAME ; void QDeclarativeText::componentComplete(void)
+ ?canCount@QDeclarativeListReference@@QBE_NXZ @ 223 NONAME ; bool QDeclarativeListReference::canCount(void) const
+ ??1QListModelInterface@@UAE@XZ @ 224 NONAME ; QListModelInterface::~QListModelInterface(void)
+ ??0QDeclarativeAnchors@@QAE@PAVQObject@@@Z @ 225 NONAME ; QDeclarativeAnchors::QDeclarativeAnchors(class QObject *)
+ ?resources_at@QDeclarativeItemPrivate@@SAPAVQObject@@PAV?$QDeclarativeListProperty@VQObject@@@@H@Z @ 226 NONAME ; class QObject * QDeclarativeItemPrivate::resources_at(class QDeclarativeListProperty<class QObject> *, int)
+ ?isExtendedType@QDeclarativeType@@QBE_NXZ @ 227 NONAME ; bool QDeclarativeType::isExtendedType(void) const
+ ?top@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 228 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::top(void) const
+ ??0QDeclarativePropertyMap@@QAE@PAVQObject@@@Z @ 229 NONAME ; QDeclarativePropertyMap::QDeclarativePropertyMap(class QObject *)
+ ??0QDeclarativeExpression@@IAE@PAVQDeclarativeContextData@@PAXPAVQDeclarativeRefCount@@PAVQObject@@ABVQString@@HAAVQDeclarativeExpressionPrivate@@@Z @ 230 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContextData *, void *, class QDeclarativeRefCount *, class QObject *, class QString const &, int, class QDeclarativeExpressionPrivate &)
+ ?setColor@QDeclarativeText@@QAEXABVQColor@@@Z @ 231 NONAME ; void QDeclarativeText::setColor(class QColor const &)
+ ?hasStdCppSet@QMetaPropertyBuilder@@QBE_NXZ @ 232 NONAME ; bool QMetaPropertyBuilder::hasStdCppSet(void) const
+ ??0QDeclarativeDebugFileReference@@QAE@ABV0@@Z @ 233 NONAME ; QDeclarativeDebugFileReference::QDeclarativeDebugFileReference(class QDeclarativeDebugFileReference const &)
+ ?toValueInterceptor@QDeclarativeDomValue@@QBE?AVQDeclarativeDomValueValueInterceptor@@XZ @ 234 NONAME ; class QDeclarativeDomValueValueInterceptor QDeclarativeDomValue::toValueInterceptor(void) const
+ ??0QDeclarativeDebugEngineReference@@QAE@H@Z @ 235 NONAME ; QDeclarativeDebugEngineReference::QDeclarativeDebugEngineReference(int)
+ ?tr@QDeclarativePixmap@@SA?AVQString@@PBD0H@Z @ 236 NONAME ; class QString QDeclarativePixmap::tr(char const *, char const *, int)
+ ?state@QDeclarativeItemPrivate@@QBE?AVQString@@XZ @ 237 NONAME ; class QString QDeclarativeItemPrivate::state(void) const
+ ??1QDeclarativePropertyValueInterceptor@@UAE@XZ @ 238 NONAME ; QDeclarativePropertyValueInterceptor::~QDeclarativePropertyValueInterceptor(void)
+ ?getStaticMetaObject@QDeclarativePropertyMap@@SAABUQMetaObject@@XZ @ 239 NONAME ; struct QMetaObject const & QDeclarativePropertyMap::getStaticMetaObject(void)
+ ??1QDeclarativeScaleGrid@@UAE@XZ @ 240 NONAME ; QDeclarativeScaleGrid::~QDeclarativeScaleGrid(void)
+ ?idString@QDeclarativeDebugObjectReference@@QBE?AVQString@@XZ @ 241 NONAME ; class QString QDeclarativeDebugObjectReference::idString(void) const
+ ?customTypeData@QDeclarativeDomObject@@QBE?AVQByteArray@@XZ @ 242 NONAME ; class QByteArray QDeclarativeDomObject::customTypeData(void) const
+ ?stop@QDeclarativeTransition@@QAEXXZ @ 243 NONAME ; void QDeclarativeTransition::stop(void)
+ ?data@QDeclarativeListModel@@UBE?AV?$QHash@HVQVariant@@@@HABV?$QList@H@@@Z @ 244 NONAME ; class QHash<int, class QVariant> QDeclarativeListModel::data(int, class QList<int> const &) const
+ ?verticalCenterOffset@QDeclarativeAnchors@@QBEMXZ @ 245 NONAME ; float QDeclarativeAnchors::verticalCenterOffset(void) const
+ ?metaObject@QDeclarativeText@@UBEPBUQMetaObject@@XZ @ 246 NONAME ; struct QMetaObject const * QDeclarativeText::metaObject(void) const
+ ??0QDeclarativeComponent@@QAE@PAVQDeclarativeEngine@@PAVQObject@@@Z @ 247 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QObject *)
+ ?createProperty@QDeclarativeOpenMetaObjectType@@QAEHABVQByteArray@@@Z @ 248 NONAME ; int QDeclarativeOpenMetaObjectType::createProperty(class QByteArray const &)
+ ??0QDeclarativeContext@@QAE@PAVQDeclarativeEngine@@PAVQObject@@@Z @ 249 NONAME ; QDeclarativeContext::QDeclarativeContext(class QDeclarativeEngine *, class QObject *)
+ ??6QDeclarativeInfo@@QAEAAV0@M@Z @ 250 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(float)
+ ??4QDeclarativeDomValueLiteral@@QAEAAV0@ABV0@@Z @ 251 NONAME ; class QDeclarativeDomValueLiteral & QDeclarativeDomValueLiteral::operator=(class QDeclarativeDomValueLiteral const &)
+ ?setScript@QDeclarativeScriptString@@QAEXABVQString@@@Z @ 252 NONAME ; void QDeclarativeScriptString::setScript(class QString const &)
+ ?requestImage@QDeclarativeImageProvider@@UAE?AVQImage@@ABVQString@@PAVQSize@@ABV4@@Z @ 253 NONAME ; class QImage QDeclarativeImageProvider::requestImage(class QString const &, class QSize *, class QSize const &)
?qt_metacast@QPacketProtocol@@UAEPAXPBD@Z @ 254 NONAME ; void * QPacketProtocol::qt_metacast(char const *)
?addMetaObject@QMetaObjectBuilder@@QAEXPBUQMetaObject@@V?$QFlags@W4AddMember@QMetaObjectBuilder@@@@@Z @ 255 NONAME ; void QMetaObjectBuilder::addMetaObject(struct QMetaObject const *, class QFlags<enum QMetaObjectBuilder::AddMember>)
?trUtf8@QDeclarativeRectangle@@SA?AVQString@@PBD0H@Z @ 256 NONAME ; class QString QDeclarativeRectangle::trUtf8(char const *, char const *, int)
@@ -262,10 +262,10 @@ EXPORTS
?setStyleColor@QDeclarativeText@@QAEXABVQColor@@@Z @ 261 NONAME ; void QDeclarativeText::setStyleColor(class QColor const &)
?create@QDeclarativeType@@QBEPAVQObject@@XZ @ 262 NONAME ; class QObject * QDeclarativeType::create(void) const
?metaObject@QDeclarativeDebugExpressionQuery@@UBEPBUQMetaObject@@XZ @ 263 NONAME ; struct QMetaObject const * QDeclarativeDebugExpressionQuery::metaObject(void) const
- ?readyRead@QPacketProtocol@@IAEXXZ @ 264 NONAME ; void QPacketProtocol::readyRead(void)
- ?qt_metacall@QDeclarativeValueType@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 265 NONAME ; int QDeclarativeValueType::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?propertyType@QDeclarativePropertyPrivate@@QBEHXZ @ 266 NONAME ; int QDeclarativePropertyPrivate::propertyType(void) const
- ?engine@QDeclarativeView@@QAEPAVQDeclarativeEngine@@XZ @ 267 NONAME ABSENT ; class QDeclarativeEngine * QDeclarativeView::engine(void)
+ ?engine@QDeclarativeView@@QBEPAVQDeclarativeEngine@@XZ @ 264 NONAME ; class QDeclarativeEngine * QDeclarativeView::engine(void) const
+ ?readyRead@QPacketProtocol@@IAEXXZ @ 265 NONAME ; void QPacketProtocol::readyRead(void)
+ ?qt_metacall@QDeclarativeValueType@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 266 NONAME ; int QDeclarativeValueType::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?propertyType@QDeclarativePropertyPrivate@@QBEHXZ @ 267 NONAME ; int QDeclarativePropertyPrivate::propertyType(void) const
?inputMethodQuery@QDeclarativeItem@@MBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 268 NONAME ; class QVariant QDeclarativeItem::inputMethodQuery(enum Qt::InputMethodQuery) const
?sizeHint@QDeclarativeView@@UBE?AVQSize@@XZ @ 269 NONAME ; class QSize QDeclarativeView::sizeHint(void) const
?flags@QDeclarativeCustomParser@@QBE?AV?$QFlags@W4Flag@QDeclarativeCustomParser@@@@XZ @ 270 NONAME ; class QFlags<enum QDeclarativeCustomParser::Flag> QDeclarativeCustomParser::flags(void) const
@@ -283,23 +283,23 @@ EXPORTS
?textFormat@QDeclarativeText@@QBE?AW4TextFormat@1@XZ @ 282 NONAME ; enum QDeclarativeText::TextFormat QDeclarativeText::textFormat(void) const
?getStaticMetaObject@QDeclarativeDebugObjectExpressionWatch@@SAABUQMetaObject@@XZ @ 283 NONAME ; struct QMetaObject const & QDeclarativeDebugObjectExpressionWatch::getStaticMetaObject(void)
?write@QDeclarativeBehavior@@UAEXABVQVariant@@@Z @ 284 NONAME ; void QDeclarativeBehavior::write(class QVariant const &)
- ?resetTop@QDeclarativeAnchors@@QAEXXZ @ 285 NONAME ; void QDeclarativeAnchors::resetTop(void)
- ?queryId@QDeclarativeDebugWatch@@QBEHXZ @ 286 NONAME ; int QDeclarativeDebugWatch::queryId(void) const
- ?trUtf8@QDeclarativeExtensionPlugin@@SA?AVQString@@PBD0H@Z @ 287 NONAME ; class QString QDeclarativeExtensionPlugin::trUtf8(char const *, char const *, int)
- ?staticMetaObject@QDeclarativeComponent@@2UQMetaObject@@B @ 288 NONAME ; struct QMetaObject const QDeclarativeComponent::staticMetaObject
- ?setStateGroup@QDeclarativeState@@QAEXPAVQDeclarativeStateGroup@@@Z @ 289 NONAME ; void QDeclarativeState::setStateGroup(class QDeclarativeStateGroup *)
- ?access@QMetaMethodBuilder@@QBE?AW4Access@QMetaMethod@@XZ @ 290 NONAME ; enum QMetaMethod::Access QMetaMethodBuilder::access(void) const
- ?tr@QDeclarativeDebugQuery@@SA?AVQString@@PBD0@Z @ 291 NONAME ; class QString QDeclarativeDebugQuery::tr(char const *, char const *)
- ?attachedPropertiesType@QDeclarativeType@@QBEPBUQMetaObject@@XZ @ 292 NONAME ; struct QMetaObject const * QDeclarativeType::attachedPropertiesType(void) const
- ?setName@QDeclarativeState@@QAEXABVQString@@@Z @ 293 NONAME ; void QDeclarativeState::setName(class QString const &)
- ?setReversed@QDeclarativeTransition@@QAEX_N@Z @ 294 NONAME ; void QDeclarativeTransition::setReversed(bool)
- ?idForObject@QDeclarativeDebugService@@SAHPAVQObject@@@Z @ 295 NONAME ; int QDeclarativeDebugService::idForObject(class QObject *)
- ?qt_metacall@QDeclarativeDebugWatch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 296 NONAME ; int QDeclarativeDebugWatch::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?fromState@QDeclarativeTransition@@QBE?AVQString@@XZ @ 297 NONAME ; class QString QDeclarativeTransition::fromState(void) const
- ??1QDeclarativeExpression@@UAE@XZ @ 298 NONAME ; QDeclarativeExpression::~QDeclarativeExpression(void)
- ?binding@QDeclarativePropertyPrivate@@SAPAVQDeclarativeAbstractBinding@@ABVQDeclarativeProperty@@@Z @ 299 NONAME ; class QDeclarativeAbstractBinding * QDeclarativePropertyPrivate::binding(class QDeclarativeProperty const &)
- ?removeMethod@QMetaObjectBuilder@@QAEXH@Z @ 300 NONAME ; void QMetaObjectBuilder::removeMethod(int)
- ?get@QDeclarativePixmapCache@@SA?AW4Status@QDeclarativePixmapReply@@ABVQUrl@@PAVQPixmap@@PAVQString@@PAVQSize@@_NHH@Z @ 301 NONAME ABSENT ; enum QDeclarativePixmapReply::Status QDeclarativePixmapCache::get(class QUrl const &, class QPixmap *, class QString *, class QSize *, bool, int, int)
+ ?load@QDeclarativePixmap@@QAEXPAVQDeclarativeEngine@@ABVQUrl@@ABVQSize@@@Z @ 285 NONAME ; void QDeclarativePixmap::load(class QDeclarativeEngine *, class QUrl const &, class QSize const &)
+ ?resetTop@QDeclarativeAnchors@@QAEXXZ @ 286 NONAME ; void QDeclarativeAnchors::resetTop(void)
+ ?queryId@QDeclarativeDebugWatch@@QBEHXZ @ 287 NONAME ; int QDeclarativeDebugWatch::queryId(void) const
+ ?trUtf8@QDeclarativeExtensionPlugin@@SA?AVQString@@PBD0H@Z @ 288 NONAME ; class QString QDeclarativeExtensionPlugin::trUtf8(char const *, char const *, int)
+ ?staticMetaObject@QDeclarativeComponent@@2UQMetaObject@@B @ 289 NONAME ; struct QMetaObject const QDeclarativeComponent::staticMetaObject
+ ?setStateGroup@QDeclarativeState@@QAEXPAVQDeclarativeStateGroup@@@Z @ 290 NONAME ; void QDeclarativeState::setStateGroup(class QDeclarativeStateGroup *)
+ ?access@QMetaMethodBuilder@@QBE?AW4Access@QMetaMethod@@XZ @ 291 NONAME ; enum QMetaMethod::Access QMetaMethodBuilder::access(void) const
+ ?tr@QDeclarativeDebugQuery@@SA?AVQString@@PBD0@Z @ 292 NONAME ; class QString QDeclarativeDebugQuery::tr(char const *, char const *)
+ ?attachedPropertiesType@QDeclarativeType@@QBEPBUQMetaObject@@XZ @ 293 NONAME ; struct QMetaObject const * QDeclarativeType::attachedPropertiesType(void) const
+ ?setName@QDeclarativeState@@QAEXABVQString@@@Z @ 294 NONAME ; void QDeclarativeState::setName(class QString const &)
+ ?setReversed@QDeclarativeTransition@@QAEX_N@Z @ 295 NONAME ; void QDeclarativeTransition::setReversed(bool)
+ ?idForObject@QDeclarativeDebugService@@SAHPAVQObject@@@Z @ 296 NONAME ; int QDeclarativeDebugService::idForObject(class QObject *)
+ ?qt_metacall@QDeclarativeDebugWatch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 297 NONAME ; int QDeclarativeDebugWatch::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?fromState@QDeclarativeTransition@@QBE?AVQString@@XZ @ 298 NONAME ; class QString QDeclarativeTransition::fromState(void) const
+ ??1QDeclarativeExpression@@UAE@XZ @ 299 NONAME ; QDeclarativeExpression::~QDeclarativeExpression(void)
+ ?binding@QDeclarativePropertyPrivate@@SAPAVQDeclarativeAbstractBinding@@ABVQDeclarativeProperty@@@Z @ 300 NONAME ; class QDeclarativeAbstractBinding * QDeclarativePropertyPrivate::binding(class QDeclarativeProperty const &)
+ ?removeMethod@QMetaObjectBuilder@@QAEXH@Z @ 301 NONAME ; void QMetaObjectBuilder::removeMethod(int)
?operationAt@QDeclarativeState@@QBEPAVQDeclarativeStateOperation@@H@Z @ 302 NONAME ; class QDeclarativeStateOperation * QDeclarativeState::operationAt(int) const
?methodCount@QMetaObjectBuilder@@QBEHXZ @ 303 NONAME ; int QMetaObjectBuilder::methodCount(void) const
?font@QDeclarativeText@@QBE?AVQFont@@XZ @ 304 NONAME ; class QFont QDeclarativeText::font(void) const
@@ -344,111 +344,111 @@ EXPORTS
?interfaceIId@QDeclarativeType@@QBEPBDXZ @ 343 NONAME ; char const * QDeclarativeType::interfaceIId(void) const
?resetHorizontalCenter@QDeclarativeAnchors@@QAEXXZ @ 344 NONAME ; void QDeclarativeAnchors::resetHorizontalCenter(void)
?outputWarningsToStandardError@QDeclarativeEngine@@QBE_NXZ @ 345 NONAME ; bool QDeclarativeEngine::outputWarningsToStandardError(void) const
- ?getStaticMetaObject@QDeclarativeBehavior@@SAABUQMetaObject@@XZ @ 346 NONAME ; struct QMetaObject const & QDeclarativeBehavior::getStaticMetaObject(void)
- ??0QMetaEnumBuilder@@QAE@XZ @ 347 NONAME ; QMetaEnumBuilder::QMetaEnumBuilder(void)
- ?isValueType@QDeclarativeValueTypeFactory@@SA_NH@Z @ 348 NONAME ; bool QDeclarativeValueTypeFactory::isValueType(int)
- ?setWidth@QDeclarativePen@@QAEXH@Z @ 349 NONAME ; void QDeclarativePen::setWidth(int)
- ?isReadable@QMetaPropertyBuilder@@QBE_NXZ @ 350 NONAME ; bool QMetaPropertyBuilder::isReadable(void) const
- ?metaObject@QDeclarativeExpression@@UBEPBUQMetaObject@@XZ @ 351 NONAME ; struct QMetaObject const * QDeclarativeExpression::metaObject(void) const
- ??0QDeclarativeDomValueLiteral@@QAE@ABV0@@Z @ 352 NONAME ; QDeclarativeDomValueLiteral::QDeclarativeDomValueLiteral(class QDeclarativeDomValueLiteral const &)
- ?getStaticMetaObject@QDeclarativeDebugQuery@@SAABUQMetaObject@@XZ @ 353 NONAME ; struct QMetaObject const & QDeclarativeDebugQuery::getStaticMetaObject(void)
- ??0QDeclarativeDomComponent@@QAE@XZ @ 354 NONAME ; QDeclarativeDomComponent::QDeclarativeDomComponent(void)
- ??1QDeclarativePropertyPrivate@@QAE@XZ @ 355 NONAME ; QDeclarativePropertyPrivate::~QDeclarativePropertyPrivate(void)
- ?setBaselineOffset@QDeclarativeItem@@QAEXM@Z @ 356 NONAME ; void QDeclarativeItem::setBaselineOffset(float)
- ??0QDeclarativeDebugPropertyReference@@QAE@XZ @ 357 NONAME ; QDeclarativeDebugPropertyReference::QDeclarativeDebugPropertyReference(void)
- ?tr@QDeclarativeStateOperation@@SA?AVQString@@PBD0H@Z @ 358 NONAME ; class QString QDeclarativeStateOperation::tr(char const *, char const *, int)
- ?setState@QDeclarativeStateGroup@@QAEXABVQString@@@Z @ 359 NONAME ; void QDeclarativeStateGroup::setState(class QString const &)
- ??_EQDeclarativeImageProvider@@UAE@I@Z @ 360 NONAME ; QDeclarativeImageProvider::~QDeclarativeImageProvider(unsigned int)
- ?trUtf8@QDeclarativeComponent@@SA?AVQString@@PBD0@Z @ 361 NONAME ; class QString QDeclarativeComponent::trUtf8(char const *, char const *)
- ?isLoading@QDeclarativeComponent@@QBE_NXZ @ 362 NONAME ; bool QDeclarativeComponent::isLoading(void) const
- ?createFunction@QDeclarativeType@@QBEP6AXPAX@ZXZ @ 363 NONAME ; void (*)(void *) QDeclarativeType::createFunction(void) const
- ?childrenRect@QDeclarativeItem@@QAE?AVQRectF@@XZ @ 364 NONAME ; class QRectF QDeclarativeItem::childrenRect(void)
- ?tr@QDeclarativeEngineDebug@@SA?AVQString@@PBD0@Z @ 365 NONAME ; class QString QDeclarativeEngineDebug::tr(char const *, char const *)
- ?objectTypeMajorVersion@QDeclarativeDomObject@@QBEHXZ @ 366 NONAME ; int QDeclarativeDomObject::objectTypeMajorVersion(void) const
- ??6QDeclarativeInfo@@QAEAAV0@D@Z @ 367 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(char)
- ??1QDeclarativeDomValueLiteral@@QAE@XZ @ 368 NONAME ; QDeclarativeDomValueLiteral::~QDeclarativeDomValueLiteral(void)
- ?keepMouseGrab@QDeclarativeItem@@QBE_NXZ @ 369 NONAME ; bool QDeclarativeItem::keepMouseGrab(void) const
- ?tr@QDeclarativeEngineDebug@@SA?AVQString@@PBD0H@Z @ 370 NONAME ; class QString QDeclarativeEngineDebug::tr(char const *, char const *, int)
- ?getStaticMetaObject@QDeclarativeDebugConnection@@SAABUQMetaObject@@XZ @ 371 NONAME ; struct QMetaObject const & QDeclarativeDebugConnection::getStaticMetaObject(void)
- ?trUtf8@QDeclarativeDebugRootContextQuery@@SA?AVQString@@PBD0@Z @ 372 NONAME ; class QString QDeclarativeDebugRootContextQuery::trUtf8(char const *, char const *)
- ??AQDeclarativeOpenMetaObject@@QAEAAVQVariant@@H@Z @ 373 NONAME ; class QVariant & QDeclarativeOpenMetaObject::operator[](int)
- ??0Variant@QDeclarativeParser@@QAE@XZ @ 374 NONAME ; QDeclarativeParser::Variant::Variant(void)
- ?status@QDeclarativeView@@QBE?AW4Status@1@XZ @ 375 NONAME ; enum QDeclarativeView::Status QDeclarativeView::status(void) const
- ??0QDeclarativeEngineDebug@@QAE@PAVQDeclarativeDebugConnection@@PAVQObject@@@Z @ 376 NONAME ; QDeclarativeEngineDebug::QDeclarativeEngineDebug(class QDeclarativeDebugConnection *, class QObject *)
- ?create@QDeclarativeComponent@@UAEPAVQObject@@PAVQDeclarativeContext@@@Z @ 377 NONAME ; class QObject * QDeclarativeComponent::create(class QDeclarativeContext *)
- ??_EQPacket@@UAE@I@Z @ 378 NONAME ; QPacket::~QPacket(unsigned int)
- ?trUtf8@QDeclarativeScaleGrid@@SA?AVQString@@PBD0H@Z @ 379 NONAME ; class QString QDeclarativeScaleGrid::trUtf8(char const *, char const *, int)
- ?isResettable@QDeclarativeProperty@@QBE_NXZ @ 380 NONAME ; bool QDeclarativeProperty::isResettable(void) const
- ?isList@QDeclarativeCustomParserProperty@@QBE_NXZ @ 381 NONAME ; bool QDeclarativeCustomParserProperty::isList(void) const
- ?resetVerticalCenter@QDeclarativeAnchors@@QAEXXZ @ 382 NONAME ; void QDeclarativeAnchors::resetVerticalCenter(void)
- ??0QDeclarativeValueType@@QAE@PAVQObject@@@Z @ 383 NONAME ; QDeclarativeValueType::QDeclarativeValueType(class QObject *)
- ?staticMetaObject@QDeclarativeDebugConnection@@2UQMetaObject@@B @ 384 NONAME ; struct QMetaObject const QDeclarativeDebugConnection::staticMetaObject
- ?isLiteral@QDeclarativeDomValue@@QBE_NXZ @ 385 NONAME ; bool QDeclarativeDomValue::isLiteral(void) const
- ?qt_metacall@QDeclarativeItem@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 386 NONAME ; int QDeclarativeItem::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?qt_metacall@QListModelInterface@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 387 NONAME ; int QListModelInterface::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?move@QDeclarativeListModel@@QAEXHHH@Z @ 388 NONAME ; void QDeclarativeListModel::move(int, int, int)
- ?metaObject@QDeclarativeBehavior@@UBEPBUQMetaObject@@XZ @ 389 NONAME ; struct QMetaObject const * QDeclarativeBehavior::metaObject(void) const
- ?inputMethodPreHandler@QDeclarativeItem@@IAEXPAVQInputMethodEvent@@@Z @ 390 NONAME ; void QDeclarativeItem::inputMethodPreHandler(class QInputMethodEvent *)
- ?d_func@QDeclarativeText@@AAEPAVQDeclarativeTextPrivate@@XZ @ 391 NONAME ; class QDeclarativeTextPrivate * QDeclarativeText::d_func(void)
- ?signature@QMetaMethodBuilder@@QBE?AVQByteArray@@XZ @ 392 NONAME ; class QByteArray QMetaMethodBuilder::signature(void) const
- ??_EQDeclarativeParserStatus@@UAE@I@Z @ 393 NONAME ; QDeclarativeParserStatus::~QDeclarativeParserStatus(unsigned int)
- ?rightMargin@QDeclarativeAnchors@@QBEMXZ @ 394 NONAME ; float QDeclarativeAnchors::rightMargin(void) const
- ?itemsMoved@QListModelInterface@@IAEXHHH@Z @ 395 NONAME ; void QListModelInterface::itemsMoved(int, int, int)
- ?rectFFromString@QDeclarativeStringConverters@@YA?AVQRectF@@ABVQString@@PA_N@Z @ 396 NONAME ; class QRectF QDeclarativeStringConverters::rectFFromString(class QString const &, bool *)
- ?canAt@QDeclarativeListReference@@QBE_NXZ @ 397 NONAME ; bool QDeclarativeListReference::canAt(void) const
- ?children@QDeclarativeDebugObjectReference@@QBE?AV?$QList@VQDeclarativeDebugObjectReference@@@@XZ @ 398 NONAME ; class QList<class QDeclarativeDebugObjectReference> QDeclarativeDebugObjectReference::children(void) const
- ?tr@QDeclarativeDebugEnginesQuery@@SA?AVQString@@PBD0@Z @ 399 NONAME ; class QString QDeclarativeDebugEnginesQuery::tr(char const *, char const *)
- ?qt_metacall@QDeclarativeDebugExpressionQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 400 NONAME ; int QDeclarativeDebugExpressionQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?getStaticMetaObject@QDeclarativeEngine@@SAABUQMetaObject@@XZ @ 401 NONAME ; struct QMetaObject const & QDeclarativeEngine::getStaticMetaObject(void)
- ?paintEvent@QDeclarativeView@@MAEXPAVQPaintEvent@@@Z @ 402 NONAME ; void QDeclarativeView::paintEvent(class QPaintEvent *)
- ?name@QDeclarativeDebugPropertyWatch@@QBE?AVQString@@XZ @ 403 NONAME ; class QString QDeclarativeDebugPropertyWatch::name(void) const
- ?bindingType@QDeclarativeAbstractBinding@@UBE?AW4Type@1@XZ @ 404 NONAME ; enum QDeclarativeAbstractBinding::Type QDeclarativeAbstractBinding::bindingType(void) const
- ?margins@QDeclarativeAnchors@@QBEMXZ @ 405 NONAME ; float QDeclarativeAnchors::margins(void) const
- ?length@QDeclarativeDomProperty@@QBEHXZ @ 406 NONAME ; int QDeclarativeDomProperty::length(void) const
- ??1QDeclarativeDomImport@@QAE@XZ @ 407 NONAME ; QDeclarativeDomImport::~QDeclarativeDomImport(void)
- ?addRef@QDeclarativePixmapReply@@AAEXXZ @ 408 NONAME ABSENT ; void QDeclarativePixmapReply::addRef(void)
+ ?height@QDeclarativePixmap@@QBEHXZ @ 346 NONAME ; int QDeclarativePixmap::height(void) const
+ ?getStaticMetaObject@QDeclarativeBehavior@@SAABUQMetaObject@@XZ @ 347 NONAME ; struct QMetaObject const & QDeclarativeBehavior::getStaticMetaObject(void)
+ ??0QMetaEnumBuilder@@QAE@XZ @ 348 NONAME ; QMetaEnumBuilder::QMetaEnumBuilder(void)
+ ?isValueType@QDeclarativeValueTypeFactory@@SA_NH@Z @ 349 NONAME ; bool QDeclarativeValueTypeFactory::isValueType(int)
+ ?setWidth@QDeclarativePen@@QAEXH@Z @ 350 NONAME ; void QDeclarativePen::setWidth(int)
+ ?isReadable@QMetaPropertyBuilder@@QBE_NXZ @ 351 NONAME ; bool QMetaPropertyBuilder::isReadable(void) const
+ ?metaObject@QDeclarativeExpression@@UBEPBUQMetaObject@@XZ @ 352 NONAME ; struct QMetaObject const * QDeclarativeExpression::metaObject(void) const
+ ??0QDeclarativeDomValueLiteral@@QAE@ABV0@@Z @ 353 NONAME ; QDeclarativeDomValueLiteral::QDeclarativeDomValueLiteral(class QDeclarativeDomValueLiteral const &)
+ ?getStaticMetaObject@QDeclarativeDebugQuery@@SAABUQMetaObject@@XZ @ 354 NONAME ; struct QMetaObject const & QDeclarativeDebugQuery::getStaticMetaObject(void)
+ ??0QDeclarativeDomComponent@@QAE@XZ @ 355 NONAME ; QDeclarativeDomComponent::QDeclarativeDomComponent(void)
+ ??1QDeclarativePropertyPrivate@@QAE@XZ @ 356 NONAME ; QDeclarativePropertyPrivate::~QDeclarativePropertyPrivate(void)
+ ?setBaselineOffset@QDeclarativeItem@@QAEXM@Z @ 357 NONAME ; void QDeclarativeItem::setBaselineOffset(float)
+ ??0QDeclarativeDebugPropertyReference@@QAE@XZ @ 358 NONAME ; QDeclarativeDebugPropertyReference::QDeclarativeDebugPropertyReference(void)
+ ?tr@QDeclarativeStateOperation@@SA?AVQString@@PBD0H@Z @ 359 NONAME ; class QString QDeclarativeStateOperation::tr(char const *, char const *, int)
+ ?setState@QDeclarativeStateGroup@@QAEXABVQString@@@Z @ 360 NONAME ; void QDeclarativeStateGroup::setState(class QString const &)
+ ??_EQDeclarativeImageProvider@@UAE@I@Z @ 361 NONAME ; QDeclarativeImageProvider::~QDeclarativeImageProvider(unsigned int)
+ ?trUtf8@QDeclarativeComponent@@SA?AVQString@@PBD0@Z @ 362 NONAME ; class QString QDeclarativeComponent::trUtf8(char const *, char const *)
+ ?isLoading@QDeclarativeComponent@@QBE_NXZ @ 363 NONAME ; bool QDeclarativeComponent::isLoading(void) const
+ ?createFunction@QDeclarativeType@@QBEP6AXPAX@ZXZ @ 364 NONAME ; void (*)(void *) QDeclarativeType::createFunction(void) const
+ ?childrenRect@QDeclarativeItem@@QAE?AVQRectF@@XZ @ 365 NONAME ; class QRectF QDeclarativeItem::childrenRect(void)
+ ?tr@QDeclarativeEngineDebug@@SA?AVQString@@PBD0@Z @ 366 NONAME ; class QString QDeclarativeEngineDebug::tr(char const *, char const *)
+ ?objectTypeMajorVersion@QDeclarativeDomObject@@QBEHXZ @ 367 NONAME ; int QDeclarativeDomObject::objectTypeMajorVersion(void) const
+ ??6QDeclarativeInfo@@QAEAAV0@D@Z @ 368 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(char)
+ ??1QDeclarativeDomValueLiteral@@QAE@XZ @ 369 NONAME ; QDeclarativeDomValueLiteral::~QDeclarativeDomValueLiteral(void)
+ ?keepMouseGrab@QDeclarativeItem@@QBE_NXZ @ 370 NONAME ; bool QDeclarativeItem::keepMouseGrab(void) const
+ ?tr@QDeclarativeEngineDebug@@SA?AVQString@@PBD0H@Z @ 371 NONAME ; class QString QDeclarativeEngineDebug::tr(char const *, char const *, int)
+ ?getStaticMetaObject@QDeclarativeDebugConnection@@SAABUQMetaObject@@XZ @ 372 NONAME ; struct QMetaObject const & QDeclarativeDebugConnection::getStaticMetaObject(void)
+ ?trUtf8@QDeclarativeDebugRootContextQuery@@SA?AVQString@@PBD0@Z @ 373 NONAME ; class QString QDeclarativeDebugRootContextQuery::trUtf8(char const *, char const *)
+ ??AQDeclarativeOpenMetaObject@@QAEAAVQVariant@@H@Z @ 374 NONAME ; class QVariant & QDeclarativeOpenMetaObject::operator[](int)
+ ??0Variant@QDeclarativeParser@@QAE@XZ @ 375 NONAME ; QDeclarativeParser::Variant::Variant(void)
+ ?status@QDeclarativeView@@QBE?AW4Status@1@XZ @ 376 NONAME ; enum QDeclarativeView::Status QDeclarativeView::status(void) const
+ ??0QDeclarativeEngineDebug@@QAE@PAVQDeclarativeDebugConnection@@PAVQObject@@@Z @ 377 NONAME ; QDeclarativeEngineDebug::QDeclarativeEngineDebug(class QDeclarativeDebugConnection *, class QObject *)
+ ?create@QDeclarativeComponent@@UAEPAVQObject@@PAVQDeclarativeContext@@@Z @ 378 NONAME ; class QObject * QDeclarativeComponent::create(class QDeclarativeContext *)
+ ??_EQPacket@@UAE@I@Z @ 379 NONAME ; QPacket::~QPacket(unsigned int)
+ ?trUtf8@QDeclarativeScaleGrid@@SA?AVQString@@PBD0H@Z @ 380 NONAME ; class QString QDeclarativeScaleGrid::trUtf8(char const *, char const *, int)
+ ?isResettable@QDeclarativeProperty@@QBE_NXZ @ 381 NONAME ; bool QDeclarativeProperty::isResettable(void) const
+ ?isList@QDeclarativeCustomParserProperty@@QBE_NXZ @ 382 NONAME ; bool QDeclarativeCustomParserProperty::isList(void) const
+ ?resetVerticalCenter@QDeclarativeAnchors@@QAEXXZ @ 383 NONAME ; void QDeclarativeAnchors::resetVerticalCenter(void)
+ ??0QDeclarativeValueType@@QAE@PAVQObject@@@Z @ 384 NONAME ; QDeclarativeValueType::QDeclarativeValueType(class QObject *)
+ ?staticMetaObject@QDeclarativeDebugConnection@@2UQMetaObject@@B @ 385 NONAME ; struct QMetaObject const QDeclarativeDebugConnection::staticMetaObject
+ ?isLiteral@QDeclarativeDomValue@@QBE_NXZ @ 386 NONAME ; bool QDeclarativeDomValue::isLiteral(void) const
+ ?qt_metacall@QDeclarativeItem@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 387 NONAME ; int QDeclarativeItem::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?qt_metacall@QListModelInterface@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 388 NONAME ; int QListModelInterface::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?move@QDeclarativeListModel@@QAEXHHH@Z @ 389 NONAME ; void QDeclarativeListModel::move(int, int, int)
+ ?metaObject@QDeclarativeBehavior@@UBEPBUQMetaObject@@XZ @ 390 NONAME ; struct QMetaObject const * QDeclarativeBehavior::metaObject(void) const
+ ?inputMethodPreHandler@QDeclarativeItem@@IAEXPAVQInputMethodEvent@@@Z @ 391 NONAME ; void QDeclarativeItem::inputMethodPreHandler(class QInputMethodEvent *)
+ ?d_func@QDeclarativeText@@AAEPAVQDeclarativeTextPrivate@@XZ @ 392 NONAME ; class QDeclarativeTextPrivate * QDeclarativeText::d_func(void)
+ ?signature@QMetaMethodBuilder@@QBE?AVQByteArray@@XZ @ 393 NONAME ; class QByteArray QMetaMethodBuilder::signature(void) const
+ ??_EQDeclarativeParserStatus@@UAE@I@Z @ 394 NONAME ; QDeclarativeParserStatus::~QDeclarativeParserStatus(unsigned int)
+ ?rightMargin@QDeclarativeAnchors@@QBEMXZ @ 395 NONAME ; float QDeclarativeAnchors::rightMargin(void) const
+ ?itemsMoved@QListModelInterface@@IAEXHHH@Z @ 396 NONAME ; void QListModelInterface::itemsMoved(int, int, int)
+ ?rectFFromString@QDeclarativeStringConverters@@YA?AVQRectF@@ABVQString@@PA_N@Z @ 397 NONAME ; class QRectF QDeclarativeStringConverters::rectFFromString(class QString const &, bool *)
+ ?canAt@QDeclarativeListReference@@QBE_NXZ @ 398 NONAME ; bool QDeclarativeListReference::canAt(void) const
+ ?children@QDeclarativeDebugObjectReference@@QBE?AV?$QList@VQDeclarativeDebugObjectReference@@@@XZ @ 399 NONAME ; class QList<class QDeclarativeDebugObjectReference> QDeclarativeDebugObjectReference::children(void) const
+ ?tr@QDeclarativeDebugEnginesQuery@@SA?AVQString@@PBD0@Z @ 400 NONAME ; class QString QDeclarativeDebugEnginesQuery::tr(char const *, char const *)
+ ?qt_metacall@QDeclarativeDebugExpressionQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 401 NONAME ; int QDeclarativeDebugExpressionQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?getStaticMetaObject@QDeclarativeEngine@@SAABUQMetaObject@@XZ @ 402 NONAME ; struct QMetaObject const & QDeclarativeEngine::getStaticMetaObject(void)
+ ?paintEvent@QDeclarativeView@@MAEXPAVQPaintEvent@@@Z @ 403 NONAME ; void QDeclarativeView::paintEvent(class QPaintEvent *)
+ ?name@QDeclarativeDebugPropertyWatch@@QBE?AVQString@@XZ @ 404 NONAME ; class QString QDeclarativeDebugPropertyWatch::name(void) const
+ ?bindingType@QDeclarativeAbstractBinding@@UBE?AW4Type@1@XZ @ 405 NONAME ; enum QDeclarativeAbstractBinding::Type QDeclarativeAbstractBinding::bindingType(void) const
+ ?margins@QDeclarativeAnchors@@QBEMXZ @ 406 NONAME ; float QDeclarativeAnchors::margins(void) const
+ ?length@QDeclarativeDomProperty@@QBEHXZ @ 407 NONAME ; int QDeclarativeDomProperty::length(void) const
+ ??1QDeclarativeDomImport@@QAE@XZ @ 408 NONAME ; QDeclarativeDomImport::~QDeclarativeDomImport(void)
?mouseReleaseEvent@QDeclarativeText@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 409 NONAME ; void QDeclarativeText::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
?isCustomType@QDeclarativeDomObject@@QBE_NXZ @ 410 NONAME ; bool QDeclarativeDomObject::isCustomType(void) const
- ?registerType@QDeclarativePrivate@@YAHABURegisterType@1@@Z @ 411 NONAME ABSENT ; int QDeclarativePrivate::registerType(struct QDeclarativePrivate::RegisterType const &)
- ?radius@QDeclarativeRectangle@@QBEMXZ @ 412 NONAME ; float QDeclarativeRectangle::radius(void) const
- ??0QDeclarativeComponent@@AAE@PAVQDeclarativeEngine@@PAVQDeclarativeCompiledData@@HHPAVQObject@@@Z @ 413 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QDeclarativeCompiledData *, int, int, class QObject *)
- ?resources_count@QDeclarativeItemPrivate@@SAHPAV?$QDeclarativeListProperty@VQObject@@@@@Z @ 414 NONAME ; int QDeclarativeItemPrivate::resources_count(class QDeclarativeListProperty<class QObject> *)
- ?timerEvent@QDeclarativeView@@MAEXPAVQTimerEvent@@@Z @ 415 NONAME ; void QDeclarativeView::timerEvent(class QTimerEvent *)
- ?finished@QDeclarativePixmapReply@@IAEXXZ @ 416 NONAME ABSENT ; void QDeclarativePixmapReply::finished(void)
- ?setToState@QDeclarativeTransition@@QAEXABVQString@@@Z @ 417 NONAME ; void QDeclarativeTransition::setToState(class QString const &)
- ?methodType@QMetaMethodBuilder@@QBE?AW4MethodType@QMetaMethod@@XZ @ 418 NONAME ; enum QMetaMethod::MethodType QMetaMethodBuilder::methodType(void) const
- ?getStaticMetaObject@QDeclarativeView@@SAABUQMetaObject@@XZ @ 419 NONAME ; struct QMetaObject const & QDeclarativeView::getStaticMetaObject(void)
- ?metaObject@QDeclarativeStateOperation@@UBEPBUQMetaObject@@XZ @ 420 NONAME ; struct QMetaObject const * QDeclarativeStateOperation::metaObject(void) const
- ?keyReleasePreHandler@QDeclarativeItem@@IAEXPAVQKeyEvent@@@Z @ 421 NONAME ; void QDeclarativeItem::keyReleasePreHandler(class QKeyEvent *)
- ?append@QDeclarativeListModel@@QAEXABVQScriptValue@@@Z @ 422 NONAME ; void QDeclarativeListModel::append(class QScriptValue const &)
- ??1QDeclarativeDebugObjectReference@@QAE@XZ @ 423 NONAME ; QDeclarativeDebugObjectReference::~QDeclarativeDebugObjectReference(void)
- ?tr@QDeclarativeDebugClient@@SA?AVQString@@PBD0@Z @ 424 NONAME ; class QString QDeclarativeDebugClient::tr(char const *, char const *)
- ?resolvedUrl@QDeclarativeContext@@QAE?AVQUrl@@ABV2@@Z @ 425 NONAME ; class QUrl QDeclarativeContext::resolvedUrl(class QUrl const &)
- ?object@QDeclarativeListReference@@QBEPAVQObject@@XZ @ 426 NONAME ; class QObject * QDeclarativeListReference::object(void) const
- ?setEnabled@QDeclarativeBehavior@@QAEX_N@Z @ 427 NONAME ; void QDeclarativeBehavior::setEnabled(bool)
- ?line@QDeclarativeError@@QBEHXZ @ 428 NONAME ; int QDeclarativeError::line(void) const
- ?heightValid@QDeclarativeItem@@IBE_NXZ @ 429 NONAME ; bool QDeclarativeItem::heightValid(void) const
- ??1QDeclarativeOpenMetaObject@@UAE@XZ @ 430 NONAME ; QDeclarativeOpenMetaObject::~QDeclarativeOpenMetaObject(void)
- ??0QPacket@@QAE@XZ @ 431 NONAME ; QPacket::QPacket(void)
- ?trUtf8@QDeclarativePropertyMap@@SA?AVQString@@PBD0H@Z @ 432 NONAME ; class QString QDeclarativePropertyMap::trUtf8(char const *, char const *, int)
- ?trUtf8@QDeclarativeEngine@@SA?AVQString@@PBD0H@Z @ 433 NONAME ; class QString QDeclarativeEngine::trUtf8(char const *, char const *, int)
- ??0QDeclarativeDebugEngineReference@@QAE@XZ @ 434 NONAME ; QDeclarativeDebugEngineReference::QDeclarativeDebugEngineReference(void)
- ?qmlEngine@@YAPAVQDeclarativeEngine@@PBVQObject@@@Z @ 435 NONAME ; class QDeclarativeEngine * qmlEngine(class QObject const *)
- ?error@QDeclarativeExpression@@QBE?AVQDeclarativeError@@XZ @ 436 NONAME ; class QDeclarativeError QDeclarativeExpression::error(void) const
- ?tr@QDeclarativeDebugExpressionQuery@@SA?AVQString@@PBD0@Z @ 437 NONAME ; class QString QDeclarativeDebugExpressionQuery::tr(char const *, char const *)
- ?styleColorChanged@QDeclarativeText@@IAEXABVQColor@@@Z @ 438 NONAME ; void QDeclarativeText::styleColorChanged(class QColor const &)
- ?getStaticMetaObject@QDeclarativeDebugExpressionQuery@@SAABUQMetaObject@@XZ @ 439 NONAME ; struct QMetaObject const & QDeclarativeDebugExpressionQuery::getStaticMetaObject(void)
- ?trUtf8@QDeclarativeTransition@@SA?AVQString@@PBD0H@Z @ 440 NONAME ; class QString QDeclarativeTransition::trUtf8(char const *, char const *, int)
- ?writeValueProperty@QDeclarativePropertyPrivate@@QAE_NABVQVariant@@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 441 NONAME ; bool QDeclarativePropertyPrivate::writeValueProperty(class QVariant const &, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
- ?errors@QDeclarativeCustomParser@@QBE?AV?$QList@VQDeclarativeError@@@@XZ @ 442 NONAME ; class QList<class QDeclarativeError> QDeclarativeCustomParser::errors(void) const
- ?statesProperty@QDeclarativeStateGroup@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeState@@@@XZ @ 443 NONAME ; class QDeclarativeListProperty<class QDeclarativeState> QDeclarativeStateGroup::statesProperty(void)
- ?roles@QDeclarativeListModel@@UBE?AV?$QList@H@@XZ @ 444 NONAME ; class QList<int> QDeclarativeListModel::roles(void) const
- ?name@QMetaEnumBuilder@@QBE?AVQByteArray@@XZ @ 445 NONAME ; class QByteArray QMetaEnumBuilder::name(void) const
- ??_EQDeclarativeDebugRootContextQuery@@UAE@I@Z @ 446 NONAME ; QDeclarativeDebugRootContextQuery::~QDeclarativeDebugRootContextQuery(unsigned int)
- ?setColor@QDeclarativeRectangle@@QAEXABVQColor@@@Z @ 447 NONAME ; void QDeclarativeRectangle::setColor(class QColor const &)
- ?clipChanged@QDeclarativeItem@@IAEX_N@Z @ 448 NONAME ; void QDeclarativeItem::clipChanged(bool)
- ??0QDeclarativeCustomParser@@QAE@V?$QFlags@W4Flag@QDeclarativeCustomParser@@@@@Z @ 449 NONAME ; QDeclarativeCustomParser::QDeclarativeCustomParser(class QFlags<enum QDeclarativeCustomParser::Flag>)
- ?valueChanged@QDeclarativeDebugWatch@@IAEXABVQByteArray@@ABVQVariant@@@Z @ 450 NONAME ; void QDeclarativeDebugWatch::valueChanged(class QByteArray const &, class QVariant const &)
+ ?radius@QDeclarativeRectangle@@QBEMXZ @ 411 NONAME ; float QDeclarativeRectangle::radius(void) const
+ ??0QDeclarativeComponent@@AAE@PAVQDeclarativeEngine@@PAVQDeclarativeCompiledData@@HHPAVQObject@@@Z @ 412 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QDeclarativeCompiledData *, int, int, class QObject *)
+ ?resources_count@QDeclarativeItemPrivate@@SAHPAV?$QDeclarativeListProperty@VQObject@@@@@Z @ 413 NONAME ; int QDeclarativeItemPrivate::resources_count(class QDeclarativeListProperty<class QObject> *)
+ ?timerEvent@QDeclarativeView@@MAEXPAVQTimerEvent@@@Z @ 414 NONAME ; void QDeclarativeView::timerEvent(class QTimerEvent *)
+ ?setToState@QDeclarativeTransition@@QAEXABVQString@@@Z @ 415 NONAME ; void QDeclarativeTransition::setToState(class QString const &)
+ ?requestPixmap@QDeclarativeImageProvider@@UAE?AVQPixmap@@ABVQString@@PAVQSize@@ABV4@@Z @ 416 NONAME ; class QPixmap QDeclarativeImageProvider::requestPixmap(class QString const &, class QSize *, class QSize const &)
+ ?methodType@QMetaMethodBuilder@@QBE?AW4MethodType@QMetaMethod@@XZ @ 417 NONAME ; enum QMetaMethod::MethodType QMetaMethodBuilder::methodType(void) const
+ ?getStaticMetaObject@QDeclarativeView@@SAABUQMetaObject@@XZ @ 418 NONAME ; struct QMetaObject const & QDeclarativeView::getStaticMetaObject(void)
+ ?metaObject@QDeclarativeStateOperation@@UBEPBUQMetaObject@@XZ @ 419 NONAME ; struct QMetaObject const * QDeclarativeStateOperation::metaObject(void) const
+ ?keyReleasePreHandler@QDeclarativeItem@@IAEXPAVQKeyEvent@@@Z @ 420 NONAME ; void QDeclarativeItem::keyReleasePreHandler(class QKeyEvent *)
+ ?append@QDeclarativeListModel@@QAEXABVQScriptValue@@@Z @ 421 NONAME ; void QDeclarativeListModel::append(class QScriptValue const &)
+ ??1QDeclarativeDebugObjectReference@@QAE@XZ @ 422 NONAME ; QDeclarativeDebugObjectReference::~QDeclarativeDebugObjectReference(void)
+ ?tr@QDeclarativeDebugClient@@SA?AVQString@@PBD0@Z @ 423 NONAME ; class QString QDeclarativeDebugClient::tr(char const *, char const *)
+ ?resolvedUrl@QDeclarativeContext@@QAE?AVQUrl@@ABV2@@Z @ 424 NONAME ; class QUrl QDeclarativeContext::resolvedUrl(class QUrl const &)
+ ?object@QDeclarativeListReference@@QBEPAVQObject@@XZ @ 425 NONAME ; class QObject * QDeclarativeListReference::object(void) const
+ ?setEnabled@QDeclarativeBehavior@@QAEX_N@Z @ 426 NONAME ; void QDeclarativeBehavior::setEnabled(bool)
+ ?line@QDeclarativeError@@QBEHXZ @ 427 NONAME ; int QDeclarativeError::line(void) const
+ ?heightValid@QDeclarativeItem@@IBE_NXZ @ 428 NONAME ; bool QDeclarativeItem::heightValid(void) const
+ ??1QDeclarativeOpenMetaObject@@UAE@XZ @ 429 NONAME ; QDeclarativeOpenMetaObject::~QDeclarativeOpenMetaObject(void)
+ ??0QPacket@@QAE@XZ @ 430 NONAME ; QPacket::QPacket(void)
+ ?trUtf8@QDeclarativePropertyMap@@SA?AVQString@@PBD0H@Z @ 431 NONAME ; class QString QDeclarativePropertyMap::trUtf8(char const *, char const *, int)
+ ?trUtf8@QDeclarativeEngine@@SA?AVQString@@PBD0H@Z @ 432 NONAME ; class QString QDeclarativeEngine::trUtf8(char const *, char const *, int)
+ ??0QDeclarativeDebugEngineReference@@QAE@XZ @ 433 NONAME ; QDeclarativeDebugEngineReference::QDeclarativeDebugEngineReference(void)
+ ?qmlEngine@@YAPAVQDeclarativeEngine@@PBVQObject@@@Z @ 434 NONAME ; class QDeclarativeEngine * qmlEngine(class QObject const *)
+ ?error@QDeclarativeExpression@@QBE?AVQDeclarativeError@@XZ @ 435 NONAME ; class QDeclarativeError QDeclarativeExpression::error(void) const
+ ?tr@QDeclarativeDebugExpressionQuery@@SA?AVQString@@PBD0@Z @ 436 NONAME ; class QString QDeclarativeDebugExpressionQuery::tr(char const *, char const *)
+ ?styleColorChanged@QDeclarativeText@@IAEXABVQColor@@@Z @ 437 NONAME ; void QDeclarativeText::styleColorChanged(class QColor const &)
+ ?getStaticMetaObject@QDeclarativeDebugExpressionQuery@@SAABUQMetaObject@@XZ @ 438 NONAME ; struct QMetaObject const & QDeclarativeDebugExpressionQuery::getStaticMetaObject(void)
+ ?trUtf8@QDeclarativeTransition@@SA?AVQString@@PBD0H@Z @ 439 NONAME ; class QString QDeclarativeTransition::trUtf8(char const *, char const *, int)
+ ?writeValueProperty@QDeclarativePropertyPrivate@@QAE_NABVQVariant@@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 440 NONAME ; bool QDeclarativePropertyPrivate::writeValueProperty(class QVariant const &, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
+ ?errors@QDeclarativeCustomParser@@QBE?AV?$QList@VQDeclarativeError@@@@XZ @ 441 NONAME ; class QList<class QDeclarativeError> QDeclarativeCustomParser::errors(void) const
+ ?statesProperty@QDeclarativeStateGroup@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeState@@@@XZ @ 442 NONAME ; class QDeclarativeListProperty<class QDeclarativeState> QDeclarativeStateGroup::statesProperty(void)
+ ?roles@QDeclarativeListModel@@UBE?AV?$QList@H@@XZ @ 443 NONAME ; class QList<int> QDeclarativeListModel::roles(void) const
+ ?name@QMetaEnumBuilder@@QBE?AVQByteArray@@XZ @ 444 NONAME ; class QByteArray QMetaEnumBuilder::name(void) const
+ ??_EQDeclarativeDebugRootContextQuery@@UAE@I@Z @ 445 NONAME ; QDeclarativeDebugRootContextQuery::~QDeclarativeDebugRootContextQuery(unsigned int)
+ ?setColor@QDeclarativeRectangle@@QAEXABVQColor@@@Z @ 446 NONAME ; void QDeclarativeRectangle::setColor(class QColor const &)
+ ?clipChanged@QDeclarativeItem@@IAEX_N@Z @ 447 NONAME ; void QDeclarativeItem::clipChanged(bool)
+ ??0QDeclarativeCustomParser@@QAE@V?$QFlags@W4Flag@QDeclarativeCustomParser@@@@@Z @ 448 NONAME ; QDeclarativeCustomParser::QDeclarativeCustomParser(class QFlags<enum QDeclarativeCustomParser::Flag>)
+ ?valueChanged@QDeclarativeDebugWatch@@IAEXABVQByteArray@@ABVQVariant@@@Z @ 449 NONAME ; void QDeclarativeDebugWatch::valueChanged(class QByteArray const &, class QVariant const &)
+ ?activeFocusChanged@QDeclarativeItem@@IAEX_N@Z @ 450 NONAME ; void QDeclarativeItem::activeFocusChanged(bool)
?smoothChanged@QDeclarativeItem@@IAEX_N@Z @ 451 NONAME ; void QDeclarativeItem::smoothChanged(bool)
?colorChanged@QDeclarativeText@@IAEXABVQColor@@@Z @ 452 NONAME ; void QDeclarativeText::colorChanged(class QColor const &)
?continueExecute@QDeclarativeView@@AAEXXZ @ 453 NONAME ; void QDeclarativeView::continueExecute(void)
@@ -485,41 +485,41 @@ EXPORTS
?staticMetaObject@QDeclarativeDebugService@@2UQMetaObject@@B @ 484 NONAME ; struct QMetaObject const QDeclarativeDebugService::staticMetaObject
?topMargin@QDeclarativeAnchors@@QBEMXZ @ 485 NONAME ; float QDeclarativeAnchors::topMargin(void) const
??0QDeclarativeDebugExpressionQuery@@AAE@PAVQObject@@@Z @ 486 NONAME ; QDeclarativeDebugExpressionQuery::QDeclarativeDebugExpressionQuery(class QObject *)
- ?qt_metacast@QDeclarativePixmapReply@@UAEPAXPBD@Z @ 487 NONAME ABSENT ; void * QDeclarativePixmapReply::qt_metacast(char const *)
- ??0QPacket@@IAE@ABVQByteArray@@@Z @ 488 NONAME ; QPacket::QPacket(class QByteArray const &)
+ ??0QPacket@@IAE@ABVQByteArray@@@Z @ 487 NONAME ; QPacket::QPacket(class QByteArray const &)
+ ?implicitSize@QDeclarativePixmap@@QBEABVQSize@@XZ @ 488 NONAME ; class QSize const & QDeclarativePixmap::implicitSize(void) const
?setFlags@QMetaObjectBuilder@@QAEXV?$QFlags@W4MetaObjectFlag@QMetaObjectBuilder@@@@@Z @ 489 NONAME ; void QMetaObjectBuilder::setFlags(class QFlags<enum QMetaObjectBuilder::MetaObjectFlag>)
?horizontalCenterChanged@QDeclarativeAnchors@@IAEXXZ @ 490 NONAME ; void QDeclarativeAnchors::horizontalCenterChanged(void)
?right@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 491 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::right(void) const
- ?pendingRequests@QDeclarativePixmapCache@@SAHXZ @ 492 NONAME ABSENT ; int QDeclarativePixmapCache::pendingRequests(void)
- ?staticMetaObject@QDeclarativeDebugObjectQuery@@2UQMetaObject@@B @ 493 NONAME ; struct QMetaObject const QDeclarativeDebugObjectQuery::staticMetaObject
- ?propertyRead@QDeclarativeOpenMetaObject@@MAEXH@Z @ 494 NONAME ; void QDeclarativeOpenMetaObject::propertyRead(int)
- ?importPathList@QDeclarativeEngine@@QBE?AVQStringList@@XZ @ 495 NONAME ; class QStringList QDeclarativeEngine::importPathList(void) const
- ?border@QDeclarativeRectangle@@QAEPAVQDeclarativePen@@XZ @ 496 NONAME ; class QDeclarativePen * QDeclarativeRectangle::border(void)
- ?baselineOffset@QDeclarativeItem@@QBEMXZ @ 497 NONAME ; float QDeclarativeItem::baselineOffset(void) const
- ?dateFromString@QDeclarativeStringConverters@@YA?AVQDate@@ABVQString@@PA_N@Z @ 498 NONAME ; class QDate QDeclarativeStringConverters::dateFromString(class QString const &, bool *)
- ?qt_metacast@QDeclarativeDebugObjectExpressionWatch@@UAEPAXPBD@Z @ 499 NONAME ; void * QDeclarativeDebugObjectExpressionWatch::qt_metacast(char const *)
- ??0QDeclarativeDomValue@@QAE@ABV0@@Z @ 500 NONAME ; QDeclarativeDomValue::QDeclarativeDomValue(class QDeclarativeDomValue const &)
- ??1QDeclarativeListModel@@UAE@XZ @ 501 NONAME ; QDeclarativeListModel::~QDeclarativeListModel(void)
- ?qmlAttachedPropertiesObject@@YAPAVQObject@@PAHPBV1@PBUQMetaObject@@_N@Z @ 502 NONAME ; class QObject * qmlAttachedPropertiesObject(int *, class QObject const *, struct QMetaObject const *, bool)
- ??_EQDeclarativeDebugClient@@UAE@I@Z @ 503 NONAME ; QDeclarativeDebugClient::~QDeclarativeDebugClient(unsigned int)
- ??4QDeclarativeDomComponent@@QAEAAV0@ABV0@@Z @ 504 NONAME ; class QDeclarativeDomComponent & QDeclarativeDomComponent::operator=(class QDeclarativeDomComponent const &)
- ?tr@QPacketProtocol@@SA?AVQString@@PBD0@Z @ 505 NONAME ; class QString QPacketProtocol::tr(char const *, char const *)
- ?setFont@QDeclarativeText@@QAEXABVQFont@@@Z @ 506 NONAME ; void QDeclarativeText::setFont(class QFont const &)
- ?fromChanged@QDeclarativeTransition@@IAEXXZ @ 507 NONAME ; void QDeclarativeTransition::fromChanged(void)
- ?addMethod@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQMetaMethod@@@Z @ 508 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addMethod(class QMetaMethod const &)
- ?setHeight@QDeclarativeItemPrivate@@UAEXM@Z @ 509 NONAME ; void QDeclarativeItemPrivate::setHeight(float)
- ??0Variant@QDeclarativeParser@@QAE@ABV01@@Z @ 510 NONAME ; QDeclarativeParser::Variant::Variant(class QDeclarativeParser::Variant const &)
- ?getStaticMetaObject@QDeclarativeExtensionPlugin@@SAABUQMetaObject@@XZ @ 511 NONAME ; struct QMetaObject const & QDeclarativeExtensionPlugin::getStaticMetaObject(void)
- ??0QDeclarativeBinding@@QAE@PAXPAVQDeclarativeRefCount@@PAVQObject@@PAVQDeclarativeContextData@@ABVQString@@H2@Z @ 512 NONAME ; QDeclarativeBinding::QDeclarativeBinding(void *, class QDeclarativeRefCount *, class QObject *, class QDeclarativeContextData *, class QString const &, int, class QObject *)
- ?qt_metacast@QDeclarativeDebugClient@@UAEPAXPBD@Z @ 513 NONAME ; void * QDeclarativeDebugClient::qt_metacast(char const *)
- ?classInfoValue@QMetaObjectBuilder@@QBE?AVQByteArray@@H@Z @ 514 NONAME ; class QByteArray QMetaObjectBuilder::classInfoValue(int) const
- ?right@QDeclarativeScaleGrid@@QBEHXZ @ 515 NONAME ; int QDeclarativeScaleGrid::right(void) const
- ?setClassName@QMetaObjectBuilder@@QAEXABVQByteArray@@@Z @ 516 NONAME ; void QMetaObjectBuilder::setClassName(class QByteArray const &)
- ??1QDeclarativeAnchors@@UAE@XZ @ 517 NONAME ; QDeclarativeAnchors::~QDeclarativeAnchors(void)
- ?removeConstructor@QMetaObjectBuilder@@QAEXH@Z @ 518 NONAME ; void QMetaObjectBuilder::removeConstructor(int)
- ??4QDeclarativeDomValueValueInterceptor@@QAEAAV0@ABV0@@Z @ 519 NONAME ; class QDeclarativeDomValueValueInterceptor & QDeclarativeDomValueValueInterceptor::operator=(class QDeclarativeDomValueValueInterceptor const &)
- ?resolveType@QDeclarativeCustomParser@@IBEPBUQMetaObject@@ABVQByteArray@@@Z @ 520 NONAME ; struct QMetaObject const * QDeclarativeCustomParser::resolveType(class QByteArray const &) const
- ??_EQDeclarativePropertyValueSource@@UAE@I@Z @ 521 NONAME ; QDeclarativePropertyValueSource::~QDeclarativePropertyValueSource(unsigned int)
+ ?staticMetaObject@QDeclarativeDebugObjectQuery@@2UQMetaObject@@B @ 492 NONAME ; struct QMetaObject const QDeclarativeDebugObjectQuery::staticMetaObject
+ ?propertyRead@QDeclarativeOpenMetaObject@@MAEXH@Z @ 493 NONAME ; void QDeclarativeOpenMetaObject::propertyRead(int)
+ ?importPathList@QDeclarativeEngine@@QBE?AVQStringList@@XZ @ 494 NONAME ; class QStringList QDeclarativeEngine::importPathList(void) const
+ ?border@QDeclarativeRectangle@@QAEPAVQDeclarativePen@@XZ @ 495 NONAME ; class QDeclarativePen * QDeclarativeRectangle::border(void)
+ ?baselineOffset@QDeclarativeItem@@QBEMXZ @ 496 NONAME ; float QDeclarativeItem::baselineOffset(void) const
+ ?dateFromString@QDeclarativeStringConverters@@YA?AVQDate@@ABVQString@@PA_N@Z @ 497 NONAME ; class QDate QDeclarativeStringConverters::dateFromString(class QString const &, bool *)
+ ?qt_metacast@QDeclarativeDebugObjectExpressionWatch@@UAEPAXPBD@Z @ 498 NONAME ; void * QDeclarativeDebugObjectExpressionWatch::qt_metacast(char const *)
+ ??0QDeclarativeDomValue@@QAE@ABV0@@Z @ 499 NONAME ; QDeclarativeDomValue::QDeclarativeDomValue(class QDeclarativeDomValue const &)
+ ??1QDeclarativeListModel@@UAE@XZ @ 500 NONAME ; QDeclarativeListModel::~QDeclarativeListModel(void)
+ ?qmlAttachedPropertiesObject@@YAPAVQObject@@PAHPBV1@PBUQMetaObject@@_N@Z @ 501 NONAME ; class QObject * qmlAttachedPropertiesObject(int *, class QObject const *, struct QMetaObject const *, bool)
+ ??_EQDeclarativeDebugClient@@UAE@I@Z @ 502 NONAME ; QDeclarativeDebugClient::~QDeclarativeDebugClient(unsigned int)
+ ??4QDeclarativeDomComponent@@QAEAAV0@ABV0@@Z @ 503 NONAME ; class QDeclarativeDomComponent & QDeclarativeDomComponent::operator=(class QDeclarativeDomComponent const &)
+ ?tr@QPacketProtocol@@SA?AVQString@@PBD0@Z @ 504 NONAME ; class QString QPacketProtocol::tr(char const *, char const *)
+ ?setFont@QDeclarativeText@@QAEXABVQFont@@@Z @ 505 NONAME ; void QDeclarativeText::setFont(class QFont const &)
+ ?fromChanged@QDeclarativeTransition@@IAEXXZ @ 506 NONAME ; void QDeclarativeTransition::fromChanged(void)
+ ?addMethod@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQMetaMethod@@@Z @ 507 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addMethod(class QMetaMethod const &)
+ ?setHeight@QDeclarativeItemPrivate@@UAEXM@Z @ 508 NONAME ; void QDeclarativeItemPrivate::setHeight(float)
+ ??0Variant@QDeclarativeParser@@QAE@ABV01@@Z @ 509 NONAME ; QDeclarativeParser::Variant::Variant(class QDeclarativeParser::Variant const &)
+ ?getStaticMetaObject@QDeclarativeExtensionPlugin@@SAABUQMetaObject@@XZ @ 510 NONAME ; struct QMetaObject const & QDeclarativeExtensionPlugin::getStaticMetaObject(void)
+ ??0QDeclarativeBinding@@QAE@PAXPAVQDeclarativeRefCount@@PAVQObject@@PAVQDeclarativeContextData@@ABVQString@@H2@Z @ 511 NONAME ; QDeclarativeBinding::QDeclarativeBinding(void *, class QDeclarativeRefCount *, class QObject *, class QDeclarativeContextData *, class QString const &, int, class QObject *)
+ ?qt_metacast@QDeclarativeDebugClient@@UAEPAXPBD@Z @ 512 NONAME ; void * QDeclarativeDebugClient::qt_metacast(char const *)
+ ?classInfoValue@QMetaObjectBuilder@@QBE?AVQByteArray@@H@Z @ 513 NONAME ; class QByteArray QMetaObjectBuilder::classInfoValue(int) const
+ ?right@QDeclarativeScaleGrid@@QBEHXZ @ 514 NONAME ; int QDeclarativeScaleGrid::right(void) const
+ ?setClassName@QMetaObjectBuilder@@QAEXABVQByteArray@@@Z @ 515 NONAME ; void QMetaObjectBuilder::setClassName(class QByteArray const &)
+ ??1QDeclarativeAnchors@@UAE@XZ @ 516 NONAME ; QDeclarativeAnchors::~QDeclarativeAnchors(void)
+ ?removeConstructor@QMetaObjectBuilder@@QAEXH@Z @ 517 NONAME ; void QMetaObjectBuilder::removeConstructor(int)
+ ??4QDeclarativeDomValueValueInterceptor@@QAEAAV0@ABV0@@Z @ 518 NONAME ; class QDeclarativeDomValueValueInterceptor & QDeclarativeDomValueValueInterceptor::operator=(class QDeclarativeDomValueValueInterceptor const &)
+ ?resolveType@QDeclarativeCustomParser@@IBEPBUQMetaObject@@ABVQByteArray@@@Z @ 519 NONAME ; struct QMetaObject const * QDeclarativeCustomParser::resolveType(class QByteArray const &) const
+ ??_EQDeclarativePropertyValueSource@@UAE@I@Z @ 520 NONAME ; QDeclarativePropertyValueSource::~QDeclarativePropertyValueSource(unsigned int)
+ ?connectFinished@QDeclarativePixmap@@QAE_NPAVQObject@@PBD@Z @ 521 NONAME ; bool QDeclarativePixmap::connectFinished(class QObject *, char const *)
?staticMetaObject@QDeclarativeItem@@2UQMetaObject@@B @ 522 NONAME ; struct QMetaObject const QDeclarativeItem::staticMetaObject
?qt_metacast@QDeclarativeDebugRootContextQuery@@UAEPAXPBD@Z @ 523 NONAME ; void * QDeclarativeDebugRootContextQuery::qt_metacast(char const *)
?itemsRemoved@QListModelInterface@@IAEXHH@Z @ 524 NONAME ; void QListModelInterface::itemsRemoved(int, int)
@@ -529,343 +529,343 @@ EXPORTS
?addProperty@QMetaObjectBuilder@@QAE?AVQMetaPropertyBuilder@@ABVQByteArray@@0H@Z @ 528 NONAME ; class QMetaPropertyBuilder QMetaObjectBuilder::addProperty(class QByteArray const &, class QByteArray const &, int)
?getStaticMetaObject@QDeclarativeState@@SAABUQMetaObject@@XZ @ 529 NONAME ; struct QMetaObject const & QDeclarativeState::getStaticMetaObject(void)
?isResettable@QMetaPropertyBuilder@@QBE_NXZ @ 530 NONAME ; bool QMetaPropertyBuilder::isResettable(void) const
- ?bottomMarginChanged@QDeclarativeAnchors@@IAEXXZ @ 531 NONAME ; void QDeclarativeAnchors::bottomMarginChanged(void)
- ?offlineStoragePath@QDeclarativeEngine@@QBE?AVQString@@XZ @ 532 NONAME ; class QString QDeclarativeEngine::offlineStoragePath(void) const
- ?keys@QDeclarativePropertyMap@@QBE?AVQStringList@@XZ @ 533 NONAME ; class QStringList QDeclarativePropertyMap::keys(void) const
- ?addItemChangeListener@QDeclarativeItemPrivate@@QAEXPAVQDeclarativeItemChangeListener@@V?$QFlags@W4ChangeType@QDeclarativeItemPrivate@@@@@Z @ 534 NONAME ; void QDeclarativeItemPrivate::addItemChangeListener(class QDeclarativeItemChangeListener *, class QFlags<enum QDeclarativeItemPrivate::ChangeType>)
- ?addConstructor@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQMetaMethod@@@Z @ 535 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addConstructor(class QMetaMethod const &)
- ??6QDeclarativeInfo@@QAEAAV0@F@Z @ 536 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(short)
- ?serialize@QMetaObjectBuilder@@QBEXAAVQDataStream@@@Z @ 537 NONAME ; void QMetaObjectBuilder::serialize(class QDataStream &) const
- ??0QDeclarativeDebugContextReference@@QAE@ABV0@@Z @ 538 NONAME ; QDeclarativeDebugContextReference::QDeclarativeDebugContextReference(class QDeclarativeDebugContextReference const &)
- ?saveProperty@QDeclarativePropertyPrivate@@SA?AVQByteArray@@PBUQMetaObject@@H@Z @ 539 NONAME ; class QByteArray QDeclarativePropertyPrivate::saveProperty(struct QMetaObject const *, int)
- ?propertyType@QDeclarativeProperty@@QBEHXZ @ 540 NONAME ; int QDeclarativeProperty::propertyType(void) const
- ?isDefaultProperty@QDeclarativeDomDynamicProperty@@QBE_NXZ @ 541 NONAME ; bool QDeclarativeDomDynamicProperty::isDefaultProperty(void) const
- ??_EQDeclarativeBehavior@@UAE@I@Z @ 542 NONAME ; QDeclarativeBehavior::~QDeclarativeBehavior(unsigned int)
- ??_EQDeclarativeListModel@@UAE@I@Z @ 543 NONAME ; QDeclarativeListModel::~QDeclarativeListModel(unsigned int)
- ?isCreatable@QDeclarativeType@@QBE_NXZ @ 544 NONAME ; bool QDeclarativeType::isCreatable(void) const
- ??6QDeclarativeInfo@@QAEAAV0@ABVQString@@@Z @ 545 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QString const &)
- ?tr@QDeclarativePen@@SA?AVQString@@PBD0@Z @ 546 NONAME ; class QString QDeclarativePen::tr(char const *, char const *)
- ?trUtf8@QDeclarativeContext@@SA?AVQString@@PBD0H@Z @ 547 NONAME ; class QString QDeclarativeContext::trUtf8(char const *, char const *, int)
- ??0QDeclarativeListModel@@QAE@PAVQObject@@@Z @ 548 NONAME ; QDeclarativeListModel::QDeclarativeListModel(class QObject *)
- ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugWatch@@ABVQDeclarativeDebugContextReference@@ABVQString@@PAVQObject@@@Z @ 549 NONAME ; class QDeclarativeDebugWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugContextReference const &, class QString const &, class QObject *)
- ?setColumn@QDeclarativeError@@QAEXH@Z @ 550 NONAME ; void QDeclarativeError::setColumn(int)
- ??1QDeclarativeTransition@@UAE@XZ @ 551 NONAME ; QDeclarativeTransition::~QDeclarativeTransition(void)
- ??AQDeclarativePropertyMap@@QBE?AVQVariant@@ABVQString@@@Z @ 552 NONAME ; class QVariant QDeclarativePropertyMap::operator[](class QString const &) const
- ?qt_metacall@QDeclarativeListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 553 NONAME ; int QDeclarativeListModel::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?qdeclarativeelement_destructor@QDeclarativePrivate@@YAXPAVQObject@@@Z @ 554 NONAME ; void QDeclarativePrivate::qdeclarativeelement_destructor(class QObject *)
- ?registerCustomStringConverter@QDeclarativeMetaType@@SAXHP6A?AVQVariant@@ABVQString@@@Z@Z @ 555 NONAME ; void QDeclarativeMetaType::registerCustomStringConverter(int, class QVariant (*)(class QString const &))
- ?metaObject@QDeclarativeEngine@@UBEPBUQMetaObject@@XZ @ 556 NONAME ; struct QMetaObject const * QDeclarativeEngine::metaObject(void) const
- ??_EQDeclarativeDebugContextReference@@QAE@I@Z @ 557 NONAME ; QDeclarativeDebugContextReference::~QDeclarativeDebugContextReference(unsigned int)
- ?propertyWrite@QDeclarativeOpenMetaObject@@MAEXH@Z @ 558 NONAME ; void QDeclarativeOpenMetaObject::propertyWrite(int)
- ?qt_metacall@QDeclarativeDebugService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 559 NONAME ; int QDeclarativeDebugService::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?setVerticalCenterOffset@QDeclarativeAnchors@@QAEXM@Z @ 560 NONAME ; void QDeclarativeAnchors::setVerticalCenterOffset(float)
- ??1QDeclarativeDebugWatch@@UAE@XZ @ 561 NONAME ; QDeclarativeDebugWatch::~QDeclarativeDebugWatch(void)
- ??1QPacketAutoSend@@UAE@XZ @ 562 NONAME ; QPacketAutoSend::~QPacketAutoSend(void)
- ?geometryChanged@QDeclarativeText@@MAEXABVQRectF@@0@Z @ 563 NONAME ; void QDeclarativeText::geometryChanged(class QRectF const &, class QRectF const &)
- ?d_func@QDeclarativeRectangle@@AAEPAVQDeclarativeRectanglePrivate@@XZ @ 564 NONAME ; class QDeclarativeRectanglePrivate * QDeclarativeRectangle::d_func(void)
- ?qt_metacast@QDeclarativeListModel@@UAEPAXPBD@Z @ 565 NONAME ; void * QDeclarativeListModel::qt_metacast(char const *)
- ?name@QDeclarativeCustomParserProperty@@QBE?AVQByteArray@@XZ @ 566 NONAME ; class QByteArray QDeclarativeCustomParserProperty::name(void) const
- ?update@QDeclarativeBinding@@QAEXXZ @ 567 NONAME ; void QDeclarativeBinding::update(void)
- ?trUtf8@QDeclarativeEngine@@SA?AVQString@@PBD0@Z @ 568 NONAME ; class QString QDeclarativeEngine::trUtf8(char const *, char const *)
- ?qt_metacast@QDeclarativeDebugConnection@@UAEPAXPBD@Z @ 569 NONAME ; void * QDeclarativeDebugConnection::qt_metacast(char const *)
- ?removeWatch@QDeclarativeEngineDebug@@QAEXPAVQDeclarativeDebugWatch@@@Z @ 570 NONAME ; void QDeclarativeEngineDebug::removeWatch(class QDeclarativeDebugWatch *)
- ?qt_metacast@QDeclarativeBinding@@UAEPAXPBD@Z @ 571 NONAME ; void * QDeclarativeBinding::qt_metacast(char const *)
- ?baseline@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 572 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::baseline(void) const
- ?restore@QDeclarativePropertyPrivate@@SA?AVQDeclarativeProperty@@ABVQByteArray@@PAVQObject@@PAVQDeclarativeContextData@@@Z @ 573 NONAME ; class QDeclarativeProperty QDeclarativePropertyPrivate::restore(class QByteArray const &, class QObject *, class QDeclarativeContextData *)
- ??0QDeclarativeProperty@@QAE@PAVQObject@@@Z @ 574 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *)
- ?source@QDeclarativeDebugObjectReference@@QBE?AVQDeclarativeDebugFileReference@@XZ @ 575 NONAME ; class QDeclarativeDebugFileReference QDeclarativeDebugObjectReference::source(void) const
- ?tr@QDeclarativeDebugExpressionQuery@@SA?AVQString@@PBD0H@Z @ 576 NONAME ; class QString QDeclarativeDebugExpressionQuery::tr(char const *, char const *, int)
- ?qmlType@QDeclarativeMetaType@@SAPAVQDeclarativeType@@H@Z @ 577 NONAME ; class QDeclarativeType * QDeclarativeMetaType::qmlType(int)
- ??1QDeclarativeCustomParser@@UAE@XZ @ 578 NONAME ; QDeclarativeCustomParser::~QDeclarativeCustomParser(void)
- ?toList@QDeclarativeDomValue@@QBE?AVQDeclarativeDomList@@XZ @ 579 NONAME ; class QDeclarativeDomList QDeclarativeDomValue::toList(void) const
- ?metaObject@QDeclarativeType@@QBEPBUQMetaObject@@XZ @ 580 NONAME ; struct QMetaObject const * QDeclarativeType::metaObject(void) const
- ?animation@QDeclarativeBehavior@@QAEPAVQDeclarativeAbstractAnimation@@XZ @ 581 NONAME ; class QDeclarativeAbstractAnimation * QDeclarativeBehavior::animation(void)
- ?listType@QDeclarativeMetaType@@SAHH@Z @ 582 NONAME ; int QDeclarativeMetaType::listType(int)
- ?transform_append@QDeclarativeItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsTransform@@@@PAVQGraphicsTransform@@@Z @ 583 NONAME ; void QDeclarativeItemPrivate::transform_append(class QDeclarativeListProperty<class QGraphicsTransform> *, class QGraphicsTransform *)
- ?d_func@QDeclarativeComponent@@AAEPAVQDeclarativeComponentPrivate@@XZ @ 584 NONAME ; class QDeclarativeComponentPrivate * QDeclarativeComponent::d_func(void)
- ?variantFromString@QDeclarativeStringConverters@@YA?AVQVariant@@ABVQString@@@Z @ 585 NONAME ; class QVariant QDeclarativeStringConverters::variantFromString(class QString const &)
- ?qt_metacall@QDeclarativeScaleGrid@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 586 NONAME ; int QDeclarativeScaleGrid::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?size@QDeclarativePropertyMap@@QBEHXZ @ 587 NONAME ; int QDeclarativePropertyMap::size(void) const
- ?cancel@QDeclarativeState@@QAEXXZ @ 588 NONAME ; void QDeclarativeState::cancel(void)
- ?qt_metacall@QDeclarativeStateGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 589 NONAME ; int QDeclarativeStateGroup::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??0QDeclarativePropertyPrivate@@QAE@XZ @ 590 NONAME ; QDeclarativePropertyPrivate::QDeclarativePropertyPrivate(void)
- ?getStaticMetaObject@QDeclarativeDebugPropertyWatch@@SAABUQMetaObject@@XZ @ 591 NONAME ; struct QMetaObject const & QDeclarativeDebugPropertyWatch::getStaticMetaObject(void)
- ?trUtf8@QDeclarativeDebugWatch@@SA?AVQString@@PBD0H@Z @ 592 NONAME ; class QString QDeclarativeDebugWatch::trUtf8(char const *, char const *, int)
- ?transformOrigin@QDeclarativeItem@@QBE?AW4TransformOrigin@1@XZ @ 593 NONAME ; enum QDeclarativeItem::TransformOrigin QDeclarativeItem::transformOrigin(void) const
- ?setState@QDeclarativeDebugWatch@@AAEXW4State@1@@Z @ 594 NONAME ; void QDeclarativeDebugWatch::setState(enum QDeclarativeDebugWatch::State)
- ?evaluateEnum@QDeclarativeCustomParser@@IBEHABVQByteArray@@@Z @ 595 NONAME ; int QDeclarativeCustomParser::evaluateEnum(class QByteArray const &) const
- ?setState@QDeclarativeDebugQuery@@AAEXW4State@1@@Z @ 596 NONAME ; void QDeclarativeDebugQuery::setState(enum QDeclarativeDebugQuery::State)
- ?d_func@QDeclarativeText@@ABEPBVQDeclarativeTextPrivate@@XZ @ 597 NONAME ; class QDeclarativeTextPrivate const * QDeclarativeText::d_func(void) const
- ?transitionsProperty@QDeclarativeStateGroup@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeTransition@@@@XZ @ 598 NONAME ; class QDeclarativeListProperty<class QDeclarativeTransition> QDeclarativeStateGroup::transitionsProperty(void)
- ?typeName@QDeclarativeType@@QBE?AVQByteArray@@XZ @ 599 NONAME ; class QByteArray QDeclarativeType::typeName(void) const
- ?asStringList@Variant@QDeclarativeParser@@QBE?AVQStringList@@XZ @ 600 NONAME ; class QStringList QDeclarativeParser::Variant::asStringList(void) const
- ?removeKey@QMetaEnumBuilder@@QAEXH@Z @ 601 NONAME ; void QMetaEnumBuilder::removeKey(int)
- ?downloadProgress@QDeclarativePixmapReply@@IAEX_J0@Z @ 602 NONAME ABSENT ; void QDeclarativePixmapReply::downloadProgress(long long, long long)
- ?addRelatedMetaObject@QMetaObjectBuilder@@QAEHABQ6AABUQMetaObject@@XZ@Z @ 603 NONAME ; int QMetaObjectBuilder::addRelatedMetaObject(struct QMetaObject const & (* const)(void) const &)
- ??0QDeclarativeDomValueLiteral@@QAE@XZ @ 604 NONAME ; QDeclarativeDomValueLiteral::QDeclarativeDomValueLiteral(void)
- ??_EQDeclarativeDebugObjectExpressionWatch@@UAE@I@Z @ 605 NONAME ; QDeclarativeDebugObjectExpressionWatch::~QDeclarativeDebugObjectExpressionWatch(unsigned int)
- ?computeTransformOrigin@QDeclarativeItemPrivate@@QBE?AVQPointF@@XZ @ 606 NONAME ; class QPointF QDeclarativeItemPrivate::computeTransformOrigin(void) const
- ??0QDeclarativeListReference@@QAE@PAVQObject@@PBDPAVQDeclarativeEngine@@@Z @ 607 NONAME ; QDeclarativeListReference::QDeclarativeListReference(class QObject *, char const *, class QDeclarativeEngine *)
- ?setData@QListModelInterface@@UAE_NHABV?$QHash@HVQVariant@@@@@Z @ 608 NONAME ; bool QListModelInterface::setData(int, class QHash<int, class QVariant> const &)
- ??0QDeclarativePen@@QAE@PAVQObject@@@Z @ 609 NONAME ; QDeclarativePen::QDeclarativePen(class QObject *)
- ?trUtf8@QPacketProtocol@@SA?AVQString@@PBD0H@Z @ 610 NONAME ; class QString QPacketProtocol::trUtf8(char const *, char const *, int)
- ?setContextObject@QDeclarativeContext@@QAEXPAVQObject@@@Z @ 611 NONAME ; void QDeclarativeContext::setContextObject(class QObject *)
- ??_EQDeclarativeState@@UAE@I@Z @ 612 NONAME ; QDeclarativeState::~QDeclarativeState(unsigned int)
- ?expression@QDeclarativeExpression@@QBE?AVQString@@XZ @ 613 NONAME ; class QString QDeclarativeExpression::expression(void) const
- ??1QDeclarativeDomDocument@@QAE@XZ @ 614 NONAME ; QDeclarativeDomDocument::~QDeclarativeDomDocument(void)
- ?trUtf8@QDeclarativeListModel@@SA?AVQString@@PBD0H@Z @ 615 NONAME ; class QString QDeclarativeListModel::trUtf8(char const *, char const *, int)
- ?asNumber@Variant@QDeclarativeParser@@QBENXZ @ 616 NONAME ; double QDeclarativeParser::Variant::asNumber(void) const
- ?d_func@QDeclarativeDebugClient@@ABEPBVQDeclarativeDebugClientPrivate@@XZ @ 617 NONAME ; class QDeclarativeDebugClientPrivate const * QDeclarativeDebugClient::d_func(void) const
- ?sceneEvent@QDeclarativeItem@@MAE_NPAVQEvent@@@Z @ 618 NONAME ; bool QDeclarativeItem::sceneEvent(class QEvent *)
- ??0QDeclarativeDebugRootContextQuery@@AAE@PAVQObject@@@Z @ 619 NONAME ; QDeclarativeDebugRootContextQuery::QDeclarativeDebugRootContextQuery(class QObject *)
- ?name@QDeclarativeDebugEngineReference@@QBE?AVQString@@XZ @ 620 NONAME ; class QString QDeclarativeDebugEngineReference::name(void) const
- ??_EQDeclarativeTransition@@UAE@I@Z @ 621 NONAME ; QDeclarativeTransition::~QDeclarativeTransition(unsigned int)
- ??0QDeclarativeAction@@QAE@ABV0@@Z @ 622 NONAME ; QDeclarativeAction::QDeclarativeAction(class QDeclarativeAction const &)
- ?extends@QDeclarativeState@@QBE?AVQString@@XZ @ 623 NONAME ; class QString QDeclarativeState::extends(void) const
- ?error@QDeclarativeCustomParser@@IAEXABVQDeclarativeCustomParserProperty@@ABVQString@@@Z @ 624 NONAME ; void QDeclarativeCustomParser::error(class QDeclarativeCustomParserProperty const &, class QString const &)
- ??0QDeclarativeCustomParserNode@@QAE@XZ @ 625 NONAME ; QDeclarativeCustomParserNode::QDeclarativeCustomParserNode(void)
- ?version@QDeclarativeDomImport@@QBE?AVQString@@XZ @ 626 NONAME ; class QString QDeclarativeDomImport::version(void) const
- ?smooth@QDeclarativeItem@@QBE_NXZ @ 627 NONAME ; bool QDeclarativeItem::smooth(void) const
- ?implicitSize@QDeclarativePixmapReply@@QBE?AVQSize@@XZ @ 628 NONAME ABSENT ; class QSize QDeclarativePixmapReply::implicitSize(void) const
- ??1QDeclarativeInfo@@QAE@XZ @ 629 NONAME ; QDeclarativeInfo::~QDeclarativeInfo(void)
- ?qt_metacast@QDeclarativeStateOperation@@UAEPAXPBD@Z @ 630 NONAME ; void * QDeclarativeStateOperation::qt_metacast(char const *)
- ??4QDeclarativeDebugEngineReference@@QAEAAV0@ABV0@@Z @ 631 NONAME ; class QDeclarativeDebugEngineReference & QDeclarativeDebugEngineReference::operator=(class QDeclarativeDebugEngineReference const &)
- ?isValueType@QDeclarativePropertyPrivate@@QBE_NXZ @ 632 NONAME ; bool QDeclarativePropertyPrivate::isValueType(void) const
- ??0QDeclarativeDomValueValueSource@@QAE@ABV0@@Z @ 633 NONAME ; QDeclarativeDomValueValueSource::QDeclarativeDomValueValueSource(class QDeclarativeDomValueValueSource const &)
- ?trUtf8@QDeclarativeDebugPropertyWatch@@SA?AVQString@@PBD0H@Z @ 634 NONAME ; class QString QDeclarativeDebugPropertyWatch::trUtf8(char const *, char const *, int)
- ??_EQDeclarativeDebugExpressionQuery@@UAE@I@Z @ 635 NONAME ; QDeclarativeDebugExpressionQuery::~QDeclarativeDebugExpressionQuery(unsigned int)
- ?trUtf8@QListModelInterface@@SA?AVQString@@PBD0H@Z @ 636 NONAME ; class QString QListModelInterface::trUtf8(char const *, char const *, int)
- ?qt_metacall@QDeclarativeDebugObjectExpressionWatch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 637 NONAME ; int QDeclarativeDebugObjectExpressionWatch::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?d_func@QDeclarativeItem@@AAEPAVQDeclarativeItemPrivate@@XZ @ 638 NONAME ; class QDeclarativeItemPrivate * QDeclarativeItem::d_func(void)
- ?binding@QDeclarativeDomValueBinding@@QBE?AVQString@@XZ @ 639 NONAME ; class QString QDeclarativeDomValueBinding::binding(void) const
- ?updateAutoState@QDeclarativeStateGroup@@AAE_NXZ @ 640 NONAME ; bool QDeclarativeStateGroup::updateAutoState(void)
- ?tr@QDeclarativeDebugService@@SA?AVQString@@PBD0@Z @ 641 NONAME ; class QString QDeclarativeDebugService::tr(char const *, char const *)
- ?tr@QDeclarativeComponent@@SA?AVQString@@PBD0H@Z @ 642 NONAME ; class QString QDeclarativeComponent::tr(char const *, char const *, int)
- ??1QDeclarativeProperty@@QAE@XZ @ 643 NONAME ; QDeclarativeProperty::~QDeclarativeProperty(void)
- ?fontChanged@QDeclarativeText@@IAEXABVQFont@@@Z @ 644 NONAME ; void QDeclarativeText::fontChanged(class QFont const &)
- ?removeItemChangeListener@QDeclarativeItemPrivate@@QAEXPAVQDeclarativeItemChangeListener@@V?$QFlags@W4ChangeType@QDeclarativeItemPrivate@@@@@Z @ 645 NONAME ; void QDeclarativeItemPrivate::removeItemChangeListener(class QDeclarativeItemChangeListener *, class QFlags<enum QDeclarativeItemPrivate::ChangeType>)
- ?isList@QDeclarativeDomValue@@QBE_NXZ @ 646 NONAME ; bool QDeclarativeDomValue::isList(void) const
- ?insert@QDeclarativeListModel@@QAEXHABVQScriptValue@@@Z @ 647 NONAME ; void QDeclarativeListModel::insert(int, class QScriptValue const &)
- ?staticMetaObject@QDeclarativeListModel@@2UQMetaObject@@B @ 648 NONAME ; struct QMetaObject const QDeclarativeListModel::staticMetaObject
- ?indexOfConstructor@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 649 NONAME ; int QMetaObjectBuilder::indexOfConstructor(class QByteArray const &)
- ?lineNumber@QDeclarativeExpression@@QBEHXZ @ 650 NONAME ; int QDeclarativeExpression::lineNumber(void) const
- ?trUtf8@QDeclarativeDebugRootContextQuery@@SA?AVQString@@PBD0H@Z @ 651 NONAME ; class QString QDeclarativeDebugRootContextQuery::trUtf8(char const *, char const *, int)
- ?toString@QDeclarativeError@@QBE?AVQString@@XZ @ 652 NONAME ; class QString QDeclarativeError::toString(void) const
- ?index@QMetaPropertyBuilder@@QBEHXZ @ 653 NONAME ; int QMetaPropertyBuilder::index(void) const
- ?commaPositions@QDeclarativeDomList@@QBE?AV?$QList@H@@XZ @ 654 NONAME ; class QList<int> QDeclarativeDomList::commaPositions(void) const
- ?tr@QDeclarativeDebugObjectExpressionWatch@@SA?AVQString@@PBD0@Z @ 655 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::tr(char const *, char const *)
- ?tr@QDeclarativeAnchors@@SA?AVQString@@PBD0@Z @ 656 NONAME ; class QString QDeclarativeAnchors::tr(char const *, char const *)
- ?tr@QDeclarativeEngine@@SA?AVQString@@PBD0@Z @ 657 NONAME ; class QString QDeclarativeEngine::tr(char const *, char const *)
- ?setTextFormat@QDeclarativeText@@QAEXW4TextFormat@1@@Z @ 658 NONAME ; void QDeclarativeText::setTextFormat(enum QDeclarativeText::TextFormat)
- ?parserStatusCast@QDeclarativeType@@QBEHXZ @ 659 NONAME ; int QDeclarativeType::parserStatusCast(void) const
- ??_EQListModelInterface@@UAE@I@Z @ 660 NONAME ; QListModelInterface::~QListModelInterface(unsigned int)
- ?trUtf8@QDeclarativeBehavior@@SA?AVQString@@PBD0@Z @ 661 NONAME ; class QString QDeclarativeBehavior::trUtf8(char const *, char const *)
- ?getStaticMetaObject@QDeclarativeListModel@@SAABUQMetaObject@@XZ @ 662 NONAME ; struct QMetaObject const & QDeclarativeListModel::getStaticMetaObject(void)
- ?setStdCppSet@QMetaPropertyBuilder@@QAEX_N@Z @ 663 NONAME ; void QMetaPropertyBuilder::setStdCppSet(bool)
- ??0QDeclarativeItemPrivate@@QAE@XZ @ 664 NONAME ; QDeclarativeItemPrivate::QDeclarativeItemPrivate(void)
- ??0QDeclarativeDebugService@@QAE@ABVQString@@PAVQObject@@@Z @ 665 NONAME ; QDeclarativeDebugService::QDeclarativeDebugService(class QString const &, class QObject *)
- ??_EQPacketAutoSend@@UAE@I@Z @ 666 NONAME ; QPacketAutoSend::~QPacketAutoSend(unsigned int)
- ?saveValueType@QDeclarativePropertyPrivate@@SA?AVQByteArray@@PBUQMetaObject@@H0H@Z @ 667 NONAME ; class QByteArray QDeclarativePropertyPrivate::saveValueType(struct QMetaObject const *, int, struct QMetaObject const *, int)
- ?resetHeight@QDeclarativeItem@@QAEXXZ @ 668 NONAME ; void QDeclarativeItem::resetHeight(void)
- ?setVAlign@QDeclarativeText@@QAEXW4VAlignment@1@@Z @ 669 NONAME ; void QDeclarativeText::setVAlign(enum QDeclarativeText::VAlignment)
- ??1QDeclarativeDebugService@@UAE@XZ @ 670 NONAME ; QDeclarativeDebugService::~QDeclarativeDebugService(void)
- ?trUtf8@QDeclarativeDebugService@@SA?AVQString@@PBD0H@Z @ 671 NONAME ; class QString QDeclarativeDebugService::trUtf8(char const *, char const *, int)
- ?elideMode@QDeclarativeText@@QBE?AW4TextElideMode@1@XZ @ 672 NONAME ; enum QDeclarativeText::TextElideMode QDeclarativeText::elideMode(void) const
- ?baseUrl@QDeclarativeContext@@QBE?AVQUrl@@XZ @ 673 NONAME ; class QUrl QDeclarativeContext::baseUrl(void) const
- ?qt_metacall@QDeclarativeDebugRootContextQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 674 NONAME ; int QDeclarativeDebugRootContextQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?isNamed@QDeclarativeState@@QBE_NXZ @ 675 NONAME ; bool QDeclarativeState::isNamed(void) const
- ?isString@Variant@QDeclarativeParser@@QBE_NXZ @ 676 NONAME ; bool QDeclarativeParser::Variant::isString(void) const
- ?restart@QDeclarativeItemPrivate@@SA_JAAVQElapsedTimer@@@Z @ 677 NONAME ; long long QDeclarativeItemPrivate::restart(class QElapsedTimer &)
- ?trUtf8@QDeclarativeDebugClient@@SA?AVQString@@PBD0H@Z @ 678 NONAME ; class QString QDeclarativeDebugClient::trUtf8(char const *, char const *, int)
- ?qt_metacast@QDeclarativeTransition@@UAEPAXPBD@Z @ 679 NONAME ; void * QDeclarativeTransition::qt_metacast(char const *)
- ?timeFromString@QDeclarativeStringConverters@@YA?AVQTime@@ABVQString@@PA_N@Z @ 680 NONAME ; class QTime QDeclarativeStringConverters::timeFromString(class QString const &, bool *)
- ?d_func@QDeclarativeDebugClient@@AAEPAVQDeclarativeDebugClientPrivate@@XZ @ 681 NONAME ; class QDeclarativeDebugClientPrivate * QDeclarativeDebugClient::d_func(void)
- ??1QDeclarativeType@@AAE@XZ @ 682 NONAME ; QDeclarativeType::~QDeclarativeType(void)
- ?colorFromString@QDeclarativeStringConverters@@YA?AVQColor@@ABVQString@@PA_N@Z @ 683 NONAME ; class QColor QDeclarativeStringConverters::colorFromString(class QString const &, bool *)
- ??_EQPacketProtocol@@UAE@I@Z @ 684 NONAME ; QPacketProtocol::~QPacketProtocol(unsigned int)
- ?tr@QDeclarativeListModel@@SA?AVQString@@PBD0@Z @ 685 NONAME ; class QString QDeclarativeListModel::tr(char const *, char const *)
- ??0QDeclarativeDebugObjectReference@@QAE@XZ @ 686 NONAME ; QDeclarativeDebugObjectReference::QDeclarativeDebugObjectReference(void)
- ?staticMetaObject@QDeclarativeExtensionPlugin@@2UQMetaObject@@B @ 687 NONAME ; struct QMetaObject const QDeclarativeExtensionPlugin::staticMetaObject
- ?isNull@QDeclarativeScaleGrid@@QBE_NXZ @ 688 NONAME ; bool QDeclarativeScaleGrid::isNull(void) const
- ??_EQDeclarativeStateOperation@@UAE@I@Z @ 689 NONAME ; QDeclarativeStateOperation::~QDeclarativeStateOperation(unsigned int)
- ??6QDeclarativeInfo@@QAEAAV0@H@Z @ 690 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(int)
- ??0QDeclarativeDomDynamicProperty@@QAE@XZ @ 691 NONAME ; QDeclarativeDomDynamicProperty::QDeclarativeDomDynamicProperty(void)
- ?tr@QDeclarativeRectangle@@SA?AVQString@@PBD0H@Z @ 692 NONAME ; class QString QDeclarativeRectangle::tr(char const *, char const *, int)
- ?type@QDeclarativeProperty@@QBE?AW4Type@1@XZ @ 693 NONAME ; enum QDeclarativeProperty::Type QDeclarativeProperty::type(void) const
- ??0QDeclarativeDebugQuery@@IAE@PAVQObject@@@Z @ 694 NONAME ; QDeclarativeDebugQuery::QDeclarativeDebugQuery(class QObject *)
- ?baselineOffset@QDeclarativeAnchors@@QBEMXZ @ 695 NONAME ; float QDeclarativeAnchors::baselineOffset(void) const
- ??4QDeclarativeDomDocument@@QAEAAV0@ABV0@@Z @ 696 NONAME ; class QDeclarativeDomDocument & QDeclarativeDomDocument::operator=(class QDeclarativeDomDocument const &)
- ??0QDeclarativeOpenMetaObject@@QAE@PAVQObject@@PAVQDeclarativeOpenMetaObjectType@@_N@Z @ 697 NONAME ; QDeclarativeOpenMetaObject::QDeclarativeOpenMetaObject(class QObject *, class QDeclarativeOpenMetaObjectType *, bool)
- ?trUtf8@QDeclarativeExpression@@SA?AVQString@@PBD0@Z @ 698 NONAME ; class QString QDeclarativeExpression::trUtf8(char const *, char const *)
- ??0QPacketProtocol@@QAE@PAVQIODevice@@PAVQObject@@@Z @ 699 NONAME ; QPacketProtocol::QPacketProtocol(class QIODevice *, class QObject *)
- ??1QDeclarativeListReference@@QAE@XZ @ 700 NONAME ; QDeclarativeListReference::~QDeclarativeListReference(void)
- ?clearError@QDeclarativeExpression@@QAEXXZ @ 701 NONAME ; void QDeclarativeExpression::clearError(void)
- ?setLineNumber@QDeclarativeDebugFileReference@@QAEXH@Z @ 702 NONAME ; void QDeclarativeDebugFileReference::setLineNumber(int)
- ?qt_metacall@QDeclarativeExtensionPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 703 NONAME ; int QDeclarativeExtensionPlugin::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?boundingRect@QDeclarativeText@@UBE?AVQRectF@@XZ @ 704 NONAME ; class QRectF QDeclarativeText::boundingRect(void) const
- ?setColor@QDeclarativePen@@QAEXABVQColor@@@Z @ 705 NONAME ; void QDeclarativePen::setColor(class QColor const &)
- ??0QDeclarativeDomImport@@QAE@XZ @ 706 NONAME ; QDeclarativeDomImport::QDeclarativeDomImport(void)
- ?clearErrors@QDeclarativeCustomParser@@QAEXXZ @ 707 NONAME ; void QDeclarativeCustomParser::clearErrors(void)
- ?trUtf8@QDeclarativeDebugQuery@@SA?AVQString@@PBD0H@Z @ 708 NONAME ; class QString QDeclarativeDebugQuery::trUtf8(char const *, char const *, int)
- ?toRelocatableData@QMetaObjectBuilder@@QBE?AVQByteArray@@PA_N@Z @ 709 NONAME ; class QByteArray QMetaObjectBuilder::toRelocatableData(bool *) const
- ?qt_metacast@QDeclarativeView@@UAEPAXPBD@Z @ 710 NONAME ; void * QDeclarativeView::qt_metacast(char const *)
- ?mapToItem@QDeclarativeItem@@QBE?AVQScriptValue@@ABV2@MM@Z @ 711 NONAME ; class QScriptValue QDeclarativeItem::mapToItem(class QScriptValue const &, float, float) const
- ?setPluginPathList@QDeclarativeEngine@@QAEXABVQStringList@@@Z @ 712 NONAME ; void QDeclarativeEngine::setPluginPathList(class QStringList const &)
- ?metaObject@QDeclarativeState@@UBEPBUQMetaObject@@XZ @ 713 NONAME ; struct QMetaObject const * QDeclarativeState::metaObject(void) const
- ?errorString@QDeclarativePixmapReply@@QBE?AVQString@@XZ @ 714 NONAME ABSENT ; class QString QDeclarativePixmapReply::errorString(void) const
- ?boundingRect@QDeclarativeRectangle@@UBE?AVQRectF@@XZ @ 715 NONAME ; class QRectF QDeclarativeRectangle::boundingRect(void) const
- ?uri@QDeclarativeDomImport@@QBE?AVQString@@XZ @ 716 NONAME ; class QString QDeclarativeDomImport::uri(void) const
- ?setContextProperty@QDeclarativeContext@@QAEXABVQString@@PAVQObject@@@Z @ 717 NONAME ; void QDeclarativeContext::setContextProperty(class QString const &, class QObject *)
- ?setBaseUrl@QDeclarativeEngine@@QAEXABVQUrl@@@Z @ 718 NONAME ; void QDeclarativeEngine::setBaseUrl(class QUrl const &)
- ?trUtf8@QDeclarativeDebugEnginesQuery@@SA?AVQString@@PBD0H@Z @ 719 NONAME ; class QString QDeclarativeDebugEnginesQuery::trUtf8(char const *, char const *, int)
- ?setScriptable@QMetaPropertyBuilder@@QAEX_N@Z @ 720 NONAME ; void QMetaPropertyBuilder::setScriptable(bool)
- ??0QDeclarativeProperty@@QAE@PAVQObject@@PAVQDeclarativeEngine@@@Z @ 721 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QDeclarativeEngine *)
- ?itemsInserted@QListModelInterface@@IAEXHH@Z @ 722 NONAME ; void QListModelInterface::itemsInserted(int, int)
- ?generateBorderedRect@QDeclarativeRectangle@@AAEXXZ @ 723 NONAME ; void QDeclarativeRectangle::generateBorderedRect(void)
- ?verticalCenterOffsetChanged@QDeclarativeAnchors@@IAEXXZ @ 724 NONAME ; void QDeclarativeAnchors::verticalCenterOffsetChanged(void)
- ?width@QDeclarativeItem@@QBEMXZ @ 725 NONAME ; float QDeclarativeItem::width(void) const
- ?isValueInterceptor@QDeclarativeDomValue@@QBE_NXZ @ 726 NONAME ; bool QDeclarativeDomValue::isValueInterceptor(void) const
- ?transform_at@QDeclarativeItemPrivate@@SAPAVQGraphicsTransform@@PAV?$QDeclarativeListProperty@VQGraphicsTransform@@@@H@Z @ 727 NONAME ; class QGraphicsTransform * QDeclarativeItemPrivate::transform_at(class QDeclarativeListProperty<class QGraphicsTransform> *, int)
- ??1QDeclarativeDomValueBinding@@QAE@XZ @ 728 NONAME ; QDeclarativeDomValueBinding::~QDeclarativeDomValueBinding(void)
- ?qt_metacast@QDeclarativeAnchors@@UAEPAXPBD@Z @ 729 NONAME ; void * QDeclarativeAnchors::qt_metacast(char const *)
- ?isInterface@QDeclarativeMetaType@@SA_NH@Z @ 730 NONAME ; bool QDeclarativeMetaType::isInterface(int)
- ?qt_metacall@QDeclarativeRectangle@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 731 NONAME ; int QDeclarativeRectangle::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?trUtf8@QDeclarativePen@@SA?AVQString@@PBD0H@Z @ 732 NONAME ; class QString QDeclarativePen::trUtf8(char const *, char const *, int)
- ??0Variant@QDeclarativeParser@@QAE@ABVQString@@PAVNode@AST@QDeclarativeJS@@@Z @ 733 NONAME ; QDeclarativeParser::Variant::Variant(class QString const &, class QDeclarativeJS::AST::Node *)
- ?rootObject@QDeclarativeDomDocument@@QBE?AVQDeclarativeDomObject@@XZ @ 734 NONAME ; class QDeclarativeDomObject QDeclarativeDomDocument::rootObject(void) const
- ?rightChanged@QDeclarativeAnchors@@IAEXXZ @ 735 NONAME ; void QDeclarativeAnchors::rightChanged(void)
- ??6QDeclarativeInfo@@QAEAAV0@ABVQByteArray@@@Z @ 736 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QByteArray const &)
- ?qt_metacast@QDeclarativeEngine@@UAEPAXPBD@Z @ 737 NONAME ; void * QDeclarativeEngine::qt_metacast(char const *)
- ?objectType@QDeclarativeDomObject@@QBE?AVQByteArray@@XZ @ 738 NONAME ; class QByteArray QDeclarativeDomObject::objectType(void) const
- ?addConstructor@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@@Z @ 739 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addConstructor(class QByteArray const &)
- ?read@QDeclarativeProperty@@SA?AVQVariant@@PAVQObject@@ABVQString@@PAVQDeclarativeContext@@@Z @ 740 NONAME ; class QVariant QDeclarativeProperty::read(class QObject *, class QString const &, class QDeclarativeContext *)
- ?staticMetaObject@QDeclarativeDebugExpressionQuery@@2UQMetaObject@@B @ 741 NONAME ; struct QMetaObject const QDeclarativeDebugExpressionQuery::staticMetaObject
- ?queryRootContexts@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugRootContextQuery@@ABVQDeclarativeDebugEngineReference@@PAVQObject@@@Z @ 742 NONAME ; class QDeclarativeDebugRootContextQuery * QDeclarativeEngineDebug::queryRootContexts(class QDeclarativeDebugEngineReference const &, class QObject *)
- ?vector3DFromString@QDeclarativeStringConverters@@YA?AVQVector3D@@ABVQString@@PA_N@Z @ 743 NONAME ; class QVector3D QDeclarativeStringConverters::vector3DFromString(class QString const &, bool *)
- ??_EQDeclarativeDebugPropertyWatch@@UAE@I@Z @ 744 NONAME ; QDeclarativeDebugPropertyWatch::~QDeclarativeDebugPropertyWatch(unsigned int)
- ?relatedMetaObjectCount@QMetaObjectBuilder@@QBEHXZ @ 745 NONAME ; int QMetaObjectBuilder::relatedMetaObjectCount(void) const
- ?script@QDeclarativeScriptString@@QBE?AVQString@@XZ @ 746 NONAME ; class QString QDeclarativeScriptString::script(void) const
- ?index@QMetaMethodBuilder@@QBEHXZ @ 747 NONAME ; int QMetaMethodBuilder::index(void) const
- ??4QDeclarativeDomValueBinding@@QAEAAV0@ABV0@@Z @ 748 NONAME ; class QDeclarativeDomValueBinding & QDeclarativeDomValueBinding::operator=(class QDeclarativeDomValueBinding const &)
- ??0QDeclarativeExpression@@QAE@XZ @ 749 NONAME ; QDeclarativeExpression::QDeclarativeExpression(void)
- ?paint@QDeclarativeItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 750 NONAME ; void QDeclarativeItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
- ?send@QPacketProtocol@@QAE?AVQPacketAutoSend@@XZ @ 751 NONAME ; class QPacketAutoSend QPacketProtocol::send(void)
- ?countChanged@QDeclarativeListModel@@IAEXXZ @ 752 NONAME ; void QDeclarativeListModel::countChanged(void)
- ?setBindingForObject@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugExpressionQuery@@HABVQString@@ABVQVariant@@_NPAVQObject@@@Z @ 753 NONAME ABSENT ; class QDeclarativeDebugExpressionQuery * QDeclarativeEngineDebug::setBindingForObject(int, class QString const &, class QVariant const &, bool, class QObject *)
- ??0QDeclarativeGridScaledImage@@QAE@PAVQIODevice@@@Z @ 754 NONAME ; QDeclarativeGridScaledImage::QDeclarativeGridScaledImage(class QIODevice *)
- ??_EQDeclarativeBinding@@UAE@I@Z @ 755 NONAME ; QDeclarativeBinding::~QDeclarativeBinding(unsigned int)
- ?baseMetaObject@QDeclarativeType@@QBEPBUQMetaObject@@XZ @ 756 NONAME ; struct QMetaObject const * QDeclarativeType::baseMetaObject(void) const
- ?tr@QDeclarativeDebugConnection@@SA?AVQString@@PBD0@Z @ 757 NONAME ; class QString QDeclarativeDebugConnection::tr(char const *, char const *)
- ?staticMetaObject@QDeclarativeBinding@@2UQMetaObject@@B @ 758 NONAME ; struct QMetaObject const QDeclarativeBinding::staticMetaObject
- ?qualifier@QDeclarativeDomImport@@QBE?AVQString@@XZ @ 759 NONAME ; class QString QDeclarativeDomImport::qualifier(void) const
- ?tr@QDeclarativePixmapCache@@SA?AVQString@@PBD0H@Z @ 760 NONAME ABSENT ; class QString QDeclarativePixmapCache::tr(char const *, char const *, int)
- ??0QDeclarativeProperty@@QAE@PAVQObject@@ABVQString@@PAVQDeclarativeContext@@@Z @ 761 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QString const &, class QDeclarativeContext *)
- ?setSuperClass@QMetaObjectBuilder@@QAEXPBUQMetaObject@@@Z @ 762 NONAME ; void QMetaObjectBuilder::setSuperClass(struct QMetaObject const *)
- ?contains@QDeclarativePropertyMap@@QBE_NABVQString@@@Z @ 763 NONAME ; bool QDeclarativePropertyMap::contains(class QString const &) const
- ?setGradient@QDeclarativeRectangle@@QAEXPAVQDeclarativeGradient@@@Z @ 764 NONAME ; void QDeclarativeRectangle::setGradient(class QDeclarativeGradient *)
- ?metaObject@QDeclarativeTransition@@UBEPBUQMetaObject@@XZ @ 765 NONAME ; struct QMetaObject const * QDeclarativeTransition::metaObject(void) const
- ?defaultMethod@QDeclarativeMetaType@@SA?AVQMetaMethod@@PBUQMetaObject@@@Z @ 766 NONAME ; class QMetaMethod QDeclarativeMetaType::defaultMethod(struct QMetaObject const *)
- ??0QDeclarativePixmapReply@@AAE@PAVQDeclarativeImageReader@@ABVQUrl@@HH@Z @ 767 NONAME ABSENT ; QDeclarativePixmapReply::QDeclarativePixmapReply(class QDeclarativeImageReader *, class QUrl const &, int, int)
- ?tr@QDeclarativeExtensionPlugin@@SA?AVQString@@PBD0H@Z @ 768 NONAME ; class QString QDeclarativeExtensionPlugin::tr(char const *, char const *, int)
- ?metaObject@QDeclarativeValueType@@UBEPBUQMetaObject@@XZ @ 769 NONAME ; struct QMetaObject const * QDeclarativeValueType::metaObject(void) const
- ?hasNotifySignal@QDeclarativeProperty@@QBE_NXZ @ 770 NONAME ; bool QDeclarativeProperty::hasNotifySignal(void) const
- ?create@QDeclarativeType@@QBEXPAPAVQObject@@PAPAXI@Z @ 771 NONAME ; void QDeclarativeType::create(class QObject * *, void * *, unsigned int) const
- ?reversible@QDeclarativeTransition@@QBE_NXZ @ 772 NONAME ; bool QDeclarativeTransition::reversible(void) const
- ?invalidPacket@QPacketProtocol@@IAEXXZ @ 773 NONAME ; void QPacketProtocol::invalidPacket(void)
- ??0QDeclarativeDebugObjectReference@@QAE@H@Z @ 774 NONAME ; QDeclarativeDebugObjectReference::QDeclarativeDebugObjectReference(int)
- ?superClass@QMetaObjectBuilder@@QBEPBUQMetaObject@@XZ @ 775 NONAME ; struct QMetaObject const * QMetaObjectBuilder::superClass(void) const
- ?isValid@QDeclarativeListReference@@QBE_NXZ @ 776 NONAME ; bool QDeclarativeListReference::isValid(void) const
- ?source@QDeclarativeView@@QBE?AVQUrl@@XZ @ 777 NONAME ; class QUrl QDeclarativeView::source(void) const
- ?method@QDeclarativeProperty@@QBE?AVQMetaMethod@@XZ @ 778 NONAME ; class QMetaMethod QDeclarativeProperty::method(void) const
- ??0QDeclarativeInfo@@QAE@ABV0@@Z @ 779 NONAME ; QDeclarativeInfo::QDeclarativeInfo(class QDeclarativeInfo const &)
- ?deleteFromBinding@QDeclarativeAction@@QAEXXZ @ 780 NONAME ; void QDeclarativeAction::deleteFromBinding(void)
- ?setClip@QDeclarativeItem@@QAEX_N@Z @ 781 NONAME ; void QDeclarativeItem::setClip(bool)
- ??4QDeclarativeCustomParserNode@@QAEAAV0@ABV0@@Z @ 782 NONAME ; class QDeclarativeCustomParserNode & QDeclarativeCustomParserNode::operator=(class QDeclarativeCustomParserNode const &)
- ?color@QDeclarativePen@@QBE?AVQColor@@XZ @ 783 NONAME ; class QColor QDeclarativePen::color(void) const
- ?setDesignable@QMetaPropertyBuilder@@QAEX_N@Z @ 784 NONAME ; void QMetaPropertyBuilder::setDesignable(bool)
- ?setWrapMode@QDeclarativeText@@QAEXW4WrapMode@1@@Z @ 785 NONAME ; void QDeclarativeText::setWrapMode(enum QDeclarativeText::WrapMode)
- ?addClassInfo@QMetaObjectBuilder@@QAEHABVQByteArray@@0@Z @ 786 NONAME ; int QMetaObjectBuilder::addClassInfo(class QByteArray const &, class QByteArray const &)
- ?qt_metacall@QDeclarativePen@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 787 NONAME ; int QDeclarativePen::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?dynamicProperty@QDeclarativeDomObject@@QBE?AVQDeclarativeDomDynamicProperty@@ABVQByteArray@@@Z @ 788 NONAME ; class QDeclarativeDomDynamicProperty QDeclarativeDomObject::dynamicProperty(class QByteArray const &) const
- ??1QDeclarativeDomComponent@@QAE@XZ @ 789 NONAME ; QDeclarativeDomComponent::~QDeclarativeDomComponent(void)
- ?setRight@QDeclarativeScaleGrid@@QAEXH@Z @ 790 NONAME ; void QDeclarativeScaleGrid::setRight(int)
- ?isList@QDeclarativeMetaType@@SA_NH@Z @ 791 NONAME ; bool QDeclarativeMetaType::isList(int)
- ??6QDeclarativeInfo@@QAEAAV0@VQTextStreamManipulator@@@Z @ 792 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QTextStreamManipulator)
- ?index@QDeclarativeProperty@@QBEHXZ @ 793 NONAME ; int QDeclarativeProperty::index(void) const
- ?d_func@QMetaPropertyBuilder@@ABEPAVQMetaPropertyBuilderPrivate@@XZ @ 794 NONAME ; class QMetaPropertyBuilderPrivate * QMetaPropertyBuilder::d_func(void) const
- ?tr@QDeclarativeScaleGrid@@SA?AVQString@@PBD0H@Z @ 795 NONAME ; class QString QDeclarativeScaleGrid::tr(char const *, char const *, int)
- ?setEnabled@QDeclarativeAbstractBinding@@QAEX_N@Z @ 796 NONAME ; void QDeclarativeAbstractBinding::setEnabled(bool)
- ?returnType@QMetaMethodBuilder@@QBE?AVQByteArray@@XZ @ 797 NONAME ; class QByteArray QMetaMethodBuilder::returnType(void) const
- ?propertyValueSourceCast@QDeclarativeType@@QBEHXZ @ 798 NONAME ; int QDeclarativeType::propertyValueSourceCast(void) const
- ?mousePressEvent@QDeclarativeText@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 799 NONAME ; void QDeclarativeText::mousePressEvent(class QGraphicsSceneMouseEvent *)
- ?trUtf8@QDeclarativeText@@SA?AVQString@@PBD0@Z @ 800 NONAME ; class QString QDeclarativeText::trUtf8(char const *, char const *)
- ?constructor@QMetaObjectBuilder@@QBE?AVQMetaMethodBuilder@@H@Z @ 801 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::constructor(int) const
- ?defaultProperty@QDeclarativeMetaType@@SA?AVQMetaProperty@@PAVQObject@@@Z @ 802 NONAME ; class QMetaProperty QDeclarativeMetaType::defaultProperty(class QObject *)
- ?resetHeight@QDeclarativeItemPrivate@@UAEXXZ @ 803 NONAME ; void QDeclarativeItemPrivate::resetHeight(void)
- ?qt_metacast@QDeclarativeDebugPropertyWatch@@UAEPAXPBD@Z @ 804 NONAME ; void * QDeclarativeDebugPropertyWatch::qt_metacast(char const *)
- ??1QDeclarativeStateOperation@@UAE@XZ @ 805 NONAME ; QDeclarativeStateOperation::~QDeclarativeStateOperation(void)
- ??_EQDeclarativeDebugQuery@@UAE@I@Z @ 806 NONAME ; QDeclarativeDebugQuery::~QDeclarativeDebugQuery(unsigned int)
- ?update@QDeclarativeAbstractBinding@@QAEXXZ @ 807 NONAME ; void QDeclarativeAbstractBinding::update(void)
- ?tr@QDeclarativeBehavior@@SA?AVQString@@PBD0H@Z @ 808 NONAME ; class QString QDeclarativeBehavior::tr(char const *, char const *, int)
- ?read@QPacketProtocol@@QAE?AVQPacket@@XZ @ 809 NONAME ; class QPacket QPacketProtocol::read(void)
- ?setParentItem@QDeclarativeItem@@QAEXPAV1@@Z @ 810 NONAME ; void QDeclarativeItem::setParentItem(class QDeclarativeItem *)
- ?qmlAttachedProperties@QDeclarativeComponent@@SAPAVQDeclarativeComponentAttached@@PAVQObject@@@Z @ 811 NONAME ; class QDeclarativeComponentAttached * QDeclarativeComponent::qmlAttachedProperties(class QObject *)
- ??0QDeclarativeView@@QAE@ABVQUrl@@PAVQWidget@@@Z @ 812 NONAME ; QDeclarativeView::QDeclarativeView(class QUrl const &, class QWidget *)
- ?qt_metacall@QDeclarativePixmapReply@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 813 NONAME ABSENT ; int QDeclarativePixmapReply::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?valueChanged@QDeclarativeExpression@@IAEXXZ @ 814 NONAME ; void QDeclarativeExpression::valueChanged(void)
- ?childrenChanged@QDeclarativeItem@@IAEXXZ @ 815 NONAME ABSENT ; void QDeclarativeItem::childrenChanged(void)
- ??_EQDeclarativeView@@UAE@I@Z @ 816 NONAME ; QDeclarativeView::~QDeclarativeView(unsigned int)
- ?trUtf8@QDeclarativeStateGroup@@SA?AVQString@@PBD0H@Z @ 817 NONAME ; class QString QDeclarativeStateGroup::trUtf8(char const *, char const *, int)
- ?tag@QMetaMethodBuilder@@QBE?AVQByteArray@@XZ @ 818 NONAME ; class QByteArray QMetaMethodBuilder::tag(void) const
- ?getStaticMetaObject@QPacketProtocol@@SAABUQMetaObject@@XZ @ 819 NONAME ; struct QMetaObject const & QPacketProtocol::getStaticMetaObject(void)
- ?setContext@QDeclarativeScriptString@@QAEXPAVQDeclarativeContext@@@Z @ 820 NONAME ; void QDeclarativeScriptString::setContext(class QDeclarativeContext *)
- ?addImageProvider@QDeclarativeEngine@@QAEXABVQString@@PAVQDeclarativeImageProvider@@@Z @ 821 NONAME ; void QDeclarativeEngine::addImageProvider(class QString const &, class QDeclarativeImageProvider *)
- ?d_func@QDeclarativeStateGroup@@ABEPBVQDeclarativeStateGroupPrivate@@XZ @ 822 NONAME ; class QDeclarativeStateGroupPrivate const * QDeclarativeStateGroup::d_func(void) const
- ?stateChanged@QDeclarativeItem@@IAEXABVQString@@@Z @ 823 NONAME ; void QDeclarativeItem::stateChanged(class QString const &)
- ?horizontalAlignmentChanged@QDeclarativeText@@IAEXW4HAlignment@1@@Z @ 824 NONAME ; void QDeclarativeText::horizontalAlignmentChanged(enum QDeclarativeText::HAlignment)
- ?tr@QDeclarativePixmapCache@@SA?AVQString@@PBD0@Z @ 825 NONAME ABSENT ; class QString QDeclarativePixmapCache::tr(char const *, char const *)
- ??5@YAAAVQDataStream@@AAV0@AAUQDeclarativeObjectData@QDeclarativeEngineDebugServer@@@Z @ 826 NONAME ; class QDataStream & operator>>(class QDataStream &, struct QDeclarativeEngineDebugServer::QDeclarativeObjectData &)
- ?setDynamic@QMetaPropertyBuilder@@QAEX_N@Z @ 827 NONAME ; void QMetaPropertyBuilder::setDynamic(bool)
- ?d_func@QDeclarativeEngine@@ABEPBVQDeclarativeEnginePrivate@@XZ @ 828 NONAME ; class QDeclarativeEnginePrivate const * QDeclarativeEngine::d_func(void) const
- ?toBinding@QDeclarativeDomValue@@QBE?AVQDeclarativeDomValueBinding@@XZ @ 829 NONAME ; class QDeclarativeDomValueBinding QDeclarativeDomValue::toBinding(void) const
- ?removeImageProvider@QDeclarativeEngine@@QAEXABVQString@@@Z @ 830 NONAME ; void QDeclarativeEngine::removeImageProvider(class QString const &)
- ?horizontalCenterOffsetChanged@QDeclarativeAnchors@@IAEXXZ @ 831 NONAME ; void QDeclarativeAnchors::horizontalCenterOffsetChanged(void)
- ?tr@QDeclarativeContext@@SA?AVQString@@PBD0@Z @ 832 NONAME ; class QString QDeclarativeContext::tr(char const *, char const *)
- ?d_func@QDeclarativeItem@@ABEPBVQDeclarativeItemPrivate@@XZ @ 833 NONAME ; class QDeclarativeItemPrivate const * QDeclarativeItem::d_func(void) const
- ?tr@QDeclarativePixmapReply@@SA?AVQString@@PBD0@Z @ 834 NONAME ABSENT ; class QString QDeclarativePixmapReply::tr(char const *, char const *)
- ?isUser@QMetaPropertyBuilder@@QBE_NXZ @ 835 NONAME ; bool QMetaPropertyBuilder::isUser(void) const
- ?doUpdate@QDeclarativeRectangle@@AAEXXZ @ 836 NONAME ; void QDeclarativeRectangle::doUpdate(void)
- ?qmlExecuteDeferred@@YAXPAVQObject@@@Z @ 837 NONAME ; void qmlExecuteDeferred(class QObject *)
- ?setImplicitHeight@QDeclarativeItem@@IAEXM@Z @ 838 NONAME ; void QDeclarativeItem::setImplicitHeight(float)
- ?horizontalCenterOffset@QDeclarativeAnchors@@QBEMXZ @ 839 NONAME ; float QDeclarativeAnchors::horizontalCenterOffset(void) const
- ?resetRight@QDeclarativeAnchors@@QAEXXZ @ 840 NONAME ; void QDeclarativeAnchors::resetRight(void)
- ??6QDeclarativeInfo@@QAEAAV0@J@Z @ 841 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(long)
- ?isReady@QDeclarativeComponent@@QBE_NXZ @ 842 NONAME ; bool QDeclarativeComponent::isReady(void) const
- ??4QDeclarativeDebugObjectReference@@QAEAAV0@ABV0@@Z @ 843 NONAME ; class QDeclarativeDebugObjectReference & QDeclarativeDebugObjectReference::operator=(class QDeclarativeDebugObjectReference const &)
- ??1QDeclarativeDomDynamicProperty@@QAE@XZ @ 844 NONAME ; QDeclarativeDomDynamicProperty::~QDeclarativeDomDynamicProperty(void)
- ??1QDeclarativeBehavior@@UAE@XZ @ 845 NONAME ; QDeclarativeBehavior::~QDeclarativeBehavior(void)
- ?qmlInfo@@YA?AVQDeclarativeInfo@@PBVQObject@@@Z @ 846 NONAME ; class QDeclarativeInfo qmlInfo(class QObject const *)
- ?qt_metacall@QDeclarativeDebugClient@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 847 NONAME ; int QDeclarativeDebugClient::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?d_func@QDeclarativeDebugService@@ABEPBVQDeclarativeDebugServicePrivate@@XZ @ 848 NONAME ; class QDeclarativeDebugServicePrivate const * QDeclarativeDebugService::d_func(void) const
- ??1QDeclarativeDebugQuery@@UAE@XZ @ 849 NONAME ; QDeclarativeDebugQuery::~QDeclarativeDebugQuery(void)
- ?data_append@QDeclarativeItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQObject@@@@PAVQObject@@@Z @ 850 NONAME ; void QDeclarativeItemPrivate::data_append(class QDeclarativeListProperty<class QObject> *, class QObject *)
- ??1QDeclarativePixmapReply@@UAE@XZ @ 851 NONAME ABSENT ; QDeclarativePixmapReply::~QDeclarativePixmapReply(void)
- ?tr@QDeclarativeState@@SA?AVQString@@PBD0@Z @ 852 NONAME ; class QString QDeclarativeState::tr(char const *, char const *)
- ?isLoading@QDeclarativePixmapReply@@ABE_NXZ @ 853 NONAME ABSENT ; bool QDeclarativePixmapReply::isLoading(void) const
- ?trUtf8@QDeclarativeEngineDebug@@SA?AVQString@@PBD0H@Z @ 854 NONAME ; class QString QDeclarativeEngineDebug::trUtf8(char const *, char const *, int)
- ?createProperty@QDeclarativeOpenMetaObject@@MAEHPBD0@Z @ 855 NONAME ; int QDeclarativeOpenMetaObject::createProperty(char const *, char const *)
- ?bottomMargin@QDeclarativeAnchors@@QBEMXZ @ 856 NONAME ; float QDeclarativeAnchors::bottomMargin(void) const
- ?q_func@QDeclarativeItemPrivate@@AAEPAVQDeclarativeItem@@XZ @ 857 NONAME ; class QDeclarativeItem * QDeclarativeItemPrivate::q_func(void)
- ?trUtf8@QDeclarativeScaleGrid@@SA?AVQString@@PBD0@Z @ 858 NONAME ; class QString QDeclarativeScaleGrid::trUtf8(char const *, char const *)
- ??1QDeclarativeDomList@@QAE@XZ @ 859 NONAME ; QDeclarativeDomList::~QDeclarativeDomList(void)
- ??0QDeclarativeOpenMetaObjectType@@QAE@PBUQMetaObject@@PAVQDeclarativeEngine@@@Z @ 860 NONAME ; QDeclarativeOpenMetaObjectType::QDeclarativeOpenMetaObjectType(struct QMetaObject const *, class QDeclarativeEngine *)
- ?removeProperty@QMetaObjectBuilder@@QAEXH@Z @ 861 NONAME ; void QMetaObjectBuilder::removeProperty(int)
- ?staticMetaObject@QDeclarativeScaleGrid@@2UQMetaObject@@B @ 862 NONAME ; struct QMetaObject const QDeclarativeScaleGrid::staticMetaObject
- ??0QDeclarativeDomObject@@QAE@ABV0@@Z @ 863 NONAME ; QDeclarativeDomObject::QDeclarativeDomObject(class QDeclarativeDomObject const &)
- ?qt_metacast@QDeclarativeDebugWatch@@UAEPAXPBD@Z @ 864 NONAME ; void * QDeclarativeDebugWatch::qt_metacast(char const *)
- ?implicitHeight@QDeclarativeItem@@QBEMXZ @ 865 NONAME ; float QDeclarativeItem::implicitHeight(void) const
- ?trUtf8@QDeclarativeDebugPropertyWatch@@SA?AVQString@@PBD0@Z @ 866 NONAME ; class QString QDeclarativeDebugPropertyWatch::trUtf8(char const *, char const *)
- ?status@QDeclarativePixmapReply@@QBE?AW4Status@1@XZ @ 867 NONAME ABSENT ; enum QDeclarativePixmapReply::Status QDeclarativePixmapReply::status(void) const
+ ?focusScopeItemChange@QDeclarativeItemPrivate@@UAEX_N@Z @ 531 NONAME ; void QDeclarativeItemPrivate::focusScopeItemChange(bool)
+ ?bottomMarginChanged@QDeclarativeAnchors@@IAEXXZ @ 532 NONAME ; void QDeclarativeAnchors::bottomMarginChanged(void)
+ ?offlineStoragePath@QDeclarativeEngine@@QBE?AVQString@@XZ @ 533 NONAME ; class QString QDeclarativeEngine::offlineStoragePath(void) const
+ ?keys@QDeclarativePropertyMap@@QBE?AVQStringList@@XZ @ 534 NONAME ; class QStringList QDeclarativePropertyMap::keys(void) const
+ ?addItemChangeListener@QDeclarativeItemPrivate@@QAEXPAVQDeclarativeItemChangeListener@@V?$QFlags@W4ChangeType@QDeclarativeItemPrivate@@@@@Z @ 535 NONAME ; void QDeclarativeItemPrivate::addItemChangeListener(class QDeclarativeItemChangeListener *, class QFlags<enum QDeclarativeItemPrivate::ChangeType>)
+ ?clear@QDeclarativePixmap@@QAEXPAVQObject@@@Z @ 536 NONAME ; void QDeclarativePixmap::clear(class QObject *)
+ ?addConstructor@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQMetaMethod@@@Z @ 537 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addConstructor(class QMetaMethod const &)
+ ??6QDeclarativeInfo@@QAEAAV0@F@Z @ 538 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(short)
+ ?serialize@QMetaObjectBuilder@@QBEXAAVQDataStream@@@Z @ 539 NONAME ; void QMetaObjectBuilder::serialize(class QDataStream &) const
+ ??0QDeclarativeDebugContextReference@@QAE@ABV0@@Z @ 540 NONAME ; QDeclarativeDebugContextReference::QDeclarativeDebugContextReference(class QDeclarativeDebugContextReference const &)
+ ?saveProperty@QDeclarativePropertyPrivate@@SA?AVQByteArray@@PBUQMetaObject@@H@Z @ 541 NONAME ; class QByteArray QDeclarativePropertyPrivate::saveProperty(struct QMetaObject const *, int)
+ ?propertyType@QDeclarativeProperty@@QBEHXZ @ 542 NONAME ; int QDeclarativeProperty::propertyType(void) const
+ ?isDefaultProperty@QDeclarativeDomDynamicProperty@@QBE_NXZ @ 543 NONAME ; bool QDeclarativeDomDynamicProperty::isDefaultProperty(void) const
+ ??_EQDeclarativeBehavior@@UAE@I@Z @ 544 NONAME ; QDeclarativeBehavior::~QDeclarativeBehavior(unsigned int)
+ ??_EQDeclarativeListModel@@UAE@I@Z @ 545 NONAME ; QDeclarativeListModel::~QDeclarativeListModel(unsigned int)
+ ?isCreatable@QDeclarativeType@@QBE_NXZ @ 546 NONAME ; bool QDeclarativeType::isCreatable(void) const
+ ??6QDeclarativeInfo@@QAEAAV0@ABVQString@@@Z @ 547 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QString const &)
+ ?tr@QDeclarativePen@@SA?AVQString@@PBD0@Z @ 548 NONAME ; class QString QDeclarativePen::tr(char const *, char const *)
+ ?trUtf8@QDeclarativeContext@@SA?AVQString@@PBD0H@Z @ 549 NONAME ; class QString QDeclarativeContext::trUtf8(char const *, char const *, int)
+ ??0QDeclarativeListModel@@QAE@PAVQObject@@@Z @ 550 NONAME ; QDeclarativeListModel::QDeclarativeListModel(class QObject *)
+ ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugWatch@@ABVQDeclarativeDebugContextReference@@ABVQString@@PAVQObject@@@Z @ 551 NONAME ; class QDeclarativeDebugWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugContextReference const &, class QString const &, class QObject *)
+ ?setColumn@QDeclarativeError@@QAEXH@Z @ 552 NONAME ; void QDeclarativeError::setColumn(int)
+ ??1QDeclarativeTransition@@UAE@XZ @ 553 NONAME ; QDeclarativeTransition::~QDeclarativeTransition(void)
+ ??AQDeclarativePropertyMap@@QBE?AVQVariant@@ABVQString@@@Z @ 554 NONAME ; class QVariant QDeclarativePropertyMap::operator[](class QString const &) const
+ ?qt_metacall@QDeclarativeListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 555 NONAME ; int QDeclarativeListModel::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?qdeclarativeelement_destructor@QDeclarativePrivate@@YAXPAVQObject@@@Z @ 556 NONAME ; void QDeclarativePrivate::qdeclarativeelement_destructor(class QObject *)
+ ?registerCustomStringConverter@QDeclarativeMetaType@@SAXHP6A?AVQVariant@@ABVQString@@@Z@Z @ 557 NONAME ; void QDeclarativeMetaType::registerCustomStringConverter(int, class QVariant (*)(class QString const &))
+ ?metaObject@QDeclarativeEngine@@UBEPBUQMetaObject@@XZ @ 558 NONAME ; struct QMetaObject const * QDeclarativeEngine::metaObject(void) const
+ ??_EQDeclarativeDebugContextReference@@QAE@I@Z @ 559 NONAME ; QDeclarativeDebugContextReference::~QDeclarativeDebugContextReference(unsigned int)
+ ?propertyWrite@QDeclarativeOpenMetaObject@@MAEXH@Z @ 560 NONAME ; void QDeclarativeOpenMetaObject::propertyWrite(int)
+ ?qt_metacall@QDeclarativeDebugService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 561 NONAME ; int QDeclarativeDebugService::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?setVerticalCenterOffset@QDeclarativeAnchors@@QAEXM@Z @ 562 NONAME ; void QDeclarativeAnchors::setVerticalCenterOffset(float)
+ ??1QDeclarativeDebugWatch@@UAE@XZ @ 563 NONAME ; QDeclarativeDebugWatch::~QDeclarativeDebugWatch(void)
+ ??1QPacketAutoSend@@UAE@XZ @ 564 NONAME ; QPacketAutoSend::~QPacketAutoSend(void)
+ ?geometryChanged@QDeclarativeText@@MAEXABVQRectF@@0@Z @ 565 NONAME ; void QDeclarativeText::geometryChanged(class QRectF const &, class QRectF const &)
+ ?d_func@QDeclarativeRectangle@@AAEPAVQDeclarativeRectanglePrivate@@XZ @ 566 NONAME ; class QDeclarativeRectanglePrivate * QDeclarativeRectangle::d_func(void)
+ ?qt_metacast@QDeclarativeListModel@@UAEPAXPBD@Z @ 567 NONAME ; void * QDeclarativeListModel::qt_metacast(char const *)
+ ?name@QDeclarativeCustomParserProperty@@QBE?AVQByteArray@@XZ @ 568 NONAME ; class QByteArray QDeclarativeCustomParserProperty::name(void) const
+ ?update@QDeclarativeBinding@@QAEXXZ @ 569 NONAME ; void QDeclarativeBinding::update(void)
+ ?trUtf8@QDeclarativeEngine@@SA?AVQString@@PBD0@Z @ 570 NONAME ; class QString QDeclarativeEngine::trUtf8(char const *, char const *)
+ ?qt_metacast@QDeclarativeDebugConnection@@UAEPAXPBD@Z @ 571 NONAME ; void * QDeclarativeDebugConnection::qt_metacast(char const *)
+ ?removeWatch@QDeclarativeEngineDebug@@QAEXPAVQDeclarativeDebugWatch@@@Z @ 572 NONAME ; void QDeclarativeEngineDebug::removeWatch(class QDeclarativeDebugWatch *)
+ ?qt_metacast@QDeclarativeBinding@@UAEPAXPBD@Z @ 573 NONAME ; void * QDeclarativeBinding::qt_metacast(char const *)
+ ?baseline@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 574 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::baseline(void) const
+ ?connectDownloadProgress@QDeclarativePixmap@@QAE_NPAVQObject@@PBD@Z @ 575 NONAME ; bool QDeclarativePixmap::connectDownloadProgress(class QObject *, char const *)
+ ?restore@QDeclarativePropertyPrivate@@SA?AVQDeclarativeProperty@@ABVQByteArray@@PAVQObject@@PAVQDeclarativeContextData@@@Z @ 576 NONAME ; class QDeclarativeProperty QDeclarativePropertyPrivate::restore(class QByteArray const &, class QObject *, class QDeclarativeContextData *)
+ ??0QDeclarativeProperty@@QAE@PAVQObject@@@Z @ 577 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *)
+ ?source@QDeclarativeDebugObjectReference@@QBE?AVQDeclarativeDebugFileReference@@XZ @ 578 NONAME ; class QDeclarativeDebugFileReference QDeclarativeDebugObjectReference::source(void) const
+ ?tr@QDeclarativeDebugExpressionQuery@@SA?AVQString@@PBD0H@Z @ 579 NONAME ; class QString QDeclarativeDebugExpressionQuery::tr(char const *, char const *, int)
+ ?qmlType@QDeclarativeMetaType@@SAPAVQDeclarativeType@@H@Z @ 580 NONAME ; class QDeclarativeType * QDeclarativeMetaType::qmlType(int)
+ ??1QDeclarativeCustomParser@@UAE@XZ @ 581 NONAME ; QDeclarativeCustomParser::~QDeclarativeCustomParser(void)
+ ?toList@QDeclarativeDomValue@@QBE?AVQDeclarativeDomList@@XZ @ 582 NONAME ; class QDeclarativeDomList QDeclarativeDomValue::toList(void) const
+ ?metaObject@QDeclarativeType@@QBEPBUQMetaObject@@XZ @ 583 NONAME ; struct QMetaObject const * QDeclarativeType::metaObject(void) const
+ ?animation@QDeclarativeBehavior@@QAEPAVQDeclarativeAbstractAnimation@@XZ @ 584 NONAME ; class QDeclarativeAbstractAnimation * QDeclarativeBehavior::animation(void)
+ ?listType@QDeclarativeMetaType@@SAHH@Z @ 585 NONAME ; int QDeclarativeMetaType::listType(int)
+ ?transform_append@QDeclarativeItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsTransform@@@@PAVQGraphicsTransform@@@Z @ 586 NONAME ; void QDeclarativeItemPrivate::transform_append(class QDeclarativeListProperty<class QGraphicsTransform> *, class QGraphicsTransform *)
+ ?d_func@QDeclarativeComponent@@AAEPAVQDeclarativeComponentPrivate@@XZ @ 587 NONAME ; class QDeclarativeComponentPrivate * QDeclarativeComponent::d_func(void)
+ ?variantFromString@QDeclarativeStringConverters@@YA?AVQVariant@@ABVQString@@@Z @ 588 NONAME ; class QVariant QDeclarativeStringConverters::variantFromString(class QString const &)
+ ?qt_metacall@QDeclarativeScaleGrid@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 589 NONAME ; int QDeclarativeScaleGrid::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?size@QDeclarativePropertyMap@@QBEHXZ @ 590 NONAME ; int QDeclarativePropertyMap::size(void) const
+ ?cancel@QDeclarativeState@@QAEXXZ @ 591 NONAME ; void QDeclarativeState::cancel(void)
+ ?qt_metacall@QDeclarativeStateGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 592 NONAME ; int QDeclarativeStateGroup::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0QDeclarativePropertyPrivate@@QAE@XZ @ 593 NONAME ; QDeclarativePropertyPrivate::QDeclarativePropertyPrivate(void)
+ ?getStaticMetaObject@QDeclarativeDebugPropertyWatch@@SAABUQMetaObject@@XZ @ 594 NONAME ; struct QMetaObject const & QDeclarativeDebugPropertyWatch::getStaticMetaObject(void)
+ ?trUtf8@QDeclarativeDebugWatch@@SA?AVQString@@PBD0H@Z @ 595 NONAME ; class QString QDeclarativeDebugWatch::trUtf8(char const *, char const *, int)
+ ?transformOrigin@QDeclarativeItem@@QBE?AW4TransformOrigin@1@XZ @ 596 NONAME ; enum QDeclarativeItem::TransformOrigin QDeclarativeItem::transformOrigin(void) const
+ ?setState@QDeclarativeDebugWatch@@AAEXW4State@1@@Z @ 597 NONAME ; void QDeclarativeDebugWatch::setState(enum QDeclarativeDebugWatch::State)
+ ?evaluateEnum@QDeclarativeCustomParser@@IBEHABVQByteArray@@@Z @ 598 NONAME ; int QDeclarativeCustomParser::evaluateEnum(class QByteArray const &) const
+ ?setState@QDeclarativeDebugQuery@@AAEXW4State@1@@Z @ 599 NONAME ; void QDeclarativeDebugQuery::setState(enum QDeclarativeDebugQuery::State)
+ ?d_func@QDeclarativeText@@ABEPBVQDeclarativeTextPrivate@@XZ @ 600 NONAME ; class QDeclarativeTextPrivate const * QDeclarativeText::d_func(void) const
+ ?transitionsProperty@QDeclarativeStateGroup@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeTransition@@@@XZ @ 601 NONAME ; class QDeclarativeListProperty<class QDeclarativeTransition> QDeclarativeStateGroup::transitionsProperty(void)
+ ?typeName@QDeclarativeType@@QBE?AVQByteArray@@XZ @ 602 NONAME ; class QByteArray QDeclarativeType::typeName(void) const
+ ?asStringList@Variant@QDeclarativeParser@@QBE?AVQStringList@@XZ @ 603 NONAME ; class QStringList QDeclarativeParser::Variant::asStringList(void) const
+ ?removeKey@QMetaEnumBuilder@@QAEXH@Z @ 604 NONAME ; void QMetaEnumBuilder::removeKey(int)
+ ?addRelatedMetaObject@QMetaObjectBuilder@@QAEHABQ6AABUQMetaObject@@XZ@Z @ 605 NONAME ; int QMetaObjectBuilder::addRelatedMetaObject(struct QMetaObject const & (* const)(void) const &)
+ ??0QDeclarativeDomValueLiteral@@QAE@XZ @ 606 NONAME ; QDeclarativeDomValueLiteral::QDeclarativeDomValueLiteral(void)
+ ??_EQDeclarativeDebugObjectExpressionWatch@@UAE@I@Z @ 607 NONAME ; QDeclarativeDebugObjectExpressionWatch::~QDeclarativeDebugObjectExpressionWatch(unsigned int)
+ ?computeTransformOrigin@QDeclarativeItemPrivate@@QBE?AVQPointF@@XZ @ 608 NONAME ; class QPointF QDeclarativeItemPrivate::computeTransformOrigin(void) const
+ ??0QDeclarativeListReference@@QAE@PAVQObject@@PBDPAVQDeclarativeEngine@@@Z @ 609 NONAME ; QDeclarativeListReference::QDeclarativeListReference(class QObject *, char const *, class QDeclarativeEngine *)
+ ?setData@QListModelInterface@@UAE_NHABV?$QHash@HVQVariant@@@@@Z @ 610 NONAME ; bool QListModelInterface::setData(int, class QHash<int, class QVariant> const &)
+ ??0QDeclarativePen@@QAE@PAVQObject@@@Z @ 611 NONAME ; QDeclarativePen::QDeclarativePen(class QObject *)
+ ?trUtf8@QPacketProtocol@@SA?AVQString@@PBD0H@Z @ 612 NONAME ; class QString QPacketProtocol::trUtf8(char const *, char const *, int)
+ ?setContextObject@QDeclarativeContext@@QAEXPAVQObject@@@Z @ 613 NONAME ; void QDeclarativeContext::setContextObject(class QObject *)
+ ??_EQDeclarativeState@@UAE@I@Z @ 614 NONAME ; QDeclarativeState::~QDeclarativeState(unsigned int)
+ ?expression@QDeclarativeExpression@@QBE?AVQString@@XZ @ 615 NONAME ; class QString QDeclarativeExpression::expression(void) const
+ ??1QDeclarativeDomDocument@@QAE@XZ @ 616 NONAME ; QDeclarativeDomDocument::~QDeclarativeDomDocument(void)
+ ?trUtf8@QDeclarativeListModel@@SA?AVQString@@PBD0H@Z @ 617 NONAME ; class QString QDeclarativeListModel::trUtf8(char const *, char const *, int)
+ ?asNumber@Variant@QDeclarativeParser@@QBENXZ @ 618 NONAME ; double QDeclarativeParser::Variant::asNumber(void) const
+ ?d_func@QDeclarativeDebugClient@@ABEPBVQDeclarativeDebugClientPrivate@@XZ @ 619 NONAME ; class QDeclarativeDebugClientPrivate const * QDeclarativeDebugClient::d_func(void) const
+ ?sceneEvent@QDeclarativeItem@@MAE_NPAVQEvent@@@Z @ 620 NONAME ; bool QDeclarativeItem::sceneEvent(class QEvent *)
+ ??0QDeclarativeDebugRootContextQuery@@AAE@PAVQObject@@@Z @ 621 NONAME ; QDeclarativeDebugRootContextQuery::QDeclarativeDebugRootContextQuery(class QObject *)
+ ?name@QDeclarativeDebugEngineReference@@QBE?AVQString@@XZ @ 622 NONAME ; class QString QDeclarativeDebugEngineReference::name(void) const
+ ??_EQDeclarativeTransition@@UAE@I@Z @ 623 NONAME ; QDeclarativeTransition::~QDeclarativeTransition(unsigned int)
+ ??0QDeclarativeAction@@QAE@ABV0@@Z @ 624 NONAME ; QDeclarativeAction::QDeclarativeAction(class QDeclarativeAction const &)
+ ?extends@QDeclarativeState@@QBE?AVQString@@XZ @ 625 NONAME ; class QString QDeclarativeState::extends(void) const
+ ?error@QDeclarativeCustomParser@@IAEXABVQDeclarativeCustomParserProperty@@ABVQString@@@Z @ 626 NONAME ; void QDeclarativeCustomParser::error(class QDeclarativeCustomParserProperty const &, class QString const &)
+ ??0QDeclarativeCustomParserNode@@QAE@XZ @ 627 NONAME ; QDeclarativeCustomParserNode::QDeclarativeCustomParserNode(void)
+ ?version@QDeclarativeDomImport@@QBE?AVQString@@XZ @ 628 NONAME ; class QString QDeclarativeDomImport::version(void) const
+ ?smooth@QDeclarativeItem@@QBE_NXZ @ 629 NONAME ; bool QDeclarativeItem::smooth(void) const
+ ??1QDeclarativeInfo@@QAE@XZ @ 630 NONAME ; QDeclarativeInfo::~QDeclarativeInfo(void)
+ ?qt_metacast@QDeclarativeStateOperation@@UAEPAXPBD@Z @ 631 NONAME ; void * QDeclarativeStateOperation::qt_metacast(char const *)
+ ??4QDeclarativeDebugEngineReference@@QAEAAV0@ABV0@@Z @ 632 NONAME ; class QDeclarativeDebugEngineReference & QDeclarativeDebugEngineReference::operator=(class QDeclarativeDebugEngineReference const &)
+ ?isValueType@QDeclarativePropertyPrivate@@QBE_NXZ @ 633 NONAME ; bool QDeclarativePropertyPrivate::isValueType(void) const
+ ??0QDeclarativeDomValueValueSource@@QAE@ABV0@@Z @ 634 NONAME ; QDeclarativeDomValueValueSource::QDeclarativeDomValueValueSource(class QDeclarativeDomValueValueSource const &)
+ ?trUtf8@QDeclarativeDebugPropertyWatch@@SA?AVQString@@PBD0H@Z @ 635 NONAME ; class QString QDeclarativeDebugPropertyWatch::trUtf8(char const *, char const *, int)
+ ?trUtf8@QDeclarativePixmap@@SA?AVQString@@PBD0H@Z @ 636 NONAME ; class QString QDeclarativePixmap::trUtf8(char const *, char const *, int)
+ ??_EQDeclarativeDebugExpressionQuery@@UAE@I@Z @ 637 NONAME ; QDeclarativeDebugExpressionQuery::~QDeclarativeDebugExpressionQuery(unsigned int)
+ ?trUtf8@QListModelInterface@@SA?AVQString@@PBD0H@Z @ 638 NONAME ; class QString QListModelInterface::trUtf8(char const *, char const *, int)
+ ?qt_metacall@QDeclarativeDebugObjectExpressionWatch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 639 NONAME ; int QDeclarativeDebugObjectExpressionWatch::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?d_func@QDeclarativeItem@@AAEPAVQDeclarativeItemPrivate@@XZ @ 640 NONAME ; class QDeclarativeItemPrivate * QDeclarativeItem::d_func(void)
+ ?binding@QDeclarativeDomValueBinding@@QBE?AVQString@@XZ @ 641 NONAME ; class QString QDeclarativeDomValueBinding::binding(void) const
+ ?updateAutoState@QDeclarativeStateGroup@@AAE_NXZ @ 642 NONAME ; bool QDeclarativeStateGroup::updateAutoState(void)
+ ?tr@QDeclarativeDebugService@@SA?AVQString@@PBD0@Z @ 643 NONAME ; class QString QDeclarativeDebugService::tr(char const *, char const *)
+ ?tr@QDeclarativeComponent@@SA?AVQString@@PBD0H@Z @ 644 NONAME ; class QString QDeclarativeComponent::tr(char const *, char const *, int)
+ ??1QDeclarativeProperty@@QAE@XZ @ 645 NONAME ; QDeclarativeProperty::~QDeclarativeProperty(void)
+ ?fontChanged@QDeclarativeText@@IAEXABVQFont@@@Z @ 646 NONAME ; void QDeclarativeText::fontChanged(class QFont const &)
+ ?isLoading@QDeclarativePixmap@@QBE_NXZ @ 647 NONAME ; bool QDeclarativePixmap::isLoading(void) const
+ ?removeItemChangeListener@QDeclarativeItemPrivate@@QAEXPAVQDeclarativeItemChangeListener@@V?$QFlags@W4ChangeType@QDeclarativeItemPrivate@@@@@Z @ 648 NONAME ; void QDeclarativeItemPrivate::removeItemChangeListener(class QDeclarativeItemChangeListener *, class QFlags<enum QDeclarativeItemPrivate::ChangeType>)
+ ?isList@QDeclarativeDomValue@@QBE_NXZ @ 649 NONAME ; bool QDeclarativeDomValue::isList(void) const
+ ?insert@QDeclarativeListModel@@QAEXHABVQScriptValue@@@Z @ 650 NONAME ; void QDeclarativeListModel::insert(int, class QScriptValue const &)
+ ?staticMetaObject@QDeclarativeListModel@@2UQMetaObject@@B @ 651 NONAME ; struct QMetaObject const QDeclarativeListModel::staticMetaObject
+ ?load@QDeclarativePixmap@@QAEXPAVQDeclarativeEngine@@ABVQUrl@@@Z @ 652 NONAME ; void QDeclarativePixmap::load(class QDeclarativeEngine *, class QUrl const &)
+ ?indexOfConstructor@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 653 NONAME ; int QMetaObjectBuilder::indexOfConstructor(class QByteArray const &)
+ ?lineNumber@QDeclarativeExpression@@QBEHXZ @ 654 NONAME ; int QDeclarativeExpression::lineNumber(void) const
+ ?trUtf8@QDeclarativeDebugRootContextQuery@@SA?AVQString@@PBD0H@Z @ 655 NONAME ; class QString QDeclarativeDebugRootContextQuery::trUtf8(char const *, char const *, int)
+ ?toString@QDeclarativeError@@QBE?AVQString@@XZ @ 656 NONAME ; class QString QDeclarativeError::toString(void) const
+ ?index@QMetaPropertyBuilder@@QBEHXZ @ 657 NONAME ; int QMetaPropertyBuilder::index(void) const
+ ?commaPositions@QDeclarativeDomList@@QBE?AV?$QList@H@@XZ @ 658 NONAME ; class QList<int> QDeclarativeDomList::commaPositions(void) const
+ ?tr@QDeclarativeDebugObjectExpressionWatch@@SA?AVQString@@PBD0@Z @ 659 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::tr(char const *, char const *)
+ ?tr@QDeclarativeAnchors@@SA?AVQString@@PBD0@Z @ 660 NONAME ; class QString QDeclarativeAnchors::tr(char const *, char const *)
+ ?tr@QDeclarativeEngine@@SA?AVQString@@PBD0@Z @ 661 NONAME ; class QString QDeclarativeEngine::tr(char const *, char const *)
+ ?setTextFormat@QDeclarativeText@@QAEXW4TextFormat@1@@Z @ 662 NONAME ; void QDeclarativeText::setTextFormat(enum QDeclarativeText::TextFormat)
+ ?parserStatusCast@QDeclarativeType@@QBEHXZ @ 663 NONAME ; int QDeclarativeType::parserStatusCast(void) const
+ ??_EQListModelInterface@@UAE@I@Z @ 664 NONAME ; QListModelInterface::~QListModelInterface(unsigned int)
+ ?trUtf8@QDeclarativeBehavior@@SA?AVQString@@PBD0@Z @ 665 NONAME ; class QString QDeclarativeBehavior::trUtf8(char const *, char const *)
+ ?getStaticMetaObject@QDeclarativeListModel@@SAABUQMetaObject@@XZ @ 666 NONAME ; struct QMetaObject const & QDeclarativeListModel::getStaticMetaObject(void)
+ ?setStdCppSet@QMetaPropertyBuilder@@QAEX_N@Z @ 667 NONAME ; void QMetaPropertyBuilder::setStdCppSet(bool)
+ ??0QDeclarativeItemPrivate@@QAE@XZ @ 668 NONAME ; QDeclarativeItemPrivate::QDeclarativeItemPrivate(void)
+ ??0QDeclarativeDebugService@@QAE@ABVQString@@PAVQObject@@@Z @ 669 NONAME ; QDeclarativeDebugService::QDeclarativeDebugService(class QString const &, class QObject *)
+ ?load@QDeclarativePixmap@@QAEXPAVQDeclarativeEngine@@ABVQUrl@@_N@Z @ 670 NONAME ; void QDeclarativePixmap::load(class QDeclarativeEngine *, class QUrl const &, bool)
+ ??_EQPacketAutoSend@@UAE@I@Z @ 671 NONAME ; QPacketAutoSend::~QPacketAutoSend(unsigned int)
+ ?saveValueType@QDeclarativePropertyPrivate@@SA?AVQByteArray@@PBUQMetaObject@@H0H@Z @ 672 NONAME ; class QByteArray QDeclarativePropertyPrivate::saveValueType(struct QMetaObject const *, int, struct QMetaObject const *, int)
+ ?resetHeight@QDeclarativeItem@@QAEXXZ @ 673 NONAME ; void QDeclarativeItem::resetHeight(void)
+ ?setVAlign@QDeclarativeText@@QAEXW4VAlignment@1@@Z @ 674 NONAME ; void QDeclarativeText::setVAlign(enum QDeclarativeText::VAlignment)
+ ??1QDeclarativeDebugService@@UAE@XZ @ 675 NONAME ; QDeclarativeDebugService::~QDeclarativeDebugService(void)
+ ?trUtf8@QDeclarativeDebugService@@SA?AVQString@@PBD0H@Z @ 676 NONAME ; class QString QDeclarativeDebugService::trUtf8(char const *, char const *, int)
+ ?elideMode@QDeclarativeText@@QBE?AW4TextElideMode@1@XZ @ 677 NONAME ; enum QDeclarativeText::TextElideMode QDeclarativeText::elideMode(void) const
+ ?baseUrl@QDeclarativeContext@@QBE?AVQUrl@@XZ @ 678 NONAME ; class QUrl QDeclarativeContext::baseUrl(void) const
+ ?qt_metacall@QDeclarativeDebugRootContextQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 679 NONAME ; int QDeclarativeDebugRootContextQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?isNamed@QDeclarativeState@@QBE_NXZ @ 680 NONAME ; bool QDeclarativeState::isNamed(void) const
+ ?isString@Variant@QDeclarativeParser@@QBE_NXZ @ 681 NONAME ; bool QDeclarativeParser::Variant::isString(void) const
+ ?restart@QDeclarativeItemPrivate@@SA_JAAVQElapsedTimer@@@Z @ 682 NONAME ; long long QDeclarativeItemPrivate::restart(class QElapsedTimer &)
+ ?trUtf8@QDeclarativeDebugClient@@SA?AVQString@@PBD0H@Z @ 683 NONAME ; class QString QDeclarativeDebugClient::trUtf8(char const *, char const *, int)
+ ?qt_metacast@QDeclarativeTransition@@UAEPAXPBD@Z @ 684 NONAME ; void * QDeclarativeTransition::qt_metacast(char const *)
+ ??1QDeclarativePixmap@@QAE@XZ @ 685 NONAME ; QDeclarativePixmap::~QDeclarativePixmap(void)
+ ?timeFromString@QDeclarativeStringConverters@@YA?AVQTime@@ABVQString@@PA_N@Z @ 686 NONAME ; class QTime QDeclarativeStringConverters::timeFromString(class QString const &, bool *)
+ ?d_func@QDeclarativeDebugClient@@AAEPAVQDeclarativeDebugClientPrivate@@XZ @ 687 NONAME ; class QDeclarativeDebugClientPrivate * QDeclarativeDebugClient::d_func(void)
+ ??1QDeclarativeType@@AAE@XZ @ 688 NONAME ; QDeclarativeType::~QDeclarativeType(void)
+ ?colorFromString@QDeclarativeStringConverters@@YA?AVQColor@@ABVQString@@PA_N@Z @ 689 NONAME ; class QColor QDeclarativeStringConverters::colorFromString(class QString const &, bool *)
+ ??_EQPacketProtocol@@UAE@I@Z @ 690 NONAME ; QPacketProtocol::~QPacketProtocol(unsigned int)
+ ?tr@QDeclarativeListModel@@SA?AVQString@@PBD0@Z @ 691 NONAME ; class QString QDeclarativeListModel::tr(char const *, char const *)
+ ??0QDeclarativePixmap@@QAE@XZ @ 692 NONAME ; QDeclarativePixmap::QDeclarativePixmap(void)
+ ??0QDeclarativeDebugObjectReference@@QAE@XZ @ 693 NONAME ; QDeclarativeDebugObjectReference::QDeclarativeDebugObjectReference(void)
+ ?staticMetaObject@QDeclarativeExtensionPlugin@@2UQMetaObject@@B @ 694 NONAME ; struct QMetaObject const QDeclarativeExtensionPlugin::staticMetaObject
+ ?isNull@QDeclarativeScaleGrid@@QBE_NXZ @ 695 NONAME ; bool QDeclarativeScaleGrid::isNull(void) const
+ ??_EQDeclarativeStateOperation@@UAE@I@Z @ 696 NONAME ; QDeclarativeStateOperation::~QDeclarativeStateOperation(unsigned int)
+ ??6QDeclarativeInfo@@QAEAAV0@H@Z @ 697 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(int)
+ ??0QDeclarativeDomDynamicProperty@@QAE@XZ @ 698 NONAME ; QDeclarativeDomDynamicProperty::QDeclarativeDomDynamicProperty(void)
+ ?tr@QDeclarativeRectangle@@SA?AVQString@@PBD0H@Z @ 699 NONAME ; class QString QDeclarativeRectangle::tr(char const *, char const *, int)
+ ?type@QDeclarativeProperty@@QBE?AW4Type@1@XZ @ 700 NONAME ; enum QDeclarativeProperty::Type QDeclarativeProperty::type(void) const
+ ??0QDeclarativeDebugQuery@@IAE@PAVQObject@@@Z @ 701 NONAME ; QDeclarativeDebugQuery::QDeclarativeDebugQuery(class QObject *)
+ ?baselineOffset@QDeclarativeAnchors@@QBEMXZ @ 702 NONAME ; float QDeclarativeAnchors::baselineOffset(void) const
+ ??4QDeclarativeDomDocument@@QAEAAV0@ABV0@@Z @ 703 NONAME ; class QDeclarativeDomDocument & QDeclarativeDomDocument::operator=(class QDeclarativeDomDocument const &)
+ ??0QDeclarativeOpenMetaObject@@QAE@PAVQObject@@PAVQDeclarativeOpenMetaObjectType@@_N@Z @ 704 NONAME ; QDeclarativeOpenMetaObject::QDeclarativeOpenMetaObject(class QObject *, class QDeclarativeOpenMetaObjectType *, bool)
+ ?trUtf8@QDeclarativeExpression@@SA?AVQString@@PBD0@Z @ 705 NONAME ; class QString QDeclarativeExpression::trUtf8(char const *, char const *)
+ ??0QPacketProtocol@@QAE@PAVQIODevice@@PAVQObject@@@Z @ 706 NONAME ; QPacketProtocol::QPacketProtocol(class QIODevice *, class QObject *)
+ ??1QDeclarativeListReference@@QAE@XZ @ 707 NONAME ; QDeclarativeListReference::~QDeclarativeListReference(void)
+ ?clearError@QDeclarativeExpression@@QAEXXZ @ 708 NONAME ; void QDeclarativeExpression::clearError(void)
+ ?setLineNumber@QDeclarativeDebugFileReference@@QAEXH@Z @ 709 NONAME ; void QDeclarativeDebugFileReference::setLineNumber(int)
+ ?qt_metacall@QDeclarativeExtensionPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 710 NONAME ; int QDeclarativeExtensionPlugin::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?boundingRect@QDeclarativeText@@UBE?AVQRectF@@XZ @ 711 NONAME ; class QRectF QDeclarativeText::boundingRect(void) const
+ ?setColor@QDeclarativePen@@QAEXABVQColor@@@Z @ 712 NONAME ; void QDeclarativePen::setColor(class QColor const &)
+ ??0QDeclarativeDomImport@@QAE@XZ @ 713 NONAME ; QDeclarativeDomImport::QDeclarativeDomImport(void)
+ ?clearErrors@QDeclarativeCustomParser@@QAEXXZ @ 714 NONAME ; void QDeclarativeCustomParser::clearErrors(void)
+ ?trUtf8@QDeclarativeDebugQuery@@SA?AVQString@@PBD0H@Z @ 715 NONAME ; class QString QDeclarativeDebugQuery::trUtf8(char const *, char const *, int)
+ ?toRelocatableData@QMetaObjectBuilder@@QBE?AVQByteArray@@PA_N@Z @ 716 NONAME ; class QByteArray QMetaObjectBuilder::toRelocatableData(bool *) const
+ ?qt_metacast@QDeclarativeView@@UAEPAXPBD@Z @ 717 NONAME ; void * QDeclarativeView::qt_metacast(char const *)
+ ?mapToItem@QDeclarativeItem@@QBE?AVQScriptValue@@ABV2@MM@Z @ 718 NONAME ; class QScriptValue QDeclarativeItem::mapToItem(class QScriptValue const &, float, float) const
+ ?setPluginPathList@QDeclarativeEngine@@QAEXABVQStringList@@@Z @ 719 NONAME ; void QDeclarativeEngine::setPluginPathList(class QStringList const &)
+ ?metaObject@QDeclarativeState@@UBEPBUQMetaObject@@XZ @ 720 NONAME ; struct QMetaObject const * QDeclarativeState::metaObject(void) const
+ ?boundingRect@QDeclarativeRectangle@@UBE?AVQRectF@@XZ @ 721 NONAME ; class QRectF QDeclarativeRectangle::boundingRect(void) const
+ ?uri@QDeclarativeDomImport@@QBE?AVQString@@XZ @ 722 NONAME ; class QString QDeclarativeDomImport::uri(void) const
+ ?setContextProperty@QDeclarativeContext@@QAEXABVQString@@PAVQObject@@@Z @ 723 NONAME ; void QDeclarativeContext::setContextProperty(class QString const &, class QObject *)
+ ?setBaseUrl@QDeclarativeEngine@@QAEXABVQUrl@@@Z @ 724 NONAME ; void QDeclarativeEngine::setBaseUrl(class QUrl const &)
+ ?trUtf8@QDeclarativeDebugEnginesQuery@@SA?AVQString@@PBD0H@Z @ 725 NONAME ; class QString QDeclarativeDebugEnginesQuery::trUtf8(char const *, char const *, int)
+ ?setScriptable@QMetaPropertyBuilder@@QAEX_N@Z @ 726 NONAME ; void QMetaPropertyBuilder::setScriptable(bool)
+ ??0QDeclarativeProperty@@QAE@PAVQObject@@PAVQDeclarativeEngine@@@Z @ 727 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QDeclarativeEngine *)
+ ?itemsInserted@QListModelInterface@@IAEXHH@Z @ 728 NONAME ; void QListModelInterface::itemsInserted(int, int)
+ ?generateBorderedRect@QDeclarativeRectangle@@AAEXXZ @ 729 NONAME ; void QDeclarativeRectangle::generateBorderedRect(void)
+ ?verticalCenterOffsetChanged@QDeclarativeAnchors@@IAEXXZ @ 730 NONAME ; void QDeclarativeAnchors::verticalCenterOffsetChanged(void)
+ ?width@QDeclarativeItem@@QBEMXZ @ 731 NONAME ; float QDeclarativeItem::width(void) const
+ ?isValueInterceptor@QDeclarativeDomValue@@QBE_NXZ @ 732 NONAME ; bool QDeclarativeDomValue::isValueInterceptor(void) const
+ ?transform_at@QDeclarativeItemPrivate@@SAPAVQGraphicsTransform@@PAV?$QDeclarativeListProperty@VQGraphicsTransform@@@@H@Z @ 733 NONAME ; class QGraphicsTransform * QDeclarativeItemPrivate::transform_at(class QDeclarativeListProperty<class QGraphicsTransform> *, int)
+ ??1QDeclarativeDomValueBinding@@QAE@XZ @ 734 NONAME ; QDeclarativeDomValueBinding::~QDeclarativeDomValueBinding(void)
+ ?qt_metacast@QDeclarativeAnchors@@UAEPAXPBD@Z @ 735 NONAME ; void * QDeclarativeAnchors::qt_metacast(char const *)
+ ?isInterface@QDeclarativeMetaType@@SA_NH@Z @ 736 NONAME ; bool QDeclarativeMetaType::isInterface(int)
+ ?qt_metacall@QDeclarativeRectangle@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 737 NONAME ; int QDeclarativeRectangle::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?trUtf8@QDeclarativePen@@SA?AVQString@@PBD0H@Z @ 738 NONAME ; class QString QDeclarativePen::trUtf8(char const *, char const *, int)
+ ??0Variant@QDeclarativeParser@@QAE@ABVQString@@PAVNode@AST@QDeclarativeJS@@@Z @ 739 NONAME ; QDeclarativeParser::Variant::Variant(class QString const &, class QDeclarativeJS::AST::Node *)
+ ?rootObject@QDeclarativeDomDocument@@QBE?AVQDeclarativeDomObject@@XZ @ 740 NONAME ; class QDeclarativeDomObject QDeclarativeDomDocument::rootObject(void) const
+ ?rightChanged@QDeclarativeAnchors@@IAEXXZ @ 741 NONAME ; void QDeclarativeAnchors::rightChanged(void)
+ ?isReady@QDeclarativePixmap@@QBE_NXZ @ 742 NONAME ; bool QDeclarativePixmap::isReady(void) const
+ ??6QDeclarativeInfo@@QAEAAV0@ABVQByteArray@@@Z @ 743 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QByteArray const &)
+ ?qt_metacast@QDeclarativeEngine@@UAEPAXPBD@Z @ 744 NONAME ; void * QDeclarativeEngine::qt_metacast(char const *)
+ ?objectType@QDeclarativeDomObject@@QBE?AVQByteArray@@XZ @ 745 NONAME ; class QByteArray QDeclarativeDomObject::objectType(void) const
+ ?addConstructor@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@@Z @ 746 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addConstructor(class QByteArray const &)
+ ?read@QDeclarativeProperty@@SA?AVQVariant@@PAVQObject@@ABVQString@@PAVQDeclarativeContext@@@Z @ 747 NONAME ; class QVariant QDeclarativeProperty::read(class QObject *, class QString const &, class QDeclarativeContext *)
+ ?staticMetaObject@QDeclarativeDebugExpressionQuery@@2UQMetaObject@@B @ 748 NONAME ; struct QMetaObject const QDeclarativeDebugExpressionQuery::staticMetaObject
+ ?queryRootContexts@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugRootContextQuery@@ABVQDeclarativeDebugEngineReference@@PAVQObject@@@Z @ 749 NONAME ; class QDeclarativeDebugRootContextQuery * QDeclarativeEngineDebug::queryRootContexts(class QDeclarativeDebugEngineReference const &, class QObject *)
+ ?vector3DFromString@QDeclarativeStringConverters@@YA?AVQVector3D@@ABVQString@@PA_N@Z @ 750 NONAME ; class QVector3D QDeclarativeStringConverters::vector3DFromString(class QString const &, bool *)
+ ?rootContext@QDeclarativeView@@QBEPAVQDeclarativeContext@@XZ @ 751 NONAME ; class QDeclarativeContext * QDeclarativeView::rootContext(void) const
+ ??_EQDeclarativeDebugPropertyWatch@@UAE@I@Z @ 752 NONAME ; QDeclarativeDebugPropertyWatch::~QDeclarativeDebugPropertyWatch(unsigned int)
+ ?relatedMetaObjectCount@QMetaObjectBuilder@@QBEHXZ @ 753 NONAME ; int QMetaObjectBuilder::relatedMetaObjectCount(void) const
+ ?script@QDeclarativeScriptString@@QBE?AVQString@@XZ @ 754 NONAME ; class QString QDeclarativeScriptString::script(void) const
+ ?index@QMetaMethodBuilder@@QBEHXZ @ 755 NONAME ; int QMetaMethodBuilder::index(void) const
+ ??4QDeclarativeDomValueBinding@@QAEAAV0@ABV0@@Z @ 756 NONAME ; class QDeclarativeDomValueBinding & QDeclarativeDomValueBinding::operator=(class QDeclarativeDomValueBinding const &)
+ ??0QDeclarativeExpression@@QAE@XZ @ 757 NONAME ; QDeclarativeExpression::QDeclarativeExpression(void)
+ ?paint@QDeclarativeItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 758 NONAME ; void QDeclarativeItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
+ ?send@QPacketProtocol@@QAE?AVQPacketAutoSend@@XZ @ 759 NONAME ; class QPacketAutoSend QPacketProtocol::send(void)
+ ?countChanged@QDeclarativeListModel@@IAEXXZ @ 760 NONAME ; void QDeclarativeListModel::countChanged(void)
+ ??0QDeclarativeGridScaledImage@@QAE@PAVQIODevice@@@Z @ 761 NONAME ; QDeclarativeGridScaledImage::QDeclarativeGridScaledImage(class QIODevice *)
+ ??_EQDeclarativeBinding@@UAE@I@Z @ 762 NONAME ; QDeclarativeBinding::~QDeclarativeBinding(unsigned int)
+ ?baseMetaObject@QDeclarativeType@@QBEPBUQMetaObject@@XZ @ 763 NONAME ; struct QMetaObject const * QDeclarativeType::baseMetaObject(void) const
+ ?tr@QDeclarativeDebugConnection@@SA?AVQString@@PBD0@Z @ 764 NONAME ; class QString QDeclarativeDebugConnection::tr(char const *, char const *)
+ ?staticMetaObject@QDeclarativeBinding@@2UQMetaObject@@B @ 765 NONAME ; struct QMetaObject const QDeclarativeBinding::staticMetaObject
+ ?qualifier@QDeclarativeDomImport@@QBE?AVQString@@XZ @ 766 NONAME ; class QString QDeclarativeDomImport::qualifier(void) const
+ ??0QDeclarativeProperty@@QAE@PAVQObject@@ABVQString@@PAVQDeclarativeContext@@@Z @ 767 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QString const &, class QDeclarativeContext *)
+ ?setSuperClass@QMetaObjectBuilder@@QAEXPBUQMetaObject@@@Z @ 768 NONAME ; void QMetaObjectBuilder::setSuperClass(struct QMetaObject const *)
+ ?contains@QDeclarativePropertyMap@@QBE_NABVQString@@@Z @ 769 NONAME ; bool QDeclarativePropertyMap::contains(class QString const &) const
+ ?setGradient@QDeclarativeRectangle@@QAEXPAVQDeclarativeGradient@@@Z @ 770 NONAME ; void QDeclarativeRectangle::setGradient(class QDeclarativeGradient *)
+ ?metaObject@QDeclarativeTransition@@UBEPBUQMetaObject@@XZ @ 771 NONAME ; struct QMetaObject const * QDeclarativeTransition::metaObject(void) const
+ ?defaultMethod@QDeclarativeMetaType@@SA?AVQMetaMethod@@PBUQMetaObject@@@Z @ 772 NONAME ; class QMetaMethod QDeclarativeMetaType::defaultMethod(struct QMetaObject const *)
+ ?tr@QDeclarativeExtensionPlugin@@SA?AVQString@@PBD0H@Z @ 773 NONAME ; class QString QDeclarativeExtensionPlugin::tr(char const *, char const *, int)
+ ?metaObject@QDeclarativeValueType@@UBEPBUQMetaObject@@XZ @ 774 NONAME ; struct QMetaObject const * QDeclarativeValueType::metaObject(void) const
+ ?hasNotifySignal@QDeclarativeProperty@@QBE_NXZ @ 775 NONAME ; bool QDeclarativeProperty::hasNotifySignal(void) const
+ ?create@QDeclarativeType@@QBEXPAPAVQObject@@PAPAXI@Z @ 776 NONAME ; void QDeclarativeType::create(class QObject * *, void * *, unsigned int) const
+ ?reversible@QDeclarativeTransition@@QBE_NXZ @ 777 NONAME ; bool QDeclarativeTransition::reversible(void) const
+ ?invalidPacket@QPacketProtocol@@IAEXXZ @ 778 NONAME ; void QPacketProtocol::invalidPacket(void)
+ ??0QDeclarativeDebugObjectReference@@QAE@H@Z @ 779 NONAME ; QDeclarativeDebugObjectReference::QDeclarativeDebugObjectReference(int)
+ ?superClass@QMetaObjectBuilder@@QBEPBUQMetaObject@@XZ @ 780 NONAME ; struct QMetaObject const * QMetaObjectBuilder::superClass(void) const
+ ?isValid@QDeclarativeListReference@@QBE_NXZ @ 781 NONAME ; bool QDeclarativeListReference::isValid(void) const
+ ?source@QDeclarativeView@@QBE?AVQUrl@@XZ @ 782 NONAME ; class QUrl QDeclarativeView::source(void) const
+ ?method@QDeclarativeProperty@@QBE?AVQMetaMethod@@XZ @ 783 NONAME ; class QMetaMethod QDeclarativeProperty::method(void) const
+ ??0QDeclarativeInfo@@QAE@ABV0@@Z @ 784 NONAME ; QDeclarativeInfo::QDeclarativeInfo(class QDeclarativeInfo const &)
+ ?deleteFromBinding@QDeclarativeAction@@QAEXXZ @ 785 NONAME ; void QDeclarativeAction::deleteFromBinding(void)
+ ?setClip@QDeclarativeItem@@QAEX_N@Z @ 786 NONAME ; void QDeclarativeItem::setClip(bool)
+ ??4QDeclarativeCustomParserNode@@QAEAAV0@ABV0@@Z @ 787 NONAME ; class QDeclarativeCustomParserNode & QDeclarativeCustomParserNode::operator=(class QDeclarativeCustomParserNode const &)
+ ?color@QDeclarativePen@@QBE?AVQColor@@XZ @ 788 NONAME ; class QColor QDeclarativePen::color(void) const
+ ?clear@QDeclarativePixmap@@QAEXXZ @ 789 NONAME ; void QDeclarativePixmap::clear(void)
+ ?setDesignable@QMetaPropertyBuilder@@QAEX_N@Z @ 790 NONAME ; void QMetaPropertyBuilder::setDesignable(bool)
+ ?setWrapMode@QDeclarativeText@@QAEXW4WrapMode@1@@Z @ 791 NONAME ; void QDeclarativeText::setWrapMode(enum QDeclarativeText::WrapMode)
+ ?addClassInfo@QMetaObjectBuilder@@QAEHABVQByteArray@@0@Z @ 792 NONAME ; int QMetaObjectBuilder::addClassInfo(class QByteArray const &, class QByteArray const &)
+ ?qt_metacall@QDeclarativePen@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 793 NONAME ; int QDeclarativePen::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?dynamicProperty@QDeclarativeDomObject@@QBE?AVQDeclarativeDomDynamicProperty@@ABVQByteArray@@@Z @ 794 NONAME ; class QDeclarativeDomDynamicProperty QDeclarativeDomObject::dynamicProperty(class QByteArray const &) const
+ ??1QDeclarativeDomComponent@@QAE@XZ @ 795 NONAME ; QDeclarativeDomComponent::~QDeclarativeDomComponent(void)
+ ?setRight@QDeclarativeScaleGrid@@QAEXH@Z @ 796 NONAME ; void QDeclarativeScaleGrid::setRight(int)
+ ?isList@QDeclarativeMetaType@@SA_NH@Z @ 797 NONAME ; bool QDeclarativeMetaType::isList(int)
+ ??6QDeclarativeInfo@@QAEAAV0@VQTextStreamManipulator@@@Z @ 798 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QTextStreamManipulator)
+ ?index@QDeclarativeProperty@@QBEHXZ @ 799 NONAME ; int QDeclarativeProperty::index(void) const
+ ?d_func@QMetaPropertyBuilder@@ABEPAVQMetaPropertyBuilderPrivate@@XZ @ 800 NONAME ; class QMetaPropertyBuilderPrivate * QMetaPropertyBuilder::d_func(void) const
+ ?tr@QDeclarativeScaleGrid@@SA?AVQString@@PBD0H@Z @ 801 NONAME ; class QString QDeclarativeScaleGrid::tr(char const *, char const *, int)
+ ?setEnabled@QDeclarativeAbstractBinding@@QAEX_N@Z @ 802 NONAME ; void QDeclarativeAbstractBinding::setEnabled(bool)
+ ?returnType@QMetaMethodBuilder@@QBE?AVQByteArray@@XZ @ 803 NONAME ; class QByteArray QMetaMethodBuilder::returnType(void) const
+ ?propertyValueSourceCast@QDeclarativeType@@QBEHXZ @ 804 NONAME ; int QDeclarativeType::propertyValueSourceCast(void) const
+ ?mousePressEvent@QDeclarativeText@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 805 NONAME ; void QDeclarativeText::mousePressEvent(class QGraphicsSceneMouseEvent *)
+ ?trUtf8@QDeclarativeText@@SA?AVQString@@PBD0@Z @ 806 NONAME ; class QString QDeclarativeText::trUtf8(char const *, char const *)
+ ?constructor@QMetaObjectBuilder@@QBE?AVQMetaMethodBuilder@@H@Z @ 807 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::constructor(int) const
+ ?defaultProperty@QDeclarativeMetaType@@SA?AVQMetaProperty@@PAVQObject@@@Z @ 808 NONAME ; class QMetaProperty QDeclarativeMetaType::defaultProperty(class QObject *)
+ ?resetHeight@QDeclarativeItemPrivate@@UAEXXZ @ 809 NONAME ; void QDeclarativeItemPrivate::resetHeight(void)
+ ?qt_metacast@QDeclarativeDebugPropertyWatch@@UAEPAXPBD@Z @ 810 NONAME ; void * QDeclarativeDebugPropertyWatch::qt_metacast(char const *)
+ ??1QDeclarativeStateOperation@@UAE@XZ @ 811 NONAME ; QDeclarativeStateOperation::~QDeclarativeStateOperation(void)
+ ??_EQDeclarativeDebugQuery@@UAE@I@Z @ 812 NONAME ; QDeclarativeDebugQuery::~QDeclarativeDebugQuery(unsigned int)
+ ?update@QDeclarativeAbstractBinding@@QAEXXZ @ 813 NONAME ; void QDeclarativeAbstractBinding::update(void)
+ ?tr@QDeclarativeBehavior@@SA?AVQString@@PBD0H@Z @ 814 NONAME ; class QString QDeclarativeBehavior::tr(char const *, char const *, int)
+ ?read@QPacketProtocol@@QAE?AVQPacket@@XZ @ 815 NONAME ; class QPacket QPacketProtocol::read(void)
+ ?setParentItem@QDeclarativeItem@@QAEXPAV1@@Z @ 816 NONAME ; void QDeclarativeItem::setParentItem(class QDeclarativeItem *)
+ ?qmlAttachedProperties@QDeclarativeComponent@@SAPAVQDeclarativeComponentAttached@@PAVQObject@@@Z @ 817 NONAME ; class QDeclarativeComponentAttached * QDeclarativeComponent::qmlAttachedProperties(class QObject *)
+ ??0QDeclarativeView@@QAE@ABVQUrl@@PAVQWidget@@@Z @ 818 NONAME ; QDeclarativeView::QDeclarativeView(class QUrl const &, class QWidget *)
+ ?valueChanged@QDeclarativeExpression@@IAEXXZ @ 819 NONAME ; void QDeclarativeExpression::valueChanged(void)
+ ??_EQDeclarativeView@@UAE@I@Z @ 820 NONAME ; QDeclarativeView::~QDeclarativeView(unsigned int)
+ ?trUtf8@QDeclarativeStateGroup@@SA?AVQString@@PBD0H@Z @ 821 NONAME ; class QString QDeclarativeStateGroup::trUtf8(char const *, char const *, int)
+ ?tag@QMetaMethodBuilder@@QBE?AVQByteArray@@XZ @ 822 NONAME ; class QByteArray QMetaMethodBuilder::tag(void) const
+ ?getStaticMetaObject@QPacketProtocol@@SAABUQMetaObject@@XZ @ 823 NONAME ; struct QMetaObject const & QPacketProtocol::getStaticMetaObject(void)
+ ?setContext@QDeclarativeScriptString@@QAEXPAVQDeclarativeContext@@@Z @ 824 NONAME ; void QDeclarativeScriptString::setContext(class QDeclarativeContext *)
+ ?addImageProvider@QDeclarativeEngine@@QAEXABVQString@@PAVQDeclarativeImageProvider@@@Z @ 825 NONAME ; void QDeclarativeEngine::addImageProvider(class QString const &, class QDeclarativeImageProvider *)
+ ?d_func@QDeclarativeStateGroup@@ABEPBVQDeclarativeStateGroupPrivate@@XZ @ 826 NONAME ; class QDeclarativeStateGroupPrivate const * QDeclarativeStateGroup::d_func(void) const
+ ?stateChanged@QDeclarativeItem@@IAEXABVQString@@@Z @ 827 NONAME ; void QDeclarativeItem::stateChanged(class QString const &)
+ ?horizontalAlignmentChanged@QDeclarativeText@@IAEXW4HAlignment@1@@Z @ 828 NONAME ; void QDeclarativeText::horizontalAlignmentChanged(enum QDeclarativeText::HAlignment)
+ ??5@YAAAVQDataStream@@AAV0@AAUQDeclarativeObjectData@QDeclarativeEngineDebugServer@@@Z @ 829 NONAME ; class QDataStream & operator>>(class QDataStream &, struct QDeclarativeEngineDebugServer::QDeclarativeObjectData &)
+ ?setDynamic@QMetaPropertyBuilder@@QAEX_N@Z @ 830 NONAME ; void QMetaPropertyBuilder::setDynamic(bool)
+ ?pixmap@QDeclarativePixmap@@QBEABVQPixmap@@XZ @ 831 NONAME ; class QPixmap const & QDeclarativePixmap::pixmap(void) const
+ ?d_func@QDeclarativeEngine@@ABEPBVQDeclarativeEnginePrivate@@XZ @ 832 NONAME ; class QDeclarativeEnginePrivate const * QDeclarativeEngine::d_func(void) const
+ ?toBinding@QDeclarativeDomValue@@QBE?AVQDeclarativeDomValueBinding@@XZ @ 833 NONAME ; class QDeclarativeDomValueBinding QDeclarativeDomValue::toBinding(void) const
+ ?removeImageProvider@QDeclarativeEngine@@QAEXABVQString@@@Z @ 834 NONAME ; void QDeclarativeEngine::removeImageProvider(class QString const &)
+ ?horizontalCenterOffsetChanged@QDeclarativeAnchors@@IAEXXZ @ 835 NONAME ; void QDeclarativeAnchors::horizontalCenterOffsetChanged(void)
+ ?tr@QDeclarativeContext@@SA?AVQString@@PBD0@Z @ 836 NONAME ; class QString QDeclarativeContext::tr(char const *, char const *)
+ ?d_func@QDeclarativeItem@@ABEPBVQDeclarativeItemPrivate@@XZ @ 837 NONAME ; class QDeclarativeItemPrivate const * QDeclarativeItem::d_func(void) const
+ ?isUser@QMetaPropertyBuilder@@QBE_NXZ @ 838 NONAME ; bool QMetaPropertyBuilder::isUser(void) const
+ ?doUpdate@QDeclarativeRectangle@@AAEXXZ @ 839 NONAME ; void QDeclarativeRectangle::doUpdate(void)
+ ?qmlExecuteDeferred@@YAXPAVQObject@@@Z @ 840 NONAME ; void qmlExecuteDeferred(class QObject *)
+ ?setImplicitHeight@QDeclarativeItem@@IAEXM@Z @ 841 NONAME ; void QDeclarativeItem::setImplicitHeight(float)
+ ?horizontalCenterOffset@QDeclarativeAnchors@@QBEMXZ @ 842 NONAME ; float QDeclarativeAnchors::horizontalCenterOffset(void) const
+ ?resetRight@QDeclarativeAnchors@@QAEXXZ @ 843 NONAME ; void QDeclarativeAnchors::resetRight(void)
+ ??6QDeclarativeInfo@@QAEAAV0@J@Z @ 844 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(long)
+ ?isReady@QDeclarativeComponent@@QBE_NXZ @ 845 NONAME ; bool QDeclarativeComponent::isReady(void) const
+ ??4QDeclarativeDebugObjectReference@@QAEAAV0@ABV0@@Z @ 846 NONAME ; class QDeclarativeDebugObjectReference & QDeclarativeDebugObjectReference::operator=(class QDeclarativeDebugObjectReference const &)
+ ??1QDeclarativeDomDynamicProperty@@QAE@XZ @ 847 NONAME ; QDeclarativeDomDynamicProperty::~QDeclarativeDomDynamicProperty(void)
+ ??1QDeclarativeBehavior@@UAE@XZ @ 848 NONAME ; QDeclarativeBehavior::~QDeclarativeBehavior(void)
+ ?qmlInfo@@YA?AVQDeclarativeInfo@@PBVQObject@@@Z @ 849 NONAME ; class QDeclarativeInfo qmlInfo(class QObject const *)
+ ?qt_metacall@QDeclarativeDebugClient@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 850 NONAME ; int QDeclarativeDebugClient::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?d_func@QDeclarativeDebugService@@ABEPBVQDeclarativeDebugServicePrivate@@XZ @ 851 NONAME ; class QDeclarativeDebugServicePrivate const * QDeclarativeDebugService::d_func(void) const
+ ??1QDeclarativeDebugQuery@@UAE@XZ @ 852 NONAME ; QDeclarativeDebugQuery::~QDeclarativeDebugQuery(void)
+ ?data_append@QDeclarativeItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQObject@@@@PAVQObject@@@Z @ 853 NONAME ; void QDeclarativeItemPrivate::data_append(class QDeclarativeListProperty<class QObject> *, class QObject *)
+ ?tr@QDeclarativeState@@SA?AVQString@@PBD0@Z @ 854 NONAME ; class QString QDeclarativeState::tr(char const *, char const *)
+ ?trUtf8@QDeclarativeEngineDebug@@SA?AVQString@@PBD0H@Z @ 855 NONAME ; class QString QDeclarativeEngineDebug::trUtf8(char const *, char const *, int)
+ ?createProperty@QDeclarativeOpenMetaObject@@MAEHPBD0@Z @ 856 NONAME ; int QDeclarativeOpenMetaObject::createProperty(char const *, char const *)
+ ?bottomMargin@QDeclarativeAnchors@@QBEMXZ @ 857 NONAME ; float QDeclarativeAnchors::bottomMargin(void) const
+ ?q_func@QDeclarativeItemPrivate@@AAEPAVQDeclarativeItem@@XZ @ 858 NONAME ; class QDeclarativeItem * QDeclarativeItemPrivate::q_func(void)
+ ?trUtf8@QDeclarativeScaleGrid@@SA?AVQString@@PBD0@Z @ 859 NONAME ; class QString QDeclarativeScaleGrid::trUtf8(char const *, char const *)
+ ??1QDeclarativeDomList@@QAE@XZ @ 860 NONAME ; QDeclarativeDomList::~QDeclarativeDomList(void)
+ ??0QDeclarativeOpenMetaObjectType@@QAE@PBUQMetaObject@@PAVQDeclarativeEngine@@@Z @ 861 NONAME ; QDeclarativeOpenMetaObjectType::QDeclarativeOpenMetaObjectType(struct QMetaObject const *, class QDeclarativeEngine *)
+ ?removeProperty@QMetaObjectBuilder@@QAEXH@Z @ 862 NONAME ; void QMetaObjectBuilder::removeProperty(int)
+ ?staticMetaObject@QDeclarativeScaleGrid@@2UQMetaObject@@B @ 863 NONAME ; struct QMetaObject const QDeclarativeScaleGrid::staticMetaObject
+ ??0QDeclarativeDomObject@@QAE@ABV0@@Z @ 864 NONAME ; QDeclarativeDomObject::QDeclarativeDomObject(class QDeclarativeDomObject const &)
+ ?qt_metacast@QDeclarativeDebugWatch@@UAEPAXPBD@Z @ 865 NONAME ; void * QDeclarativeDebugWatch::qt_metacast(char const *)
+ ?implicitHeight@QDeclarativeItem@@QBEMXZ @ 866 NONAME ; float QDeclarativeItem::implicitHeight(void) const
+ ?trUtf8@QDeclarativeDebugPropertyWatch@@SA?AVQString@@PBD0@Z @ 867 NONAME ; class QString QDeclarativeDebugPropertyWatch::trUtf8(char const *, char const *)
??6@YA?AVQDebug@@V0@ABVQDeclarativeError@@@Z @ 868 NONAME ; class QDebug operator<<(class QDebug, class QDeclarativeError const &)
?setContextProperty@QDeclarativeContext@@QAEXABVQString@@ABVQVariant@@@Z @ 869 NONAME ; void QDeclarativeContext::setContextProperty(class QString const &, class QVariant const &)
?imports@QDeclarativeDomDocument@@QBE?AV?$QList@VQDeclarativeDomImport@@@@XZ @ 870 NONAME ; class QList<class QDeclarativeDomImport> QDeclarativeDomDocument::imports(void) const
@@ -876,813 +876,767 @@ EXPORTS
?position@QDeclarativeDomValue@@QBEHXZ @ 875 NONAME ; int QDeclarativeDomValue::position(void) const
?setWidth@QDeclarativeItemPrivate@@UAEXM@Z @ 876 NONAME ; void QDeclarativeItemPrivate::setWidth(float)
?staticMetaObject@QDeclarativeDebugWatch@@2UQMetaObject@@B @ 877 NONAME ; struct QMetaObject const QDeclarativeDebugWatch::staticMetaObject
- ??_EQDeclarativeContext@@UAE@I@Z @ 878 NONAME ; QDeclarativeContext::~QDeclarativeContext(unsigned int)
- ?rootContext@QDeclarativeView@@QAEPAVQDeclarativeContext@@XZ @ 879 NONAME ABSENT ; class QDeclarativeContext * QDeclarativeView::rootContext(void)
+ ??0QDeclarativePixmap@@QAE@PAVQDeclarativeEngine@@ABVQUrl@@@Z @ 878 NONAME ; QDeclarativePixmap::QDeclarativePixmap(class QDeclarativeEngine *, class QUrl const &)
+ ??_EQDeclarativeContext@@UAE@I@Z @ 879 NONAME ; QDeclarativeContext::~QDeclarativeContext(unsigned int)
?staticMetaObject@QDeclarativeDebugQuery@@2UQMetaObject@@B @ 880 NONAME ; struct QMetaObject const QDeclarativeDebugQuery::staticMetaObject
??0QDeclarativeExtensionPlugin@@QAE@PAVQObject@@@Z @ 881 NONAME ; QDeclarativeExtensionPlugin::QDeclarativeExtensionPlugin(class QObject *)
- ??_EQDeclarativeOpenMetaObject@@UAE@I@Z @ 882 NONAME ; QDeclarativeOpenMetaObject::~QDeclarativeOpenMetaObject(unsigned int)
- ?states@QDeclarativeItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeState@@@@XZ @ 883 NONAME ; class QDeclarativeListProperty<class QDeclarativeState> QDeclarativeItemPrivate::states(void)
- ?rawMetaObjectForType@QDeclarativePropertyPrivate@@SAPBUQMetaObject@@PAVQDeclarativeEnginePrivate@@H@Z @ 884 NONAME ; struct QMetaObject const * QDeclarativePropertyPrivate::rawMetaObjectForType(class QDeclarativeEnginePrivate *, int)
- ?setHeight@QDeclarativeItem@@QAEXM@Z @ 885 NONAME ; void QDeclarativeItem::setHeight(float)
- ??0QDeclarativeDomDocument@@QAE@ABV0@@Z @ 886 NONAME ; QDeclarativeDomDocument::QDeclarativeDomDocument(class QDeclarativeDomDocument const &)
- ?position@QDeclarativeDomDynamicProperty@@QBEHXZ @ 887 NONAME ; int QDeclarativeDomDynamicProperty::position(void) const
- ?animations@QDeclarativeTransition@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeAbstractAnimation@@@@XZ @ 888 NONAME ; class QDeclarativeListProperty<class QDeclarativeAbstractAnimation> QDeclarativeTransition::animations(void)
- ?tr@QDeclarativeExpression@@SA?AVQString@@PBD0H@Z @ 889 NONAME ; class QString QDeclarativeExpression::tr(char const *, char const *, int)
- ??_EQMetaObjectBuilder@@UAE@I@Z @ 890 NONAME ; QMetaObjectBuilder::~QMetaObjectBuilder(unsigned int)
- ?propertyName@QDeclarativeDomProperty@@QBE?AVQByteArray@@XZ @ 891 NONAME ; class QByteArray QDeclarativeDomProperty::propertyName(void) const
- ??0QDeclarativeView@@QAE@PAVQWidget@@@Z @ 892 NONAME ; QDeclarativeView::QDeclarativeView(class QWidget *)
- ?createObject@QDeclarativeComponent@@IAE?AVQScriptValue@@PAVQObject@@@Z @ 893 NONAME ; class QScriptValue QDeclarativeComponent::createObject(class QObject *)
- ?name@QDeclarativeDebugPropertyReference@@QBE?AVQString@@XZ @ 894 NONAME ; class QString QDeclarativeDebugPropertyReference::name(void) const
- ?object@QDeclarativeDomValueValueSource@@QBE?AVQDeclarativeDomObject@@XZ @ 895 NONAME ; class QDeclarativeDomObject QDeclarativeDomValueValueSource::object(void) const
- ??0QMetaPropertyBuilder@@AAE@PBVQMetaObjectBuilder@@H@Z @ 896 NONAME ; QMetaPropertyBuilder::QMetaPropertyBuilder(class QMetaObjectBuilder const *, int)
- ?d_func@QDeclarativeEngineDebug@@ABEPBVQDeclarativeEngineDebugPrivate@@XZ @ 897 NONAME ; class QDeclarativeEngineDebugPrivate const * QDeclarativeEngineDebug::d_func(void) const
- ?d_func@QDeclarativeBinding@@AAEPAVQDeclarativeBindingPrivate@@XZ @ 898 NONAME ; class QDeclarativeBindingPrivate * QDeclarativeBinding::d_func(void)
- ?trUtf8@QDeclarativeDebugExpressionQuery@@SA?AVQString@@PBD0H@Z @ 899 NONAME ; class QString QDeclarativeDebugExpressionQuery::trUtf8(char const *, char const *, int)
- ?attachedPropertiesFuncId@QDeclarativeMetaType@@SAHPBUQMetaObject@@@Z @ 900 NONAME ; int QDeclarativeMetaType::attachedPropertiesFuncId(struct QMetaObject const *)
- ?horizontalCenter@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 901 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::horizontalCenter(void) const
- ?isNull@QDeclarativeComponent@@QBE_NXZ @ 902 NONAME ; bool QDeclarativeComponent::isNull(void) const
- ?d_func@QDeclarativeRectangle@@ABEPBVQDeclarativeRectanglePrivate@@XZ @ 903 NONAME ; class QDeclarativeRectanglePrivate const * QDeclarativeRectangle::d_func(void) const
- ?setRightMargin@QDeclarativeAnchors@@QAEXM@Z @ 904 NONAME ; void QDeclarativeAnchors::setRightMargin(float)
- ?className@QMetaObjectBuilder@@QBE?AVQByteArray@@XZ @ 905 NONAME ; class QByteArray QMetaObjectBuilder::className(void) const
- ??0QDeclarativeState@@QAE@PAVQObject@@@Z @ 906 NONAME ; QDeclarativeState::QDeclarativeState(class QObject *)
- ?contexts@QDeclarativeDebugContextReference@@QBE?AV?$QList@VQDeclarativeDebugContextReference@@@@XZ @ 907 NONAME ; class QList<class QDeclarativeDebugContextReference> QDeclarativeDebugContextReference::contexts(void) const
- ?keyReleaseEvent@QDeclarativeItem@@MAEXPAVQKeyEvent@@@Z @ 908 NONAME ; void QDeclarativeItem::keyReleaseEvent(class QKeyEvent *)
- ?qt_metacall@QDeclarativeAnchors@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 909 NONAME ; int QDeclarativeAnchors::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??0QDeclarativeAnchors@@QAE@PAVQGraphicsObject@@PAVQObject@@@Z @ 910 NONAME ; QDeclarativeAnchors::QDeclarativeAnchors(class QGraphicsObject *, class QObject *)
- ??4QDeclarativeScriptString@@QAEAAV0@ABV0@@Z @ 911 NONAME ; class QDeclarativeScriptString & QDeclarativeScriptString::operator=(class QDeclarativeScriptString const &)
- ??6@YAAAVQDataStream@@AAV0@ABUQDeclarativeObjectProperty@QDeclarativeEngineDebugServer@@@Z @ 912 NONAME ; class QDataStream & operator<<(class QDataStream &, struct QDeclarativeEngineDebugServer::QDeclarativeObjectProperty const &)
- ?hasNotifySignal@QMetaPropertyBuilder@@QBE_NXZ @ 913 NONAME ; bool QMetaPropertyBuilder::hasNotifySignal(void) const
- ??4QDeclarativeDomImport@@QAEAAV0@ABV0@@Z @ 914 NONAME ; class QDeclarativeDomImport & QDeclarativeDomImport::operator=(class QDeclarativeDomImport const &)
- ?resetFill@QDeclarativeAnchors@@QAEXXZ @ 915 NONAME ; void QDeclarativeAnchors::resetFill(void)
- ??6QDeclarativeInfo@@QAEAAV0@_K@Z @ 916 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(unsigned long long)
- ?d_func@QDeclarativeComponent@@ABEPBVQDeclarativeComponentPrivate@@XZ @ 917 NONAME ; class QDeclarativeComponentPrivate const * QDeclarativeComponent::d_func(void) const
- ??0QDeclarativeBehavior@@QAE@PAVQObject@@@Z @ 918 NONAME ; QDeclarativeBehavior::QDeclarativeBehavior(class QObject *)
- ?length@QDeclarativeDomValue@@QBEHXZ @ 919 NONAME ; int QDeclarativeDomValue::length(void) const
- ?trUtf8@QDeclarativeBinding@@SA?AVQString@@PBD0H@Z @ 920 NONAME ; class QString QDeclarativeBinding::trUtf8(char const *, char const *, int)
- ??0QDeclarativeType@@AAE@HABURegisterInterface@QDeclarativePrivate@@@Z @ 921 NONAME ; QDeclarativeType::QDeclarativeType(int, struct QDeclarativePrivate::RegisterInterface const &)
- ?scopeObject@QDeclarativeScriptString@@QBEPAVQObject@@XZ @ 922 NONAME ; class QObject * QDeclarativeScriptString::scopeObject(void) const
- ?left@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 923 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::left(void) const
- ??1QDeclarativeDebuggerStatus@@UAE@XZ @ 924 NONAME ; QDeclarativeDebuggerStatus::~QDeclarativeDebuggerStatus(void)
- ??6QDeclarativeInfo@@QAEAAV0@ABVQLatin1String@@@Z @ 925 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QLatin1String const &)
- ?at@QDeclarativeListReference@@QBEPAVQObject@@H@Z @ 926 NONAME ; class QObject * QDeclarativeListReference::at(int) const
- ?metaObject@QDeclarativeDebugWatch@@UBEPBUQMetaObject@@XZ @ 927 NONAME ; struct QMetaObject const * QDeclarativeDebugWatch::metaObject(void) const
- ?qt_metacast@QListModelInterface@@UAEPAXPBD@Z @ 928 NONAME ; void * QListModelInterface::qt_metacast(char const *)
- ?deserialize@QMetaObjectBuilder@@QAEXAAVQDataStream@@ABV?$QMap@VQByteArray@@PB$$CBUQMetaObject@@@@@Z @ 929 NONAME ; void QMetaObjectBuilder::deserialize(class QDataStream &, class QMap<class QByteArray, struct QMetaObject const *> const &)
- ?canClear@QDeclarativeListReference@@QBE_NXZ @ 930 NONAME ; bool QDeclarativeListReference::canClear(void) const
- ??4QDeclarativeCustomParserProperty@@QAEAAV0@ABV0@@Z @ 931 NONAME ; class QDeclarativeCustomParserProperty & QDeclarativeCustomParserProperty::operator=(class QDeclarativeCustomParserProperty const &)
- ?parameterNames@QMetaMethodBuilder@@QBE?AV?$QList@VQByteArray@@@@XZ @ 932 NONAME ; class QList<class QByteArray> QMetaMethodBuilder::parameterNames(void) const
- ?get@QDeclarativeListModel@@QBE?AVQScriptValue@@H@Z @ 933 NONAME ; class QScriptValue QDeclarativeListModel::get(int) const
- ?createSize@QDeclarativeType@@QBEHXZ @ 934 NONAME ; int QDeclarativeType::createSize(void) const
- ?isValueSource@QDeclarativeDomValue@@QBE_NXZ @ 935 NONAME ; bool QDeclarativeDomValue::isValueSource(void) const
- ?isWritable@QDeclarativeProperty@@QBE_NXZ @ 936 NONAME ; bool QDeclarativeProperty::isWritable(void) const
- ?setKeepMouseGrab@QDeclarativeItem@@QAEX_N@Z @ 937 NONAME ; void QDeclarativeItem::setKeepMouseGrab(bool)
- ??0QDeclarativeDebugContextReference@@QAE@XZ @ 938 NONAME ; QDeclarativeDebugContextReference::QDeclarativeDebugContextReference(void)
- ?setParameterNames@QMetaMethodBuilder@@QAEXABV?$QList@VQByteArray@@@@@Z @ 939 NONAME ; void QMetaMethodBuilder::setParameterNames(class QList<class QByteArray> const &)
- ?getStaticMetaObject@QDeclarativeDebugRootContextQuery@@SAABUQMetaObject@@XZ @ 940 NONAME ; struct QMetaObject const & QDeclarativeDebugRootContextQuery::getStaticMetaObject(void)
- ?textChanged@QDeclarativeText@@IAEXABVQString@@@Z @ 941 NONAME ; void QDeclarativeText::textChanged(class QString const &)
- ?trUtf8@QDeclarativeItem@@SA?AVQString@@PBD0@Z @ 942 NONAME ; class QString QDeclarativeItem::trUtf8(char const *, char const *)
- ??0QDeclarativeCustomParserProperty@@QAE@ABV0@@Z @ 943 NONAME ; QDeclarativeCustomParserProperty::QDeclarativeCustomParserProperty(class QDeclarativeCustomParserProperty const &)
- ?getStaticMetaObject@QDeclarativeComponent@@SAABUQMetaObject@@XZ @ 944 NONAME ; struct QMetaObject const & QDeclarativeComponent::getStaticMetaObject(void)
- ?parentItem@QDeclarativeItem@@QBEPAV1@XZ @ 945 NONAME ; class QDeclarativeItem * QDeclarativeItem::parentItem(void) const
- ?value@QMetaEnumBuilder@@QBEHH@Z @ 946 NONAME ; int QMetaEnumBuilder::value(int) const
- ??_EQDeclarativeExpression@@UAE@I@Z @ 947 NONAME ; QDeclarativeExpression::~QDeclarativeExpression(unsigned int)
- ?load@QDeclarativeDomDocument@@QAE_NPAVQDeclarativeEngine@@ABVQByteArray@@ABVQUrl@@@Z @ 948 NONAME ; bool QDeclarativeDomDocument::load(class QDeclarativeEngine *, class QByteArray const &, class QUrl const &)
- ?staticMetaObject@QDeclarativeStateGroup@@2UQMetaObject@@B @ 949 NONAME ; struct QMetaObject const QDeclarativeStateGroup::staticMetaObject
- ?tr@QDeclarativePropertyMap@@SA?AVQString@@PBD0@Z @ 950 NONAME ; class QString QDeclarativePropertyMap::tr(char const *, char const *)
- ?verticalCenterChanged@QDeclarativeAnchors@@IAEXXZ @ 951 NONAME ; void QDeclarativeAnchors::verticalCenterChanged(void)
- ?isScriptable@QMetaPropertyBuilder@@QBE_NXZ @ 952 NONAME ; bool QMetaPropertyBuilder::isScriptable(void) const
- ?typeCategory@QDeclarativeMetaType@@SA?AW4TypeCategory@1@H@Z @ 953 NONAME ; enum QDeclarativeMetaType::TypeCategory QDeclarativeMetaType::typeCategory(int)
- ?findSignalByName@QDeclarativePropertyPrivate@@SA?AVQMetaMethod@@PBUQMetaObject@@ABVQByteArray@@@Z @ 954 NONAME ; class QMetaMethod QDeclarativePropertyPrivate::findSignalByName(struct QMetaObject const *, class QByteArray const &)
- ?length@QDeclarativeDomDynamicProperty@@QBEHXZ @ 955 NONAME ; int QDeclarativeDomDynamicProperty::length(void) const
- ?property@QDeclarativeBinding@@QBE?AVQDeclarativeProperty@@XZ @ 956 NONAME ; class QDeclarativeProperty QDeclarativeBinding::property(void) const
- ??0QDeclarativeDomValueBinding@@QAE@XZ @ 957 NONAME ; QDeclarativeDomValueBinding::QDeclarativeDomValueBinding(void)
- ?addImportPath@QDeclarativeEngine@@QAEXABVQString@@@Z @ 958 NONAME ; void QDeclarativeEngine::addImportPath(class QString const &)
- ?engine@QDeclarativeContext@@QBEPAVQDeclarativeEngine@@XZ @ 959 NONAME ; class QDeclarativeEngine * QDeclarativeContext::engine(void) const
- ?length@QDeclarativeDomObject@@QBEHXZ @ 960 NONAME ; int QDeclarativeDomObject::length(void) const
- ?setBaselineOffset@QDeclarativeAnchors@@QAEXM@Z @ 961 NONAME ; void QDeclarativeAnchors::setBaselineOffset(float)
- ?append@QDeclarativeListReference@@QBE_NPAVQObject@@@Z @ 962 NONAME ; bool QDeclarativeListReference::append(class QObject *) const
- ?d_func@QDeclarativeEngineDebug@@AAEPAVQDeclarativeEngineDebugPrivate@@XZ @ 963 NONAME ; class QDeclarativeEngineDebugPrivate * QDeclarativeEngineDebug::d_func(void)
- ??1QDeclarativeNetworkAccessManagerFactory@@UAE@XZ @ 964 NONAME ; QDeclarativeNetworkAccessManagerFactory::~QDeclarativeNetworkAccessManagerFactory(void)
- ?textFormatChanged@QDeclarativeText@@IAEXW4TextFormat@1@@Z @ 965 NONAME ; void QDeclarativeText::textFormatChanged(enum QDeclarativeText::TextFormat)
- ?removeState@QDeclarativeStateGroup@@AAEXPAVQDeclarativeState@@@Z @ 966 NONAME ; void QDeclarativeStateGroup::removeState(class QDeclarativeState *)
- ?qmlTypeName@QDeclarativeType@@QBE?AVQByteArray@@XZ @ 967 NONAME ; class QByteArray QDeclarativeType::qmlTypeName(void) const
- ?tr@QDeclarativeComponent@@SA?AVQString@@PBD0@Z @ 968 NONAME ; class QString QDeclarativeComponent::tr(char const *, char const *)
- ?setLoading@QDeclarativePixmapReply@@AAEXXZ @ 969 NONAME ABSENT ; void QDeclarativePixmapReply::setLoading(void)
- ?isProperty@QDeclarativeProperty@@QBE_NXZ @ 970 NONAME ; bool QDeclarativeProperty::isProperty(void) const
- ?states@QDeclarativeStateGroup@@QBE?AV?$QList@PAVQDeclarativeState@@@@XZ @ 971 NONAME ; class QList<class QDeclarativeState *> QDeclarativeStateGroup::states(void) const
- ??1QDeclarativeDebugExpressionQuery@@UAE@XZ @ 972 NONAME ; QDeclarativeDebugExpressionQuery::~QDeclarativeDebugExpressionQuery(void)
- ?isValid@QDeclarativeDomObject@@QBE_NXZ @ 973 NONAME ; bool QDeclarativeDomObject::isValid(void) const
- ?staticMetaObject@QDeclarativeAnchors@@2UQMetaObject@@B @ 974 NONAME ; struct QMetaObject const QDeclarativeAnchors::staticMetaObject
- ??_EQDeclarativePen@@UAE@I@Z @ 975 NONAME ; QDeclarativePen::~QDeclarativePen(unsigned int)
- ??0QDeclarativeDomProperty@@QAE@ABV0@@Z @ 976 NONAME ; QDeclarativeDomProperty::QDeclarativeDomProperty(class QDeclarativeDomProperty const &)
- ?_states@QDeclarativeItemPrivate@@QAEPAVQDeclarativeStateGroup@@XZ @ 977 NONAME ; class QDeclarativeStateGroup * QDeclarativeItemPrivate::_states(void)
- ?verticalAlignmentChanged@QDeclarativeText@@IAEXW4VAlignment@1@@Z @ 978 NONAME ; void QDeclarativeText::verticalAlignmentChanged(enum QDeclarativeText::VAlignment)
- ?typeId@QDeclarativeType@@QBEHXZ @ 979 NONAME ; int QDeclarativeType::typeId(void) const
- ?marginsChanged@QDeclarativeAnchors@@IAEXXZ @ 980 NONAME ; void QDeclarativeAnchors::marginsChanged(void)
- ?setValue@QDeclarativeOpenMetaObject@@QAEXHABVQVariant@@@Z @ 981 NONAME ; void QDeclarativeOpenMetaObject::setValue(int, class QVariant const &)
- ?parentProperty@QDeclarativeItemPrivate@@SAXPAVQObject@@PAXPAVQDeclarativeNotifierEndpoint@@@Z @ 982 NONAME ; void QDeclarativeItemPrivate::parentProperty(class QObject *, void *, class QDeclarativeNotifierEndpoint *)
- ??4QDeclarativeDebugContextReference@@QAEAAV0@ABV0@@Z @ 983 NONAME ; class QDeclarativeDebugContextReference & QDeclarativeDebugContextReference::operator=(class QDeclarativeDebugContextReference const &)
- ?isModule@QDeclarativeMetaType@@SA_NABVQByteArray@@HH@Z @ 984 NONAME ; bool QDeclarativeMetaType::isModule(class QByteArray const &, int, int)
- ?parentFunctions@QDeclarativeMetaType@@SA?AV?$QList@P6A?AW4AutoParentResult@QDeclarativePrivate@@PAVQObject@@0@Z@@XZ @ 985 NONAME ; class QList<enum QDeclarativePrivate::AutoParentResult (*)(class QObject *, class QObject *)> QDeclarativeMetaType::parentFunctions(void)
- ?metaObject@QDeclarativeDebugPropertyWatch@@UBEPBUQMetaObject@@XZ @ 986 NONAME ; struct QMetaObject const * QDeclarativeDebugPropertyWatch::metaObject(void) const
- ??0QDeclarativeRectangle@@QAE@PAVQDeclarativeItem@@@Z @ 987 NONAME ; QDeclarativeRectangle::QDeclarativeRectangle(class QDeclarativeItem *)
- ?setOutputWarningsToStandardError@QDeclarativeEngine@@QAEX_N@Z @ 988 NONAME ; void QDeclarativeEngine::setOutputWarningsToStandardError(bool)
- ?addMethod@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@0@Z @ 989 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addMethod(class QByteArray const &, class QByteArray const &)
- ?enumerator@QMetaObjectBuilder@@QBE?AVQMetaEnumBuilder@@H@Z @ 990 NONAME ; class QMetaEnumBuilder QMetaObjectBuilder::enumerator(int) const
- ?fromRelocatableData@QMetaObjectBuilder@@SAXPAUQMetaObject@@PBU2@ABVQByteArray@@@Z @ 991 NONAME ; void QMetaObjectBuilder::fromRelocatableData(struct QMetaObject *, struct QMetaObject const *, class QByteArray const &)
- ?gridRight@QDeclarativeGridScaledImage@@QBEHXZ @ 992 NONAME ; int QDeclarativeGridScaledImage::gridRight(void) const
- ?isAlias@QDeclarativeDomDynamicProperty@@QBE_NXZ @ 993 NONAME ; bool QDeclarativeDomDynamicProperty::isAlias(void) const
- ?d_func@QDeclarativeContext@@ABEPBVQDeclarativeContextPrivate@@XZ @ 994 NONAME ; class QDeclarativeContextPrivate const * QDeclarativeContext::d_func(void) const
- ?getStaticMetaObject@QDeclarativeDebugEnginesQuery@@SAABUQMetaObject@@XZ @ 995 NONAME ; struct QMetaObject const & QDeclarativeDebugEnginesQuery::getStaticMetaObject(void)
- ?tr@QDeclarativeItem@@SA?AVQString@@PBD0H@Z @ 996 NONAME ; class QString QDeclarativeItem::tr(char const *, char const *, int)
- ?staticMetaObject@QDeclarativeDebugPropertyWatch@@2UQMetaObject@@B @ 997 NONAME ; struct QMetaObject const QDeclarativeDebugPropertyWatch::staticMetaObject
- ?setDescription@QDeclarativeError@@QAEXABVQString@@@Z @ 998 NONAME ; void QDeclarativeError::setDescription(class QString const &)
- ??0QDeclarativeExpression@@AAE@PAVQDeclarativeContextData@@PAVQObject@@ABVQString@@@Z @ 999 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContextData *, class QObject *, class QString const &)
- ??1QDeclarativeOpenMetaObjectType@@UAE@XZ @ 1000 NONAME ; QDeclarativeOpenMetaObjectType::~QDeclarativeOpenMetaObjectType(void)
- ?setReversible@QDeclarativeTransition@@QAEX_N@Z @ 1001 NONAME ; void QDeclarativeTransition::setReversible(bool)
- ?notifySignal@QMetaPropertyBuilder@@QBE?AVQMetaMethodBuilder@@XZ @ 1002 NONAME ; class QMetaMethodBuilder QMetaPropertyBuilder::notifySignal(void) const
- ??0QDeclarativeDomList@@QAE@XZ @ 1003 NONAME ; QDeclarativeDomList::QDeclarativeDomList(void)
- ?indexOfSignal@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1004 NONAME ; int QMetaObjectBuilder::indexOfSignal(class QByteArray const &)
- ?toState@QDeclarativeTransition@@QBE?AVQString@@XZ @ 1005 NONAME ; class QString QDeclarativeTransition::toState(void) const
- ??0QDeclarativeDomDocument@@QAE@XZ @ 1006 NONAME ; QDeclarativeDomDocument::QDeclarativeDomDocument(void)
- ?setWhen@QDeclarativeState@@QAEXPAVQDeclarativeBinding@@@Z @ 1007 NONAME ; void QDeclarativeState::setWhen(class QDeclarativeBinding *)
- ?isWhenKnown@QDeclarativeState@@QBE_NXZ @ 1008 NONAME ; bool QDeclarativeState::isWhenKnown(void) const
- ?agent@QDeclarativeListModel@@QAEPAVQDeclarativeListModelWorkerAgent@@XZ @ 1009 NONAME ; class QDeclarativeListModelWorkerAgent * QDeclarativeListModel::agent(void)
- ?engine@QDeclarativeExpression@@QBEPAVQDeclarativeEngine@@XZ @ 1010 NONAME ; class QDeclarativeEngine * QDeclarativeExpression::engine(void) const
- ??_EQDeclarativeDebugWatch@@UAE@I@Z @ 1011 NONAME ; QDeclarativeDebugWatch::~QDeclarativeDebugWatch(unsigned int)
- ?isEmpty@QPacket@@QBE_NXZ @ 1012 NONAME ; bool QPacket::isEmpty(void) const
- ?qmlType@QDeclarativeMetaType@@SAPAVQDeclarativeType@@PBUQMetaObject@@@Z @ 1013 NONAME ; class QDeclarativeType * QDeclarativeMetaType::qmlType(struct QMetaObject const *)
- ?setFill@QDeclarativeAnchors@@QAEXPAVQGraphicsObject@@@Z @ 1014 NONAME ; void QDeclarativeAnchors::setFill(class QGraphicsObject *)
- ?setHAlign@QDeclarativeText@@QAEXW4HAlignment@1@@Z @ 1015 NONAME ; void QDeclarativeText::setHAlign(enum QDeclarativeText::HAlignment)
- ??0QDeclarativeScriptString@@QAE@ABV0@@Z @ 1016 NONAME ; QDeclarativeScriptString::QDeclarativeScriptString(class QDeclarativeScriptString const &)
- ?trUtf8@QDeclarativeTransition@@SA?AVQString@@PBD0@Z @ 1017 NONAME ; class QString QDeclarativeTransition::trUtf8(char const *, char const *)
- ?metaObject@QDeclarativeDebugRootContextQuery@@UBEPBUQMetaObject@@XZ @ 1018 NONAME ; struct QMetaObject const * QDeclarativeDebugRootContextQuery::metaObject(void) const
- ?setSignalExpression@QDeclarativePropertyPrivate@@SAPAVQDeclarativeExpression@@ABVQDeclarativeProperty@@PAV2@@Z @ 1019 NONAME ; class QDeclarativeExpression * QDeclarativePropertyPrivate::setSignalExpression(class QDeclarativeProperty const &, class QDeclarativeExpression *)
- ?reversibleChanged@QDeclarativeTransition@@IAEXXZ @ 1020 NONAME ; void QDeclarativeTransition::reversibleChanged(void)
- ??4QDeclarativeDomValueValueSource@@QAEAAV0@ABV0@@Z @ 1021 NONAME ; class QDeclarativeDomValueValueSource & QDeclarativeDomValueValueSource::operator=(class QDeclarativeDomValueValueSource const &)
- ?name@QDeclarativeDebugObjectReference@@QBE?AVQString@@XZ @ 1022 NONAME ; class QString QDeclarativeDebugObjectReference::name(void) const
- ?anchorLines@QDeclarativeItemPrivate@@QBEPAUAnchorLines@1@XZ @ 1023 NONAME ; struct QDeclarativeItemPrivate::AnchorLines * QDeclarativeItemPrivate::anchorLines(void) const
- ?qmlInfo@@YA?AVQDeclarativeInfo@@PBVQObject@@ABVQDeclarativeError@@@Z @ 1024 NONAME ; class QDeclarativeInfo qmlInfo(class QObject const *, class QDeclarativeError const &)
- ?staticMetaObject@QDeclarativeText@@2UQMetaObject@@B @ 1025 NONAME ; struct QMetaObject const QDeclarativeText::staticMetaObject
- ?color@QDeclarativeRectangle@@QBE?AVQColor@@XZ @ 1026 NONAME ; class QColor QDeclarativeRectangle::color(void) const
- ?isEnabled@QDeclarativeDebugClient@@QBE_NXZ @ 1027 NONAME ; bool QDeclarativeDebugClient::isEnabled(void) const
- ?send@QPacketProtocol@@QAEXABVQPacket@@@Z @ 1028 NONAME ; void QPacketProtocol::send(class QPacket const &)
- ?error@QDeclarativeCustomParser@@IAEXABVQDeclarativeCustomParserNode@@ABVQString@@@Z @ 1029 NONAME ; void QDeclarativeCustomParser::error(class QDeclarativeCustomParserNode const &, class QString const &)
- ?defaultProperty@QDeclarativeMetaType@@SA?AVQMetaProperty@@PBUQMetaObject@@@Z @ 1030 NONAME ; class QMetaProperty QDeclarativeMetaType::defaultProperty(struct QMetaObject const *)
- ?isComponentComplete@QDeclarativeItem@@IBE_NXZ @ 1031 NONAME ; bool QDeclarativeItem::isComponentComplete(void) const
- ?type@QMetaPropertyBuilder@@QBE?AVQByteArray@@XZ @ 1032 NONAME ; class QByteArray QMetaPropertyBuilder::type(void) const
- ?setProperty@QDeclarativeListModel@@QAEXHABVQString@@ABVQVariant@@@Z @ 1033 NONAME ; void QDeclarativeListModel::setProperty(int, class QString const &, class QVariant const &)
- ?rootContext@QDeclarativeDebugRootContextQuery@@QBE?AVQDeclarativeDebugContextReference@@XZ @ 1034 NONAME ; class QDeclarativeDebugContextReference QDeclarativeDebugRootContextQuery::rootContext(void) const
- ?contextForObject@QDeclarativeEngine@@SAPAVQDeclarativeContext@@PBVQObject@@@Z @ 1035 NONAME ; class QDeclarativeContext * QDeclarativeEngine::contextForObject(class QObject const *)
- ?addProperty@QMetaObjectBuilder@@QAE?AVQMetaPropertyBuilder@@ABVQMetaProperty@@@Z @ 1036 NONAME ; class QMetaPropertyBuilder QMetaObjectBuilder::addProperty(class QMetaProperty const &)
- ?isQObject@QDeclarativeMetaType@@SA_NH@Z @ 1037 NONAME ; bool QDeclarativeMetaType::isQObject(int)
- ?trUtf8@QDeclarativeAnchors@@SA?AVQString@@PBD0@Z @ 1038 NONAME ; class QString QDeclarativeAnchors::trUtf8(char const *, char const *)
- ?getStaticMetaObject@QDeclarativeValueType@@SAABUQMetaObject@@XZ @ 1039 NONAME ; struct QMetaObject const & QDeclarativeValueType::getStaticMetaObject(void)
- ?valueChanged@QDeclarativePropertyMap@@IAEXABVQString@@ABVQVariant@@@Z @ 1040 NONAME ; void QDeclarativePropertyMap::valueChanged(class QString const &, class QVariant const &)
- ?staticMetaObject@QPacketProtocol@@2UQMetaObject@@B @ 1041 NONAME ; struct QMetaObject const QPacketProtocol::staticMetaObject
- ?tr@QDeclarativeListModel@@SA?AVQString@@PBD0H@Z @ 1042 NONAME ; class QString QDeclarativeListModel::tr(char const *, char const *, int)
- ??0QDeclarativeScriptString@@QAE@XZ @ 1043 NONAME ; QDeclarativeScriptString::QDeclarativeScriptString(void)
- ?tr@QListModelInterface@@SA?AVQString@@PBD0@Z @ 1044 NONAME ; class QString QListModelInterface::tr(char const *, char const *)
- ?height@QDeclarativeItemPrivate@@UBEMXZ @ 1045 NONAME ; float QDeclarativeItemPrivate::height(void) const
- ?qt_metacast@QDeclarativeDebugObjectQuery@@UAEPAXPBD@Z @ 1046 NONAME ; void * QDeclarativeDebugObjectQuery::qt_metacast(char const *)
- ?type@QDeclarativeDomValue@@QBE?AW4Type@1@XZ @ 1047 NONAME ; enum QDeclarativeDomValue::Type QDeclarativeDomValue::type(void) const
- ?staticMetacallFunction@QMetaObjectBuilder@@QBEP6AHW4Call@QMetaObject@@HPAPAX@ZXZ @ 1048 NONAME ; int (*)(enum QMetaObject::Call, int, void * *) QMetaObjectBuilder::staticMetacallFunction(void) const
- ?setStyle@QDeclarativeText@@QAEXW4TextStyle@1@@Z @ 1049 NONAME ; void QDeclarativeText::setStyle(enum QDeclarativeText::TextStyle)
- ?staticMetaObject@QDeclarativePropertyMap@@2UQMetaObject@@B @ 1050 NONAME ; struct QMetaObject const QDeclarativePropertyMap::staticMetaObject
- ??_EQDeclarativeDebugEnginesQuery@@UAE@I@Z @ 1051 NONAME ; QDeclarativeDebugEnginesQuery::~QDeclarativeDebugEnginesQuery(unsigned int)
- ?enumeratorCount@QMetaObjectBuilder@@QBEHXZ @ 1052 NONAME ; int QMetaObjectBuilder::enumeratorCount(void) const
- ?setConsistentTime@QDeclarativeItemPrivate@@SAX_J@Z @ 1053 NONAME ; void QDeclarativeItemPrivate::setConsistentTime(long long)
- ?initializeEngine@QDeclarativeExtensionPlugin@@UAEXPAVQDeclarativeEngine@@PBD@Z @ 1054 NONAME ; void QDeclarativeExtensionPlugin::initializeEngine(class QDeclarativeEngine *, char const *)
- ?metaObject@QDeclarativeDebugQuery@@UBEPBUQMetaObject@@XZ @ 1055 NONAME ; struct QMetaObject const * QDeclarativeDebugQuery::metaObject(void) const
- ?rightMarginChanged@QDeclarativeAnchors@@IAEXXZ @ 1056 NONAME ; void QDeclarativeAnchors::rightMarginChanged(void)
- ??_EQDeclarativePropertyValueInterceptor@@UAE@I@Z @ 1057 NONAME ; QDeclarativePropertyValueInterceptor::~QDeclarativePropertyValueInterceptor(unsigned int)
- ?linkActivated@QDeclarativeText@@IAEXABVQString@@@Z @ 1058 NONAME ; void QDeclarativeText::linkActivated(class QString const &)
- ?canConvert@QDeclarativePropertyPrivate@@SA_NPBUQMetaObject@@0@Z @ 1059 NONAME ; bool QDeclarativePropertyPrivate::canConvert(struct QMetaObject const *, struct QMetaObject const *)
- ?trUtf8@QDeclarativeAnchors@@SA?AVQString@@PBD0H@Z @ 1060 NONAME ; class QString QDeclarativeAnchors::trUtf8(char const *, char const *, int)
- ?toComponent@QDeclarativeDomObject@@QBE?AVQDeclarativeDomComponent@@XZ @ 1061 NONAME ; class QDeclarativeDomComponent QDeclarativeDomObject::toComponent(void) const
- ?tr@QDeclarativeValueType@@SA?AVQString@@PBD0@Z @ 1062 NONAME ; class QString QDeclarativeValueType::tr(char const *, char const *)
- ?setLeft@QDeclarativeScaleGrid@@QAEXH@Z @ 1063 NONAME ; void QDeclarativeScaleGrid::setLeft(int)
- ??1QDeclarativeGridScaledImage@@QAE@XZ @ 1064 NONAME ; QDeclarativeGridScaledImage::~QDeclarativeGridScaledImage(void)
- ??0QDeclarativeGridScaledImage@@QAE@ABV0@@Z @ 1065 NONAME ; QDeclarativeGridScaledImage::QDeclarativeGridScaledImage(class QDeclarativeGridScaledImage const &)
- ?column@QDeclarativeError@@QBEHXZ @ 1066 NONAME ; int QDeclarativeError::column(void) const
- ?properties@QDeclarativeCustomParserNode@@QBE?AV?$QList@VQDeclarativeCustomParserProperty@@@@XZ @ 1067 NONAME ; class QList<class QDeclarativeCustomParserProperty> QDeclarativeCustomParserNode::properties(void) const
- ?qt_metacast@QDeclarativeScaleGrid@@UAEPAXPBD@Z @ 1068 NONAME ; void * QDeclarativeScaleGrid::qt_metacast(char const *)
- ??0QDeclarativeListReference@@QAE@XZ @ 1069 NONAME ; QDeclarativeListReference::QDeclarativeListReference(void)
- ??1QDeclarativeDebugRootContextQuery@@UAE@XZ @ 1070 NONAME ; QDeclarativeDebugRootContextQuery::~QDeclarativeDebugRootContextQuery(void)
- ?name@QDeclarativeCustomParserNode@@QBE?AVQByteArray@@XZ @ 1071 NONAME ; class QByteArray QDeclarativeCustomParserNode::name(void) const
- ?object@QDeclarativeDomValueValueInterceptor@@QBE?AVQDeclarativeDomObject@@XZ @ 1072 NONAME ; class QDeclarativeDomObject QDeclarativeDomValueValueInterceptor::object(void) const
- ??1QDeclarativePen@@UAE@XZ @ 1073 NONAME ; QDeclarativePen::~QDeclarativePen(void)
- ?data@QDeclarativeItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQObject@@@@XZ @ 1074 NONAME ; class QDeclarativeListProperty<class QObject> QDeclarativeItemPrivate::data(void)
- ?qt_metacall@QDeclarativeBinding@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1075 NONAME ; int QDeclarativeBinding::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??1QDeclarativeEngine@@UAE@XZ @ 1076 NONAME ; QDeclarativeEngine::~QDeclarativeEngine(void)
- ?debugId@QDeclarativeDebugContextReference@@QBEHXZ @ 1077 NONAME ; int QDeclarativeDebugContextReference::debugId(void) const
- ?propertyNameParts@QDeclarativeDomProperty@@QBE?AV?$QList@VQByteArray@@@@XZ @ 1078 NONAME ; class QList<class QByteArray> QDeclarativeDomProperty::propertyNameParts(void) const
- ?rootContext@QDeclarativeEngine@@QAEPAVQDeclarativeContext@@XZ @ 1079 NONAME ABSENT ; class QDeclarativeContext * QDeclarativeEngine::rootContext(void)
- ?resetWidth@QDeclarativeItemPrivate@@UAEXXZ @ 1080 NONAME ; void QDeclarativeItemPrivate::resetWidth(void)
- ??AQDeclarativeOpenMetaObject@@QAEAAVQVariant@@ABVQByteArray@@@Z @ 1081 NONAME ; class QVariant & QDeclarativeOpenMetaObject::operator[](class QByteArray const &)
- ?bottom@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1082 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::bottom(void) const
- ?device@QPacketProtocol@@QAEPAVQIODevice@@XZ @ 1083 NONAME ; class QIODevice * QPacketProtocol::device(void)
- ?trUtf8@QDeclarativeStateGroup@@SA?AVQString@@PBD0@Z @ 1084 NONAME ; class QString QDeclarativeStateGroup::trUtf8(char const *, char const *)
- ?variantFromString@QDeclarativeStringConverters@@YA?AVQVariant@@ABVQString@@HPA_N@Z @ 1085 NONAME ; class QVariant QDeclarativeStringConverters::variantFromString(class QString const &, int, bool *)
- ?metaObject@QDeclarativeComponent@@UBEPBUQMetaObject@@XZ @ 1086 NONAME ; struct QMetaObject const * QDeclarativeComponent::metaObject(void) const
- ?qmlInfo@@YA?AVQDeclarativeInfo@@PBVQObject@@ABV?$QList@VQDeclarativeError@@@@@Z @ 1087 NONAME ; class QDeclarativeInfo qmlInfo(class QObject const *, class QList<class QDeclarativeError> const &)
- ?assignedValues@QDeclarativeCustomParserProperty@@QBE?AV?$QList@VQVariant@@@@XZ @ 1088 NONAME ; class QList<class QVariant> QDeclarativeCustomParserProperty::assignedValues(void) const
- ?setValue@QDeclarativeOpenMetaObject@@QAEXABVQByteArray@@ABVQVariant@@@Z @ 1089 NONAME ; void QDeclarativeOpenMetaObject::setValue(class QByteArray const &, class QVariant const &)
- ?data@QDeclarativeListModel@@UBE?AVQVariant@@HH@Z @ 1090 NONAME ; class QVariant QDeclarativeListModel::data(int, int) const
- ?setElideMode@QDeclarativeText@@QAEXW4TextElideMode@1@@Z @ 1091 NONAME ; void QDeclarativeText::setElideMode(enum QDeclarativeText::TextElideMode)
- ?d_func@QDeclarativePropertyMap@@ABEPBVQDeclarativePropertyMapPrivate@@XZ @ 1092 NONAME ; class QDeclarativePropertyMapPrivate const * QDeclarativePropertyMap::d_func(void) const
- ?consistentTime@QDeclarativeItemPrivate@@2_JA @ 1093 NONAME ; long long QDeclarativeItemPrivate::consistentTime
- ?setWidth@QDeclarativeItem@@QAEXM@Z @ 1094 NONAME ; void QDeclarativeItem::setWidth(float)
- ?contextObject@QDeclarativeContext@@QBEPAVQObject@@XZ @ 1095 NONAME ; class QObject * QDeclarativeContext::contextObject(void) const
- ?qt_metacall@QDeclarativeDebugObjectQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1096 NONAME ; int QDeclarativeDebugObjectQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??_EQDeclarativeOpenMetaObjectType@@UAE@I@Z @ 1097 NONAME ; QDeclarativeOpenMetaObjectType::~QDeclarativeOpenMetaObjectType(unsigned int)
- ?isWritable@QMetaPropertyBuilder@@QBE_NXZ @ 1098 NONAME ; bool QMetaPropertyBuilder::isWritable(void) const
- ?sizeFFromString@QDeclarativeStringConverters@@YA?AVQSizeF@@ABVQString@@PA_N@Z @ 1099 NONAME ; class QSizeF QDeclarativeStringConverters::sizeFFromString(class QString const &, bool *)
- ??0QDeclarativeProperty@@QAE@PAVQObject@@ABVQString@@PAVQDeclarativeEngine@@@Z @ 1100 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QString const &, class QDeclarativeEngine *)
- ?addMethod@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@@Z @ 1101 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addMethod(class QByteArray const &)
- ??0QDeclarativeDebugFileReference@@QAE@XZ @ 1102 NONAME ; QDeclarativeDebugFileReference::QDeclarativeDebugFileReference(void)
- ?mapFromItem@QDeclarativeItem@@QBE?AVQScriptValue@@ABV2@MM@Z @ 1103 NONAME ; class QScriptValue QDeclarativeItem::mapFromItem(class QScriptValue const &, float, float) const
- ?trUtf8@QDeclarativeStateOperation@@SA?AVQString@@PBD0H@Z @ 1104 NONAME ; class QString QDeclarativeStateOperation::trUtf8(char const *, char const *, int)
- ?tr@QPacketProtocol@@SA?AVQString@@PBD0H@Z @ 1105 NONAME ; class QString QPacketProtocol::tr(char const *, char const *, int)
- ?d_func@QDeclarativeAnchors@@ABEPBVQDeclarativeAnchorsPrivate@@XZ @ 1106 NONAME ; class QDeclarativeAnchorsPrivate const * QDeclarativeAnchors::d_func(void) const
- ?metaObject@QDeclarativePixmapReply@@UBEPBUQMetaObject@@XZ @ 1107 NONAME ABSENT ; struct QMetaObject const * QDeclarativePixmapReply::metaObject(void) const
- ?setNotifySignal@QMetaPropertyBuilder@@QAEXABVQMetaMethodBuilder@@@Z @ 1108 NONAME ; void QMetaPropertyBuilder::setNotifySignal(class QMetaMethodBuilder const &)
- ?enabled@QDeclarativeBehavior@@QBE_NXZ @ 1109 NONAME ; bool QDeclarativeBehavior::enabled(void) const
- ?initProperty@QDeclarativePropertyPrivate@@QAEXPAVQObject@@ABVQString@@@Z @ 1110 NONAME ; void QDeclarativePropertyPrivate::initProperty(class QObject *, class QString const &)
- ?isEditable@QMetaPropertyBuilder@@QBE_NXZ @ 1111 NONAME ; bool QMetaPropertyBuilder::isEditable(void) const
- ??0QDeclarativeBinding@@QAE@ABVQString@@PAVQObject@@PAVQDeclarativeContextData@@1@Z @ 1112 NONAME ; QDeclarativeBinding::QDeclarativeBinding(class QString const &, class QObject *, class QDeclarativeContextData *, class QObject *)
- ?expression@QDeclarativeDebugExpressionQuery@@QBE?AVQVariant@@XZ @ 1113 NONAME ; class QVariant QDeclarativeDebugExpressionQuery::expression(void) const
- ??4QDeclarativeDomList@@QAEAAV0@ABV0@@Z @ 1114 NONAME ; class QDeclarativeDomList & QDeclarativeDomList::operator=(class QDeclarativeDomList const &)
- ?qt_metacall@QDeclarativeComponent@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1115 NONAME ; int QDeclarativeComponent::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?tr@QDeclarativeDebugService@@SA?AVQString@@PBD0H@Z @ 1116 NONAME ; class QString QDeclarativeDebugService::tr(char const *, char const *, int)
- ?staticMetaObject@QDeclarativeEngine@@2UQMetaObject@@B @ 1117 NONAME ; struct QMetaObject const QDeclarativeEngine::staticMetaObject
- ?staticMetaObject@QDeclarativeStateOperation@@2UQMetaObject@@B @ 1118 NONAME ; struct QMetaObject const QDeclarativeStateOperation::staticMetaObject
- ?actions@QDeclarativeStateOperation@@UAE?AV?$QList@VQDeclarativeAction@@@@XZ @ 1119 NONAME ; class QList<class QDeclarativeAction> QDeclarativeStateOperation::actions(void)
- ?objectClassName@QDeclarativeDomObject@@QBE?AVQByteArray@@XZ @ 1120 NONAME ; class QByteArray QDeclarativeDomObject::objectClassName(void) const
- ??8QDeclarativeProperty@@QBE_NABV0@@Z @ 1121 NONAME ; bool QDeclarativeProperty::operator==(class QDeclarativeProperty const &) const
- ??1QDeclarativeDomValue@@QAE@XZ @ 1122 NONAME ; QDeclarativeDomValue::~QDeclarativeDomValue(void)
- ??_EQDeclarativePropertyMap@@UAE@I@Z @ 1123 NONAME ; QDeclarativePropertyMap::~QDeclarativePropertyMap(unsigned int)
- ?staticMetaObject@QDeclarativeDebugRootContextQuery@@2UQMetaObject@@B @ 1124 NONAME ; struct QMetaObject const QDeclarativeDebugRootContextQuery::staticMetaObject
- ?noCreationReason@QDeclarativeType@@QBE?AVQString@@XZ @ 1125 NONAME ; class QString QDeclarativeType::noCreationReason(void) const
- ?setUrl@QDeclarativeDebugFileReference@@QAEXABVQUrl@@@Z @ 1126 NONAME ; void QDeclarativeDebugFileReference::setUrl(class QUrl const &)
- ??1QDeclarativeCustomParserProperty@@QAE@XZ @ 1127 NONAME ; QDeclarativeCustomParserProperty::~QDeclarativeCustomParserProperty(void)
- ??1QPacketProtocol@@UAE@XZ @ 1128 NONAME ; QPacketProtocol::~QPacketProtocol(void)
- ??1QDeclarativeAbstractBinding@@MAE@XZ @ 1129 NONAME ; QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding(void)
- ?indexOfEnumerator@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1130 NONAME ; int QMetaObjectBuilder::indexOfEnumerator(class QByteArray const &)
- ?qt_metacast@QDeclarativePen@@UAEPAXPBD@Z @ 1131 NONAME ; void * QDeclarativePen::qt_metacast(char const *)
- ?leftMargin@QDeclarativeAnchors@@QBEMXZ @ 1132 NONAME ; float QDeclarativeAnchors::leftMargin(void) const
- ??1QDeclarativeComponent@@UAE@XZ @ 1133 NONAME ; QDeclarativeComponent::~QDeclarativeComponent(void)
- ??1QDeclarativeItem@@UAE@XZ @ 1134 NONAME ; QDeclarativeItem::~QDeclarativeItem(void)
- ?setEnabled@QDeclarativeAbstractBinding@@UAEX_NV?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1135 NONAME ; void QDeclarativeAbstractBinding::setEnabled(bool, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
- ?staticMetaObject@QListModelInterface@@2UQMetaObject@@B @ 1136 NONAME ; struct QMetaObject const QListModelInterface::staticMetaObject
- ?d_func@QDeclarativeTransition@@ABEPBVQDeclarativeTransitionPrivate@@XZ @ 1137 NONAME ; class QDeclarativeTransitionPrivate const * QDeclarativeTransition::d_func(void) const
- ?sourceFile@QDeclarativeExpression@@QBE?AVQString@@XZ @ 1138 NONAME ; class QString QDeclarativeExpression::sourceFile(void) const
- ??_EQDeclarativeAnchors@@UAE@I@Z @ 1139 NONAME ; QDeclarativeAnchors::~QDeclarativeAnchors(unsigned int)
- ?removeNotifySignal@QMetaPropertyBuilder@@QAEXXZ @ 1140 NONAME ; void QMetaPropertyBuilder::removeNotifySignal(void)
- ?trUtf8@QDeclarativeDebugService@@SA?AVQString@@PBD0@Z @ 1141 NONAME ; class QString QDeclarativeDebugService::trUtf8(char const *, char const *)
- ?setImportPathList@QDeclarativeEngine@@QAEXABVQStringList@@@Z @ 1142 NONAME ; void QDeclarativeEngine::setImportPathList(class QStringList const &)
- ?enabledChanged@QDeclarativeDebugService@@MAEX_N@Z @ 1143 NONAME ; void QDeclarativeDebugService::enabledChanged(bool)
- ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugWatch@@ABVQDeclarativeDebugObjectReference@@PAVQObject@@@Z @ 1144 NONAME ; class QDeclarativeDebugWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugObjectReference const &, class QObject *)
- ?asAST@Variant@QDeclarativeParser@@QBEPAVNode@AST@QDeclarativeJS@@XZ @ 1145 NONAME ; class QDeclarativeJS::AST::Node * QDeclarativeParser::Variant::asAST(void) const
- ?indexOfClassInfo@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1146 NONAME ; int QMetaObjectBuilder::indexOfClassInfo(class QByteArray const &)
- ??0QDeclarativeDomImport@@QAE@ABV0@@Z @ 1147 NONAME ; QDeclarativeDomImport::QDeclarativeDomImport(class QDeclarativeDomImport const &)
- ?width@QDeclarativePen@@QBEHXZ @ 1148 NONAME ; int QDeclarativePen::width(void) const
- ?d_func@QDeclarativeStateGroup@@AAEPAVQDeclarativeStateGroupPrivate@@XZ @ 1149 NONAME ; class QDeclarativeStateGroupPrivate * QDeclarativeStateGroup::d_func(void)
- ??6QDeclarativeInfo@@QAEAAV0@P6AAAVQTextStream@@AAV1@@Z@Z @ 1150 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QTextStream & (*)(class QTextStream &))
- ?trUtf8@QDeclarativeEngineDebug@@SA?AVQString@@PBD0@Z @ 1151 NONAME ; class QString QDeclarativeEngineDebug::trUtf8(char const *, char const *)
- ?type@QDeclarativeOpenMetaObject@@QBEPAVQDeclarativeOpenMetaObjectType@@XZ @ 1152 NONAME ; class QDeclarativeOpenMetaObjectType * QDeclarativeOpenMetaObject::type(void) const
- ?tr@QDeclarativeExpression@@SA?AVQString@@PBD0@Z @ 1153 NONAME ; class QString QDeclarativeExpression::tr(char const *, char const *)
- ??0QDeclarativeDomValueValueInterceptor@@QAE@XZ @ 1154 NONAME ; QDeclarativeDomValueValueInterceptor::QDeclarativeDomValueValueInterceptor(void)
- ??1QDeclarativeDebugPropertyWatch@@UAE@XZ @ 1155 NONAME ; QDeclarativeDebugPropertyWatch::~QDeclarativeDebugPropertyWatch(void)
- ?evaluate@QDeclarativeExpression@@QAE?AVQVariant@@PA_N@Z @ 1156 NONAME ; class QVariant QDeclarativeExpression::evaluate(bool *)
- ?isDefaultProperty@QDeclarativeDomProperty@@QBE_NXZ @ 1157 NONAME ; bool QDeclarativeDomProperty::isDefaultProperty(void) const
- ??0QDeclarativeAction@@QAE@PAVQObject@@ABVQString@@ABVQVariant@@@Z @ 1158 NONAME ; QDeclarativeAction::QDeclarativeAction(class QObject *, class QString const &, class QVariant const &)
- ?metaObject@QDeclarativeRectangle@@UBEPBUQMetaObject@@XZ @ 1159 NONAME ; struct QMetaObject const * QDeclarativeRectangle::metaObject(void) const
- ?forcedWidth@QDeclarativePixmapReply@@QBEHXZ @ 1160 NONAME ABSENT ; int QDeclarativePixmapReply::forcedWidth(void) const
- ?removeRelatedMetaObject@QMetaObjectBuilder@@QAEXH@Z @ 1161 NONAME ; void QMetaObjectBuilder::removeRelatedMetaObject(int)
- ??0QDeclarativeError@@QAE@XZ @ 1162 NONAME ; QDeclarativeError::QDeclarativeError(void)
- ?object@QDeclarativeProperty@@QBEPAVQObject@@XZ @ 1163 NONAME ; class QObject * QDeclarativeProperty::object(void) const
- ?stateGroup@QDeclarativeState@@QBEPAVQDeclarativeStateGroup@@XZ @ 1164 NONAME ; class QDeclarativeStateGroup * QDeclarativeState::stateGroup(void) const
- ?connectNotifySignal@QDeclarativeProperty@@QBE_NPAVQObject@@H@Z @ 1165 NONAME ; bool QDeclarativeProperty::connectNotifySignal(class QObject *, int) const
- ?focusChanged@QDeclarativeItemPrivate@@UAEX_N@Z @ 1166 NONAME ; void QDeclarativeItemPrivate::focusChanged(bool)
- ?contextDebugId@QDeclarativeDebugObjectReference@@QBEHXZ @ 1167 NONAME ; int QDeclarativeDebugObjectReference::contextDebugId(void) const
- ?url@QDeclarativeDebugFileReference@@QBE?AVQUrl@@XZ @ 1168 NONAME ; class QUrl QDeclarativeDebugFileReference::url(void) const
- ?paint@QDeclarativeRectangle@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 1169 NONAME ; void QDeclarativeRectangle::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
- ??6QDeclarativeState@@QAEAAV0@PAVQDeclarativeStateOperation@@@Z @ 1170 NONAME ; class QDeclarativeState & QDeclarativeState::operator<<(class QDeclarativeStateOperation *)
- ?destroy@QDeclarativeAbstractBinding@@UAEXXZ @ 1171 NONAME ; void QDeclarativeAbstractBinding::destroy(void)
- ?qt_metacast@QDeclarativeDebugService@@UAEPAXPBD@Z @ 1172 NONAME ; void * QDeclarativeDebugService::qt_metacast(char const *)
- ?qt_metacast@QDeclarativeValueType@@UAEPAXPBD@Z @ 1173 NONAME ; void * QDeclarativeValueType::qt_metacast(char const *)
- ?childAt@QDeclarativeItem@@QBEPAV1@MM@Z @ 1174 NONAME ; class QDeclarativeItem * QDeclarativeItem::childAt(float, float) const
- ?paintedWidth@QDeclarativeText@@QBEMXZ @ 1175 NONAME ; float QDeclarativeText::paintedWidth(void) const
- ?tr@QDeclarativeBinding@@SA?AVQString@@PBD0@Z @ 1176 NONAME ; class QString QDeclarativeBinding::tr(char const *, char const *)
- ?clip@QDeclarativeItem@@QBE_NXZ @ 1177 NONAME ; bool QDeclarativeItem::clip(void) const
- ??0QDeclarativeComponent@@QAE@PAVQDeclarativeEngine@@ABVQUrl@@PAVQObject@@@Z @ 1178 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QUrl const &, class QObject *)
- ??0QDeclarativeValueTypeFactory@@QAE@XZ @ 1179 NONAME ; QDeclarativeValueTypeFactory::QDeclarativeValueTypeFactory(void)
- ?literal@QDeclarativeDomValueLiteral@@QBE?AVQString@@XZ @ 1180 NONAME ; class QString QDeclarativeDomValueLiteral::literal(void) const
- ??_EQDeclarativeEngineDebug@@UAE@I@Z @ 1181 NONAME ; QDeclarativeEngineDebug::~QDeclarativeEngineDebug(unsigned int)
- ?bottom@QDeclarativeScaleGrid@@QBEHXZ @ 1182 NONAME ; int QDeclarativeScaleGrid::bottom(void) const
- ?d_func@QDeclarativePropertyMap@@AAEPAVQDeclarativePropertyMapPrivate@@XZ @ 1183 NONAME ; class QDeclarativePropertyMapPrivate * QDeclarativePropertyMap::d_func(void)
- ?forceFocus@QDeclarativeItem@@QAEXXZ @ 1184 NONAME ABSENT ; void QDeclarativeItem::forceFocus(void)
- ?trUtf8@QDeclarativeView@@SA?AVQString@@PBD0@Z @ 1185 NONAME ; class QString QDeclarativeView::trUtf8(char const *, char const *)
- ??0QDeclarativeTransition@@QAE@PAVQObject@@@Z @ 1186 NONAME ; QDeclarativeTransition::QDeclarativeTransition(class QObject *)
- ?horizontalCenter@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1187 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::horizontalCenter(void) const
- ?setObjectOwnership@QDeclarativeEngine@@SAXPAVQObject@@W4ObjectOwnership@1@@Z @ 1188 NONAME ; void QDeclarativeEngine::setObjectOwnership(class QObject *, enum QDeclarativeEngine::ObjectOwnership)
- ?tr@QDeclarativeContext@@SA?AVQString@@PBD0H@Z @ 1189 NONAME ; class QString QDeclarativeContext::tr(char const *, char const *, int)
- ?metaCall@QDeclarativeOpenMetaObject@@MAEHW4Call@QMetaObject@@HPAPAX@Z @ 1190 NONAME ; int QDeclarativeOpenMetaObject::metaCall(enum QMetaObject::Call, int, void * *)
- ??_EQDeclarativeText@@UAE@I@Z @ 1191 NONAME ; QDeclarativeText::~QDeclarativeText(unsigned int)
- ?setLeftMargin@QDeclarativeAnchors@@QAEXM@Z @ 1192 NONAME ; void QDeclarativeAnchors::setLeftMargin(float)
- ?metaObject@QDeclarativeStateGroup@@UBEPBUQMetaObject@@XZ @ 1193 NONAME ; struct QMetaObject const * QDeclarativeStateGroup::metaObject(void) const
- ?expression@QDeclarativeAbstractBinding@@UBE?AVQString@@XZ @ 1194 NONAME ; class QString QDeclarativeAbstractBinding::expression(void) const
- ??6QDeclarativeInfo@@QAEAAV0@N@Z @ 1195 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(double)
- ?setAnimation@QDeclarativeBehavior@@QAEXPAVQDeclarativeAbstractAnimation@@@Z @ 1196 NONAME ; void QDeclarativeBehavior::setAnimation(class QDeclarativeAbstractAnimation *)
- ?properties@QDeclarativeDebugObjectReference@@QBE?AV?$QList@VQDeclarativeDebugPropertyReference@@@@XZ @ 1197 NONAME ; class QList<class QDeclarativeDebugPropertyReference> QDeclarativeDebugObjectReference::properties(void) const
- ?trUtf8@QDeclarativeDebugClient@@SA?AVQString@@PBD0@Z @ 1198 NONAME ; class QString QDeclarativeDebugClient::trUtf8(char const *, char const *)
- ?context@QDeclarativeExpression@@QBEPAVQDeclarativeContext@@XZ @ 1199 NONAME ; class QDeclarativeContext * QDeclarativeExpression::context(void) const
- ?qt_metacast@QDeclarativeBehavior@@UAEPAXPBD@Z @ 1200 NONAME ; void * QDeclarativeBehavior::qt_metacast(char const *)
- ?objectTypeMinorVersion@QDeclarativeDomObject@@QBEHXZ @ 1201 NONAME ; int QDeclarativeDomObject::objectTypeMinorVersion(void) const
- ??0QDeclarativePropertyValueInterceptor@@QAE@XZ @ 1202 NONAME ; QDeclarativePropertyValueInterceptor::QDeclarativePropertyValueInterceptor(void)
- ?isValid@QDeclarativeError@@QBE_NXZ @ 1203 NONAME ; bool QDeclarativeError::isValid(void) const
- ??0QMetaMethodBuilder@@QAE@XZ @ 1204 NONAME ; QMetaMethodBuilder::QMetaMethodBuilder(void)
- ?completed@QDeclarativeState@@IAEXXZ @ 1205 NONAME ; void QDeclarativeState::completed(void)
- ?tr@QDeclarativePixmapReply@@SA?AVQString@@PBD0H@Z @ 1206 NONAME ABSENT ; class QString QDeclarativePixmapReply::tr(char const *, char const *, int)
- ?radiusChanged@QDeclarativeRectangle@@IAEXXZ @ 1207 NONAME ; void QDeclarativeRectangle::radiusChanged(void)
- ?getStaticMetaObject@QDeclarativeExpression@@SAABUQMetaObject@@XZ @ 1208 NONAME ; struct QMetaObject const & QDeclarativeExpression::getStaticMetaObject(void)
- ?gridLeft@QDeclarativeGridScaledImage@@QBEHXZ @ 1209 NONAME ; int QDeclarativeGridScaledImage::gridLeft(void) const
- ?setWritable@QMetaPropertyBuilder@@QAEX_N@Z @ 1210 NONAME ; void QMetaPropertyBuilder::setWritable(bool)
- ?qt_metacast@QDeclarativeStateGroup@@UAEPAXPBD@Z @ 1211 NONAME ; void * QDeclarativeStateGroup::qt_metacast(char const *)
- ?defaultMethod@QDeclarativeMetaType@@SA?AVQMetaMethod@@PAVQObject@@@Z @ 1212 NONAME ; class QMetaMethod QDeclarativeMetaType::defaultMethod(class QObject *)
- ?qt_metacast@QDeclarativeEngineDebug@@UAEPAXPBD@Z @ 1213 NONAME ; void * QDeclarativeEngineDebug::qt_metacast(char const *)
- ?staticMetaObject@QDeclarativeExpression@@2UQMetaObject@@B @ 1214 NONAME ; struct QMetaObject const QDeclarativeExpression::staticMetaObject
- ?statusChanged@QDeclarativeComponent@@IAEXW4Status@1@@Z @ 1215 NONAME ; void QDeclarativeComponent::statusChanged(enum QDeclarativeComponent::Status)
- ?setTarget@QDeclarativeBinding@@QAEXABVQDeclarativeProperty@@@Z @ 1216 NONAME ; void QDeclarativeBinding::setTarget(class QDeclarativeProperty const &)
- ?imageProvider@QDeclarativeEngine@@QBEPAVQDeclarativeImageProvider@@ABVQString@@@Z @ 1217 NONAME ; class QDeclarativeImageProvider * QDeclarativeEngine::imageProvider(class QString const &) const
- ?packetsAvailable@QPacketProtocol@@QBE_JXZ @ 1218 NONAME ; long long QPacketProtocol::packetsAvailable(void) const
- ?state@QDeclarativeDebugWatch@@QBE?AW4State@1@XZ @ 1219 NONAME ; enum QDeclarativeDebugWatch::State QDeclarativeDebugWatch::state(void) const
- ?attachedPropertiesFuncById@QDeclarativeMetaType@@SAP6APAVQObject@@PAV2@@ZH@Z @ 1220 NONAME ; class QObject * (*)(class QObject *) QDeclarativeMetaType::attachedPropertiesFuncById(int)
- ?resetBaseline@QDeclarativeAnchors@@QAEXXZ @ 1221 NONAME ; void QDeclarativeAnchors::resetBaseline(void)
- ?name@QDeclarativeDebugClient@@QBE?AVQString@@XZ @ 1222 NONAME ; class QString QDeclarativeDebugClient::name(void) const
- ?propertyValueInterceptorCast@QDeclarativeType@@QBEHXZ @ 1223 NONAME ; int QDeclarativeType::propertyValueInterceptorCast(void) const
- ?setData@QDeclarativeComponent@@QAEXABVQByteArray@@ABVQUrl@@@Z @ 1224 NONAME ; void QDeclarativeComponent::setData(class QByteArray const &, class QUrl const &)
- ??4QDeclarativeDomValue@@QAEAAV0@ABV0@@Z @ 1225 NONAME ; class QDeclarativeDomValue & QDeclarativeDomValue::operator=(class QDeclarativeDomValue const &)
- ?toString@QDeclarativeListModel@@UBE?AVQString@@H@Z @ 1226 NONAME ; class QString QDeclarativeListModel::toString(int) const
- ?resetWidth@QDeclarativeItem@@QAEXXZ @ 1227 NONAME ; void QDeclarativeItem::resetWidth(void)
- ??0QDeclarativeProperty@@QAE@ABV0@@Z @ 1228 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QDeclarativeProperty const &)
- ?text@QDeclarativeText@@QBE?AVQString@@XZ @ 1229 NONAME ; class QString QDeclarativeText::text(void) const
- ??1QDeclarativeDebugObjectQuery@@UAE@XZ @ 1230 NONAME ; QDeclarativeDebugObjectQuery::~QDeclarativeDebugObjectQuery(void)
- ?count@QDeclarativeOpenMetaObject@@QBEHXZ @ 1231 NONAME ; int QDeclarativeOpenMetaObject::count(void) const
- ?isFlag@QMetaEnumBuilder@@QBE_NXZ @ 1232 NONAME ; bool QMetaEnumBuilder::isFlag(void) const
- ?bindingIndex@QDeclarativePropertyPrivate@@SAHABVQDeclarativeProperty@@@Z @ 1233 NONAME ; int QDeclarativePropertyPrivate::bindingIndex(class QDeclarativeProperty const &)
- ??0QDeclarativeDomValueBinding@@QAE@ABV0@@Z @ 1234 NONAME ; QDeclarativeDomValueBinding::QDeclarativeDomValueBinding(class QDeclarativeDomValueBinding const &)
- ?trUtf8@QDeclarativeRectangle@@SA?AVQString@@PBD0@Z @ 1235 NONAME ; class QString QDeclarativeRectangle::trUtf8(char const *, char const *)
- ?classInfoName@QMetaObjectBuilder@@QBE?AVQByteArray@@H@Z @ 1236 NONAME ; class QByteArray QMetaObjectBuilder::classInfoName(int) const
- ?metaObject@QDeclarativeDebugObjectQuery@@UBEPBUQMetaObject@@XZ @ 1237 NONAME ; struct QMetaObject const * QDeclarativeDebugObjectQuery::metaObject(void) const
- ??4QDeclarativeDomDynamicProperty@@QAEAAV0@ABV0@@Z @ 1238 NONAME ; class QDeclarativeDomDynamicProperty & QDeclarativeDomDynamicProperty::operator=(class QDeclarativeDomDynamicProperty const &)
- ??_EQDeclarativeDebugEngineReference@@QAE@I@Z @ 1239 NONAME ; QDeclarativeDebugEngineReference::~QDeclarativeDebugEngineReference(unsigned int)
- ?usedAnchors@QDeclarativeAnchors@@QBE?AV?$QFlags@W4Anchor@QDeclarativeAnchors@@@@XZ @ 1240 NONAME ; class QFlags<enum QDeclarativeAnchors::Anchor> QDeclarativeAnchors::usedAnchors(void) const
- ?baseline@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1241 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline(void) const
- ?clear@QDeclarativeListModel@@QAEXXZ @ 1242 NONAME ; void QDeclarativeListModel::clear(void)
- ??0QDeclarativeDebugObjectExpressionWatch@@QAE@PAVQObject@@@Z @ 1243 NONAME ; QDeclarativeDebugObjectExpressionWatch::QDeclarativeDebugObjectExpressionWatch(class QObject *)
- ??4QDeclarativeDomProperty@@QAEAAV0@ABV0@@Z @ 1244 NONAME ; class QDeclarativeDomProperty & QDeclarativeDomProperty::operator=(class QDeclarativeDomProperty const &)
- ?write@QDeclarativeProperty@@SA_NPAVQObject@@ABVQString@@ABVQVariant@@@Z @ 1245 NONAME ; bool QDeclarativeProperty::write(class QObject *, class QString const &, class QVariant const &)
- ?trUtf8@QDeclarativeContext@@SA?AVQString@@PBD0@Z @ 1246 NONAME ; class QString QDeclarativeContext::trUtf8(char const *, char const *)
- ?borderChanged@QDeclarativeScaleGrid@@IAEXXZ @ 1247 NONAME ; void QDeclarativeScaleGrid::borderChanged(void)
- ??1QDeclarativeRectangle@@UAE@XZ @ 1248 NONAME ; QDeclarativeRectangle::~QDeclarativeRectangle(void)
- ?count@QDeclarativePropertyMap@@QBEHXZ @ 1249 NONAME ; int QDeclarativePropertyMap::count(void) const
- ?setReturnType@QMetaMethodBuilder@@QAEXABVQByteArray@@@Z @ 1250 NONAME ; void QMetaMethodBuilder::setReturnType(class QByteArray const &)
- ??0QDeclarativePropertyValueSource@@QAE@XZ @ 1251 NONAME ; QDeclarativePropertyValueSource::QDeclarativePropertyValueSource(void)
- ?tr@QDeclarativePen@@SA?AVQString@@PBD0H@Z @ 1252 NONAME ; class QString QDeclarativePen::tr(char const *, char const *, int)
- ?toLiteral@QDeclarativeDomValue@@QBE?AVQDeclarativeDomValueLiteral@@XZ @ 1253 NONAME ; class QDeclarativeDomValueLiteral QDeclarativeDomValue::toLiteral(void) const
- ??0QDeclarativeOpenMetaObject@@QAE@PAVQObject@@_N@Z @ 1254 NONAME ; QDeclarativeOpenMetaObject::QDeclarativeOpenMetaObject(class QObject *, bool)
- ?url@QDeclarativeComponent@@QBE?AVQUrl@@XZ @ 1255 NONAME ; class QUrl QDeclarativeComponent::url(void) const
- ?componentComplete@QDeclarativeStateGroup@@UAEXXZ @ 1256 NONAME ; void QDeclarativeStateGroup::componentComplete(void)
- ?setMargins@QDeclarativeAnchors@@QAEXM@Z @ 1257 NONAME ; void QDeclarativeAnchors::setMargins(float)
- ?qt_metacall@QDeclarativeView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1258 NONAME ; int QDeclarativeView::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?state@QDeclarativeStateGroup@@QBE?AVQString@@XZ @ 1259 NONAME ; class QString QDeclarativeStateGroup::state(void) const
- ??0QDeclarativeDomComponent@@QAE@ABV0@@Z @ 1260 NONAME ; QDeclarativeDomComponent::QDeclarativeDomComponent(class QDeclarativeDomComponent const &)
- ?queryAvailableEngines@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugEnginesQuery@@PAVQObject@@@Z @ 1261 NONAME ; class QDeclarativeDebugEnginesQuery * QDeclarativeEngineDebug::queryAvailableEngines(class QObject *)
- ??_EQDeclarativeItemPrivate@@UAE@I@Z @ 1262 NONAME ; QDeclarativeItemPrivate::~QDeclarativeItemPrivate(unsigned int)
- ?expression@QDeclarativeBinding@@UBE?AVQString@@XZ @ 1263 NONAME ; class QString QDeclarativeBinding::expression(void) const
- ?position@QDeclarativeDomProperty@@QBEHXZ @ 1264 NONAME ; int QDeclarativeDomProperty::position(void) const
- ?registerValueTypes@QDeclarativeValueTypeFactory@@SAXXZ @ 1265 NONAME ; void QDeclarativeValueTypeFactory::registerValueTypes(void)
- ?dynamicProperties@QDeclarativeDomObject@@QBE?AV?$QList@VQDeclarativeDomDynamicProperty@@@@XZ @ 1266 NONAME ; class QList<class QDeclarativeDomDynamicProperty> QDeclarativeDomObject::dynamicProperties(void) const
- ?attachedPropertiesFunction@QDeclarativeType@@QBEP6APAVQObject@@PAV2@@ZXZ @ 1267 NONAME ; class QObject * (*)(class QObject *) QDeclarativeType::attachedPropertiesFunction(void) const
- ??1QDeclarativePropertyMap@@UAE@XZ @ 1268 NONAME ; QDeclarativePropertyMap::~QDeclarativePropertyMap(void)
- ??_EQDeclarativeExtensionInterface@@UAE@I@Z @ 1269 NONAME ; QDeclarativeExtensionInterface::~QDeclarativeExtensionInterface(unsigned int)
- ??0Variant@QDeclarativeParser@@QAE@NABVQString@@@Z @ 1270 NONAME ; QDeclarativeParser::Variant::Variant(double, class QString const &)
- ??6QDeclarativeInfo@@QAEAAV0@VQBool@@@Z @ 1271 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QBool)
- ?setBinding@QDeclarativePropertyPrivate@@SAPAVQDeclarativeAbstractBinding@@PAVQObject@@HHPAV2@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1272 NONAME ; class QDeclarativeAbstractBinding * QDeclarativePropertyPrivate::setBinding(class QObject *, int, int, class QDeclarativeAbstractBinding *, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
- ?qt_metacast@QDeclarativeDebugExpressionQuery@@UAEPAXPBD@Z @ 1273 NONAME ; void * QDeclarativeDebugExpressionQuery::qt_metacast(char const *)
- ?contextProperty@QDeclarativeContext@@QBE?AVQVariant@@ABVQString@@@Z @ 1274 NONAME ; class QVariant QDeclarativeContext::contextProperty(class QString const &) const
- ?verticalCenter@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1275 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::verticalCenter(void) const
- ?metaObject@QDeclarativeScaleGrid@@UBEPBUQMetaObject@@XZ @ 1276 NONAME ; struct QMetaObject const * QDeclarativeScaleGrid::metaObject(void) const
- ?trUtf8@QDeclarativePixmapCache@@SA?AVQString@@PBD0H@Z @ 1277 NONAME ABSENT ; class QString QDeclarativePixmapCache::trUtf8(char const *, char const *, int)
- ?qmlContext@@YAPAVQDeclarativeContext@@PBVQObject@@@Z @ 1278 NONAME ; class QDeclarativeContext * qmlContext(class QObject const *)
- ?transform_count@QDeclarativeItemPrivate@@SAHPAV?$QDeclarativeListProperty@VQGraphicsTransform@@@@@Z @ 1279 NONAME ; int QDeclarativeItemPrivate::transform_count(class QDeclarativeListProperty<class QGraphicsTransform> *)
- ?tr@QListModelInterface@@SA?AVQString@@PBD0H@Z @ 1280 NONAME ; class QString QListModelInterface::tr(char const *, char const *, int)
- ??1QDeclarativeDebugFileReference@@QAE@XZ @ 1281 NONAME ; QDeclarativeDebugFileReference::~QDeclarativeDebugFileReference(void)
- ?style@QDeclarativeText@@QBE?AW4TextStyle@1@XZ @ 1282 NONAME ; enum QDeclarativeText::TextStyle QDeclarativeText::style(void) const
- ??0QDeclarativeAbstractBinding@@QAE@XZ @ 1283 NONAME ; QDeclarativeAbstractBinding::QDeclarativeAbstractBinding(void)
- ?staticMetaObject@QDeclarativeDebugEnginesQuery@@2UQMetaObject@@B @ 1284 NONAME ; struct QMetaObject const QDeclarativeDebugEnginesQuery::staticMetaObject
- ?cancel@QDeclarativePixmapCache@@SAXABVQUrl@@PAVQObject@@@Z @ 1285 NONAME ABSENT ; void QDeclarativePixmapCache::cancel(class QUrl const &, class QObject *)
- ?isError@QDeclarativeComponent@@QBE_NXZ @ 1286 NONAME ; bool QDeclarativeComponent::isError(void) const
- ?qt_metacall@QDeclarativeTransition@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1287 NONAME ; int QDeclarativeTransition::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?type@QDeclarativeDomImport@@QBE?AW4Type@1@XZ @ 1288 NONAME ; enum QDeclarativeDomImport::Type QDeclarativeDomImport::type(void) const
- ??1QDeclarativeDebugConnection@@UAE@XZ @ 1289 NONAME ; QDeclarativeDebugConnection::~QDeclarativeDebugConnection(void)
- ?value@QDeclarativeOpenMetaObject@@QBE?AVQVariant@@H@Z @ 1290 NONAME ; class QVariant QDeclarativeOpenMetaObject::value(int) const
- ?tr@QDeclarativeDebugRootContextQuery@@SA?AVQString@@PBD0H@Z @ 1291 NONAME ; class QString QDeclarativeDebugRootContextQuery::tr(char const *, char const *, int)
- ?setFromState@QDeclarativeTransition@@QAEXABVQString@@@Z @ 1292 NONAME ; void QDeclarativeTransition::setFromState(class QString const &)
- ?metaObject@QDeclarativeDebugService@@UBEPBUQMetaObject@@XZ @ 1293 NONAME ; struct QMetaObject const * QDeclarativeDebugService::metaObject(void) const
- ?state@QDeclarativeDebugQuery@@QBE?AW4State@1@XZ @ 1294 NONAME ; enum QDeclarativeDebugQuery::State QDeclarativeDebugQuery::state(void) const
- ?setBottom@QDeclarativeScaleGrid@@QAEXH@Z @ 1295 NONAME ; void QDeclarativeScaleGrid::setBottom(int)
- ?topMarginChanged@QDeclarativeAnchors@@IAEXXZ @ 1296 NONAME ; void QDeclarativeAnchors::topMarginChanged(void)
- ?itemChange@QDeclarativeItem@@MAE?AVQVariant@@W4GraphicsItemChange@QGraphicsItem@@ABV2@@Z @ 1297 NONAME ; class QVariant QDeclarativeItem::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &)
- ?position@QDeclarativeDomObject@@QBEHXZ @ 1298 NONAME ; int QDeclarativeDomObject::position(void) const
- ?update@QDeclarativeBinding@@UAEXV?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1299 NONAME ; void QDeclarativeBinding::update(class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
- ?tr@QDeclarativeBehavior@@SA?AVQString@@PBD0@Z @ 1300 NONAME ; class QString QDeclarativeBehavior::tr(char const *, char const *)
- ?isDebuggingEnabled@QDeclarativeDebugService@@SA_NXZ @ 1301 NONAME ; bool QDeclarativeDebugService::isDebuggingEnabled(void)
- ?tr@QDeclarativeText@@SA?AVQString@@PBD0H@Z @ 1302 NONAME ; class QString QDeclarativeText::tr(char const *, char const *, int)
- ?reset@QDeclarativeProperty@@QBE_NXZ @ 1303 NONAME ; bool QDeclarativeProperty::reset(void) const
- ?objectDebugId@QDeclarativeDebugWatch@@QBEHXZ @ 1304 NONAME ; int QDeclarativeDebugWatch::objectDebugId(void) const
- ?width@QDeclarativeItemPrivate@@UBEMXZ @ 1305 NONAME ; float QDeclarativeItemPrivate::width(void) const
- ?d_func@QMetaMethodBuilder@@ABEPAVQMetaMethodBuilderPrivate@@XZ @ 1306 NONAME ; class QMetaMethodBuilderPrivate * QMetaMethodBuilder::d_func(void) const
- ?isScript@Variant@QDeclarativeParser@@QBE_NXZ @ 1307 NONAME ; bool QDeclarativeParser::Variant::isScript(void) const
- ?classBegin@QDeclarativeStateGroup@@UAEXXZ @ 1308 NONAME ; void QDeclarativeStateGroup::classBegin(void)
- ?qt_metacast@QDeclarativeRectangle@@UAEPAXPBD@Z @ 1309 NONAME ; void * QDeclarativeRectangle::qt_metacast(char const *)
- ?qt_metacast@QDeclarativeExpression@@UAEPAXPBD@Z @ 1310 NONAME ; void * QDeclarativeExpression::qt_metacast(char const *)
- ?indexOfProperty@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1311 NONAME ; int QMetaObjectBuilder::indexOfProperty(class QByteArray const &)
- ?vAlign@QDeclarativeText@@QBE?AW4VAlignment@1@XZ @ 1312 NONAME ; enum QDeclarativeText::VAlignment QDeclarativeText::vAlign(void) const
- ?addEnumerator@QMetaObjectBuilder@@QAE?AVQMetaEnumBuilder@@ABVQByteArray@@@Z @ 1313 NONAME ; class QMetaEnumBuilder QMetaObjectBuilder::addEnumerator(class QByteArray const &)
- ??1QDeclarativeError@@QAE@XZ @ 1314 NONAME ; QDeclarativeError::~QDeclarativeError(void)
- ?property@QDeclarativeProperty@@QBE?AVQMetaProperty@@XZ @ 1315 NONAME ; class QMetaProperty QDeclarativeProperty::property(void) const
- ?tr@QDeclarativeText@@SA?AVQString@@PBD0@Z @ 1316 NONAME ; class QString QDeclarativeText::tr(char const *, char const *)
- ?write@QDeclarativeProperty@@SA_NPAVQObject@@ABVQString@@ABVQVariant@@PAVQDeclarativeContext@@@Z @ 1317 NONAME ; bool QDeclarativeProperty::write(class QObject *, class QString const &, class QVariant const &, class QDeclarativeContext *)
- ??0QDeclarativeGridScaledImage@@QAE@XZ @ 1318 NONAME ; QDeclarativeGridScaledImage::QDeclarativeGridScaledImage(void)
- ?setText@QDeclarativeText@@QAEXABVQString@@@Z @ 1319 NONAME ; void QDeclarativeText::setText(class QString const &)
- ?setBaseline@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 1320 NONAME ; void QDeclarativeAnchors::setBaseline(class QDeclarativeAnchorLine const &)
- ?resetCenterIn@QDeclarativeAnchors@@QAEXXZ @ 1321 NONAME ; void QDeclarativeAnchors::resetCenterIn(void)
- ?pixmapUrl@QDeclarativeGridScaledImage@@QBE?AVQString@@XZ @ 1322 NONAME ; class QString QDeclarativeGridScaledImage::pixmapUrl(void) const
- ?name@QDeclarativeOpenMetaObject@@QBE?AVQByteArray@@H@Z @ 1323 NONAME ; class QByteArray QDeclarativeOpenMetaObject::name(int) const
- ?trUtf8@QDeclarativeDebugObjectQuery@@SA?AVQString@@PBD0@Z @ 1324 NONAME ; class QString QDeclarativeDebugObjectQuery::trUtf8(char const *, char const *)
- ?getStaticMetaObject@QDeclarativeAnchors@@SAABUQMetaObject@@XZ @ 1325 NONAME ; struct QMetaObject const & QDeclarativeAnchors::getStaticMetaObject(void)
- ?qt_metacall@QDeclarativeEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1326 NONAME ; int QDeclarativeEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??0QDeclarativeProperty@@QAE@PAVQObject@@ABVQString@@@Z @ 1327 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QString const &)
- ?trUtf8@QDeclarativeState@@SA?AVQString@@PBD0@Z @ 1328 NONAME ; class QString QDeclarativeState::trUtf8(char const *, char const *)
- ?setStaticMetacallFunction@QMetaObjectBuilder@@QAEXP6AHW4Call@QMetaObject@@HPAPAX@Z@Z @ 1329 NONAME ; void QMetaObjectBuilder::setStaticMetacallFunction(int (*)(enum QMetaObject::Call, int, void * *))
- ?properties@QDeclarativeDomObject@@QBE?AV?$QList@VQDeclarativeDomProperty@@@@XZ @ 1330 NONAME ; class QList<class QDeclarativeDomProperty> QDeclarativeDomObject::properties(void) const
- ??0QDeclarativeExpression@@QAE@PAVQDeclarativeContext@@PAVQObject@@ABVQString@@1@Z @ 1331 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContext *, class QObject *, class QString const &, class QObject *)
- ?tr@QDeclarativeTransition@@SA?AVQString@@PBD0H@Z @ 1332 NONAME ; class QString QDeclarativeTransition::tr(char const *, char const *, int)
- ?dateTimeFromString@QDeclarativeStringConverters@@YA?AVQDateTime@@ABVQString@@PA_N@Z @ 1333 NONAME ; class QDateTime QDeclarativeStringConverters::dateTimeFromString(class QString const &, bool *)
- ?implicitWidth@QDeclarativeItem@@QBEMXZ @ 1334 NONAME ; float QDeclarativeItem::implicitWidth(void) const
- ?metaObject@QDeclarativeContext@@UBEPBUQMetaObject@@XZ @ 1335 NONAME ; struct QMetaObject const * QDeclarativeContext::metaObject(void) const
- ??0QDeclarativeContext@@AAE@PAVQDeclarativeContextData@@@Z @ 1336 NONAME ; QDeclarativeContext::QDeclarativeContext(class QDeclarativeContextData *)
- ?maximumPacketSize@QPacketProtocol@@QBEHXZ @ 1337 NONAME ; int QPacketProtocol::maximumPacketSize(void) const
- ??_EQDeclarativeDebuggerStatus@@UAE@I@Z @ 1338 NONAME ; QDeclarativeDebuggerStatus::~QDeclarativeDebuggerStatus(unsigned int)
- ?error@QDeclarativeCustomParser@@IAEXABVQString@@@Z @ 1339 NONAME ; void QDeclarativeCustomParser::error(class QString const &)
- ?messageReceived@QDeclarativeDebugService@@MAEXABVQByteArray@@@Z @ 1340 NONAME ; void QDeclarativeDebugService::messageReceived(class QByteArray const &)
- ??0QDeclarativeParserStatus@@QAE@XZ @ 1341 NONAME ; QDeclarativeParserStatus::QDeclarativeParserStatus(void)
- ?isNumber@Variant@QDeclarativeParser@@QBE_NXZ @ 1342 NONAME ; bool QDeclarativeParser::Variant::isNumber(void) const
- ?getStaticMetaObject@QDeclarativeEngineDebug@@SAABUQMetaObject@@XZ @ 1343 NONAME ; struct QMetaObject const & QDeclarativeEngineDebug::getStaticMetaObject(void)
- ??_EQDeclarativeEngine@@UAE@I@Z @ 1344 NONAME ; QDeclarativeEngine::~QDeclarativeEngine(unsigned int)
- ??1QDeclarativeCustomParserNode@@QAE@XZ @ 1345 NONAME ; QDeclarativeCustomParserNode::~QDeclarativeCustomParserNode(void)
- ??1QDeclarativeAction@@QAE@XZ @ 1346 NONAME ; QDeclarativeAction::~QDeclarativeAction(void)
- ?resourcesLoading@QDeclarativeText@@QBEHXZ @ 1347 NONAME ; int QDeclarativeText::resourcesLoading(void) const
- ?isBoolean@Variant@QDeclarativeParser@@QBE_NXZ @ 1348 NONAME ; bool QDeclarativeParser::Variant::isBoolean(void) const
- ??0QDeclarativeAction@@QAE@XZ @ 1349 NONAME ; QDeclarativeAction::QDeclarativeAction(void)
- ?signalOffset@QDeclarativeOpenMetaObjectType@@QBEHXZ @ 1350 NONAME ; int QDeclarativeOpenMetaObjectType::signalOffset(void) const
- ?index@QMetaEnumBuilder@@QBEHXZ @ 1351 NONAME ; int QMetaEnumBuilder::index(void) const
- ?setResettable@QMetaPropertyBuilder@@QAEX_N@Z @ 1352 NONAME ; void QMetaPropertyBuilder::setResettable(bool)
- ??0QDeclarativeError@@QAE@ABV0@@Z @ 1353 NONAME ; QDeclarativeError::QDeclarativeError(class QDeclarativeError const &)
- ?classInfoCount@QMetaObjectBuilder@@QBEHXZ @ 1354 NONAME ; int QMetaObjectBuilder::classInfoCount(void) const
- ?isObject@QDeclarativeDomValue@@QBE_NXZ @ 1355 NONAME ; bool QDeclarativeDomValue::isObject(void) const
- ?left@QDeclarativeScaleGrid@@QBEHXZ @ 1356 NONAME ; int QDeclarativeScaleGrid::left(void) const
- ?qt_metacast@QDeclarativeDebugEnginesQuery@@UAEPAXPBD@Z @ 1357 NONAME ; void * QDeclarativeDebugEnginesQuery::qt_metacast(char const *)
- ?d_func@QDeclarativeView@@AAEPAVQDeclarativeViewPrivate@@XZ @ 1358 NONAME ; class QDeclarativeViewPrivate * QDeclarativeView::d_func(void)
- ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugPropertyWatch@@ABVQDeclarativeDebugPropertyReference@@PAVQObject@@@Z @ 1359 NONAME ; class QDeclarativeDebugPropertyWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugPropertyReference const &, class QObject *)
- ?stateChanged@QDeclarativeStateGroup@@IAEXABVQString@@@Z @ 1360 NONAME ; void QDeclarativeStateGroup::stateChanged(class QString const &)
- ?customStringConverter@QDeclarativeMetaType@@SAP6A?AVQVariant@@ABVQString@@@ZH@Z @ 1361 NONAME ; class QVariant (*)(class QString const &) QDeclarativeMetaType::customStringConverter(int)
- ??0QDeclarativeDomValueValueSource@@QAE@XZ @ 1362 NONAME ; QDeclarativeDomValueValueSource::QDeclarativeDomValueValueSource(void)
- ?baselineOffsetChanged@QDeclarativeAnchors@@IAEXXZ @ 1363 NONAME ; void QDeclarativeAnchors::baselineOffsetChanged(void)
- ?tr@QDeclarativeView@@SA?AVQString@@PBD0H@Z @ 1364 NONAME ; class QString QDeclarativeView::tr(char const *, char const *, int)
- ??4QDeclarativeDebugFileReference@@QAEAAV0@ABV0@@Z @ 1365 NONAME ; class QDeclarativeDebugFileReference & QDeclarativeDebugFileReference::operator=(class QDeclarativeDebugFileReference const &)
- ?eventFilter@QDeclarativeView@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 1366 NONAME ; bool QDeclarativeView::eventFilter(class QObject *, class QEvent *)
- ??1QDeclarativeView@@UAE@XZ @ 1367 NONAME ; QDeclarativeView::~QDeclarativeView(void)
- ?verticalCenter@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1368 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::verticalCenter(void) const
- ?setIsFlag@QMetaEnumBuilder@@QAEX_N@Z @ 1369 NONAME ; void QMetaEnumBuilder::setIsFlag(bool)
- ?trUtf8@QDeclarativeDebugConnection@@SA?AVQString@@PBD0H@Z @ 1370 NONAME ; class QString QDeclarativeDebugConnection::trUtf8(char const *, char const *, int)
- ?majorVersion@QDeclarativeType@@QBEHXZ @ 1371 NONAME ; int QDeclarativeType::majorVersion(void) const
- ?trUtf8@QDeclarativeDebugObjectExpressionWatch@@SA?AVQString@@PBD0@Z @ 1372 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::trUtf8(char const *, char const *)
- ?baseUrl@QDeclarativeEngine@@QBE?AVQUrl@@XZ @ 1373 NONAME ; class QUrl QDeclarativeEngine::baseUrl(void) const
- ??6QDeclarativeInfo@@QAEAAV0@PBX@Z @ 1374 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(void const *)
- ?setTop@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 1375 NONAME ; void QDeclarativeAnchors::setTop(class QDeclarativeAnchorLine const &)
- ?setEnabled@QDeclarativeBinding@@UAEX_NV?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1376 NONAME ; void QDeclarativeBinding::setEnabled(bool, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
- ??_EQDeclarativeNetworkAccessManagerFactory@@UAE@I@Z @ 1377 NONAME ; QDeclarativeNetworkAccessManagerFactory::~QDeclarativeNetworkAccessManagerFactory(unsigned int)
- ?qmlTypes@QDeclarativeMetaType@@SA?AV?$QList@PAVQDeclarativeType@@@@XZ @ 1378 NONAME ; class QList<class QDeclarativeType *> QDeclarativeMetaType::qmlTypes(void)
- ?valueTypeCoreIndex@QDeclarativePropertyPrivate@@SAHABVQDeclarativeProperty@@@Z @ 1379 NONAME ; int QDeclarativePropertyPrivate::valueTypeCoreIndex(class QDeclarativeProperty const &)
- ?writeEnumProperty@QDeclarativePropertyPrivate@@SA_NABVQMetaProperty@@HPAVQObject@@ABVQVariant@@H@Z @ 1380 NONAME ; bool QDeclarativePropertyPrivate::writeEnumProperty(class QMetaProperty const &, int, class QObject *, class QVariant const &, int)
- ?setEnabled@QDeclarativeDebugClient@@QAEX_N@Z @ 1381 NONAME ; void QDeclarativeDebugClient::setEnabled(bool)
- ??1QMetaObjectBuilder@@UAE@XZ @ 1382 NONAME ; QMetaObjectBuilder::~QMetaObjectBuilder(void)
- ?tr@QDeclarativeStateOperation@@SA?AVQString@@PBD0@Z @ 1383 NONAME ; class QString QDeclarativeStateOperation::tr(char const *, char const *)
- ?clear@QPacket@@QAEXXZ @ 1384 NONAME ; void QPacket::clear(void)
- ?getStaticMetaObject@QDeclarativeDebugClient@@SAABUQMetaObject@@XZ @ 1385 NONAME ; struct QMetaObject const & QDeclarativeDebugClient::getStaticMetaObject(void)
- ??0QDeclarativeDomList@@QAE@ABV0@@Z @ 1386 NONAME ; QDeclarativeDomList::QDeclarativeDomList(class QDeclarativeDomList const &)
- ?gridTop@QDeclarativeGridScaledImage@@QBEHXZ @ 1387 NONAME ; int QDeclarativeGridScaledImage::gridTop(void) const
- ?setUrl@QDeclarativeError@@QAEXABVQUrl@@@Z @ 1388 NONAME ; void QDeclarativeError::setUrl(class QUrl const &)
- ?setMaximumPacketSize@QPacketProtocol@@QAEHH@Z @ 1389 NONAME ; int QPacketProtocol::setMaximumPacketSize(int)
- ??_EQDeclarativeAction@@QAE@I@Z @ 1390 NONAME ; QDeclarativeAction::~QDeclarativeAction(unsigned int)
- ?trUtf8@QDeclarativeDebugWatch@@SA?AVQString@@PBD0@Z @ 1391 NONAME ; class QString QDeclarativeDebugWatch::trUtf8(char const *, char const *)
- ?read@QDeclarativeProperty@@SA?AVQVariant@@PAVQObject@@ABVQString@@@Z @ 1392 NONAME ; class QVariant QDeclarativeProperty::read(class QObject *, class QString const &)
- ?widthValid@QDeclarativeItem@@IBE_NXZ @ 1393 NONAME ; bool QDeclarativeItem::widthValid(void) const
- ?staticMetaObject@QDeclarativeState@@2UQMetaObject@@B @ 1394 NONAME ; struct QMetaObject const QDeclarativeState::staticMetaObject
- ?setAccess@QMetaMethodBuilder@@QAEXW4Access@QMetaMethod@@@Z @ 1395 NONAME ; void QMetaMethodBuilder::setAccess(enum QMetaMethod::Access)
- ??0QDeclarativeAction@@QAE@PAVQObject@@ABVQString@@PAVQDeclarativeContext@@ABVQVariant@@@Z @ 1396 NONAME ; QDeclarativeAction::QDeclarativeAction(class QObject *, class QString const &, class QDeclarativeContext *, class QVariant const &)
- ?staticMetaObject@QDeclarativeDebugClient@@2UQMetaObject@@B @ 1397 NONAME ; struct QMetaObject const QDeclarativeDebugClient::staticMetaObject
- ?trUtf8@QDeclarativeDebugEnginesQuery@@SA?AVQString@@PBD0@Z @ 1398 NONAME ; class QString QDeclarativeDebugEnginesQuery::trUtf8(char const *, char const *)
- ?d_func@QDeclarativeExpression@@ABEPBVQDeclarativeExpressionPrivate@@XZ @ 1399 NONAME ; class QDeclarativeExpressionPrivate const * QDeclarativeExpression::d_func(void) const
- ??1QDeclarativeValueType@@UAE@XZ @ 1400 NONAME ; QDeclarativeValueType::~QDeclarativeValueType(void)
- ?setBaseUrl@QDeclarativeContext@@QAEXABVQUrl@@@Z @ 1401 NONAME ; void QDeclarativeContext::setBaseUrl(class QUrl const &)
- ??_EQDeclarativeAbstractBinding@@UAE@I@Z @ 1402 NONAME ; QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding(unsigned int)
- ?queryExpressionResult@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugExpressionQuery@@HABVQString@@PAVQObject@@@Z @ 1403 NONAME ; class QDeclarativeDebugExpressionQuery * QDeclarativeEngineDebug::queryExpressionResult(int, class QString const &, class QObject *)
- ?indexOfMethod@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1404 NONAME ; int QMetaObjectBuilder::indexOfMethod(class QByteArray const &)
- ?setCached@QDeclarativeOpenMetaObject@@QAEX_N@Z @ 1405 NONAME ; void QDeclarativeOpenMetaObject::setCached(bool)
- ?length@QDeclarativeDomList@@QBEHXZ @ 1406 NONAME ; int QDeclarativeDomList::length(void) const
- ?horizontalTileRule@QDeclarativeGridScaledImage@@QBE?AW4TileMode@QDeclarativeBorderImage@@XZ @ 1407 NONAME ; enum QDeclarativeBorderImage::TileMode QDeclarativeGridScaledImage::horizontalTileRule(void) const
- ??0QDeclarativeCustomParserProperty@@QAE@XZ @ 1408 NONAME ; QDeclarativeCustomParserProperty::QDeclarativeCustomParserProperty(void)
- ??1QDeclarativeEngineDebug@@UAE@XZ @ 1409 NONAME ; QDeclarativeEngineDebug::~QDeclarativeEngineDebug(void)
- ?qt_metacall@QDeclarativeEngineDebug@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1410 NONAME ; int QDeclarativeEngineDebug::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?q_func@QDeclarativeItemPrivate@@ABEPBVQDeclarativeItem@@XZ @ 1411 NONAME ; class QDeclarativeItem const * QDeclarativeItemPrivate::q_func(void) const
- ?customParser@QDeclarativeType@@QBEPAVQDeclarativeCustomParser@@XZ @ 1412 NONAME ; class QDeclarativeCustomParser * QDeclarativeType::customParser(void) const
- ?setSourceLocation@QDeclarativeExpression@@QAEXABVQString@@H@Z @ 1413 NONAME ; void QDeclarativeExpression::setSourceLocation(class QString const &, int)
- ?equal@QDeclarativePropertyPrivate@@SA_NPBUQMetaObject@@0@Z @ 1414 NONAME ; bool QDeclarativePropertyPrivate::equal(struct QMetaObject const *, struct QMetaObject const *)
- ??_EQDeclarativeExtensionPlugin@@UAE@I@Z @ 1415 NONAME ; QDeclarativeExtensionPlugin::~QDeclarativeExtensionPlugin(unsigned int)
- ?write@QDeclarativePropertyPrivate@@SA_NPAVQObject@@ABUData@QDeclarativePropertyCache@@ABVQVariant@@PAVQDeclarativeContextData@@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1416 NONAME ; bool QDeclarativePropertyPrivate::write(class QObject *, struct QDeclarativePropertyCache::Data const &, class QVariant const &, class QDeclarativeContextData *, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
- ?debugId@QDeclarativeDebugEngineReference@@QBEHXZ @ 1417 NONAME ; int QDeclarativeDebugEngineReference::debugId(void) const
- ?metaObject@QDeclarativeDebugEnginesQuery@@UBEPBUQMetaObject@@XZ @ 1418 NONAME ; struct QMetaObject const * QDeclarativeDebugEnginesQuery::metaObject(void) const
- ??_EQDeclarativeScaleGrid@@UAE@I@Z @ 1419 NONAME ; QDeclarativeScaleGrid::~QDeclarativeScaleGrid(unsigned int)
- ??1QDeclarativeDebugPropertyReference@@QAE@XZ @ 1420 NONAME ; QDeclarativeDebugPropertyReference::~QDeclarativeDebugPropertyReference(void)
- ?componentComplete@QDeclarativeAnchors@@QAEXXZ @ 1421 NONAME ; void QDeclarativeAnchors::componentComplete(void)
- ??1QDeclarativeDomObject@@QAE@XZ @ 1422 NONAME ; QDeclarativeDomObject::~QDeclarativeDomObject(void)
- ?expression@QDeclarativeDebugObjectExpressionWatch@@QBE?AVQString@@XZ @ 1423 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::expression(void) const
- ?metaObject@QListModelInterface@@UBEPBUQMetaObject@@XZ @ 1424 NONAME ; struct QMetaObject const * QListModelInterface::metaObject(void) const
- ?key@QMetaEnumBuilder@@QBE?AVQByteArray@@H@Z @ 1425 NONAME ; class QByteArray QMetaEnumBuilder::key(int) const
- ?d_func@QMetaEnumBuilder@@ABEPAVQMetaEnumBuilderPrivate@@XZ @ 1426 NONAME ; class QMetaEnumBuilderPrivate * QMetaEnumBuilder::d_func(void) const
- ??6QDeclarativeInfo@@QAEAAV0@PBD@Z @ 1427 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(char const *)
- ?d_func@QDeclarativeState@@AAEPAVQDeclarativeStatePrivate@@XZ @ 1428 NONAME ; class QDeclarativeStatePrivate * QDeclarativeState::d_func(void)
- ??0QDeclarativeDebugEnginesQuery@@AAE@PAVQObject@@@Z @ 1429 NONAME ; QDeclarativeDebugEnginesQuery::QDeclarativeDebugEnginesQuery(class QObject *)
- ?bottomChanged@QDeclarativeAnchors@@IAEXXZ @ 1430 NONAME ; void QDeclarativeAnchors::bottomChanged(void)
- ?qListTypeId@QDeclarativeType@@QBEHXZ @ 1431 NONAME ; int QDeclarativeType::qListTypeId(void) const
- ?setSelectedState@QDeclarativeDebuggerStatus@@UAEX_N@Z @ 1432 NONAME ; void QDeclarativeDebuggerStatus::setSelectedState(bool)
- ?staticMetaObject@QDeclarativeEngineDebug@@2UQMetaObject@@B @ 1433 NONAME ; struct QMetaObject const QDeclarativeEngineDebug::staticMetaObject
- ?setExtends@QDeclarativeState@@QAEXABVQString@@@Z @ 1434 NONAME ; void QDeclarativeState::setExtends(class QString const &)
- ??4QDeclarativeError@@QAEAAV0@ABV0@@Z @ 1435 NONAME ; class QDeclarativeError & QDeclarativeError::operator=(class QDeclarativeError const &)
- ?tr@QDeclarativeDebugEnginesQuery@@SA?AVQString@@PBD0H@Z @ 1436 NONAME ; class QString QDeclarativeDebugEnginesQuery::tr(char const *, char const *, int)
- ?d_func@QDeclarativeTransition@@AAEPAVQDeclarativeTransitionPrivate@@XZ @ 1437 NONAME ; class QDeclarativeTransitionPrivate * QDeclarativeTransition::d_func(void)
- ?propertyWritten@QDeclarativeOpenMetaObject@@MAEXH@Z @ 1438 NONAME ; void QDeclarativeOpenMetaObject::propertyWritten(int)
- ?trUtf8@QListModelInterface@@SA?AVQString@@PBD0@Z @ 1439 NONAME ; class QString QListModelInterface::trUtf8(char const *, char const *)
- ?setColumnNumber@QDeclarativeDebugFileReference@@QAEXH@Z @ 1440 NONAME ; void QDeclarativeDebugFileReference::setColumnNumber(int)
- ?drawRect@QDeclarativeRectangle@@AAEXAAVQPainter@@@Z @ 1441 NONAME ; void QDeclarativeRectangle::drawRect(class QPainter &)
- ?read@QDeclarativeProperty@@QBE?AVQVariant@@XZ @ 1442 NONAME ; class QVariant QDeclarativeProperty::read(void) const
- ?isEmpty@QDeclarativePropertyMap@@QBE_NXZ @ 1443 NONAME ; bool QDeclarativePropertyMap::isEmpty(void) const
- ?wantsFocus@QDeclarativeItem@@QBE_NXZ @ 1444 NONAME ABSENT ; bool QDeclarativeItem::wantsFocus(void) const
- ??6@YAAAVQDataStream@@AAV0@ABUQDeclarativeObjectData@QDeclarativeEngineDebugServer@@@Z @ 1445 NONAME ; class QDataStream & operator<<(class QDataStream &, struct QDeclarativeEngineDebugServer::QDeclarativeObjectData const &)
- ?trUtf8@QDeclarativeDebugObjectQuery@@SA?AVQString@@PBD0H@Z @ 1446 NONAME ; class QString QDeclarativeDebugObjectQuery::trUtf8(char const *, char const *, int)
- ??0QDeclarativeBinding@@QAE@ABVQString@@PAVQObject@@PAVQDeclarativeContext@@1@Z @ 1447 NONAME ; QDeclarativeBinding::QDeclarativeBinding(class QString const &, class QObject *, class QDeclarativeContext *, class QObject *)
- ?tr@QDeclarativeItem@@SA?AVQString@@PBD0@Z @ 1448 NONAME ; class QString QDeclarativeItem::tr(char const *, char const *)
- ??6QDeclarativeInfo@@QAEAAV0@G@Z @ 1449 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(unsigned short)
- ??0QDeclarativeStateOperation@@IAE@AAVQObjectPrivate@@PAVQObject@@@Z @ 1450 NONAME ; QDeclarativeStateOperation::QDeclarativeStateOperation(class QObjectPrivate &, class QObject *)
- ?notifyOnValueChanged@QDeclarativeExpression@@QBE_NXZ @ 1451 NONAME ; bool QDeclarativeExpression::notifyOnValueChanged(void) const
- ?keyPressPreHandler@QDeclarativeItem@@IAEXPAVQKeyEvent@@@Z @ 1452 NONAME ; void QDeclarativeItem::keyPressPreHandler(class QKeyEvent *)
- ?trUtf8@QDeclarativeItem@@SA?AVQString@@PBD0H@Z @ 1453 NONAME ; class QString QDeclarativeItem::trUtf8(char const *, char const *, int)
- ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugWatch@@ABVQDeclarativeDebugFileReference@@PAVQObject@@@Z @ 1454 NONAME ; class QDeclarativeDebugWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugFileReference const &, class QObject *)
- ?paintedHeight@QDeclarativeText@@QBEMXZ @ 1455 NONAME ; float QDeclarativeText::paintedHeight(void) const
- ?tr@QDeclarativeTransition@@SA?AVQString@@PBD0@Z @ 1456 NONAME ; class QString QDeclarativeTransition::tr(char const *, char const *)
- ?transform@QDeclarativeItem@@QAE?AV?$QDeclarativeListProperty@VQGraphicsTransform@@@@XZ @ 1457 NONAME ; class QDeclarativeListProperty<class QGraphicsTransform> QDeclarativeItem::transform(void)
- ?leftChanged@QDeclarativeAnchors@@IAEXXZ @ 1458 NONAME ; void QDeclarativeAnchors::leftChanged(void)
- ?topChanged@QDeclarativeAnchors@@IAEXXZ @ 1459 NONAME ; void QDeclarativeAnchors::topChanged(void)
- ??0QMetaObjectBuilder@@QAE@XZ @ 1460 NONAME ; QMetaObjectBuilder::QMetaObjectBuilder(void)
- ?asBoolean@Variant@QDeclarativeParser@@QBE_NXZ @ 1461 NONAME ; bool QDeclarativeParser::Variant::asBoolean(void) const
- ?removeEnumerator@QMetaObjectBuilder@@QAEXH@Z @ 1462 NONAME ; void QMetaObjectBuilder::removeEnumerator(int)
- ?url@QDeclarativeDomObject@@QBE?AVQUrl@@XZ @ 1463 NONAME ; class QUrl QDeclarativeDomObject::url(void) const
- ?getStaticMetaObject@QDeclarativeScaleGrid@@SAABUQMetaObject@@XZ @ 1464 NONAME ; struct QMetaObject const & QDeclarativeScaleGrid::getStaticMetaObject(void)
- ?signalExpression@QDeclarativePropertyPrivate@@SAPAVQDeclarativeExpression@@ABVQDeclarativeProperty@@@Z @ 1465 NONAME ; class QDeclarativeExpression * QDeclarativePropertyPrivate::signalExpression(class QDeclarativeProperty const &)
- ?networkAccessManagerFactory@QDeclarativeEngine@@QBEPAVQDeclarativeNetworkAccessManagerFactory@@XZ @ 1466 NONAME ; class QDeclarativeNetworkAccessManagerFactory * QDeclarativeEngine::networkAccessManagerFactory(void) const
- ?isStringList@Variant@QDeclarativeParser@@QBE_NXZ @ 1467 NONAME ; bool QDeclarativeParser::Variant::isStringList(void) const
- ?packetWritten@QPacketProtocol@@IAEXXZ @ 1468 NONAME ; void QPacketProtocol::packetWritten(void)
- ?getStaticMetaObject@QDeclarativeDebugObjectQuery@@SAABUQMetaObject@@XZ @ 1469 NONAME ; struct QMetaObject const & QDeclarativeDebugObjectQuery::getStaticMetaObject(void)
- ?isSignalProperty@QDeclarativeProperty@@QBE_NXZ @ 1470 NONAME ; bool QDeclarativeProperty::isSignalProperty(void) const
- ?d_func@QDeclarativeDebugService@@AAEPAVQDeclarativeDebugServicePrivate@@XZ @ 1471 NONAME ; class QDeclarativeDebugServicePrivate * QDeclarativeDebugService::d_func(void)
- ?qmlTypeNames@QDeclarativeMetaType@@SA?AV?$QList@VQByteArray@@@@XZ @ 1472 NONAME ; class QList<class QByteArray> QDeclarativeMetaType::qmlTypeNames(void)
- ?creationContext@QDeclarativeComponent@@QBEPAVQDeclarativeContext@@XZ @ 1473 NONAME ; class QDeclarativeContext * QDeclarativeComponent::creationContext(void) const
- ?componentComplete@QDeclarativeItem@@MAEXXZ @ 1474 NONAME ; void QDeclarativeItem::componentComplete(void)
- ?enabledChanged@QDeclarativeBehavior@@IAEXXZ @ 1475 NONAME ; void QDeclarativeBehavior::enabledChanged(void)
- ?staticMetaObject@QDeclarativeTransition@@2UQMetaObject@@B @ 1476 NONAME ; struct QMetaObject const QDeclarativeTransition::staticMetaObject
- ??0QDeclarativeInfo@@AAE@PAVQDeclarativeInfoPrivate@@@Z @ 1477 NONAME ; QDeclarativeInfo::QDeclarativeInfo(class QDeclarativeInfoPrivate *)
- ?name@QDeclarativeDebugContextReference@@QBE?AVQString@@XZ @ 1478 NONAME ; class QString QDeclarativeDebugContextReference::name(void) const
- ?propertyIndex@QDeclarativeBinding@@UAEHXZ @ 1479 NONAME ; int QDeclarativeBinding::propertyIndex(void)
- ?tr@QDeclarativeDebugWatch@@SA?AVQString@@PBD0H@Z @ 1480 NONAME ; class QString QDeclarativeDebugWatch::tr(char const *, char const *, int)
- ?qt_metacast@QDeclarativePropertyMap@@UAEPAXPBD@Z @ 1481 NONAME ; void * QDeclarativePropertyMap::qt_metacast(char const *)
- ?classBegin@QDeclarativeAnchors@@QAEXXZ @ 1482 NONAME ; void QDeclarativeAnchors::classBegin(void)
- ?color@QDeclarativeText@@QBE?AVQColor@@XZ @ 1483 NONAME ; class QColor QDeclarativeText::color(void) const
- ?metaObject@QPacketProtocol@@UBEPBUQMetaObject@@XZ @ 1484 NONAME ; struct QMetaObject const * QPacketProtocol::metaObject(void) const
- ??4QDeclarativeGridScaledImage@@QAEAAV0@ABV0@@Z @ 1485 NONAME ; class QDeclarativeGridScaledImage & QDeclarativeGridScaledImage::operator=(class QDeclarativeGridScaledImage const &)
- ?tr@QDeclarativeScaleGrid@@SA?AVQString@@PBD0@Z @ 1486 NONAME ; class QString QDeclarativeScaleGrid::tr(char const *, char const *)
- ??1QDeclarativeScriptString@@QAE@XZ @ 1487 NONAME ; QDeclarativeScriptString::~QDeclarativeScriptString(void)
- ??1QDeclarativePropertyValueSource@@UAE@XZ @ 1488 NONAME ; QDeclarativePropertyValueSource::~QDeclarativePropertyValueSource(void)
- ?position@QDeclarativeDomList@@QBEHXZ @ 1489 NONAME ; int QDeclarativeDomList::position(void) const
- ?toQObject@QDeclarativeMetaType@@SAPAVQObject@@ABVQVariant@@PA_N@Z @ 1490 NONAME ; class QObject * QDeclarativeMetaType::toQObject(class QVariant const &, bool *)
- ??_EQDeclarativeItem@@UAE@I@Z @ 1491 NONAME ; QDeclarativeItem::~QDeclarativeItem(unsigned int)
- ?getStaticMetaObject@QDeclarativeContext@@SAABUQMetaObject@@XZ @ 1492 NONAME ; struct QMetaObject const & QDeclarativeContext::getStaticMetaObject(void)
- ?metaObject@QDeclarativeListModel@@UBEPBUQMetaObject@@XZ @ 1493 NONAME ; struct QMetaObject const * QDeclarativeListModel::metaObject(void) const
- ?transformChanged@QDeclarativeItemPrivate@@UAEXXZ @ 1494 NONAME ; void QDeclarativeItemPrivate::transformChanged(void)
- ?remove@QDeclarativeListModel@@QAEXH@Z @ 1495 NONAME ; void QDeclarativeListModel::remove(int)
- ?setResizeMode@QDeclarativeView@@QAEXW4ResizeMode@1@@Z @ 1496 NONAME ; void QDeclarativeView::setResizeMode(enum QDeclarativeView::ResizeMode)
- ?left@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1497 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::left(void) const
- ?flags@QMetaObjectBuilder@@QBE?AV?$QFlags@W4MetaObjectFlag@QMetaObjectBuilder@@@@XZ @ 1498 NONAME ; class QFlags<enum QMetaObjectBuilder::MetaObjectFlag> QMetaObjectBuilder::flags(void) const
- ??0QDeclarativeItem@@IAE@AAVQDeclarativeItemPrivate@@PAV0@@Z @ 1499 NONAME ; QDeclarativeItem::QDeclarativeItem(class QDeclarativeItemPrivate &, class QDeclarativeItem *)
- ??0QDeclarativeContext@@QAE@PAV0@PAVQObject@@@Z @ 1500 NONAME ; QDeclarativeContext::QDeclarativeContext(class QDeclarativeContext *, class QObject *)
- ?trUtf8@QDeclarativeDebugConnection@@SA?AVQString@@PBD0@Z @ 1501 NONAME ; class QString QDeclarativeDebugConnection::trUtf8(char const *, char const *)
- ??1QDeclarativeDebugEnginesQuery@@UAE@XZ @ 1502 NONAME ; QDeclarativeDebugEnginesQuery::~QDeclarativeDebugEnginesQuery(void)
- ?getStaticMetaObject@QDeclarativeTransition@@SAABUQMetaObject@@XZ @ 1503 NONAME ; struct QMetaObject const & QDeclarativeTransition::getStaticMetaObject(void)
- ?trUtf8@QDeclarativeDebugObjectExpressionWatch@@SA?AVQString@@PBD0H@Z @ 1504 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::trUtf8(char const *, char const *, int)
- ?metaObject@QDeclarativePropertyMap@@UBEPBUQMetaObject@@XZ @ 1505 NONAME ; struct QMetaObject const * QDeclarativePropertyMap::metaObject(void) const
- ?componentRoot@QDeclarativeDomComponent@@QBE?AVQDeclarativeDomObject@@XZ @ 1506 NONAME ; class QDeclarativeDomObject QDeclarativeDomComponent::componentRoot(void) const
- ?metaObject@QDeclarativeDebugConnection@@UBEPBUQMetaObject@@XZ @ 1507 NONAME ; struct QMetaObject const * QDeclarativeDebugConnection::metaObject(void) const
- ?setTag@QMetaMethodBuilder@@QAEXABVQByteArray@@@Z @ 1508 NONAME ; void QMetaMethodBuilder::setTag(class QByteArray const &)
- ?objects@QDeclarativeDebugContextReference@@QBE?AV?$QList@VQDeclarativeDebugObjectReference@@@@XZ @ 1509 NONAME ; class QList<class QDeclarativeDebugObjectReference> QDeclarativeDebugContextReference::objects(void) const
- ??4Variant@QDeclarativeParser@@QAEAAV01@ABV01@@Z @ 1510 NONAME ; class QDeclarativeParser::Variant & QDeclarativeParser::Variant::operator=(class QDeclarativeParser::Variant const &)
- ?tr@QDeclarativeStateGroup@@SA?AVQString@@PBD0@Z @ 1511 NONAME ; class QString QDeclarativeStateGroup::tr(char const *, char const *)
- ?setScopeObject@QDeclarativeScriptString@@QAEXPAVQObject@@@Z @ 1512 NONAME ; void QDeclarativeScriptString::setScopeObject(class QObject *)
- ??1QDeclarativeBinding@@MAE@XZ @ 1513 NONAME ; QDeclarativeBinding::~QDeclarativeBinding(void)
- ?importPlugin@QDeclarativeEngine@@QAE_NABVQString@@0PAV2@@Z @ 1514 NONAME ; bool QDeclarativeEngine::importPlugin(class QString const &, class QString const &, class QString *)
- ?setBottomMargin@QDeclarativeAnchors@@QAEXM@Z @ 1515 NONAME ; void QDeclarativeAnchors::setBottomMargin(float)
- ?geometryChanged@QDeclarativeItem@@MAEXABVQRectF@@0@Z @ 1516 NONAME ; void QDeclarativeItem::geometryChanged(class QRectF const &, class QRectF const &)
- ?toValueSource@QDeclarativeDomValue@@QBE?AVQDeclarativeDomValueValueSource@@XZ @ 1517 NONAME ; class QDeclarativeDomValueValueSource QDeclarativeDomValue::toValueSource(void) const
- ?hAlign@QDeclarativeText@@QBE?AW4HAlignment@1@XZ @ 1518 NONAME ; enum QDeclarativeText::HAlignment QDeclarativeText::hAlign(void) const
- ?when@QDeclarativeState@@QBEPAVQDeclarativeBinding@@XZ @ 1519 NONAME ; class QDeclarativeBinding * QDeclarativeState::when(void) const
- ?setRootObject@QDeclarativeView@@MAEXPAVQObject@@@Z @ 1520 NONAME ; void QDeclarativeView::setRootObject(class QObject *)
- ?resetBottom@QDeclarativeAnchors@@QAEXXZ @ 1521 NONAME ; void QDeclarativeAnchors::resetBottom(void)
- ?qt_metacall@QDeclarativePropertyMap@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1522 NONAME ; int QDeclarativePropertyMap::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??0QDeclarativeDebugEngineReference@@QAE@ABV0@@Z @ 1523 NONAME ; QDeclarativeDebugEngineReference::QDeclarativeDebugEngineReference(class QDeclarativeDebugEngineReference const &)
- ?objectDebugId@QDeclarativeDebugPropertyReference@@QBEHXZ @ 1524 NONAME ; int QDeclarativeDebugPropertyReference::objectDebugId(void) const
- ?trUtf8@QDeclarativeDebugQuery@@SA?AVQString@@PBD0@Z @ 1525 NONAME ; class QString QDeclarativeDebugQuery::trUtf8(char const *, char const *)
- ??AQDeclarativeValueTypeFactory@@QBEPAVQDeclarativeValueType@@H@Z @ 1526 NONAME ; class QDeclarativeValueType * QDeclarativeValueTypeFactory::operator[](int) const
- ?siblingOrderChange@QDeclarativeItemPrivate@@UAEXXZ @ 1527 NONAME ; void QDeclarativeItemPrivate::siblingOrderChange(void)
- ??1QDeclarativeState@@UAE@XZ @ 1528 NONAME ; QDeclarativeState::~QDeclarativeState(void)
- ?paint@QDeclarativeText@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 1529 NONAME ; void QDeclarativeText::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
- ??1QDeclarativeStateGroup@@UAE@XZ @ 1530 NONAME ; QDeclarativeStateGroup::~QDeclarativeStateGroup(void)
- ?setEditable@QMetaPropertyBuilder@@QAEX_N@Z @ 1531 NONAME ; void QMetaPropertyBuilder::setEditable(bool)
- ?setBinding@QDeclarativePropertyPrivate@@SAPAVQDeclarativeAbstractBinding@@ABVQDeclarativeProperty@@PAV2@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1532 NONAME ; class QDeclarativeAbstractBinding * QDeclarativePropertyPrivate::setBinding(class QDeclarativeProperty const &, class QDeclarativeAbstractBinding *, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
- ?trUtf8@QDeclarativeBinding@@SA?AVQString@@PBD0@Z @ 1533 NONAME ; class QString QDeclarativeBinding::trUtf8(char const *, char const *)
- ?progress@QDeclarativeComponent@@QBEMXZ @ 1534 NONAME ; float QDeclarativeComponent::progress(void) const
- ?d_func@QDeclarativeState@@ABEPBVQDeclarativeStatePrivate@@XZ @ 1535 NONAME ; class QDeclarativeStatePrivate const * QDeclarativeState::d_func(void) const
- ??0QListModelInterface@@QAE@PAVQObject@@@Z @ 1536 NONAME ; QListModelInterface::QListModelInterface(class QObject *)
- ?pointFFromString@QDeclarativeStringConverters@@YA?AVQPointF@@ABVQString@@PA_N@Z @ 1537 NONAME ; class QPointF QDeclarativeStringConverters::pointFFromString(class QString const &, bool *)
- ?propertyCreated@QDeclarativeOpenMetaObject@@MAEXHAAVQMetaPropertyBuilder@@@Z @ 1538 NONAME ; void QDeclarativeOpenMetaObject::propertyCreated(int, class QMetaPropertyBuilder &)
- ?d_func@QDeclarativeView@@ABEPBVQDeclarativeViewPrivate@@XZ @ 1539 NONAME ; class QDeclarativeViewPrivate const * QDeclarativeView::d_func(void) const
- ?rootObject@QDeclarativeView@@QBEPAVQGraphicsObject@@XZ @ 1540 NONAME ; class QGraphicsObject * QDeclarativeView::rootObject(void) const
- ?tr@QDeclarativeBinding@@SA?AVQString@@PBD0H@Z @ 1541 NONAME ; class QString QDeclarativeBinding::tr(char const *, char const *, int)
- ?queryObjectRecursive@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugObjectQuery@@ABVQDeclarativeDebugObjectReference@@PAVQObject@@@Z @ 1542 NONAME ; class QDeclarativeDebugObjectQuery * QDeclarativeEngineDebug::queryObjectRecursive(class QDeclarativeDebugObjectReference const &, class QObject *)
- ?prepare@QDeclarativeTransition@@QAEXAAV?$QList@VQDeclarativeAction@@@@AAV?$QList@VQDeclarativeProperty@@@@PAVQDeclarativeTransitionManager@@@Z @ 1543 NONAME ; void QDeclarativeTransition::prepare(class QList<class QDeclarativeAction> &, class QList<class QDeclarativeProperty> &, class QDeclarativeTransitionManager *)
- ??6QDeclarativeInfo@@QAEAAV0@ABVQUrl@@@Z @ 1544 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QUrl const &)
- ?scopeObject@QDeclarativeExpression@@QBEPAVQObject@@XZ @ 1545 NONAME ; class QObject * QDeclarativeExpression::scopeObject(void) const
- ?isValid@QDeclarativeContext@@QBE_NXZ @ 1546 NONAME ; bool QDeclarativeContext::isValid(void) const
- ?trUtf8@QDeclarativeValueType@@SA?AVQString@@PBD0H@Z @ 1547 NONAME ; class QString QDeclarativeValueType::trUtf8(char const *, char const *, int)
- ?qmlAttachedPropertiesObjectById@@YAPAVQObject@@HPBV1@_N@Z @ 1548 NONAME ; class QObject * qmlAttachedPropertiesObjectById(int, class QObject const *, bool)
- ?d_func@QDeclarativePixmapReply@@ABEPBVQDeclarativePixmapReplyPrivate@@XZ @ 1549 NONAME ABSENT ; class QDeclarativePixmapReplyPrivate const * QDeclarativePixmapReply::d_func(void) const
- ?constructorCount@QMetaObjectBuilder@@QBEHXZ @ 1550 NONAME ; int QMetaObjectBuilder::constructorCount(void) const
- ??0QDeclarativeDomValueValueInterceptor@@QAE@ABV0@@Z @ 1551 NONAME ; QDeclarativeDomValueValueInterceptor::QDeclarativeDomValueValueInterceptor(class QDeclarativeDomValueValueInterceptor const &)
- ?object@QDeclarativeDebugObjectQuery@@QBE?AVQDeclarativeDebugObjectReference@@XZ @ 1552 NONAME ; class QDeclarativeDebugObjectReference QDeclarativeDebugObjectQuery::object(void) const
- ??0QMetaPropertyBuilder@@QAE@XZ @ 1553 NONAME ; QMetaPropertyBuilder::QMetaPropertyBuilder(void)
- ?toMetaObject@QMetaObjectBuilder@@QBEPAUQMetaObject@@XZ @ 1554 NONAME ; struct QMetaObject * QMetaObjectBuilder::toMetaObject(void) const
- ?d_func@QDeclarativeEngine@@AAEPAVQDeclarativeEnginePrivate@@XZ @ 1555 NONAME ; class QDeclarativeEnginePrivate * QDeclarativeEngine::d_func(void)
- ?forcedHeight@QDeclarativePixmapReply@@QBEHXZ @ 1556 NONAME ABSENT ; int QDeclarativePixmapReply::forcedHeight(void) const
- ?staticMetaObject@QDeclarativeRectangle@@2UQMetaObject@@B @ 1557 NONAME ; struct QMetaObject const QDeclarativeRectangle::staticMetaObject
- ?addSignal@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@@Z @ 1558 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addSignal(class QByteArray const &)
- ?getStaticMetaObject@QDeclarativeStateGroup@@SAABUQMetaObject@@XZ @ 1559 NONAME ; struct QMetaObject const & QDeclarativeStateGroup::getStaticMetaObject(void)
- ?childrenRectChanged@QDeclarativeItem@@IAEXABVQRectF@@@Z @ 1560 NONAME ; void QDeclarativeItem::childrenRectChanged(class QRectF const &)
- ?isDesignable@QDeclarativeProperty@@QBE_NXZ @ 1561 NONAME ; bool QDeclarativeProperty::isDesignable(void) const
- ?propertyTypeCategory@QDeclarativePropertyPrivate@@QBE?AW4PropertyTypeCategory@QDeclarativeProperty@@XZ @ 1562 NONAME ; enum QDeclarativeProperty::PropertyTypeCategory QDeclarativePropertyPrivate::propertyTypeCategory(void) const
- ?setSize@QDeclarativeItem@@QAEXABVQSizeF@@@Z @ 1563 NONAME ; void QDeclarativeItem::setSize(class QSizeF const &)
- ?generateRoundedRect@QDeclarativeRectangle@@AAEXXZ @ 1564 NONAME ; void QDeclarativeRectangle::generateRoundedRect(void)
- ?tr@QDeclarativeDebugPropertyWatch@@SA?AVQString@@PBD0@Z @ 1565 NONAME ; class QString QDeclarativeDebugPropertyWatch::tr(char const *, char const *)
- ?propertyTypeCategory@QDeclarativeProperty@@QBE?AW4PropertyTypeCategory@1@XZ @ 1566 NONAME ; enum QDeclarativeProperty::PropertyTypeCategory QDeclarativeProperty::propertyTypeCategory(void) const
- ??0QPacketAutoSend@@AAE@PAVQPacketProtocol@@@Z @ 1567 NONAME ; QPacketAutoSend::QPacketAutoSend(class QPacketProtocol *)
- ?keyCount@QMetaEnumBuilder@@QBEHXZ @ 1568 NONAME ; int QMetaEnumBuilder::keyCount(void) const
- ??1QDeclarativeDomProperty@@QAE@XZ @ 1569 NONAME ; QDeclarativeDomProperty::~QDeclarativeDomProperty(void)
- ?sendMessage@QDeclarativeDebugService@@QAEXABVQByteArray@@@Z @ 1570 NONAME ; void QDeclarativeDebugService::sendMessage(class QByteArray const &)
- ?context@QDeclarativeScriptString@@QBEPAVQDeclarativeContext@@XZ @ 1571 NONAME ; class QDeclarativeContext * QDeclarativeScriptString::context(void) const
- ?queryObject@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugObjectQuery@@ABVQDeclarativeDebugObjectReference@@PAVQObject@@@Z @ 1572 NONAME ; class QDeclarativeDebugObjectQuery * QDeclarativeEngineDebug::queryObject(class QDeclarativeDebugObjectReference const &, class QObject *)
- ?tr@QDeclarativePropertyMap@@SA?AVQString@@PBD0H@Z @ 1573 NONAME ; class QString QDeclarativePropertyMap::tr(char const *, char const *, int)
- ?setNotifyOnValueChanged@QDeclarativeExpression@@QAEX_N@Z @ 1574 NONAME ; void QDeclarativeExpression::setNotifyOnValueChanged(bool)
- ??0QDeclarativeExpression@@IAE@PAVQDeclarativeContextData@@PAVQObject@@ABVQString@@AAVQDeclarativeExpressionPrivate@@@Z @ 1575 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContextData *, class QObject *, class QString const &, class QDeclarativeExpressionPrivate &)
- ?fillChanged@QDeclarativeAnchors@@IAEXXZ @ 1576 NONAME ; void QDeclarativeAnchors::fillChanged(void)
- ?resources_append@QDeclarativeItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQObject@@@@PAVQObject@@@Z @ 1577 NONAME ; void QDeclarativeItemPrivate::resources_append(class QDeclarativeListProperty<class QObject> *, class QObject *)
- ??0QDeclarativeComponent@@IAE@AAVQDeclarativeComponentPrivate@@PAVQObject@@@Z @ 1578 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeComponentPrivate &, class QObject *)
- ?height@QDeclarativeItem@@QBEMXZ @ 1579 NONAME ; float QDeclarativeItem::height(void) const
- ?minorVersion@QDeclarativeType@@QBEHXZ @ 1580 NONAME ; int QDeclarativeType::minorVersion(void) const
- ?qt_metacall@QDeclarativeText@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1581 NONAME ; int QDeclarativeText::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?event@QDeclarativePixmapReply@@MAE_NPAVQEvent@@@Z @ 1582 NONAME ABSENT ; bool QDeclarativePixmapReply::event(class QEvent *)
- ?isConnected@QDeclarativeDebugConnection@@QBE_NXZ @ 1583 NONAME ; bool QDeclarativeDebugConnection::isConnected(void) const
- ?trUtf8@QDeclarativePixmapCache@@SA?AVQString@@PBD0@Z @ 1584 NONAME ABSENT ; class QString QDeclarativePixmapCache::trUtf8(char const *, char const *)
- ??6QDeclarativeInfo@@QAEAAV0@I@Z @ 1585 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(unsigned int)
- ?setNetworkAccessManagerFactory@QDeclarativeEngine@@QAEXPAVQDeclarativeNetworkAccessManagerFactory@@@Z @ 1586 NONAME ; void QDeclarativeEngine::setNetworkAccessManagerFactory(class QDeclarativeNetworkAccessManagerFactory *)
- ?tr@QDeclarativeDebugQuery@@SA?AVQString@@PBD0H@Z @ 1587 NONAME ; class QString QDeclarativeDebugQuery::tr(char const *, char const *, int)
- ??AQDeclarativePropertyMap@@QAEAAVQVariant@@ABVQString@@@Z @ 1588 NONAME ; class QVariant & QDeclarativePropertyMap::operator[](class QString const &)
- ??0Variant@QDeclarativeParser@@QAE@_N@Z @ 1589 NONAME ; QDeclarativeParser::Variant::Variant(bool)
- ?trUtf8@QDeclarativeState@@SA?AVQString@@PBD0H@Z @ 1590 NONAME ; class QString QDeclarativeState::trUtf8(char const *, char const *, int)
- ??0QDeclarativeStateGroup@@QAE@PAVQObject@@@Z @ 1591 NONAME ; QDeclarativeStateGroup::QDeclarativeStateGroup(class QObject *)
- ?count@QDeclarativeListReference@@QBEHXZ @ 1592 NONAME ; int QDeclarativeListReference::count(void) const
- ?location@QDeclarativeCustomParserProperty@@QBE?AULocation@QDeclarativeParser@@XZ @ 1593 NONAME ; struct QDeclarativeParser::Location QDeclarativeCustomParserProperty::location(void) const
- ?metaObject@QDeclarativePen@@UBEPBUQMetaObject@@XZ @ 1594 NONAME ; struct QMetaObject const * QDeclarativePen::metaObject(void) const
- ?trUtf8@QDeclarativePixmapReply@@SA?AVQString@@PBD0@Z @ 1595 NONAME ABSENT ; class QString QDeclarativePixmapReply::trUtf8(char const *, char const *)
- ?url@QDeclarativeError@@QBE?AVQUrl@@XZ @ 1596 NONAME ; class QUrl QDeclarativeError::url(void) const
- ?isBinding@QDeclarativeDomValue@@QBE_NXZ @ 1597 NONAME ; bool QDeclarativeDomValue::isBinding(void) const
- ?name@QDeclarativeProperty@@QBE?AVQString@@XZ @ 1598 NONAME ; class QString QDeclarativeProperty::name(void) const
- ?asString@Variant@QDeclarativeParser@@QBE?AVQString@@XZ @ 1599 NONAME ; class QString QDeclarativeParser::Variant::asString(void) const
- ?trUtf8@QDeclarativeExtensionPlugin@@SA?AVQString@@PBD0@Z @ 1600 NONAME ; class QString QDeclarativeExtensionPlugin::trUtf8(char const *, char const *)
- ?sendMessage@QDeclarativeDebugClient@@QAEXABVQByteArray@@@Z @ 1601 NONAME ; void QDeclarativeDebugClient::sendMessage(class QByteArray const &)
- ?canAppend@QDeclarativeListReference@@QBE_NXZ @ 1602 NONAME ; bool QDeclarativeListReference::canAppend(void) const
- ??_EQDeclarativeComponent@@UAE@I@Z @ 1603 NONAME ; QDeclarativeComponent::~QDeclarativeComponent(unsigned int)
- ?get@QDeclarativeItemPrivate@@SAPAV1@PAVQDeclarativeItem@@@Z @ 1604 NONAME ; class QDeclarativeItemPrivate * QDeclarativeItemPrivate::get(class QDeclarativeItem *)
- ?staticMetaObject@QDeclarativeView@@2UQMetaObject@@B @ 1605 NONAME ; struct QMetaObject const QDeclarativeView::staticMetaObject
- ?objectToString@QDeclarativeDebugService@@SA?AVQString@@PAVQObject@@@Z @ 1606 NONAME ; class QString QDeclarativeDebugService::objectToString(class QObject *)
- ?defaultValue@QDeclarativeDomDynamicProperty@@QBE?AVQDeclarativeDomProperty@@XZ @ 1607 NONAME ; class QDeclarativeDomProperty QDeclarativeDomDynamicProperty::defaultValue(void) const
- ?relatedMetaObject@QMetaObjectBuilder@@QBEPBUQMetaObject@@H@Z @ 1608 NONAME ; struct QMetaObject const * QMetaObjectBuilder::relatedMetaObject(int) const
- ?d_func@QDeclarativePixmapReply@@AAEPAVQDeclarativePixmapReplyPrivate@@XZ @ 1609 NONAME ABSENT ; class QDeclarativePixmapReplyPrivate * QDeclarativePixmapReply::d_func(void)
- ?addKey@QMetaEnumBuilder@@QAEHABVQByteArray@@H@Z @ 1610 NONAME ; int QMetaEnumBuilder::addKey(class QByteArray const &, int)
- ?setPosHelper@QDeclarativeItemPrivate@@UAEXABVQPointF@@@Z @ 1611 NONAME ; void QDeclarativeItemPrivate::setPosHelper(class QPointF const &)
- ?attributes@QMetaMethodBuilder@@QBEHXZ @ 1612 NONAME ; int QMetaMethodBuilder::attributes(void) const
- ?lineNumber@QDeclarativeDebugFileReference@@QBEHXZ @ 1613 NONAME ; int QDeclarativeDebugFileReference::lineNumber(void) const
- ?setTop@QDeclarativeScaleGrid@@QAEXH@Z @ 1614 NONAME ; void QDeclarativeScaleGrid::setTop(int)
- ?metaObject@QDeclarativeItem@@UBEPBUQMetaObject@@XZ @ 1615 NONAME ; struct QMetaObject const * QDeclarativeItem::metaObject(void) const
- ?clear@QDeclarativeAbstractBinding@@IAEXXZ @ 1616 NONAME ; void QDeclarativeAbstractBinding::clear(void)
- ?start@QDeclarativeItemPrivate@@SAXAAVQElapsedTimer@@@Z @ 1617 NONAME ; void QDeclarativeItemPrivate::start(class QElapsedTimer &)
- ?reloadWithResources@QDeclarativeText@@AAEXXZ @ 1618 NONAME ABSENT ; void QDeclarativeText::reloadWithResources(void)
- ?stringToRule@QDeclarativeGridScaledImage@@CA?AW4TileMode@QDeclarativeBorderImage@@ABVQString@@@Z @ 1619 NONAME ; enum QDeclarativeBorderImage::TileMode QDeclarativeGridScaledImage::stringToRule(class QString const &)
- ?setHorizontalCenter@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 1620 NONAME ; void QDeclarativeAnchors::setHorizontalCenter(class QDeclarativeAnchorLine const &)
- ?setFocus@QDeclarativeItem@@QAEX_N@Z @ 1621 NONAME ; void QDeclarativeItem::setFocus(bool)
- ?connectNotifySignal@QDeclarativeProperty@@QBE_NPAVQObject@@PBD@Z @ 1622 NONAME ; bool QDeclarativeProperty::connectNotifySignal(class QObject *, char const *) const
- ??4QDeclarativeProperty@@QAEAAV0@ABV0@@Z @ 1623 NONAME ; class QDeclarativeProperty & QDeclarativeProperty::operator=(class QDeclarativeProperty const &)
- ?messageReceived@QDeclarativeDebugClient@@MAEXABVQByteArray@@@Z @ 1624 NONAME ; void QDeclarativeDebugClient::messageReceived(class QByteArray const &)
- ?setImplicitWidth@QDeclarativeItem@@IAEXM@Z @ 1625 NONAME ; void QDeclarativeItem::setImplicitWidth(float)
- ?isInterface@QDeclarativeType@@QBE_NXZ @ 1626 NONAME ; bool QDeclarativeType::isInterface(void) const
- ??0QDeclarativeContext@@AAE@PAVQDeclarativeEngine@@_N@Z @ 1627 NONAME ; QDeclarativeContext::QDeclarativeContext(class QDeclarativeEngine *, bool)
- ?initialValue@QDeclarativeOpenMetaObject@@UAE?AVQVariant@@H@Z @ 1628 NONAME ; class QVariant QDeclarativeOpenMetaObject::initialValue(int)
- ?tr@QDeclarativeView@@SA?AVQString@@PBD0@Z @ 1629 NONAME ; class QString QDeclarativeView::tr(char const *, char const *)
- ?qt_metacall@QPacketProtocol@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1630 NONAME ; int QPacketProtocol::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??0QDeclarativeItem@@QAE@PAV0@@Z @ 1631 NONAME ; QDeclarativeItem::QDeclarativeItem(class QDeclarativeItem *)
- ?hasDebuggingClient@QDeclarativeDebugService@@SA_NXZ @ 1632 NONAME ; bool QDeclarativeDebugService::hasDebuggingClient(void)
- ?staticMetaObject@QDeclarativeContext@@2UQMetaObject@@B @ 1633 NONAME ; struct QMetaObject const QDeclarativeContext::staticMetaObject
- ?setContextForObject@QDeclarativeEngine@@SAXPAVQObject@@PAVQDeclarativeContext@@@Z @ 1634 NONAME ; void QDeclarativeEngine::setContextForObject(class QObject *, class QDeclarativeContext *)
- ?baselineOffsetChanged@QDeclarativeItem@@IAEXM@Z @ 1635 NONAME ; void QDeclarativeItem::baselineOffsetChanged(float)
- ??6QDeclarativeInfo@@QAEAAV0@VQChar@@@Z @ 1636 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QChar)
- ?connectDownloadProgress@QDeclarativePixmap@@QAE_NPAVQObject@@H@Z @ 1637 NONAME ; bool QDeclarativePixmap::connectDownloadProgress(class QObject *, int)
- ?status@QDeclarativePixmap@@QBE?AW4Status@1@XZ @ 1638 NONAME ; enum QDeclarativePixmap::Status QDeclarativePixmap::status(void) const
- ?error@QDeclarativePixmap@@QBE?AVQString@@XZ @ 1639 NONAME ; class QString QDeclarativePixmap::error(void) const
- ??BQDeclarativePixmap@@QBEABVQPixmap@@XZ @ 1640 NONAME ; QDeclarativePixmap::operator class QPixmap const &(void) const
- ?tr@QDeclarativePixmap@@SA?AVQString@@PBD0H@Z @ 1641 NONAME ; class QString QDeclarativePixmap::tr(char const *, char const *, int)
- ?load@QDeclarativePixmap@@QAEXPAVQDeclarativeEngine@@ABVQUrl@@ABVQSize@@@Z @ 1642 NONAME ; void QDeclarativePixmap::load(class QDeclarativeEngine *, class QUrl const &, class QSize const &)
- ?height@QDeclarativePixmap@@QBEHXZ @ 1643 NONAME ; int QDeclarativePixmap::height(void) const
- ?implicitSize@QDeclarativePixmap@@QBEABVQSize@@XZ @ 1644 NONAME ; class QSize const & QDeclarativePixmap::implicitSize(void) const
- ?connectFinished@QDeclarativePixmap@@QAE_NPAVQObject@@PBD@Z @ 1645 NONAME ; bool QDeclarativePixmap::connectFinished(class QObject *, char const *)
- ?clear@QDeclarativePixmap@@QAEXPAVQObject@@@Z @ 1646 NONAME ; void QDeclarativePixmap::clear(class QObject *)
- ?connectDownloadProgress@QDeclarativePixmap@@QAE_NPAVQObject@@PBD@Z @ 1647 NONAME ; bool QDeclarativePixmap::connectDownloadProgress(class QObject *, char const *)
- ?trUtf8@QDeclarativePixmap@@SA?AVQString@@PBD0H@Z @ 1648 NONAME ; class QString QDeclarativePixmap::trUtf8(char const *, char const *, int)
- ?isLoading@QDeclarativePixmap@@QBE_NXZ @ 1649 NONAME ; bool QDeclarativePixmap::isLoading(void) const
- ?load@QDeclarativePixmap@@QAEXPAVQDeclarativeEngine@@ABVQUrl@@@Z @ 1650 NONAME ; void QDeclarativePixmap::load(class QDeclarativeEngine *, class QUrl const &)
- ?load@QDeclarativePixmap@@QAEXPAVQDeclarativeEngine@@ABVQUrl@@_N@Z @ 1651 NONAME ; void QDeclarativePixmap::load(class QDeclarativeEngine *, class QUrl const &, bool)
- ??1QDeclarativePixmap@@QAE@XZ @ 1652 NONAME ; QDeclarativePixmap::~QDeclarativePixmap(void)
- ??0QDeclarativePixmap@@QAE@XZ @ 1653 NONAME ; QDeclarativePixmap::QDeclarativePixmap(void)
- ?isReady@QDeclarativePixmap@@QBE_NXZ @ 1654 NONAME ; bool QDeclarativePixmap::isReady(void) const
- ?clear@QDeclarativePixmap@@QAEXXZ @ 1655 NONAME ; void QDeclarativePixmap::clear(void)
- ?pixmap@QDeclarativePixmap@@QBEABVQPixmap@@XZ @ 1656 NONAME ; class QPixmap const & QDeclarativePixmap::pixmap(void) const
- ??0QDeclarativePixmap@@QAE@PAVQDeclarativeEngine@@ABVQUrl@@@Z @ 1657 NONAME ; QDeclarativePixmap::QDeclarativePixmap(class QDeclarativeEngine *, class QUrl const &)
- ?width@QDeclarativePixmap@@QBEHXZ @ 1658 NONAME ; int QDeclarativePixmap::width(void) const
- ?setPixmap@QDeclarativePixmap@@QAEXABVQPixmap@@@Z @ 1659 NONAME ; void QDeclarativePixmap::setPixmap(class QPixmap const &)
- ?connectFinished@QDeclarativePixmap@@QAE_NPAVQObject@@H@Z @ 1660 NONAME ; bool QDeclarativePixmap::connectFinished(class QObject *, int)
- ?isError@QDeclarativePixmap@@QBE_NXZ @ 1661 NONAME ; bool QDeclarativePixmap::isError(void) const
- ?rect@QDeclarativePixmap@@QBE?AVQRect@@XZ @ 1662 NONAME ; class QRect QDeclarativePixmap::rect(void) const
- ?trUtf8@QDeclarativePixmap@@SA?AVQString@@PBD0@Z @ 1663 NONAME ; class QString QDeclarativePixmap::trUtf8(char const *, char const *)
- ?tr@QDeclarativePixmap@@SA?AVQString@@PBD0@Z @ 1664 NONAME ; class QString QDeclarativePixmap::tr(char const *, char const *)
- ?isNull@QDeclarativePixmap@@QBE_NXZ @ 1665 NONAME ; bool QDeclarativePixmap::isNull(void) const
- ?requestSize@QDeclarativePixmap@@QBEABVQSize@@XZ @ 1666 NONAME ; class QSize const & QDeclarativePixmap::requestSize(void) const
- ??0QDeclarativePixmap@@QAE@PAVQDeclarativeEngine@@ABVQUrl@@ABVQSize@@@Z @ 1667 NONAME ; QDeclarativePixmap::QDeclarativePixmap(class QDeclarativeEngine *, class QUrl const &, class QSize const &)
- ?url@QDeclarativePixmap@@QBEABVQUrl@@XZ @ 1668 NONAME ; class QUrl const & QDeclarativePixmap::url(void) const
- ?load@QDeclarativePixmap@@QAEXPAVQDeclarativeEngine@@ABVQUrl@@ABVQSize@@_N@Z @ 1669 NONAME ; void QDeclarativePixmap::load(class QDeclarativeEngine *, class QUrl const &, class QSize const &, bool)
- ?imageType@QDeclarativeImageProvider@@QBE?AW4ImageType@1@XZ @ 1670 NONAME ; enum QDeclarativeImageProvider::ImageType QDeclarativeImageProvider::imageType(void) const
- ?qtAnimationStateChanged@QDeclarativeBehavior@@AAEXW4State@QAbstractAnimation@@0@Z @ 1671 NONAME ; void QDeclarativeBehavior::qtAnimationStateChanged(enum QAbstractAnimation::State, enum QAbstractAnimation::State)
- ?requestImage@QDeclarativeImageProvider@@UAE?AVQImage@@ABVQString@@PAVQSize@@ABV4@@Z @ 1672 NONAME ; class QImage QDeclarativeImageProvider::requestImage(class QString const &, class QSize *, class QSize const &)
- ?requestPixmap@QDeclarativeImageProvider@@UAE?AVQPixmap@@ABVQString@@PAVQSize@@ABV4@@Z @ 1673 NONAME ; class QPixmap QDeclarativeImageProvider::requestPixmap(class QString const &, class QSize *, class QSize const &)
- ?setBindingForObject@QDeclarativeEngineDebug@@QAE_NHABVQString@@ABVQVariant@@_N@Z @ 1674 NONAME ; bool QDeclarativeEngineDebug::setBindingForObject(int, class QString const &, class QVariant const &, bool)
- ??0QDeclarativeImageProvider@@QAE@W4ImageType@0@@Z @ 1675 NONAME ; QDeclarativeImageProvider::QDeclarativeImageProvider(enum QDeclarativeImageProvider::ImageType)
- ?setMethodBody@QDeclarativeEngineDebug@@QAE_NHABVQString@@0@Z @ 1676 NONAME ; bool QDeclarativeEngineDebug::setMethodBody(int, class QString const &, class QString const &)
- ?resetBindingForObject@QDeclarativeEngineDebug@@QAE_NHABVQString@@@Z @ 1677 NONAME ; bool QDeclarativeEngineDebug::resetBindingForObject(int, class QString const &)
- ?forceActiveFocus@QDeclarativeItem@@QAEXXZ @ 1678 NONAME ; void QDeclarativeItem::forceActiveFocus(void)
- ?activeFocusChanged@QDeclarativeItem@@IAEX_N@Z @ 1679 NONAME ; void QDeclarativeItem::activeFocusChanged(bool)
- ?focusScopeItemChange@QDeclarativeItemPrivate@@UAEX_N@Z @ 1680 NONAME ; void QDeclarativeItemPrivate::focusScopeItemChange(bool)
- ?hasActiveFocus@QDeclarativeItem@@QBE_NXZ @ 1681 NONAME ; bool QDeclarativeItem::hasActiveFocus(void) const
- ?engine@QDeclarativeView@@QBEPAVQDeclarativeEngine@@XZ @ 1682 NONAME ; class QDeclarativeEngine * QDeclarativeView::engine(void) const
- ?rootContext@QDeclarativeView@@QBEPAVQDeclarativeContext@@XZ @ 1683 NONAME ; class QDeclarativeContext * QDeclarativeView::rootContext(void) const
- ?rootContext@QDeclarativeEngine@@QBEPAVQDeclarativeContext@@XZ @ 1684 NONAME ; class QDeclarativeContext * QDeclarativeEngine::rootContext(void) const
- ?qmlregister@QDeclarativePrivate@@YAHW4RegistrationType@1@PAX@Z @ 1685 NONAME ; int QDeclarativePrivate::qmlregister(enum QDeclarativePrivate::RegistrationType, void *)
- ?hasValue@QDeclarativeOpenMetaObject@@QBE_NH@Z @ 1686 NONAME ; bool QDeclarativeOpenMetaObject::hasValue(int) const
+ ?resetBindingForObject@QDeclarativeEngineDebug@@QAE_NHABVQString@@@Z @ 882 NONAME ; bool QDeclarativeEngineDebug::resetBindingForObject(int, class QString const &)
+ ??_EQDeclarativeOpenMetaObject@@UAE@I@Z @ 883 NONAME ; QDeclarativeOpenMetaObject::~QDeclarativeOpenMetaObject(unsigned int)
+ ?states@QDeclarativeItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeState@@@@XZ @ 884 NONAME ; class QDeclarativeListProperty<class QDeclarativeState> QDeclarativeItemPrivate::states(void)
+ ?rawMetaObjectForType@QDeclarativePropertyPrivate@@SAPBUQMetaObject@@PAVQDeclarativeEnginePrivate@@H@Z @ 885 NONAME ; struct QMetaObject const * QDeclarativePropertyPrivate::rawMetaObjectForType(class QDeclarativeEnginePrivate *, int)
+ ?setHeight@QDeclarativeItem@@QAEXM@Z @ 886 NONAME ; void QDeclarativeItem::setHeight(float)
+ ??0QDeclarativeDomDocument@@QAE@ABV0@@Z @ 887 NONAME ; QDeclarativeDomDocument::QDeclarativeDomDocument(class QDeclarativeDomDocument const &)
+ ?position@QDeclarativeDomDynamicProperty@@QBEHXZ @ 888 NONAME ; int QDeclarativeDomDynamicProperty::position(void) const
+ ?animations@QDeclarativeTransition@@QAE?AV?$QDeclarativeListProperty@VQDeclarativeAbstractAnimation@@@@XZ @ 889 NONAME ; class QDeclarativeListProperty<class QDeclarativeAbstractAnimation> QDeclarativeTransition::animations(void)
+ ?tr@QDeclarativeExpression@@SA?AVQString@@PBD0H@Z @ 890 NONAME ; class QString QDeclarativeExpression::tr(char const *, char const *, int)
+ ??_EQMetaObjectBuilder@@UAE@I@Z @ 891 NONAME ; QMetaObjectBuilder::~QMetaObjectBuilder(unsigned int)
+ ?propertyName@QDeclarativeDomProperty@@QBE?AVQByteArray@@XZ @ 892 NONAME ; class QByteArray QDeclarativeDomProperty::propertyName(void) const
+ ?setBindingForObject@QDeclarativeEngineDebug@@QAE_NHABVQString@@ABVQVariant@@_N@Z @ 893 NONAME ; bool QDeclarativeEngineDebug::setBindingForObject(int, class QString const &, class QVariant const &, bool)
+ ??0QDeclarativeView@@QAE@PAVQWidget@@@Z @ 894 NONAME ; QDeclarativeView::QDeclarativeView(class QWidget *)
+ ?createObject@QDeclarativeComponent@@IAE?AVQScriptValue@@PAVQObject@@@Z @ 895 NONAME ; class QScriptValue QDeclarativeComponent::createObject(class QObject *)
+ ?name@QDeclarativeDebugPropertyReference@@QBE?AVQString@@XZ @ 896 NONAME ; class QString QDeclarativeDebugPropertyReference::name(void) const
+ ?object@QDeclarativeDomValueValueSource@@QBE?AVQDeclarativeDomObject@@XZ @ 897 NONAME ; class QDeclarativeDomObject QDeclarativeDomValueValueSource::object(void) const
+ ??0QMetaPropertyBuilder@@AAE@PBVQMetaObjectBuilder@@H@Z @ 898 NONAME ; QMetaPropertyBuilder::QMetaPropertyBuilder(class QMetaObjectBuilder const *, int)
+ ?d_func@QDeclarativeEngineDebug@@ABEPBVQDeclarativeEngineDebugPrivate@@XZ @ 899 NONAME ; class QDeclarativeEngineDebugPrivate const * QDeclarativeEngineDebug::d_func(void) const
+ ?d_func@QDeclarativeBinding@@AAEPAVQDeclarativeBindingPrivate@@XZ @ 900 NONAME ; class QDeclarativeBindingPrivate * QDeclarativeBinding::d_func(void)
+ ?trUtf8@QDeclarativeDebugExpressionQuery@@SA?AVQString@@PBD0H@Z @ 901 NONAME ; class QString QDeclarativeDebugExpressionQuery::trUtf8(char const *, char const *, int)
+ ?attachedPropertiesFuncId@QDeclarativeMetaType@@SAHPBUQMetaObject@@@Z @ 902 NONAME ; int QDeclarativeMetaType::attachedPropertiesFuncId(struct QMetaObject const *)
+ ?horizontalCenter@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 903 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::horizontalCenter(void) const
+ ?isNull@QDeclarativeComponent@@QBE_NXZ @ 904 NONAME ; bool QDeclarativeComponent::isNull(void) const
+ ?d_func@QDeclarativeRectangle@@ABEPBVQDeclarativeRectanglePrivate@@XZ @ 905 NONAME ; class QDeclarativeRectanglePrivate const * QDeclarativeRectangle::d_func(void) const
+ ?setRightMargin@QDeclarativeAnchors@@QAEXM@Z @ 906 NONAME ; void QDeclarativeAnchors::setRightMargin(float)
+ ?className@QMetaObjectBuilder@@QBE?AVQByteArray@@XZ @ 907 NONAME ; class QByteArray QMetaObjectBuilder::className(void) const
+ ??0QDeclarativeState@@QAE@PAVQObject@@@Z @ 908 NONAME ; QDeclarativeState::QDeclarativeState(class QObject *)
+ ?contexts@QDeclarativeDebugContextReference@@QBE?AV?$QList@VQDeclarativeDebugContextReference@@@@XZ @ 909 NONAME ; class QList<class QDeclarativeDebugContextReference> QDeclarativeDebugContextReference::contexts(void) const
+ ?keyReleaseEvent@QDeclarativeItem@@MAEXPAVQKeyEvent@@@Z @ 910 NONAME ; void QDeclarativeItem::keyReleaseEvent(class QKeyEvent *)
+ ?qt_metacall@QDeclarativeAnchors@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 911 NONAME ; int QDeclarativeAnchors::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0QDeclarativeAnchors@@QAE@PAVQGraphicsObject@@PAVQObject@@@Z @ 912 NONAME ; QDeclarativeAnchors::QDeclarativeAnchors(class QGraphicsObject *, class QObject *)
+ ??4QDeclarativeScriptString@@QAEAAV0@ABV0@@Z @ 913 NONAME ; class QDeclarativeScriptString & QDeclarativeScriptString::operator=(class QDeclarativeScriptString const &)
+ ??6@YAAAVQDataStream@@AAV0@ABUQDeclarativeObjectProperty@QDeclarativeEngineDebugServer@@@Z @ 914 NONAME ; class QDataStream & operator<<(class QDataStream &, struct QDeclarativeEngineDebugServer::QDeclarativeObjectProperty const &)
+ ?hasNotifySignal@QMetaPropertyBuilder@@QBE_NXZ @ 915 NONAME ; bool QMetaPropertyBuilder::hasNotifySignal(void) const
+ ??4QDeclarativeDomImport@@QAEAAV0@ABV0@@Z @ 916 NONAME ; class QDeclarativeDomImport & QDeclarativeDomImport::operator=(class QDeclarativeDomImport const &)
+ ?resetFill@QDeclarativeAnchors@@QAEXXZ @ 917 NONAME ; void QDeclarativeAnchors::resetFill(void)
+ ??6QDeclarativeInfo@@QAEAAV0@_K@Z @ 918 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(unsigned long long)
+ ?d_func@QDeclarativeComponent@@ABEPBVQDeclarativeComponentPrivate@@XZ @ 919 NONAME ; class QDeclarativeComponentPrivate const * QDeclarativeComponent::d_func(void) const
+ ??0QDeclarativeBehavior@@QAE@PAVQObject@@@Z @ 920 NONAME ; QDeclarativeBehavior::QDeclarativeBehavior(class QObject *)
+ ?length@QDeclarativeDomValue@@QBEHXZ @ 921 NONAME ; int QDeclarativeDomValue::length(void) const
+ ?trUtf8@QDeclarativeBinding@@SA?AVQString@@PBD0H@Z @ 922 NONAME ; class QString QDeclarativeBinding::trUtf8(char const *, char const *, int)
+ ??0QDeclarativeType@@AAE@HABURegisterInterface@QDeclarativePrivate@@@Z @ 923 NONAME ; QDeclarativeType::QDeclarativeType(int, struct QDeclarativePrivate::RegisterInterface const &)
+ ?scopeObject@QDeclarativeScriptString@@QBEPAVQObject@@XZ @ 924 NONAME ; class QObject * QDeclarativeScriptString::scopeObject(void) const
+ ?left@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 925 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::left(void) const
+ ??1QDeclarativeDebuggerStatus@@UAE@XZ @ 926 NONAME ; QDeclarativeDebuggerStatus::~QDeclarativeDebuggerStatus(void)
+ ??6QDeclarativeInfo@@QAEAAV0@ABVQLatin1String@@@Z @ 927 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QLatin1String const &)
+ ?at@QDeclarativeListReference@@QBEPAVQObject@@H@Z @ 928 NONAME ; class QObject * QDeclarativeListReference::at(int) const
+ ?metaObject@QDeclarativeDebugWatch@@UBEPBUQMetaObject@@XZ @ 929 NONAME ; struct QMetaObject const * QDeclarativeDebugWatch::metaObject(void) const
+ ?qt_metacast@QListModelInterface@@UAEPAXPBD@Z @ 930 NONAME ; void * QListModelInterface::qt_metacast(char const *)
+ ?deserialize@QMetaObjectBuilder@@QAEXAAVQDataStream@@ABV?$QMap@VQByteArray@@PB$$CBUQMetaObject@@@@@Z @ 931 NONAME ; void QMetaObjectBuilder::deserialize(class QDataStream &, class QMap<class QByteArray, struct QMetaObject const *> const &)
+ ?canClear@QDeclarativeListReference@@QBE_NXZ @ 932 NONAME ; bool QDeclarativeListReference::canClear(void) const
+ ??4QDeclarativeCustomParserProperty@@QAEAAV0@ABV0@@Z @ 933 NONAME ; class QDeclarativeCustomParserProperty & QDeclarativeCustomParserProperty::operator=(class QDeclarativeCustomParserProperty const &)
+ ?parameterNames@QMetaMethodBuilder@@QBE?AV?$QList@VQByteArray@@@@XZ @ 934 NONAME ; class QList<class QByteArray> QMetaMethodBuilder::parameterNames(void) const
+ ?get@QDeclarativeListModel@@QBE?AVQScriptValue@@H@Z @ 935 NONAME ; class QScriptValue QDeclarativeListModel::get(int) const
+ ?createSize@QDeclarativeType@@QBEHXZ @ 936 NONAME ; int QDeclarativeType::createSize(void) const
+ ?rootContext@QDeclarativeEngine@@QBEPAVQDeclarativeContext@@XZ @ 937 NONAME ; class QDeclarativeContext * QDeclarativeEngine::rootContext(void) const
+ ?isValueSource@QDeclarativeDomValue@@QBE_NXZ @ 938 NONAME ; bool QDeclarativeDomValue::isValueSource(void) const
+ ?isWritable@QDeclarativeProperty@@QBE_NXZ @ 939 NONAME ; bool QDeclarativeProperty::isWritable(void) const
+ ?setKeepMouseGrab@QDeclarativeItem@@QAEX_N@Z @ 940 NONAME ; void QDeclarativeItem::setKeepMouseGrab(bool)
+ ??0QDeclarativeDebugContextReference@@QAE@XZ @ 941 NONAME ; QDeclarativeDebugContextReference::QDeclarativeDebugContextReference(void)
+ ?setParameterNames@QMetaMethodBuilder@@QAEXABV?$QList@VQByteArray@@@@@Z @ 942 NONAME ; void QMetaMethodBuilder::setParameterNames(class QList<class QByteArray> const &)
+ ?getStaticMetaObject@QDeclarativeDebugRootContextQuery@@SAABUQMetaObject@@XZ @ 943 NONAME ; struct QMetaObject const & QDeclarativeDebugRootContextQuery::getStaticMetaObject(void)
+ ?textChanged@QDeclarativeText@@IAEXABVQString@@@Z @ 944 NONAME ; void QDeclarativeText::textChanged(class QString const &)
+ ?trUtf8@QDeclarativeItem@@SA?AVQString@@PBD0@Z @ 945 NONAME ; class QString QDeclarativeItem::trUtf8(char const *, char const *)
+ ??0QDeclarativeCustomParserProperty@@QAE@ABV0@@Z @ 946 NONAME ; QDeclarativeCustomParserProperty::QDeclarativeCustomParserProperty(class QDeclarativeCustomParserProperty const &)
+ ?getStaticMetaObject@QDeclarativeComponent@@SAABUQMetaObject@@XZ @ 947 NONAME ; struct QMetaObject const & QDeclarativeComponent::getStaticMetaObject(void)
+ ?parentItem@QDeclarativeItem@@QBEPAV1@XZ @ 948 NONAME ; class QDeclarativeItem * QDeclarativeItem::parentItem(void) const
+ ?value@QMetaEnumBuilder@@QBEHH@Z @ 949 NONAME ; int QMetaEnumBuilder::value(int) const
+ ??_EQDeclarativeExpression@@UAE@I@Z @ 950 NONAME ; QDeclarativeExpression::~QDeclarativeExpression(unsigned int)
+ ?load@QDeclarativeDomDocument@@QAE_NPAVQDeclarativeEngine@@ABVQByteArray@@ABVQUrl@@@Z @ 951 NONAME ; bool QDeclarativeDomDocument::load(class QDeclarativeEngine *, class QByteArray const &, class QUrl const &)
+ ?staticMetaObject@QDeclarativeStateGroup@@2UQMetaObject@@B @ 952 NONAME ; struct QMetaObject const QDeclarativeStateGroup::staticMetaObject
+ ?tr@QDeclarativePropertyMap@@SA?AVQString@@PBD0@Z @ 953 NONAME ; class QString QDeclarativePropertyMap::tr(char const *, char const *)
+ ?verticalCenterChanged@QDeclarativeAnchors@@IAEXXZ @ 954 NONAME ; void QDeclarativeAnchors::verticalCenterChanged(void)
+ ?isScriptable@QMetaPropertyBuilder@@QBE_NXZ @ 955 NONAME ; bool QMetaPropertyBuilder::isScriptable(void) const
+ ?typeCategory@QDeclarativeMetaType@@SA?AW4TypeCategory@1@H@Z @ 956 NONAME ; enum QDeclarativeMetaType::TypeCategory QDeclarativeMetaType::typeCategory(int)
+ ?findSignalByName@QDeclarativePropertyPrivate@@SA?AVQMetaMethod@@PBUQMetaObject@@ABVQByteArray@@@Z @ 957 NONAME ; class QMetaMethod QDeclarativePropertyPrivate::findSignalByName(struct QMetaObject const *, class QByteArray const &)
+ ?length@QDeclarativeDomDynamicProperty@@QBEHXZ @ 958 NONAME ; int QDeclarativeDomDynamicProperty::length(void) const
+ ?property@QDeclarativeBinding@@QBE?AVQDeclarativeProperty@@XZ @ 959 NONAME ; class QDeclarativeProperty QDeclarativeBinding::property(void) const
+ ??0QDeclarativeDomValueBinding@@QAE@XZ @ 960 NONAME ; QDeclarativeDomValueBinding::QDeclarativeDomValueBinding(void)
+ ?addImportPath@QDeclarativeEngine@@QAEXABVQString@@@Z @ 961 NONAME ; void QDeclarativeEngine::addImportPath(class QString const &)
+ ?engine@QDeclarativeContext@@QBEPAVQDeclarativeEngine@@XZ @ 962 NONAME ; class QDeclarativeEngine * QDeclarativeContext::engine(void) const
+ ?length@QDeclarativeDomObject@@QBEHXZ @ 963 NONAME ; int QDeclarativeDomObject::length(void) const
+ ?setBaselineOffset@QDeclarativeAnchors@@QAEXM@Z @ 964 NONAME ; void QDeclarativeAnchors::setBaselineOffset(float)
+ ?append@QDeclarativeListReference@@QBE_NPAVQObject@@@Z @ 965 NONAME ; bool QDeclarativeListReference::append(class QObject *) const
+ ?d_func@QDeclarativeEngineDebug@@AAEPAVQDeclarativeEngineDebugPrivate@@XZ @ 966 NONAME ; class QDeclarativeEngineDebugPrivate * QDeclarativeEngineDebug::d_func(void)
+ ??1QDeclarativeNetworkAccessManagerFactory@@UAE@XZ @ 967 NONAME ; QDeclarativeNetworkAccessManagerFactory::~QDeclarativeNetworkAccessManagerFactory(void)
+ ?textFormatChanged@QDeclarativeText@@IAEXW4TextFormat@1@@Z @ 968 NONAME ; void QDeclarativeText::textFormatChanged(enum QDeclarativeText::TextFormat)
+ ?removeState@QDeclarativeStateGroup@@AAEXPAVQDeclarativeState@@@Z @ 969 NONAME ; void QDeclarativeStateGroup::removeState(class QDeclarativeState *)
+ ?qmlTypeName@QDeclarativeType@@QBE?AVQByteArray@@XZ @ 970 NONAME ; class QByteArray QDeclarativeType::qmlTypeName(void) const
+ ?tr@QDeclarativeComponent@@SA?AVQString@@PBD0@Z @ 971 NONAME ; class QString QDeclarativeComponent::tr(char const *, char const *)
+ ?isProperty@QDeclarativeProperty@@QBE_NXZ @ 972 NONAME ; bool QDeclarativeProperty::isProperty(void) const
+ ?states@QDeclarativeStateGroup@@QBE?AV?$QList@PAVQDeclarativeState@@@@XZ @ 973 NONAME ; class QList<class QDeclarativeState *> QDeclarativeStateGroup::states(void) const
+ ??1QDeclarativeDebugExpressionQuery@@UAE@XZ @ 974 NONAME ; QDeclarativeDebugExpressionQuery::~QDeclarativeDebugExpressionQuery(void)
+ ?isValid@QDeclarativeDomObject@@QBE_NXZ @ 975 NONAME ; bool QDeclarativeDomObject::isValid(void) const
+ ?staticMetaObject@QDeclarativeAnchors@@2UQMetaObject@@B @ 976 NONAME ; struct QMetaObject const QDeclarativeAnchors::staticMetaObject
+ ??_EQDeclarativePen@@UAE@I@Z @ 977 NONAME ; QDeclarativePen::~QDeclarativePen(unsigned int)
+ ??0QDeclarativeDomProperty@@QAE@ABV0@@Z @ 978 NONAME ; QDeclarativeDomProperty::QDeclarativeDomProperty(class QDeclarativeDomProperty const &)
+ ?_states@QDeclarativeItemPrivate@@QAEPAVQDeclarativeStateGroup@@XZ @ 979 NONAME ; class QDeclarativeStateGroup * QDeclarativeItemPrivate::_states(void)
+ ?verticalAlignmentChanged@QDeclarativeText@@IAEXW4VAlignment@1@@Z @ 980 NONAME ; void QDeclarativeText::verticalAlignmentChanged(enum QDeclarativeText::VAlignment)
+ ?typeId@QDeclarativeType@@QBEHXZ @ 981 NONAME ; int QDeclarativeType::typeId(void) const
+ ?marginsChanged@QDeclarativeAnchors@@IAEXXZ @ 982 NONAME ; void QDeclarativeAnchors::marginsChanged(void)
+ ?setValue@QDeclarativeOpenMetaObject@@QAEXHABVQVariant@@@Z @ 983 NONAME ; void QDeclarativeOpenMetaObject::setValue(int, class QVariant const &)
+ ?parentProperty@QDeclarativeItemPrivate@@SAXPAVQObject@@PAXPAVQDeclarativeNotifierEndpoint@@@Z @ 984 NONAME ; void QDeclarativeItemPrivate::parentProperty(class QObject *, void *, class QDeclarativeNotifierEndpoint *)
+ ??4QDeclarativeDebugContextReference@@QAEAAV0@ABV0@@Z @ 985 NONAME ; class QDeclarativeDebugContextReference & QDeclarativeDebugContextReference::operator=(class QDeclarativeDebugContextReference const &)
+ ?isModule@QDeclarativeMetaType@@SA_NABVQByteArray@@HH@Z @ 986 NONAME ; bool QDeclarativeMetaType::isModule(class QByteArray const &, int, int)
+ ?parentFunctions@QDeclarativeMetaType@@SA?AV?$QList@P6A?AW4AutoParentResult@QDeclarativePrivate@@PAVQObject@@0@Z@@XZ @ 987 NONAME ; class QList<enum QDeclarativePrivate::AutoParentResult (*)(class QObject *, class QObject *)> QDeclarativeMetaType::parentFunctions(void)
+ ?metaObject@QDeclarativeDebugPropertyWatch@@UBEPBUQMetaObject@@XZ @ 988 NONAME ; struct QMetaObject const * QDeclarativeDebugPropertyWatch::metaObject(void) const
+ ??0QDeclarativeRectangle@@QAE@PAVQDeclarativeItem@@@Z @ 989 NONAME ; QDeclarativeRectangle::QDeclarativeRectangle(class QDeclarativeItem *)
+ ?setOutputWarningsToStandardError@QDeclarativeEngine@@QAEX_N@Z @ 990 NONAME ; void QDeclarativeEngine::setOutputWarningsToStandardError(bool)
+ ?addMethod@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@0@Z @ 991 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addMethod(class QByteArray const &, class QByteArray const &)
+ ?enumerator@QMetaObjectBuilder@@QBE?AVQMetaEnumBuilder@@H@Z @ 992 NONAME ; class QMetaEnumBuilder QMetaObjectBuilder::enumerator(int) const
+ ?fromRelocatableData@QMetaObjectBuilder@@SAXPAUQMetaObject@@PBU2@ABVQByteArray@@@Z @ 993 NONAME ; void QMetaObjectBuilder::fromRelocatableData(struct QMetaObject *, struct QMetaObject const *, class QByteArray const &)
+ ?gridRight@QDeclarativeGridScaledImage@@QBEHXZ @ 994 NONAME ; int QDeclarativeGridScaledImage::gridRight(void) const
+ ?isAlias@QDeclarativeDomDynamicProperty@@QBE_NXZ @ 995 NONAME ; bool QDeclarativeDomDynamicProperty::isAlias(void) const
+ ?d_func@QDeclarativeContext@@ABEPBVQDeclarativeContextPrivate@@XZ @ 996 NONAME ; class QDeclarativeContextPrivate const * QDeclarativeContext::d_func(void) const
+ ?getStaticMetaObject@QDeclarativeDebugEnginesQuery@@SAABUQMetaObject@@XZ @ 997 NONAME ; struct QMetaObject const & QDeclarativeDebugEnginesQuery::getStaticMetaObject(void)
+ ?tr@QDeclarativeItem@@SA?AVQString@@PBD0H@Z @ 998 NONAME ; class QString QDeclarativeItem::tr(char const *, char const *, int)
+ ?staticMetaObject@QDeclarativeDebugPropertyWatch@@2UQMetaObject@@B @ 999 NONAME ; struct QMetaObject const QDeclarativeDebugPropertyWatch::staticMetaObject
+ ?setDescription@QDeclarativeError@@QAEXABVQString@@@Z @ 1000 NONAME ; void QDeclarativeError::setDescription(class QString const &)
+ ??0QDeclarativeExpression@@AAE@PAVQDeclarativeContextData@@PAVQObject@@ABVQString@@@Z @ 1001 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContextData *, class QObject *, class QString const &)
+ ??1QDeclarativeOpenMetaObjectType@@UAE@XZ @ 1002 NONAME ; QDeclarativeOpenMetaObjectType::~QDeclarativeOpenMetaObjectType(void)
+ ?setReversible@QDeclarativeTransition@@QAEX_N@Z @ 1003 NONAME ; void QDeclarativeTransition::setReversible(bool)
+ ?notifySignal@QMetaPropertyBuilder@@QBE?AVQMetaMethodBuilder@@XZ @ 1004 NONAME ; class QMetaMethodBuilder QMetaPropertyBuilder::notifySignal(void) const
+ ??0QDeclarativeDomList@@QAE@XZ @ 1005 NONAME ; QDeclarativeDomList::QDeclarativeDomList(void)
+ ?hasActiveFocus@QDeclarativeItem@@QBE_NXZ @ 1006 NONAME ; bool QDeclarativeItem::hasActiveFocus(void) const
+ ?indexOfSignal@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1007 NONAME ; int QMetaObjectBuilder::indexOfSignal(class QByteArray const &)
+ ?toState@QDeclarativeTransition@@QBE?AVQString@@XZ @ 1008 NONAME ; class QString QDeclarativeTransition::toState(void) const
+ ??0QDeclarativeDomDocument@@QAE@XZ @ 1009 NONAME ; QDeclarativeDomDocument::QDeclarativeDomDocument(void)
+ ?setWhen@QDeclarativeState@@QAEXPAVQDeclarativeBinding@@@Z @ 1010 NONAME ; void QDeclarativeState::setWhen(class QDeclarativeBinding *)
+ ?isWhenKnown@QDeclarativeState@@QBE_NXZ @ 1011 NONAME ; bool QDeclarativeState::isWhenKnown(void) const
+ ?agent@QDeclarativeListModel@@QAEPAVQDeclarativeListModelWorkerAgent@@XZ @ 1012 NONAME ; class QDeclarativeListModelWorkerAgent * QDeclarativeListModel::agent(void)
+ ?engine@QDeclarativeExpression@@QBEPAVQDeclarativeEngine@@XZ @ 1013 NONAME ; class QDeclarativeEngine * QDeclarativeExpression::engine(void) const
+ ??_EQDeclarativeDebugWatch@@UAE@I@Z @ 1014 NONAME ; QDeclarativeDebugWatch::~QDeclarativeDebugWatch(unsigned int)
+ ?isEmpty@QPacket@@QBE_NXZ @ 1015 NONAME ; bool QPacket::isEmpty(void) const
+ ?qmlType@QDeclarativeMetaType@@SAPAVQDeclarativeType@@PBUQMetaObject@@@Z @ 1016 NONAME ; class QDeclarativeType * QDeclarativeMetaType::qmlType(struct QMetaObject const *)
+ ?setFill@QDeclarativeAnchors@@QAEXPAVQGraphicsObject@@@Z @ 1017 NONAME ; void QDeclarativeAnchors::setFill(class QGraphicsObject *)
+ ?setHAlign@QDeclarativeText@@QAEXW4HAlignment@1@@Z @ 1018 NONAME ; void QDeclarativeText::setHAlign(enum QDeclarativeText::HAlignment)
+ ??0QDeclarativeScriptString@@QAE@ABV0@@Z @ 1019 NONAME ; QDeclarativeScriptString::QDeclarativeScriptString(class QDeclarativeScriptString const &)
+ ?trUtf8@QDeclarativeTransition@@SA?AVQString@@PBD0@Z @ 1020 NONAME ; class QString QDeclarativeTransition::trUtf8(char const *, char const *)
+ ?metaObject@QDeclarativeDebugRootContextQuery@@UBEPBUQMetaObject@@XZ @ 1021 NONAME ; struct QMetaObject const * QDeclarativeDebugRootContextQuery::metaObject(void) const
+ ?setSignalExpression@QDeclarativePropertyPrivate@@SAPAVQDeclarativeExpression@@ABVQDeclarativeProperty@@PAV2@@Z @ 1022 NONAME ; class QDeclarativeExpression * QDeclarativePropertyPrivate::setSignalExpression(class QDeclarativeProperty const &, class QDeclarativeExpression *)
+ ?reversibleChanged@QDeclarativeTransition@@IAEXXZ @ 1023 NONAME ; void QDeclarativeTransition::reversibleChanged(void)
+ ??4QDeclarativeDomValueValueSource@@QAEAAV0@ABV0@@Z @ 1024 NONAME ; class QDeclarativeDomValueValueSource & QDeclarativeDomValueValueSource::operator=(class QDeclarativeDomValueValueSource const &)
+ ?name@QDeclarativeDebugObjectReference@@QBE?AVQString@@XZ @ 1025 NONAME ; class QString QDeclarativeDebugObjectReference::name(void) const
+ ?anchorLines@QDeclarativeItemPrivate@@QBEPAUAnchorLines@1@XZ @ 1026 NONAME ; struct QDeclarativeItemPrivate::AnchorLines * QDeclarativeItemPrivate::anchorLines(void) const
+ ?qmlInfo@@YA?AVQDeclarativeInfo@@PBVQObject@@ABVQDeclarativeError@@@Z @ 1027 NONAME ; class QDeclarativeInfo qmlInfo(class QObject const *, class QDeclarativeError const &)
+ ?staticMetaObject@QDeclarativeText@@2UQMetaObject@@B @ 1028 NONAME ; struct QMetaObject const QDeclarativeText::staticMetaObject
+ ?color@QDeclarativeRectangle@@QBE?AVQColor@@XZ @ 1029 NONAME ; class QColor QDeclarativeRectangle::color(void) const
+ ?isEnabled@QDeclarativeDebugClient@@QBE_NXZ @ 1030 NONAME ; bool QDeclarativeDebugClient::isEnabled(void) const
+ ?send@QPacketProtocol@@QAEXABVQPacket@@@Z @ 1031 NONAME ; void QPacketProtocol::send(class QPacket const &)
+ ?width@QDeclarativePixmap@@QBEHXZ @ 1032 NONAME ; int QDeclarativePixmap::width(void) const
+ ?error@QDeclarativeCustomParser@@IAEXABVQDeclarativeCustomParserNode@@ABVQString@@@Z @ 1033 NONAME ; void QDeclarativeCustomParser::error(class QDeclarativeCustomParserNode const &, class QString const &)
+ ?defaultProperty@QDeclarativeMetaType@@SA?AVQMetaProperty@@PBUQMetaObject@@@Z @ 1034 NONAME ; class QMetaProperty QDeclarativeMetaType::defaultProperty(struct QMetaObject const *)
+ ?isComponentComplete@QDeclarativeItem@@IBE_NXZ @ 1035 NONAME ; bool QDeclarativeItem::isComponentComplete(void) const
+ ?type@QMetaPropertyBuilder@@QBE?AVQByteArray@@XZ @ 1036 NONAME ; class QByteArray QMetaPropertyBuilder::type(void) const
+ ?setProperty@QDeclarativeListModel@@QAEXHABVQString@@ABVQVariant@@@Z @ 1037 NONAME ; void QDeclarativeListModel::setProperty(int, class QString const &, class QVariant const &)
+ ?rootContext@QDeclarativeDebugRootContextQuery@@QBE?AVQDeclarativeDebugContextReference@@XZ @ 1038 NONAME ; class QDeclarativeDebugContextReference QDeclarativeDebugRootContextQuery::rootContext(void) const
+ ?contextForObject@QDeclarativeEngine@@SAPAVQDeclarativeContext@@PBVQObject@@@Z @ 1039 NONAME ; class QDeclarativeContext * QDeclarativeEngine::contextForObject(class QObject const *)
+ ?addProperty@QMetaObjectBuilder@@QAE?AVQMetaPropertyBuilder@@ABVQMetaProperty@@@Z @ 1040 NONAME ; class QMetaPropertyBuilder QMetaObjectBuilder::addProperty(class QMetaProperty const &)
+ ?isQObject@QDeclarativeMetaType@@SA_NH@Z @ 1041 NONAME ; bool QDeclarativeMetaType::isQObject(int)
+ ?trUtf8@QDeclarativeAnchors@@SA?AVQString@@PBD0@Z @ 1042 NONAME ; class QString QDeclarativeAnchors::trUtf8(char const *, char const *)
+ ?getStaticMetaObject@QDeclarativeValueType@@SAABUQMetaObject@@XZ @ 1043 NONAME ; struct QMetaObject const & QDeclarativeValueType::getStaticMetaObject(void)
+ ?valueChanged@QDeclarativePropertyMap@@IAEXABVQString@@ABVQVariant@@@Z @ 1044 NONAME ; void QDeclarativePropertyMap::valueChanged(class QString const &, class QVariant const &)
+ ?staticMetaObject@QPacketProtocol@@2UQMetaObject@@B @ 1045 NONAME ; struct QMetaObject const QPacketProtocol::staticMetaObject
+ ?tr@QDeclarativeListModel@@SA?AVQString@@PBD0H@Z @ 1046 NONAME ; class QString QDeclarativeListModel::tr(char const *, char const *, int)
+ ??0QDeclarativeScriptString@@QAE@XZ @ 1047 NONAME ; QDeclarativeScriptString::QDeclarativeScriptString(void)
+ ?tr@QListModelInterface@@SA?AVQString@@PBD0@Z @ 1048 NONAME ; class QString QListModelInterface::tr(char const *, char const *)
+ ?height@QDeclarativeItemPrivate@@UBEMXZ @ 1049 NONAME ; float QDeclarativeItemPrivate::height(void) const
+ ?qt_metacast@QDeclarativeDebugObjectQuery@@UAEPAXPBD@Z @ 1050 NONAME ; void * QDeclarativeDebugObjectQuery::qt_metacast(char const *)
+ ??0QDeclarativeImageProvider@@QAE@W4ImageType@0@@Z @ 1051 NONAME ; QDeclarativeImageProvider::QDeclarativeImageProvider(enum QDeclarativeImageProvider::ImageType)
+ ?type@QDeclarativeDomValue@@QBE?AW4Type@1@XZ @ 1052 NONAME ; enum QDeclarativeDomValue::Type QDeclarativeDomValue::type(void) const
+ ?setPixmap@QDeclarativePixmap@@QAEXABVQPixmap@@@Z @ 1053 NONAME ; void QDeclarativePixmap::setPixmap(class QPixmap const &)
+ ?staticMetacallFunction@QMetaObjectBuilder@@QBEP6AHW4Call@QMetaObject@@HPAPAX@ZXZ @ 1054 NONAME ; int (*)(enum QMetaObject::Call, int, void * *) QMetaObjectBuilder::staticMetacallFunction(void) const
+ ?connectFinished@QDeclarativePixmap@@QAE_NPAVQObject@@H@Z @ 1055 NONAME ; bool QDeclarativePixmap::connectFinished(class QObject *, int)
+ ?setStyle@QDeclarativeText@@QAEXW4TextStyle@1@@Z @ 1056 NONAME ; void QDeclarativeText::setStyle(enum QDeclarativeText::TextStyle)
+ ?staticMetaObject@QDeclarativePropertyMap@@2UQMetaObject@@B @ 1057 NONAME ; struct QMetaObject const QDeclarativePropertyMap::staticMetaObject
+ ??_EQDeclarativeDebugEnginesQuery@@UAE@I@Z @ 1058 NONAME ; QDeclarativeDebugEnginesQuery::~QDeclarativeDebugEnginesQuery(unsigned int)
+ ?enumeratorCount@QMetaObjectBuilder@@QBEHXZ @ 1059 NONAME ; int QMetaObjectBuilder::enumeratorCount(void) const
+ ?isError@QDeclarativePixmap@@QBE_NXZ @ 1060 NONAME ; bool QDeclarativePixmap::isError(void) const
+ ?setConsistentTime@QDeclarativeItemPrivate@@SAX_J@Z @ 1061 NONAME ; void QDeclarativeItemPrivate::setConsistentTime(long long)
+ ?initializeEngine@QDeclarativeExtensionPlugin@@UAEXPAVQDeclarativeEngine@@PBD@Z @ 1062 NONAME ; void QDeclarativeExtensionPlugin::initializeEngine(class QDeclarativeEngine *, char const *)
+ ?metaObject@QDeclarativeDebugQuery@@UBEPBUQMetaObject@@XZ @ 1063 NONAME ; struct QMetaObject const * QDeclarativeDebugQuery::metaObject(void) const
+ ?rightMarginChanged@QDeclarativeAnchors@@IAEXXZ @ 1064 NONAME ; void QDeclarativeAnchors::rightMarginChanged(void)
+ ??_EQDeclarativePropertyValueInterceptor@@UAE@I@Z @ 1065 NONAME ; QDeclarativePropertyValueInterceptor::~QDeclarativePropertyValueInterceptor(unsigned int)
+ ?linkActivated@QDeclarativeText@@IAEXABVQString@@@Z @ 1066 NONAME ; void QDeclarativeText::linkActivated(class QString const &)
+ ?canConvert@QDeclarativePropertyPrivate@@SA_NPBUQMetaObject@@0@Z @ 1067 NONAME ; bool QDeclarativePropertyPrivate::canConvert(struct QMetaObject const *, struct QMetaObject const *)
+ ?trUtf8@QDeclarativeAnchors@@SA?AVQString@@PBD0H@Z @ 1068 NONAME ; class QString QDeclarativeAnchors::trUtf8(char const *, char const *, int)
+ ?toComponent@QDeclarativeDomObject@@QBE?AVQDeclarativeDomComponent@@XZ @ 1069 NONAME ; class QDeclarativeDomComponent QDeclarativeDomObject::toComponent(void) const
+ ?tr@QDeclarativeValueType@@SA?AVQString@@PBD0@Z @ 1070 NONAME ; class QString QDeclarativeValueType::tr(char const *, char const *)
+ ?setLeft@QDeclarativeScaleGrid@@QAEXH@Z @ 1071 NONAME ; void QDeclarativeScaleGrid::setLeft(int)
+ ??1QDeclarativeGridScaledImage@@QAE@XZ @ 1072 NONAME ; QDeclarativeGridScaledImage::~QDeclarativeGridScaledImage(void)
+ ??0QDeclarativeGridScaledImage@@QAE@ABV0@@Z @ 1073 NONAME ; QDeclarativeGridScaledImage::QDeclarativeGridScaledImage(class QDeclarativeGridScaledImage const &)
+ ?column@QDeclarativeError@@QBEHXZ @ 1074 NONAME ; int QDeclarativeError::column(void) const
+ ?properties@QDeclarativeCustomParserNode@@QBE?AV?$QList@VQDeclarativeCustomParserProperty@@@@XZ @ 1075 NONAME ; class QList<class QDeclarativeCustomParserProperty> QDeclarativeCustomParserNode::properties(void) const
+ ?qt_metacast@QDeclarativeScaleGrid@@UAEPAXPBD@Z @ 1076 NONAME ; void * QDeclarativeScaleGrid::qt_metacast(char const *)
+ ??0QDeclarativeListReference@@QAE@XZ @ 1077 NONAME ; QDeclarativeListReference::QDeclarativeListReference(void)
+ ??1QDeclarativeDebugRootContextQuery@@UAE@XZ @ 1078 NONAME ; QDeclarativeDebugRootContextQuery::~QDeclarativeDebugRootContextQuery(void)
+ ?name@QDeclarativeCustomParserNode@@QBE?AVQByteArray@@XZ @ 1079 NONAME ; class QByteArray QDeclarativeCustomParserNode::name(void) const
+ ?object@QDeclarativeDomValueValueInterceptor@@QBE?AVQDeclarativeDomObject@@XZ @ 1080 NONAME ; class QDeclarativeDomObject QDeclarativeDomValueValueInterceptor::object(void) const
+ ??1QDeclarativePen@@UAE@XZ @ 1081 NONAME ; QDeclarativePen::~QDeclarativePen(void)
+ ?data@QDeclarativeItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQObject@@@@XZ @ 1082 NONAME ; class QDeclarativeListProperty<class QObject> QDeclarativeItemPrivate::data(void)
+ ?qt_metacall@QDeclarativeBinding@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1083 NONAME ; int QDeclarativeBinding::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??1QDeclarativeEngine@@UAE@XZ @ 1084 NONAME ; QDeclarativeEngine::~QDeclarativeEngine(void)
+ ?debugId@QDeclarativeDebugContextReference@@QBEHXZ @ 1085 NONAME ; int QDeclarativeDebugContextReference::debugId(void) const
+ ?propertyNameParts@QDeclarativeDomProperty@@QBE?AV?$QList@VQByteArray@@@@XZ @ 1086 NONAME ; class QList<class QByteArray> QDeclarativeDomProperty::propertyNameParts(void) const
+ ?resetWidth@QDeclarativeItemPrivate@@UAEXXZ @ 1087 NONAME ; void QDeclarativeItemPrivate::resetWidth(void)
+ ??AQDeclarativeOpenMetaObject@@QAEAAVQVariant@@ABVQByteArray@@@Z @ 1088 NONAME ; class QVariant & QDeclarativeOpenMetaObject::operator[](class QByteArray const &)
+ ?bottom@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1089 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::bottom(void) const
+ ?device@QPacketProtocol@@QAEPAVQIODevice@@XZ @ 1090 NONAME ; class QIODevice * QPacketProtocol::device(void)
+ ?trUtf8@QDeclarativeStateGroup@@SA?AVQString@@PBD0@Z @ 1091 NONAME ; class QString QDeclarativeStateGroup::trUtf8(char const *, char const *)
+ ?variantFromString@QDeclarativeStringConverters@@YA?AVQVariant@@ABVQString@@HPA_N@Z @ 1092 NONAME ; class QVariant QDeclarativeStringConverters::variantFromString(class QString const &, int, bool *)
+ ?metaObject@QDeclarativeComponent@@UBEPBUQMetaObject@@XZ @ 1093 NONAME ; struct QMetaObject const * QDeclarativeComponent::metaObject(void) const
+ ?qmlInfo@@YA?AVQDeclarativeInfo@@PBVQObject@@ABV?$QList@VQDeclarativeError@@@@@Z @ 1094 NONAME ; class QDeclarativeInfo qmlInfo(class QObject const *, class QList<class QDeclarativeError> const &)
+ ?assignedValues@QDeclarativeCustomParserProperty@@QBE?AV?$QList@VQVariant@@@@XZ @ 1095 NONAME ; class QList<class QVariant> QDeclarativeCustomParserProperty::assignedValues(void) const
+ ?setValue@QDeclarativeOpenMetaObject@@QAEXABVQByteArray@@ABVQVariant@@@Z @ 1096 NONAME ; void QDeclarativeOpenMetaObject::setValue(class QByteArray const &, class QVariant const &)
+ ?data@QDeclarativeListModel@@UBE?AVQVariant@@HH@Z @ 1097 NONAME ; class QVariant QDeclarativeListModel::data(int, int) const
+ ?setElideMode@QDeclarativeText@@QAEXW4TextElideMode@1@@Z @ 1098 NONAME ; void QDeclarativeText::setElideMode(enum QDeclarativeText::TextElideMode)
+ ?d_func@QDeclarativePropertyMap@@ABEPBVQDeclarativePropertyMapPrivate@@XZ @ 1099 NONAME ; class QDeclarativePropertyMapPrivate const * QDeclarativePropertyMap::d_func(void) const
+ ?consistentTime@QDeclarativeItemPrivate@@2_JA @ 1100 NONAME ; long long QDeclarativeItemPrivate::consistentTime
+ ?setWidth@QDeclarativeItem@@QAEXM@Z @ 1101 NONAME ; void QDeclarativeItem::setWidth(float)
+ ?qt_metacall@QDeclarativeDebugObjectQuery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1102 NONAME ; int QDeclarativeDebugObjectQuery::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?contextObject@QDeclarativeContext@@QBEPAVQObject@@XZ @ 1103 NONAME ; class QObject * QDeclarativeContext::contextObject(void) const
+ ??_EQDeclarativeOpenMetaObjectType@@UAE@I@Z @ 1104 NONAME ; QDeclarativeOpenMetaObjectType::~QDeclarativeOpenMetaObjectType(unsigned int)
+ ?isWritable@QMetaPropertyBuilder@@QBE_NXZ @ 1105 NONAME ; bool QMetaPropertyBuilder::isWritable(void) const
+ ?sizeFFromString@QDeclarativeStringConverters@@YA?AVQSizeF@@ABVQString@@PA_N@Z @ 1106 NONAME ; class QSizeF QDeclarativeStringConverters::sizeFFromString(class QString const &, bool *)
+ ??0QDeclarativeProperty@@QAE@PAVQObject@@ABVQString@@PAVQDeclarativeEngine@@@Z @ 1107 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QString const &, class QDeclarativeEngine *)
+ ?addMethod@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@@Z @ 1108 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addMethod(class QByteArray const &)
+ ??0QDeclarativeDebugFileReference@@QAE@XZ @ 1109 NONAME ; QDeclarativeDebugFileReference::QDeclarativeDebugFileReference(void)
+ ?mapFromItem@QDeclarativeItem@@QBE?AVQScriptValue@@ABV2@MM@Z @ 1110 NONAME ; class QScriptValue QDeclarativeItem::mapFromItem(class QScriptValue const &, float, float) const
+ ?trUtf8@QDeclarativeStateOperation@@SA?AVQString@@PBD0H@Z @ 1111 NONAME ; class QString QDeclarativeStateOperation::trUtf8(char const *, char const *, int)
+ ?tr@QPacketProtocol@@SA?AVQString@@PBD0H@Z @ 1112 NONAME ; class QString QPacketProtocol::tr(char const *, char const *, int)
+ ?d_func@QDeclarativeAnchors@@ABEPBVQDeclarativeAnchorsPrivate@@XZ @ 1113 NONAME ; class QDeclarativeAnchorsPrivate const * QDeclarativeAnchors::d_func(void) const
+ ?setNotifySignal@QMetaPropertyBuilder@@QAEXABVQMetaMethodBuilder@@@Z @ 1114 NONAME ; void QMetaPropertyBuilder::setNotifySignal(class QMetaMethodBuilder const &)
+ ?enabled@QDeclarativeBehavior@@QBE_NXZ @ 1115 NONAME ; bool QDeclarativeBehavior::enabled(void) const
+ ?initProperty@QDeclarativePropertyPrivate@@QAEXPAVQObject@@ABVQString@@@Z @ 1116 NONAME ; void QDeclarativePropertyPrivate::initProperty(class QObject *, class QString const &)
+ ?isEditable@QMetaPropertyBuilder@@QBE_NXZ @ 1117 NONAME ; bool QMetaPropertyBuilder::isEditable(void) const
+ ??0QDeclarativeBinding@@QAE@ABVQString@@PAVQObject@@PAVQDeclarativeContextData@@1@Z @ 1118 NONAME ; QDeclarativeBinding::QDeclarativeBinding(class QString const &, class QObject *, class QDeclarativeContextData *, class QObject *)
+ ?expression@QDeclarativeDebugExpressionQuery@@QBE?AVQVariant@@XZ @ 1119 NONAME ; class QVariant QDeclarativeDebugExpressionQuery::expression(void) const
+ ??4QDeclarativeDomList@@QAEAAV0@ABV0@@Z @ 1120 NONAME ; class QDeclarativeDomList & QDeclarativeDomList::operator=(class QDeclarativeDomList const &)
+ ?qt_metacall@QDeclarativeComponent@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1121 NONAME ; int QDeclarativeComponent::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?tr@QDeclarativeDebugService@@SA?AVQString@@PBD0H@Z @ 1122 NONAME ; class QString QDeclarativeDebugService::tr(char const *, char const *, int)
+ ?staticMetaObject@QDeclarativeEngine@@2UQMetaObject@@B @ 1123 NONAME ; struct QMetaObject const QDeclarativeEngine::staticMetaObject
+ ?staticMetaObject@QDeclarativeStateOperation@@2UQMetaObject@@B @ 1124 NONAME ; struct QMetaObject const QDeclarativeStateOperation::staticMetaObject
+ ?actions@QDeclarativeStateOperation@@UAE?AV?$QList@VQDeclarativeAction@@@@XZ @ 1125 NONAME ; class QList<class QDeclarativeAction> QDeclarativeStateOperation::actions(void)
+ ?objectClassName@QDeclarativeDomObject@@QBE?AVQByteArray@@XZ @ 1126 NONAME ; class QByteArray QDeclarativeDomObject::objectClassName(void) const
+ ??8QDeclarativeProperty@@QBE_NABV0@@Z @ 1127 NONAME ; bool QDeclarativeProperty::operator==(class QDeclarativeProperty const &) const
+ ??1QDeclarativeDomValue@@QAE@XZ @ 1128 NONAME ; QDeclarativeDomValue::~QDeclarativeDomValue(void)
+ ??_EQDeclarativePropertyMap@@UAE@I@Z @ 1129 NONAME ; QDeclarativePropertyMap::~QDeclarativePropertyMap(unsigned int)
+ ?staticMetaObject@QDeclarativeDebugRootContextQuery@@2UQMetaObject@@B @ 1130 NONAME ; struct QMetaObject const QDeclarativeDebugRootContextQuery::staticMetaObject
+ ?noCreationReason@QDeclarativeType@@QBE?AVQString@@XZ @ 1131 NONAME ; class QString QDeclarativeType::noCreationReason(void) const
+ ?setUrl@QDeclarativeDebugFileReference@@QAEXABVQUrl@@@Z @ 1132 NONAME ; void QDeclarativeDebugFileReference::setUrl(class QUrl const &)
+ ??1QDeclarativeCustomParserProperty@@QAE@XZ @ 1133 NONAME ; QDeclarativeCustomParserProperty::~QDeclarativeCustomParserProperty(void)
+ ??1QPacketProtocol@@UAE@XZ @ 1134 NONAME ; QPacketProtocol::~QPacketProtocol(void)
+ ??1QDeclarativeAbstractBinding@@MAE@XZ @ 1135 NONAME ; QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding(void)
+ ?indexOfEnumerator@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1136 NONAME ; int QMetaObjectBuilder::indexOfEnumerator(class QByteArray const &)
+ ?qt_metacast@QDeclarativePen@@UAEPAXPBD@Z @ 1137 NONAME ; void * QDeclarativePen::qt_metacast(char const *)
+ ?leftMargin@QDeclarativeAnchors@@QBEMXZ @ 1138 NONAME ; float QDeclarativeAnchors::leftMargin(void) const
+ ??1QDeclarativeComponent@@UAE@XZ @ 1139 NONAME ; QDeclarativeComponent::~QDeclarativeComponent(void)
+ ??1QDeclarativeItem@@UAE@XZ @ 1140 NONAME ; QDeclarativeItem::~QDeclarativeItem(void)
+ ?setEnabled@QDeclarativeAbstractBinding@@UAEX_NV?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1141 NONAME ; void QDeclarativeAbstractBinding::setEnabled(bool, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
+ ?staticMetaObject@QListModelInterface@@2UQMetaObject@@B @ 1142 NONAME ; struct QMetaObject const QListModelInterface::staticMetaObject
+ ?d_func@QDeclarativeTransition@@ABEPBVQDeclarativeTransitionPrivate@@XZ @ 1143 NONAME ; class QDeclarativeTransitionPrivate const * QDeclarativeTransition::d_func(void) const
+ ?sourceFile@QDeclarativeExpression@@QBE?AVQString@@XZ @ 1144 NONAME ; class QString QDeclarativeExpression::sourceFile(void) const
+ ??_EQDeclarativeAnchors@@UAE@I@Z @ 1145 NONAME ; QDeclarativeAnchors::~QDeclarativeAnchors(unsigned int)
+ ?removeNotifySignal@QMetaPropertyBuilder@@QAEXXZ @ 1146 NONAME ; void QMetaPropertyBuilder::removeNotifySignal(void)
+ ?trUtf8@QDeclarativeDebugService@@SA?AVQString@@PBD0@Z @ 1147 NONAME ; class QString QDeclarativeDebugService::trUtf8(char const *, char const *)
+ ?setImportPathList@QDeclarativeEngine@@QAEXABVQStringList@@@Z @ 1148 NONAME ; void QDeclarativeEngine::setImportPathList(class QStringList const &)
+ ?enabledChanged@QDeclarativeDebugService@@MAEX_N@Z @ 1149 NONAME ; void QDeclarativeDebugService::enabledChanged(bool)
+ ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugWatch@@ABVQDeclarativeDebugObjectReference@@PAVQObject@@@Z @ 1150 NONAME ; class QDeclarativeDebugWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugObjectReference const &, class QObject *)
+ ?asAST@Variant@QDeclarativeParser@@QBEPAVNode@AST@QDeclarativeJS@@XZ @ 1151 NONAME ; class QDeclarativeJS::AST::Node * QDeclarativeParser::Variant::asAST(void) const
+ ?indexOfClassInfo@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1152 NONAME ; int QMetaObjectBuilder::indexOfClassInfo(class QByteArray const &)
+ ??0QDeclarativeDomImport@@QAE@ABV0@@Z @ 1153 NONAME ; QDeclarativeDomImport::QDeclarativeDomImport(class QDeclarativeDomImport const &)
+ ?width@QDeclarativePen@@QBEHXZ @ 1154 NONAME ; int QDeclarativePen::width(void) const
+ ?d_func@QDeclarativeStateGroup@@AAEPAVQDeclarativeStateGroupPrivate@@XZ @ 1155 NONAME ; class QDeclarativeStateGroupPrivate * QDeclarativeStateGroup::d_func(void)
+ ??6QDeclarativeInfo@@QAEAAV0@P6AAAVQTextStream@@AAV1@@Z@Z @ 1156 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QTextStream & (*)(class QTextStream &))
+ ?trUtf8@QDeclarativeEngineDebug@@SA?AVQString@@PBD0@Z @ 1157 NONAME ; class QString QDeclarativeEngineDebug::trUtf8(char const *, char const *)
+ ?type@QDeclarativeOpenMetaObject@@QBEPAVQDeclarativeOpenMetaObjectType@@XZ @ 1158 NONAME ; class QDeclarativeOpenMetaObjectType * QDeclarativeOpenMetaObject::type(void) const
+ ?tr@QDeclarativeExpression@@SA?AVQString@@PBD0@Z @ 1159 NONAME ; class QString QDeclarativeExpression::tr(char const *, char const *)
+ ??0QDeclarativeDomValueValueInterceptor@@QAE@XZ @ 1160 NONAME ; QDeclarativeDomValueValueInterceptor::QDeclarativeDomValueValueInterceptor(void)
+ ??1QDeclarativeDebugPropertyWatch@@UAE@XZ @ 1161 NONAME ; QDeclarativeDebugPropertyWatch::~QDeclarativeDebugPropertyWatch(void)
+ ?evaluate@QDeclarativeExpression@@QAE?AVQVariant@@PA_N@Z @ 1162 NONAME ; class QVariant QDeclarativeExpression::evaluate(bool *)
+ ?isDefaultProperty@QDeclarativeDomProperty@@QBE_NXZ @ 1163 NONAME ; bool QDeclarativeDomProperty::isDefaultProperty(void) const
+ ??0QDeclarativeAction@@QAE@PAVQObject@@ABVQString@@ABVQVariant@@@Z @ 1164 NONAME ; QDeclarativeAction::QDeclarativeAction(class QObject *, class QString const &, class QVariant const &)
+ ?metaObject@QDeclarativeRectangle@@UBEPBUQMetaObject@@XZ @ 1165 NONAME ; struct QMetaObject const * QDeclarativeRectangle::metaObject(void) const
+ ?removeRelatedMetaObject@QMetaObjectBuilder@@QAEXH@Z @ 1166 NONAME ; void QMetaObjectBuilder::removeRelatedMetaObject(int)
+ ??0QDeclarativeError@@QAE@XZ @ 1167 NONAME ; QDeclarativeError::QDeclarativeError(void)
+ ?hasValue@QDeclarativeOpenMetaObject@@QBE_NH@Z @ 1168 NONAME ; bool QDeclarativeOpenMetaObject::hasValue(int) const
+ ?object@QDeclarativeProperty@@QBEPAVQObject@@XZ @ 1169 NONAME ; class QObject * QDeclarativeProperty::object(void) const
+ ?stateGroup@QDeclarativeState@@QBEPAVQDeclarativeStateGroup@@XZ @ 1170 NONAME ; class QDeclarativeStateGroup * QDeclarativeState::stateGroup(void) const
+ ?connectNotifySignal@QDeclarativeProperty@@QBE_NPAVQObject@@H@Z @ 1171 NONAME ; bool QDeclarativeProperty::connectNotifySignal(class QObject *, int) const
+ ?focusChanged@QDeclarativeItemPrivate@@UAEX_N@Z @ 1172 NONAME ; void QDeclarativeItemPrivate::focusChanged(bool)
+ ?contextDebugId@QDeclarativeDebugObjectReference@@QBEHXZ @ 1173 NONAME ; int QDeclarativeDebugObjectReference::contextDebugId(void) const
+ ?url@QDeclarativeDebugFileReference@@QBE?AVQUrl@@XZ @ 1174 NONAME ; class QUrl QDeclarativeDebugFileReference::url(void) const
+ ?paint@QDeclarativeRectangle@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 1175 NONAME ; void QDeclarativeRectangle::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
+ ??6QDeclarativeState@@QAEAAV0@PAVQDeclarativeStateOperation@@@Z @ 1176 NONAME ; class QDeclarativeState & QDeclarativeState::operator<<(class QDeclarativeStateOperation *)
+ ?destroy@QDeclarativeAbstractBinding@@UAEXXZ @ 1177 NONAME ; void QDeclarativeAbstractBinding::destroy(void)
+ ?qt_metacast@QDeclarativeDebugService@@UAEPAXPBD@Z @ 1178 NONAME ; void * QDeclarativeDebugService::qt_metacast(char const *)
+ ?qt_metacast@QDeclarativeValueType@@UAEPAXPBD@Z @ 1179 NONAME ; void * QDeclarativeValueType::qt_metacast(char const *)
+ ?childAt@QDeclarativeItem@@QBEPAV1@MM@Z @ 1180 NONAME ; class QDeclarativeItem * QDeclarativeItem::childAt(float, float) const
+ ?paintedWidth@QDeclarativeText@@QBEMXZ @ 1181 NONAME ; float QDeclarativeText::paintedWidth(void) const
+ ?tr@QDeclarativeBinding@@SA?AVQString@@PBD0@Z @ 1182 NONAME ; class QString QDeclarativeBinding::tr(char const *, char const *)
+ ?clip@QDeclarativeItem@@QBE_NXZ @ 1183 NONAME ; bool QDeclarativeItem::clip(void) const
+ ??0QDeclarativeValueTypeFactory@@QAE@XZ @ 1184 NONAME ; QDeclarativeValueTypeFactory::QDeclarativeValueTypeFactory(void)
+ ??0QDeclarativeComponent@@QAE@PAVQDeclarativeEngine@@ABVQUrl@@PAVQObject@@@Z @ 1185 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QUrl const &, class QObject *)
+ ?literal@QDeclarativeDomValueLiteral@@QBE?AVQString@@XZ @ 1186 NONAME ; class QString QDeclarativeDomValueLiteral::literal(void) const
+ ??_EQDeclarativeEngineDebug@@UAE@I@Z @ 1187 NONAME ; QDeclarativeEngineDebug::~QDeclarativeEngineDebug(unsigned int)
+ ?bottom@QDeclarativeScaleGrid@@QBEHXZ @ 1188 NONAME ; int QDeclarativeScaleGrid::bottom(void) const
+ ?d_func@QDeclarativePropertyMap@@AAEPAVQDeclarativePropertyMapPrivate@@XZ @ 1189 NONAME ; class QDeclarativePropertyMapPrivate * QDeclarativePropertyMap::d_func(void)
+ ?trUtf8@QDeclarativeView@@SA?AVQString@@PBD0@Z @ 1190 NONAME ; class QString QDeclarativeView::trUtf8(char const *, char const *)
+ ?rect@QDeclarativePixmap@@QBE?AVQRect@@XZ @ 1191 NONAME ; class QRect QDeclarativePixmap::rect(void) const
+ ??0QDeclarativeTransition@@QAE@PAVQObject@@@Z @ 1192 NONAME ; QDeclarativeTransition::QDeclarativeTransition(class QObject *)
+ ?horizontalCenter@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1193 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::horizontalCenter(void) const
+ ?setObjectOwnership@QDeclarativeEngine@@SAXPAVQObject@@W4ObjectOwnership@1@@Z @ 1194 NONAME ; void QDeclarativeEngine::setObjectOwnership(class QObject *, enum QDeclarativeEngine::ObjectOwnership)
+ ?tr@QDeclarativeContext@@SA?AVQString@@PBD0H@Z @ 1195 NONAME ; class QString QDeclarativeContext::tr(char const *, char const *, int)
+ ?metaCall@QDeclarativeOpenMetaObject@@MAEHW4Call@QMetaObject@@HPAPAX@Z @ 1196 NONAME ; int QDeclarativeOpenMetaObject::metaCall(enum QMetaObject::Call, int, void * *)
+ ??_EQDeclarativeText@@UAE@I@Z @ 1197 NONAME ; QDeclarativeText::~QDeclarativeText(unsigned int)
+ ?setLeftMargin@QDeclarativeAnchors@@QAEXM@Z @ 1198 NONAME ; void QDeclarativeAnchors::setLeftMargin(float)
+ ?metaObject@QDeclarativeStateGroup@@UBEPBUQMetaObject@@XZ @ 1199 NONAME ; struct QMetaObject const * QDeclarativeStateGroup::metaObject(void) const
+ ?expression@QDeclarativeAbstractBinding@@UBE?AVQString@@XZ @ 1200 NONAME ; class QString QDeclarativeAbstractBinding::expression(void) const
+ ??6QDeclarativeInfo@@QAEAAV0@N@Z @ 1201 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(double)
+ ?setAnimation@QDeclarativeBehavior@@QAEXPAVQDeclarativeAbstractAnimation@@@Z @ 1202 NONAME ; void QDeclarativeBehavior::setAnimation(class QDeclarativeAbstractAnimation *)
+ ?properties@QDeclarativeDebugObjectReference@@QBE?AV?$QList@VQDeclarativeDebugPropertyReference@@@@XZ @ 1203 NONAME ; class QList<class QDeclarativeDebugPropertyReference> QDeclarativeDebugObjectReference::properties(void) const
+ ?trUtf8@QDeclarativePixmap@@SA?AVQString@@PBD0@Z @ 1204 NONAME ; class QString QDeclarativePixmap::trUtf8(char const *, char const *)
+ ?trUtf8@QDeclarativeDebugClient@@SA?AVQString@@PBD0@Z @ 1205 NONAME ; class QString QDeclarativeDebugClient::trUtf8(char const *, char const *)
+ ?context@QDeclarativeExpression@@QBEPAVQDeclarativeContext@@XZ @ 1206 NONAME ; class QDeclarativeContext * QDeclarativeExpression::context(void) const
+ ?qt_metacast@QDeclarativeBehavior@@UAEPAXPBD@Z @ 1207 NONAME ; void * QDeclarativeBehavior::qt_metacast(char const *)
+ ?objectTypeMinorVersion@QDeclarativeDomObject@@QBEHXZ @ 1208 NONAME ; int QDeclarativeDomObject::objectTypeMinorVersion(void) const
+ ??0QDeclarativePropertyValueInterceptor@@QAE@XZ @ 1209 NONAME ; QDeclarativePropertyValueInterceptor::QDeclarativePropertyValueInterceptor(void)
+ ?isValid@QDeclarativeError@@QBE_NXZ @ 1210 NONAME ; bool QDeclarativeError::isValid(void) const
+ ??0QMetaMethodBuilder@@QAE@XZ @ 1211 NONAME ; QMetaMethodBuilder::QMetaMethodBuilder(void)
+ ?completed@QDeclarativeState@@IAEXXZ @ 1212 NONAME ; void QDeclarativeState::completed(void)
+ ?radiusChanged@QDeclarativeRectangle@@IAEXXZ @ 1213 NONAME ; void QDeclarativeRectangle::radiusChanged(void)
+ ?getStaticMetaObject@QDeclarativeExpression@@SAABUQMetaObject@@XZ @ 1214 NONAME ; struct QMetaObject const & QDeclarativeExpression::getStaticMetaObject(void)
+ ?gridLeft@QDeclarativeGridScaledImage@@QBEHXZ @ 1215 NONAME ; int QDeclarativeGridScaledImage::gridLeft(void) const
+ ?setWritable@QMetaPropertyBuilder@@QAEX_N@Z @ 1216 NONAME ; void QMetaPropertyBuilder::setWritable(bool)
+ ?qt_metacast@QDeclarativeStateGroup@@UAEPAXPBD@Z @ 1217 NONAME ; void * QDeclarativeStateGroup::qt_metacast(char const *)
+ ?defaultMethod@QDeclarativeMetaType@@SA?AVQMetaMethod@@PAVQObject@@@Z @ 1218 NONAME ; class QMetaMethod QDeclarativeMetaType::defaultMethod(class QObject *)
+ ?qt_metacast@QDeclarativeEngineDebug@@UAEPAXPBD@Z @ 1219 NONAME ; void * QDeclarativeEngineDebug::qt_metacast(char const *)
+ ?staticMetaObject@QDeclarativeExpression@@2UQMetaObject@@B @ 1220 NONAME ; struct QMetaObject const QDeclarativeExpression::staticMetaObject
+ ?statusChanged@QDeclarativeComponent@@IAEXW4Status@1@@Z @ 1221 NONAME ; void QDeclarativeComponent::statusChanged(enum QDeclarativeComponent::Status)
+ ?setTarget@QDeclarativeBinding@@QAEXABVQDeclarativeProperty@@@Z @ 1222 NONAME ; void QDeclarativeBinding::setTarget(class QDeclarativeProperty const &)
+ ?imageProvider@QDeclarativeEngine@@QBEPAVQDeclarativeImageProvider@@ABVQString@@@Z @ 1223 NONAME ; class QDeclarativeImageProvider * QDeclarativeEngine::imageProvider(class QString const &) const
+ ?packetsAvailable@QPacketProtocol@@QBE_JXZ @ 1224 NONAME ; long long QPacketProtocol::packetsAvailable(void) const
+ ?state@QDeclarativeDebugWatch@@QBE?AW4State@1@XZ @ 1225 NONAME ; enum QDeclarativeDebugWatch::State QDeclarativeDebugWatch::state(void) const
+ ?attachedPropertiesFuncById@QDeclarativeMetaType@@SAP6APAVQObject@@PAV2@@ZH@Z @ 1226 NONAME ; class QObject * (*)(class QObject *) QDeclarativeMetaType::attachedPropertiesFuncById(int)
+ ?resetBaseline@QDeclarativeAnchors@@QAEXXZ @ 1227 NONAME ; void QDeclarativeAnchors::resetBaseline(void)
+ ?name@QDeclarativeDebugClient@@QBE?AVQString@@XZ @ 1228 NONAME ; class QString QDeclarativeDebugClient::name(void) const
+ ?propertyValueInterceptorCast@QDeclarativeType@@QBEHXZ @ 1229 NONAME ; int QDeclarativeType::propertyValueInterceptorCast(void) const
+ ?setData@QDeclarativeComponent@@QAEXABVQByteArray@@ABVQUrl@@@Z @ 1230 NONAME ; void QDeclarativeComponent::setData(class QByteArray const &, class QUrl const &)
+ ??4QDeclarativeDomValue@@QAEAAV0@ABV0@@Z @ 1231 NONAME ; class QDeclarativeDomValue & QDeclarativeDomValue::operator=(class QDeclarativeDomValue const &)
+ ?toString@QDeclarativeListModel@@UBE?AVQString@@H@Z @ 1232 NONAME ; class QString QDeclarativeListModel::toString(int) const
+ ?resetWidth@QDeclarativeItem@@QAEXXZ @ 1233 NONAME ; void QDeclarativeItem::resetWidth(void)
+ ??0QDeclarativeProperty@@QAE@ABV0@@Z @ 1234 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QDeclarativeProperty const &)
+ ?text@QDeclarativeText@@QBE?AVQString@@XZ @ 1235 NONAME ; class QString QDeclarativeText::text(void) const
+ ??1QDeclarativeDebugObjectQuery@@UAE@XZ @ 1236 NONAME ; QDeclarativeDebugObjectQuery::~QDeclarativeDebugObjectQuery(void)
+ ?count@QDeclarativeOpenMetaObject@@QBEHXZ @ 1237 NONAME ; int QDeclarativeOpenMetaObject::count(void) const
+ ?isFlag@QMetaEnumBuilder@@QBE_NXZ @ 1238 NONAME ; bool QMetaEnumBuilder::isFlag(void) const
+ ?bindingIndex@QDeclarativePropertyPrivate@@SAHABVQDeclarativeProperty@@@Z @ 1239 NONAME ; int QDeclarativePropertyPrivate::bindingIndex(class QDeclarativeProperty const &)
+ ??0QDeclarativeDomValueBinding@@QAE@ABV0@@Z @ 1240 NONAME ; QDeclarativeDomValueBinding::QDeclarativeDomValueBinding(class QDeclarativeDomValueBinding const &)
+ ?trUtf8@QDeclarativeRectangle@@SA?AVQString@@PBD0@Z @ 1241 NONAME ; class QString QDeclarativeRectangle::trUtf8(char const *, char const *)
+ ?classInfoName@QMetaObjectBuilder@@QBE?AVQByteArray@@H@Z @ 1242 NONAME ; class QByteArray QMetaObjectBuilder::classInfoName(int) const
+ ?metaObject@QDeclarativeDebugObjectQuery@@UBEPBUQMetaObject@@XZ @ 1243 NONAME ; struct QMetaObject const * QDeclarativeDebugObjectQuery::metaObject(void) const
+ ??4QDeclarativeDomDynamicProperty@@QAEAAV0@ABV0@@Z @ 1244 NONAME ; class QDeclarativeDomDynamicProperty & QDeclarativeDomDynamicProperty::operator=(class QDeclarativeDomDynamicProperty const &)
+ ??_EQDeclarativeDebugEngineReference@@QAE@I@Z @ 1245 NONAME ; QDeclarativeDebugEngineReference::~QDeclarativeDebugEngineReference(unsigned int)
+ ?usedAnchors@QDeclarativeAnchors@@QBE?AV?$QFlags@W4Anchor@QDeclarativeAnchors@@@@XZ @ 1246 NONAME ; class QFlags<enum QDeclarativeAnchors::Anchor> QDeclarativeAnchors::usedAnchors(void) const
+ ?baseline@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1247 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline(void) const
+ ?clear@QDeclarativeListModel@@QAEXXZ @ 1248 NONAME ; void QDeclarativeListModel::clear(void)
+ ??0QDeclarativeDebugObjectExpressionWatch@@QAE@PAVQObject@@@Z @ 1249 NONAME ; QDeclarativeDebugObjectExpressionWatch::QDeclarativeDebugObjectExpressionWatch(class QObject *)
+ ??4QDeclarativeDomProperty@@QAEAAV0@ABV0@@Z @ 1250 NONAME ; class QDeclarativeDomProperty & QDeclarativeDomProperty::operator=(class QDeclarativeDomProperty const &)
+ ?write@QDeclarativeProperty@@SA_NPAVQObject@@ABVQString@@ABVQVariant@@@Z @ 1251 NONAME ; bool QDeclarativeProperty::write(class QObject *, class QString const &, class QVariant const &)
+ ?trUtf8@QDeclarativeContext@@SA?AVQString@@PBD0@Z @ 1252 NONAME ; class QString QDeclarativeContext::trUtf8(char const *, char const *)
+ ?borderChanged@QDeclarativeScaleGrid@@IAEXXZ @ 1253 NONAME ; void QDeclarativeScaleGrid::borderChanged(void)
+ ??1QDeclarativeRectangle@@UAE@XZ @ 1254 NONAME ; QDeclarativeRectangle::~QDeclarativeRectangle(void)
+ ?count@QDeclarativePropertyMap@@QBEHXZ @ 1255 NONAME ; int QDeclarativePropertyMap::count(void) const
+ ?setReturnType@QMetaMethodBuilder@@QAEXABVQByteArray@@@Z @ 1256 NONAME ; void QMetaMethodBuilder::setReturnType(class QByteArray const &)
+ ??0QDeclarativePropertyValueSource@@QAE@XZ @ 1257 NONAME ; QDeclarativePropertyValueSource::QDeclarativePropertyValueSource(void)
+ ?tr@QDeclarativePen@@SA?AVQString@@PBD0H@Z @ 1258 NONAME ; class QString QDeclarativePen::tr(char const *, char const *, int)
+ ?toLiteral@QDeclarativeDomValue@@QBE?AVQDeclarativeDomValueLiteral@@XZ @ 1259 NONAME ; class QDeclarativeDomValueLiteral QDeclarativeDomValue::toLiteral(void) const
+ ??0QDeclarativeOpenMetaObject@@QAE@PAVQObject@@_N@Z @ 1260 NONAME ; QDeclarativeOpenMetaObject::QDeclarativeOpenMetaObject(class QObject *, bool)
+ ?url@QDeclarativeComponent@@QBE?AVQUrl@@XZ @ 1261 NONAME ; class QUrl QDeclarativeComponent::url(void) const
+ ?componentComplete@QDeclarativeStateGroup@@UAEXXZ @ 1262 NONAME ; void QDeclarativeStateGroup::componentComplete(void)
+ ?setMargins@QDeclarativeAnchors@@QAEXM@Z @ 1263 NONAME ; void QDeclarativeAnchors::setMargins(float)
+ ?qt_metacall@QDeclarativeView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1264 NONAME ; int QDeclarativeView::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?state@QDeclarativeStateGroup@@QBE?AVQString@@XZ @ 1265 NONAME ; class QString QDeclarativeStateGroup::state(void) const
+ ??0QDeclarativeDomComponent@@QAE@ABV0@@Z @ 1266 NONAME ; QDeclarativeDomComponent::QDeclarativeDomComponent(class QDeclarativeDomComponent const &)
+ ?queryAvailableEngines@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugEnginesQuery@@PAVQObject@@@Z @ 1267 NONAME ; class QDeclarativeDebugEnginesQuery * QDeclarativeEngineDebug::queryAvailableEngines(class QObject *)
+ ??_EQDeclarativeItemPrivate@@UAE@I@Z @ 1268 NONAME ; QDeclarativeItemPrivate::~QDeclarativeItemPrivate(unsigned int)
+ ?expression@QDeclarativeBinding@@UBE?AVQString@@XZ @ 1269 NONAME ; class QString QDeclarativeBinding::expression(void) const
+ ?position@QDeclarativeDomProperty@@QBEHXZ @ 1270 NONAME ; int QDeclarativeDomProperty::position(void) const
+ ?registerValueTypes@QDeclarativeValueTypeFactory@@SAXXZ @ 1271 NONAME ; void QDeclarativeValueTypeFactory::registerValueTypes(void)
+ ?dynamicProperties@QDeclarativeDomObject@@QBE?AV?$QList@VQDeclarativeDomDynamicProperty@@@@XZ @ 1272 NONAME ; class QList<class QDeclarativeDomDynamicProperty> QDeclarativeDomObject::dynamicProperties(void) const
+ ?attachedPropertiesFunction@QDeclarativeType@@QBEP6APAVQObject@@PAV2@@ZXZ @ 1273 NONAME ; class QObject * (*)(class QObject *) QDeclarativeType::attachedPropertiesFunction(void) const
+ ??1QDeclarativePropertyMap@@UAE@XZ @ 1274 NONAME ; QDeclarativePropertyMap::~QDeclarativePropertyMap(void)
+ ??_EQDeclarativeExtensionInterface@@UAE@I@Z @ 1275 NONAME ; QDeclarativeExtensionInterface::~QDeclarativeExtensionInterface(unsigned int)
+ ??0Variant@QDeclarativeParser@@QAE@NABVQString@@@Z @ 1276 NONAME ; QDeclarativeParser::Variant::Variant(double, class QString const &)
+ ??6QDeclarativeInfo@@QAEAAV0@VQBool@@@Z @ 1277 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QBool)
+ ?setBinding@QDeclarativePropertyPrivate@@SAPAVQDeclarativeAbstractBinding@@PAVQObject@@HHPAV2@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1278 NONAME ; class QDeclarativeAbstractBinding * QDeclarativePropertyPrivate::setBinding(class QObject *, int, int, class QDeclarativeAbstractBinding *, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
+ ?qt_metacast@QDeclarativeDebugExpressionQuery@@UAEPAXPBD@Z @ 1279 NONAME ; void * QDeclarativeDebugExpressionQuery::qt_metacast(char const *)
+ ?contextProperty@QDeclarativeContext@@QBE?AVQVariant@@ABVQString@@@Z @ 1280 NONAME ; class QVariant QDeclarativeContext::contextProperty(class QString const &) const
+ ?verticalCenter@QDeclarativeItemPrivate@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1281 NONAME ; class QDeclarativeAnchorLine QDeclarativeItemPrivate::verticalCenter(void) const
+ ?metaObject@QDeclarativeScaleGrid@@UBEPBUQMetaObject@@XZ @ 1282 NONAME ; struct QMetaObject const * QDeclarativeScaleGrid::metaObject(void) const
+ ?qmlContext@@YAPAVQDeclarativeContext@@PBVQObject@@@Z @ 1283 NONAME ; class QDeclarativeContext * qmlContext(class QObject const *)
+ ?setMethodBody@QDeclarativeEngineDebug@@QAE_NHABVQString@@0@Z @ 1284 NONAME ; bool QDeclarativeEngineDebug::setMethodBody(int, class QString const &, class QString const &)
+ ?transform_count@QDeclarativeItemPrivate@@SAHPAV?$QDeclarativeListProperty@VQGraphicsTransform@@@@@Z @ 1285 NONAME ; int QDeclarativeItemPrivate::transform_count(class QDeclarativeListProperty<class QGraphicsTransform> *)
+ ?tr@QListModelInterface@@SA?AVQString@@PBD0H@Z @ 1286 NONAME ; class QString QListModelInterface::tr(char const *, char const *, int)
+ ??1QDeclarativeDebugFileReference@@QAE@XZ @ 1287 NONAME ; QDeclarativeDebugFileReference::~QDeclarativeDebugFileReference(void)
+ ?style@QDeclarativeText@@QBE?AW4TextStyle@1@XZ @ 1288 NONAME ; enum QDeclarativeText::TextStyle QDeclarativeText::style(void) const
+ ??0QDeclarativeAbstractBinding@@QAE@XZ @ 1289 NONAME ; QDeclarativeAbstractBinding::QDeclarativeAbstractBinding(void)
+ ?staticMetaObject@QDeclarativeDebugEnginesQuery@@2UQMetaObject@@B @ 1290 NONAME ; struct QMetaObject const QDeclarativeDebugEnginesQuery::staticMetaObject
+ ?tr@QDeclarativePixmap@@SA?AVQString@@PBD0@Z @ 1291 NONAME ; class QString QDeclarativePixmap::tr(char const *, char const *)
+ ?isError@QDeclarativeComponent@@QBE_NXZ @ 1292 NONAME ; bool QDeclarativeComponent::isError(void) const
+ ?qt_metacall@QDeclarativeTransition@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1293 NONAME ; int QDeclarativeTransition::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?type@QDeclarativeDomImport@@QBE?AW4Type@1@XZ @ 1294 NONAME ; enum QDeclarativeDomImport::Type QDeclarativeDomImport::type(void) const
+ ??1QDeclarativeDebugConnection@@UAE@XZ @ 1295 NONAME ; QDeclarativeDebugConnection::~QDeclarativeDebugConnection(void)
+ ?value@QDeclarativeOpenMetaObject@@QBE?AVQVariant@@H@Z @ 1296 NONAME ; class QVariant QDeclarativeOpenMetaObject::value(int) const
+ ?tr@QDeclarativeDebugRootContextQuery@@SA?AVQString@@PBD0H@Z @ 1297 NONAME ; class QString QDeclarativeDebugRootContextQuery::tr(char const *, char const *, int)
+ ?setFromState@QDeclarativeTransition@@QAEXABVQString@@@Z @ 1298 NONAME ; void QDeclarativeTransition::setFromState(class QString const &)
+ ?metaObject@QDeclarativeDebugService@@UBEPBUQMetaObject@@XZ @ 1299 NONAME ; struct QMetaObject const * QDeclarativeDebugService::metaObject(void) const
+ ?state@QDeclarativeDebugQuery@@QBE?AW4State@1@XZ @ 1300 NONAME ; enum QDeclarativeDebugQuery::State QDeclarativeDebugQuery::state(void) const
+ ?setBottom@QDeclarativeScaleGrid@@QAEXH@Z @ 1301 NONAME ; void QDeclarativeScaleGrid::setBottom(int)
+ ?topMarginChanged@QDeclarativeAnchors@@IAEXXZ @ 1302 NONAME ; void QDeclarativeAnchors::topMarginChanged(void)
+ ?itemChange@QDeclarativeItem@@MAE?AVQVariant@@W4GraphicsItemChange@QGraphicsItem@@ABV2@@Z @ 1303 NONAME ; class QVariant QDeclarativeItem::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &)
+ ?position@QDeclarativeDomObject@@QBEHXZ @ 1304 NONAME ; int QDeclarativeDomObject::position(void) const
+ ?update@QDeclarativeBinding@@UAEXV?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1305 NONAME ; void QDeclarativeBinding::update(class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
+ ?tr@QDeclarativeBehavior@@SA?AVQString@@PBD0@Z @ 1306 NONAME ; class QString QDeclarativeBehavior::tr(char const *, char const *)
+ ?isDebuggingEnabled@QDeclarativeDebugService@@SA_NXZ @ 1307 NONAME ; bool QDeclarativeDebugService::isDebuggingEnabled(void)
+ ?tr@QDeclarativeText@@SA?AVQString@@PBD0H@Z @ 1308 NONAME ; class QString QDeclarativeText::tr(char const *, char const *, int)
+ ?reset@QDeclarativeProperty@@QBE_NXZ @ 1309 NONAME ; bool QDeclarativeProperty::reset(void) const
+ ?objectDebugId@QDeclarativeDebugWatch@@QBEHXZ @ 1310 NONAME ; int QDeclarativeDebugWatch::objectDebugId(void) const
+ ?width@QDeclarativeItemPrivate@@UBEMXZ @ 1311 NONAME ; float QDeclarativeItemPrivate::width(void) const
+ ?d_func@QMetaMethodBuilder@@ABEPAVQMetaMethodBuilderPrivate@@XZ @ 1312 NONAME ; class QMetaMethodBuilderPrivate * QMetaMethodBuilder::d_func(void) const
+ ?isScript@Variant@QDeclarativeParser@@QBE_NXZ @ 1313 NONAME ; bool QDeclarativeParser::Variant::isScript(void) const
+ ?classBegin@QDeclarativeStateGroup@@UAEXXZ @ 1314 NONAME ; void QDeclarativeStateGroup::classBegin(void)
+ ?qt_metacast@QDeclarativeRectangle@@UAEPAXPBD@Z @ 1315 NONAME ; void * QDeclarativeRectangle::qt_metacast(char const *)
+ ?qt_metacast@QDeclarativeExpression@@UAEPAXPBD@Z @ 1316 NONAME ; void * QDeclarativeExpression::qt_metacast(char const *)
+ ?indexOfProperty@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1317 NONAME ; int QMetaObjectBuilder::indexOfProperty(class QByteArray const &)
+ ?vAlign@QDeclarativeText@@QBE?AW4VAlignment@1@XZ @ 1318 NONAME ; enum QDeclarativeText::VAlignment QDeclarativeText::vAlign(void) const
+ ?addEnumerator@QMetaObjectBuilder@@QAE?AVQMetaEnumBuilder@@ABVQByteArray@@@Z @ 1319 NONAME ; class QMetaEnumBuilder QMetaObjectBuilder::addEnumerator(class QByteArray const &)
+ ??1QDeclarativeError@@QAE@XZ @ 1320 NONAME ; QDeclarativeError::~QDeclarativeError(void)
+ ?property@QDeclarativeProperty@@QBE?AVQMetaProperty@@XZ @ 1321 NONAME ; class QMetaProperty QDeclarativeProperty::property(void) const
+ ?tr@QDeclarativeText@@SA?AVQString@@PBD0@Z @ 1322 NONAME ; class QString QDeclarativeText::tr(char const *, char const *)
+ ?write@QDeclarativeProperty@@SA_NPAVQObject@@ABVQString@@ABVQVariant@@PAVQDeclarativeContext@@@Z @ 1323 NONAME ; bool QDeclarativeProperty::write(class QObject *, class QString const &, class QVariant const &, class QDeclarativeContext *)
+ ??0QDeclarativeGridScaledImage@@QAE@XZ @ 1324 NONAME ; QDeclarativeGridScaledImage::QDeclarativeGridScaledImage(void)
+ ?setText@QDeclarativeText@@QAEXABVQString@@@Z @ 1325 NONAME ; void QDeclarativeText::setText(class QString const &)
+ ?setBaseline@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 1326 NONAME ; void QDeclarativeAnchors::setBaseline(class QDeclarativeAnchorLine const &)
+ ?resetCenterIn@QDeclarativeAnchors@@QAEXXZ @ 1327 NONAME ; void QDeclarativeAnchors::resetCenterIn(void)
+ ?pixmapUrl@QDeclarativeGridScaledImage@@QBE?AVQString@@XZ @ 1328 NONAME ; class QString QDeclarativeGridScaledImage::pixmapUrl(void) const
+ ?name@QDeclarativeOpenMetaObject@@QBE?AVQByteArray@@H@Z @ 1329 NONAME ; class QByteArray QDeclarativeOpenMetaObject::name(int) const
+ ?trUtf8@QDeclarativeDebugObjectQuery@@SA?AVQString@@PBD0@Z @ 1330 NONAME ; class QString QDeclarativeDebugObjectQuery::trUtf8(char const *, char const *)
+ ?qt_metacall@QDeclarativeEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1331 NONAME ; int QDeclarativeEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?getStaticMetaObject@QDeclarativeAnchors@@SAABUQMetaObject@@XZ @ 1332 NONAME ; struct QMetaObject const & QDeclarativeAnchors::getStaticMetaObject(void)
+ ??0QDeclarativeProperty@@QAE@PAVQObject@@ABVQString@@@Z @ 1333 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QString const &)
+ ?trUtf8@QDeclarativeState@@SA?AVQString@@PBD0@Z @ 1334 NONAME ; class QString QDeclarativeState::trUtf8(char const *, char const *)
+ ?setStaticMetacallFunction@QMetaObjectBuilder@@QAEXP6AHW4Call@QMetaObject@@HPAPAX@Z@Z @ 1335 NONAME ; void QMetaObjectBuilder::setStaticMetacallFunction(int (*)(enum QMetaObject::Call, int, void * *))
+ ?properties@QDeclarativeDomObject@@QBE?AV?$QList@VQDeclarativeDomProperty@@@@XZ @ 1336 NONAME ; class QList<class QDeclarativeDomProperty> QDeclarativeDomObject::properties(void) const
+ ??0QDeclarativeExpression@@QAE@PAVQDeclarativeContext@@PAVQObject@@ABVQString@@1@Z @ 1337 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContext *, class QObject *, class QString const &, class QObject *)
+ ?tr@QDeclarativeTransition@@SA?AVQString@@PBD0H@Z @ 1338 NONAME ; class QString QDeclarativeTransition::tr(char const *, char const *, int)
+ ?dateTimeFromString@QDeclarativeStringConverters@@YA?AVQDateTime@@ABVQString@@PA_N@Z @ 1339 NONAME ; class QDateTime QDeclarativeStringConverters::dateTimeFromString(class QString const &, bool *)
+ ?implicitWidth@QDeclarativeItem@@QBEMXZ @ 1340 NONAME ; float QDeclarativeItem::implicitWidth(void) const
+ ?metaObject@QDeclarativeContext@@UBEPBUQMetaObject@@XZ @ 1341 NONAME ; struct QMetaObject const * QDeclarativeContext::metaObject(void) const
+ ??0QDeclarativeContext@@AAE@PAVQDeclarativeContextData@@@Z @ 1342 NONAME ; QDeclarativeContext::QDeclarativeContext(class QDeclarativeContextData *)
+ ?maximumPacketSize@QPacketProtocol@@QBEHXZ @ 1343 NONAME ; int QPacketProtocol::maximumPacketSize(void) const
+ ??_EQDeclarativeDebuggerStatus@@UAE@I@Z @ 1344 NONAME ; QDeclarativeDebuggerStatus::~QDeclarativeDebuggerStatus(unsigned int)
+ ?error@QDeclarativeCustomParser@@IAEXABVQString@@@Z @ 1345 NONAME ; void QDeclarativeCustomParser::error(class QString const &)
+ ?messageReceived@QDeclarativeDebugService@@MAEXABVQByteArray@@@Z @ 1346 NONAME ; void QDeclarativeDebugService::messageReceived(class QByteArray const &)
+ ??0QDeclarativeParserStatus@@QAE@XZ @ 1347 NONAME ; QDeclarativeParserStatus::QDeclarativeParserStatus(void)
+ ?isNumber@Variant@QDeclarativeParser@@QBE_NXZ @ 1348 NONAME ; bool QDeclarativeParser::Variant::isNumber(void) const
+ ?getStaticMetaObject@QDeclarativeEngineDebug@@SAABUQMetaObject@@XZ @ 1349 NONAME ; struct QMetaObject const & QDeclarativeEngineDebug::getStaticMetaObject(void)
+ ??_EQDeclarativeEngine@@UAE@I@Z @ 1350 NONAME ; QDeclarativeEngine::~QDeclarativeEngine(unsigned int)
+ ?isNull@QDeclarativePixmap@@QBE_NXZ @ 1351 NONAME ; bool QDeclarativePixmap::isNull(void) const
+ ??1QDeclarativeCustomParserNode@@QAE@XZ @ 1352 NONAME ; QDeclarativeCustomParserNode::~QDeclarativeCustomParserNode(void)
+ ??1QDeclarativeAction@@QAE@XZ @ 1353 NONAME ; QDeclarativeAction::~QDeclarativeAction(void)
+ ?resourcesLoading@QDeclarativeText@@QBEHXZ @ 1354 NONAME ; int QDeclarativeText::resourcesLoading(void) const
+ ?isBoolean@Variant@QDeclarativeParser@@QBE_NXZ @ 1355 NONAME ; bool QDeclarativeParser::Variant::isBoolean(void) const
+ ??0QDeclarativeAction@@QAE@XZ @ 1356 NONAME ; QDeclarativeAction::QDeclarativeAction(void)
+ ?signalOffset@QDeclarativeOpenMetaObjectType@@QBEHXZ @ 1357 NONAME ; int QDeclarativeOpenMetaObjectType::signalOffset(void) const
+ ?index@QMetaEnumBuilder@@QBEHXZ @ 1358 NONAME ; int QMetaEnumBuilder::index(void) const
+ ?setResettable@QMetaPropertyBuilder@@QAEX_N@Z @ 1359 NONAME ; void QMetaPropertyBuilder::setResettable(bool)
+ ??0QDeclarativeError@@QAE@ABV0@@Z @ 1360 NONAME ; QDeclarativeError::QDeclarativeError(class QDeclarativeError const &)
+ ?classInfoCount@QMetaObjectBuilder@@QBEHXZ @ 1361 NONAME ; int QMetaObjectBuilder::classInfoCount(void) const
+ ?isObject@QDeclarativeDomValue@@QBE_NXZ @ 1362 NONAME ; bool QDeclarativeDomValue::isObject(void) const
+ ?left@QDeclarativeScaleGrid@@QBEHXZ @ 1363 NONAME ; int QDeclarativeScaleGrid::left(void) const
+ ?qt_metacast@QDeclarativeDebugEnginesQuery@@UAEPAXPBD@Z @ 1364 NONAME ; void * QDeclarativeDebugEnginesQuery::qt_metacast(char const *)
+ ?d_func@QDeclarativeView@@AAEPAVQDeclarativeViewPrivate@@XZ @ 1365 NONAME ; class QDeclarativeViewPrivate * QDeclarativeView::d_func(void)
+ ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugPropertyWatch@@ABVQDeclarativeDebugPropertyReference@@PAVQObject@@@Z @ 1366 NONAME ; class QDeclarativeDebugPropertyWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugPropertyReference const &, class QObject *)
+ ?stateChanged@QDeclarativeStateGroup@@IAEXABVQString@@@Z @ 1367 NONAME ; void QDeclarativeStateGroup::stateChanged(class QString const &)
+ ??0QDeclarativeDomValueValueSource@@QAE@XZ @ 1368 NONAME ; QDeclarativeDomValueValueSource::QDeclarativeDomValueValueSource(void)
+ ?customStringConverter@QDeclarativeMetaType@@SAP6A?AVQVariant@@ABVQString@@@ZH@Z @ 1369 NONAME ; class QVariant (*)(class QString const &) QDeclarativeMetaType::customStringConverter(int)
+ ?baselineOffsetChanged@QDeclarativeAnchors@@IAEXXZ @ 1370 NONAME ; void QDeclarativeAnchors::baselineOffsetChanged(void)
+ ?tr@QDeclarativeView@@SA?AVQString@@PBD0H@Z @ 1371 NONAME ; class QString QDeclarativeView::tr(char const *, char const *, int)
+ ??4QDeclarativeDebugFileReference@@QAEAAV0@ABV0@@Z @ 1372 NONAME ; class QDeclarativeDebugFileReference & QDeclarativeDebugFileReference::operator=(class QDeclarativeDebugFileReference const &)
+ ?eventFilter@QDeclarativeView@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 1373 NONAME ; bool QDeclarativeView::eventFilter(class QObject *, class QEvent *)
+ ??1QDeclarativeView@@UAE@XZ @ 1374 NONAME ; QDeclarativeView::~QDeclarativeView(void)
+ ?verticalCenter@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1375 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::verticalCenter(void) const
+ ?setIsFlag@QMetaEnumBuilder@@QAEX_N@Z @ 1376 NONAME ; void QMetaEnumBuilder::setIsFlag(bool)
+ ?trUtf8@QDeclarativeDebugConnection@@SA?AVQString@@PBD0H@Z @ 1377 NONAME ; class QString QDeclarativeDebugConnection::trUtf8(char const *, char const *, int)
+ ?majorVersion@QDeclarativeType@@QBEHXZ @ 1378 NONAME ; int QDeclarativeType::majorVersion(void) const
+ ?trUtf8@QDeclarativeDebugObjectExpressionWatch@@SA?AVQString@@PBD0@Z @ 1379 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::trUtf8(char const *, char const *)
+ ?baseUrl@QDeclarativeEngine@@QBE?AVQUrl@@XZ @ 1380 NONAME ; class QUrl QDeclarativeEngine::baseUrl(void) const
+ ??6QDeclarativeInfo@@QAEAAV0@PBX@Z @ 1381 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(void const *)
+ ?setTop@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 1382 NONAME ; void QDeclarativeAnchors::setTop(class QDeclarativeAnchorLine const &)
+ ?setEnabled@QDeclarativeBinding@@UAEX_NV?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1383 NONAME ; void QDeclarativeBinding::setEnabled(bool, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
+ ??_EQDeclarativeNetworkAccessManagerFactory@@UAE@I@Z @ 1384 NONAME ; QDeclarativeNetworkAccessManagerFactory::~QDeclarativeNetworkAccessManagerFactory(unsigned int)
+ ?qmlTypes@QDeclarativeMetaType@@SA?AV?$QList@PAVQDeclarativeType@@@@XZ @ 1385 NONAME ; class QList<class QDeclarativeType *> QDeclarativeMetaType::qmlTypes(void)
+ ?valueTypeCoreIndex@QDeclarativePropertyPrivate@@SAHABVQDeclarativeProperty@@@Z @ 1386 NONAME ; int QDeclarativePropertyPrivate::valueTypeCoreIndex(class QDeclarativeProperty const &)
+ ?writeEnumProperty@QDeclarativePropertyPrivate@@SA_NABVQMetaProperty@@HPAVQObject@@ABVQVariant@@H@Z @ 1387 NONAME ; bool QDeclarativePropertyPrivate::writeEnumProperty(class QMetaProperty const &, int, class QObject *, class QVariant const &, int)
+ ?setEnabled@QDeclarativeDebugClient@@QAEX_N@Z @ 1388 NONAME ; void QDeclarativeDebugClient::setEnabled(bool)
+ ??1QMetaObjectBuilder@@UAE@XZ @ 1389 NONAME ; QMetaObjectBuilder::~QMetaObjectBuilder(void)
+ ?tr@QDeclarativeStateOperation@@SA?AVQString@@PBD0@Z @ 1390 NONAME ; class QString QDeclarativeStateOperation::tr(char const *, char const *)
+ ?clear@QPacket@@QAEXXZ @ 1391 NONAME ; void QPacket::clear(void)
+ ?getStaticMetaObject@QDeclarativeDebugClient@@SAABUQMetaObject@@XZ @ 1392 NONAME ; struct QMetaObject const & QDeclarativeDebugClient::getStaticMetaObject(void)
+ ??0QDeclarativeDomList@@QAE@ABV0@@Z @ 1393 NONAME ; QDeclarativeDomList::QDeclarativeDomList(class QDeclarativeDomList const &)
+ ?gridTop@QDeclarativeGridScaledImage@@QBEHXZ @ 1394 NONAME ; int QDeclarativeGridScaledImage::gridTop(void) const
+ ?setUrl@QDeclarativeError@@QAEXABVQUrl@@@Z @ 1395 NONAME ; void QDeclarativeError::setUrl(class QUrl const &)
+ ?setMaximumPacketSize@QPacketProtocol@@QAEHH@Z @ 1396 NONAME ; int QPacketProtocol::setMaximumPacketSize(int)
+ ??_EQDeclarativeAction@@QAE@I@Z @ 1397 NONAME ; QDeclarativeAction::~QDeclarativeAction(unsigned int)
+ ?trUtf8@QDeclarativeDebugWatch@@SA?AVQString@@PBD0@Z @ 1398 NONAME ; class QString QDeclarativeDebugWatch::trUtf8(char const *, char const *)
+ ?read@QDeclarativeProperty@@SA?AVQVariant@@PAVQObject@@ABVQString@@@Z @ 1399 NONAME ; class QVariant QDeclarativeProperty::read(class QObject *, class QString const &)
+ ?widthValid@QDeclarativeItem@@IBE_NXZ @ 1400 NONAME ; bool QDeclarativeItem::widthValid(void) const
+ ?staticMetaObject@QDeclarativeState@@2UQMetaObject@@B @ 1401 NONAME ; struct QMetaObject const QDeclarativeState::staticMetaObject
+ ?setAccess@QMetaMethodBuilder@@QAEXW4Access@QMetaMethod@@@Z @ 1402 NONAME ; void QMetaMethodBuilder::setAccess(enum QMetaMethod::Access)
+ ??0QDeclarativeAction@@QAE@PAVQObject@@ABVQString@@PAVQDeclarativeContext@@ABVQVariant@@@Z @ 1403 NONAME ; QDeclarativeAction::QDeclarativeAction(class QObject *, class QString const &, class QDeclarativeContext *, class QVariant const &)
+ ?staticMetaObject@QDeclarativeDebugClient@@2UQMetaObject@@B @ 1404 NONAME ; struct QMetaObject const QDeclarativeDebugClient::staticMetaObject
+ ?trUtf8@QDeclarativeDebugEnginesQuery@@SA?AVQString@@PBD0@Z @ 1405 NONAME ; class QString QDeclarativeDebugEnginesQuery::trUtf8(char const *, char const *)
+ ?d_func@QDeclarativeExpression@@ABEPBVQDeclarativeExpressionPrivate@@XZ @ 1406 NONAME ; class QDeclarativeExpressionPrivate const * QDeclarativeExpression::d_func(void) const
+ ??1QDeclarativeValueType@@UAE@XZ @ 1407 NONAME ; QDeclarativeValueType::~QDeclarativeValueType(void)
+ ?setBaseUrl@QDeclarativeContext@@QAEXABVQUrl@@@Z @ 1408 NONAME ; void QDeclarativeContext::setBaseUrl(class QUrl const &)
+ ??_EQDeclarativeAbstractBinding@@UAE@I@Z @ 1409 NONAME ; QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding(unsigned int)
+ ?queryExpressionResult@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugExpressionQuery@@HABVQString@@PAVQObject@@@Z @ 1410 NONAME ; class QDeclarativeDebugExpressionQuery * QDeclarativeEngineDebug::queryExpressionResult(int, class QString const &, class QObject *)
+ ?indexOfMethod@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1411 NONAME ; int QMetaObjectBuilder::indexOfMethod(class QByteArray const &)
+ ?setCached@QDeclarativeOpenMetaObject@@QAEX_N@Z @ 1412 NONAME ; void QDeclarativeOpenMetaObject::setCached(bool)
+ ?length@QDeclarativeDomList@@QBEHXZ @ 1413 NONAME ; int QDeclarativeDomList::length(void) const
+ ?horizontalTileRule@QDeclarativeGridScaledImage@@QBE?AW4TileMode@QDeclarativeBorderImage@@XZ @ 1414 NONAME ; enum QDeclarativeBorderImage::TileMode QDeclarativeGridScaledImage::horizontalTileRule(void) const
+ ??0QDeclarativeCustomParserProperty@@QAE@XZ @ 1415 NONAME ; QDeclarativeCustomParserProperty::QDeclarativeCustomParserProperty(void)
+ ??1QDeclarativeEngineDebug@@UAE@XZ @ 1416 NONAME ; QDeclarativeEngineDebug::~QDeclarativeEngineDebug(void)
+ ?qt_metacall@QDeclarativeEngineDebug@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1417 NONAME ; int QDeclarativeEngineDebug::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?q_func@QDeclarativeItemPrivate@@ABEPBVQDeclarativeItem@@XZ @ 1418 NONAME ; class QDeclarativeItem const * QDeclarativeItemPrivate::q_func(void) const
+ ?customParser@QDeclarativeType@@QBEPAVQDeclarativeCustomParser@@XZ @ 1419 NONAME ; class QDeclarativeCustomParser * QDeclarativeType::customParser(void) const
+ ?setSourceLocation@QDeclarativeExpression@@QAEXABVQString@@H@Z @ 1420 NONAME ; void QDeclarativeExpression::setSourceLocation(class QString const &, int)
+ ?equal@QDeclarativePropertyPrivate@@SA_NPBUQMetaObject@@0@Z @ 1421 NONAME ; bool QDeclarativePropertyPrivate::equal(struct QMetaObject const *, struct QMetaObject const *)
+ ??_EQDeclarativeExtensionPlugin@@UAE@I@Z @ 1422 NONAME ; QDeclarativeExtensionPlugin::~QDeclarativeExtensionPlugin(unsigned int)
+ ?write@QDeclarativePropertyPrivate@@SA_NPAVQObject@@ABUData@QDeclarativePropertyCache@@ABVQVariant@@PAVQDeclarativeContextData@@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1423 NONAME ; bool QDeclarativePropertyPrivate::write(class QObject *, struct QDeclarativePropertyCache::Data const &, class QVariant const &, class QDeclarativeContextData *, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
+ ?debugId@QDeclarativeDebugEngineReference@@QBEHXZ @ 1424 NONAME ; int QDeclarativeDebugEngineReference::debugId(void) const
+ ?metaObject@QDeclarativeDebugEnginesQuery@@UBEPBUQMetaObject@@XZ @ 1425 NONAME ; struct QMetaObject const * QDeclarativeDebugEnginesQuery::metaObject(void) const
+ ??_EQDeclarativeScaleGrid@@UAE@I@Z @ 1426 NONAME ; QDeclarativeScaleGrid::~QDeclarativeScaleGrid(unsigned int)
+ ??1QDeclarativeDebugPropertyReference@@QAE@XZ @ 1427 NONAME ; QDeclarativeDebugPropertyReference::~QDeclarativeDebugPropertyReference(void)
+ ?componentComplete@QDeclarativeAnchors@@QAEXXZ @ 1428 NONAME ; void QDeclarativeAnchors::componentComplete(void)
+ ??1QDeclarativeDomObject@@QAE@XZ @ 1429 NONAME ; QDeclarativeDomObject::~QDeclarativeDomObject(void)
+ ?expression@QDeclarativeDebugObjectExpressionWatch@@QBE?AVQString@@XZ @ 1430 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::expression(void) const
+ ?metaObject@QListModelInterface@@UBEPBUQMetaObject@@XZ @ 1431 NONAME ; struct QMetaObject const * QListModelInterface::metaObject(void) const
+ ?key@QMetaEnumBuilder@@QBE?AVQByteArray@@H@Z @ 1432 NONAME ; class QByteArray QMetaEnumBuilder::key(int) const
+ ?d_func@QMetaEnumBuilder@@ABEPAVQMetaEnumBuilderPrivate@@XZ @ 1433 NONAME ; class QMetaEnumBuilderPrivate * QMetaEnumBuilder::d_func(void) const
+ ??6QDeclarativeInfo@@QAEAAV0@PBD@Z @ 1434 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(char const *)
+ ?d_func@QDeclarativeState@@AAEPAVQDeclarativeStatePrivate@@XZ @ 1435 NONAME ; class QDeclarativeStatePrivate * QDeclarativeState::d_func(void)
+ ??0QDeclarativeDebugEnginesQuery@@AAE@PAVQObject@@@Z @ 1436 NONAME ; QDeclarativeDebugEnginesQuery::QDeclarativeDebugEnginesQuery(class QObject *)
+ ?bottomChanged@QDeclarativeAnchors@@IAEXXZ @ 1437 NONAME ; void QDeclarativeAnchors::bottomChanged(void)
+ ?qListTypeId@QDeclarativeType@@QBEHXZ @ 1438 NONAME ; int QDeclarativeType::qListTypeId(void) const
+ ?setSelectedState@QDeclarativeDebuggerStatus@@UAEX_N@Z @ 1439 NONAME ; void QDeclarativeDebuggerStatus::setSelectedState(bool)
+ ?staticMetaObject@QDeclarativeEngineDebug@@2UQMetaObject@@B @ 1440 NONAME ; struct QMetaObject const QDeclarativeEngineDebug::staticMetaObject
+ ?setExtends@QDeclarativeState@@QAEXABVQString@@@Z @ 1441 NONAME ; void QDeclarativeState::setExtends(class QString const &)
+ ??4QDeclarativeError@@QAEAAV0@ABV0@@Z @ 1442 NONAME ; class QDeclarativeError & QDeclarativeError::operator=(class QDeclarativeError const &)
+ ?tr@QDeclarativeDebugEnginesQuery@@SA?AVQString@@PBD0H@Z @ 1443 NONAME ; class QString QDeclarativeDebugEnginesQuery::tr(char const *, char const *, int)
+ ?d_func@QDeclarativeTransition@@AAEPAVQDeclarativeTransitionPrivate@@XZ @ 1444 NONAME ; class QDeclarativeTransitionPrivate * QDeclarativeTransition::d_func(void)
+ ?propertyWritten@QDeclarativeOpenMetaObject@@MAEXH@Z @ 1445 NONAME ; void QDeclarativeOpenMetaObject::propertyWritten(int)
+ ?trUtf8@QListModelInterface@@SA?AVQString@@PBD0@Z @ 1446 NONAME ; class QString QListModelInterface::trUtf8(char const *, char const *)
+ ?setColumnNumber@QDeclarativeDebugFileReference@@QAEXH@Z @ 1447 NONAME ; void QDeclarativeDebugFileReference::setColumnNumber(int)
+ ?drawRect@QDeclarativeRectangle@@AAEXAAVQPainter@@@Z @ 1448 NONAME ; void QDeclarativeRectangle::drawRect(class QPainter &)
+ ?read@QDeclarativeProperty@@QBE?AVQVariant@@XZ @ 1449 NONAME ; class QVariant QDeclarativeProperty::read(void) const
+ ?isEmpty@QDeclarativePropertyMap@@QBE_NXZ @ 1450 NONAME ; bool QDeclarativePropertyMap::isEmpty(void) const
+ ??6@YAAAVQDataStream@@AAV0@ABUQDeclarativeObjectData@QDeclarativeEngineDebugServer@@@Z @ 1451 NONAME ; class QDataStream & operator<<(class QDataStream &, struct QDeclarativeEngineDebugServer::QDeclarativeObjectData const &)
+ ?trUtf8@QDeclarativeDebugObjectQuery@@SA?AVQString@@PBD0H@Z @ 1452 NONAME ; class QString QDeclarativeDebugObjectQuery::trUtf8(char const *, char const *, int)
+ ??0QDeclarativeBinding@@QAE@ABVQString@@PAVQObject@@PAVQDeclarativeContext@@1@Z @ 1453 NONAME ; QDeclarativeBinding::QDeclarativeBinding(class QString const &, class QObject *, class QDeclarativeContext *, class QObject *)
+ ?tr@QDeclarativeItem@@SA?AVQString@@PBD0@Z @ 1454 NONAME ; class QString QDeclarativeItem::tr(char const *, char const *)
+ ??6QDeclarativeInfo@@QAEAAV0@G@Z @ 1455 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(unsigned short)
+ ??0QDeclarativeStateOperation@@IAE@AAVQObjectPrivate@@PAVQObject@@@Z @ 1456 NONAME ; QDeclarativeStateOperation::QDeclarativeStateOperation(class QObjectPrivate &, class QObject *)
+ ?notifyOnValueChanged@QDeclarativeExpression@@QBE_NXZ @ 1457 NONAME ; bool QDeclarativeExpression::notifyOnValueChanged(void) const
+ ?keyPressPreHandler@QDeclarativeItem@@IAEXPAVQKeyEvent@@@Z @ 1458 NONAME ; void QDeclarativeItem::keyPressPreHandler(class QKeyEvent *)
+ ?trUtf8@QDeclarativeItem@@SA?AVQString@@PBD0H@Z @ 1459 NONAME ; class QString QDeclarativeItem::trUtf8(char const *, char const *, int)
+ ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugWatch@@ABVQDeclarativeDebugFileReference@@PAVQObject@@@Z @ 1460 NONAME ; class QDeclarativeDebugWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugFileReference const &, class QObject *)
+ ?paintedHeight@QDeclarativeText@@QBEMXZ @ 1461 NONAME ; float QDeclarativeText::paintedHeight(void) const
+ ?tr@QDeclarativeTransition@@SA?AVQString@@PBD0@Z @ 1462 NONAME ; class QString QDeclarativeTransition::tr(char const *, char const *)
+ ?transform@QDeclarativeItem@@QAE?AV?$QDeclarativeListProperty@VQGraphicsTransform@@@@XZ @ 1463 NONAME ; class QDeclarativeListProperty<class QGraphicsTransform> QDeclarativeItem::transform(void)
+ ?leftChanged@QDeclarativeAnchors@@IAEXXZ @ 1464 NONAME ; void QDeclarativeAnchors::leftChanged(void)
+ ?topChanged@QDeclarativeAnchors@@IAEXXZ @ 1465 NONAME ; void QDeclarativeAnchors::topChanged(void)
+ ??0QMetaObjectBuilder@@QAE@XZ @ 1466 NONAME ; QMetaObjectBuilder::QMetaObjectBuilder(void)
+ ?asBoolean@Variant@QDeclarativeParser@@QBE_NXZ @ 1467 NONAME ; bool QDeclarativeParser::Variant::asBoolean(void) const
+ ?removeEnumerator@QMetaObjectBuilder@@QAEXH@Z @ 1468 NONAME ; void QMetaObjectBuilder::removeEnumerator(int)
+ ?url@QDeclarativeDomObject@@QBE?AVQUrl@@XZ @ 1469 NONAME ; class QUrl QDeclarativeDomObject::url(void) const
+ ?getStaticMetaObject@QDeclarativeScaleGrid@@SAABUQMetaObject@@XZ @ 1470 NONAME ; struct QMetaObject const & QDeclarativeScaleGrid::getStaticMetaObject(void)
+ ?signalExpression@QDeclarativePropertyPrivate@@SAPAVQDeclarativeExpression@@ABVQDeclarativeProperty@@@Z @ 1471 NONAME ; class QDeclarativeExpression * QDeclarativePropertyPrivate::signalExpression(class QDeclarativeProperty const &)
+ ?networkAccessManagerFactory@QDeclarativeEngine@@QBEPAVQDeclarativeNetworkAccessManagerFactory@@XZ @ 1472 NONAME ; class QDeclarativeNetworkAccessManagerFactory * QDeclarativeEngine::networkAccessManagerFactory(void) const
+ ?isStringList@Variant@QDeclarativeParser@@QBE_NXZ @ 1473 NONAME ; bool QDeclarativeParser::Variant::isStringList(void) const
+ ?packetWritten@QPacketProtocol@@IAEXXZ @ 1474 NONAME ; void QPacketProtocol::packetWritten(void)
+ ?getStaticMetaObject@QDeclarativeDebugObjectQuery@@SAABUQMetaObject@@XZ @ 1475 NONAME ; struct QMetaObject const & QDeclarativeDebugObjectQuery::getStaticMetaObject(void)
+ ?isSignalProperty@QDeclarativeProperty@@QBE_NXZ @ 1476 NONAME ; bool QDeclarativeProperty::isSignalProperty(void) const
+ ?d_func@QDeclarativeDebugService@@AAEPAVQDeclarativeDebugServicePrivate@@XZ @ 1477 NONAME ; class QDeclarativeDebugServicePrivate * QDeclarativeDebugService::d_func(void)
+ ?qmlTypeNames@QDeclarativeMetaType@@SA?AV?$QList@VQByteArray@@@@XZ @ 1478 NONAME ; class QList<class QByteArray> QDeclarativeMetaType::qmlTypeNames(void)
+ ?componentComplete@QDeclarativeItem@@MAEXXZ @ 1479 NONAME ; void QDeclarativeItem::componentComplete(void)
+ ?creationContext@QDeclarativeComponent@@QBEPAVQDeclarativeContext@@XZ @ 1480 NONAME ; class QDeclarativeContext * QDeclarativeComponent::creationContext(void) const
+ ?enabledChanged@QDeclarativeBehavior@@IAEXXZ @ 1481 NONAME ; void QDeclarativeBehavior::enabledChanged(void)
+ ?staticMetaObject@QDeclarativeTransition@@2UQMetaObject@@B @ 1482 NONAME ; struct QMetaObject const QDeclarativeTransition::staticMetaObject
+ ??0QDeclarativeInfo@@AAE@PAVQDeclarativeInfoPrivate@@@Z @ 1483 NONAME ; QDeclarativeInfo::QDeclarativeInfo(class QDeclarativeInfoPrivate *)
+ ?name@QDeclarativeDebugContextReference@@QBE?AVQString@@XZ @ 1484 NONAME ; class QString QDeclarativeDebugContextReference::name(void) const
+ ?propertyIndex@QDeclarativeBinding@@UAEHXZ @ 1485 NONAME ; int QDeclarativeBinding::propertyIndex(void)
+ ?tr@QDeclarativeDebugWatch@@SA?AVQString@@PBD0H@Z @ 1486 NONAME ; class QString QDeclarativeDebugWatch::tr(char const *, char const *, int)
+ ?qt_metacast@QDeclarativePropertyMap@@UAEPAXPBD@Z @ 1487 NONAME ; void * QDeclarativePropertyMap::qt_metacast(char const *)
+ ?classBegin@QDeclarativeAnchors@@QAEXXZ @ 1488 NONAME ; void QDeclarativeAnchors::classBegin(void)
+ ?color@QDeclarativeText@@QBE?AVQColor@@XZ @ 1489 NONAME ; class QColor QDeclarativeText::color(void) const
+ ?metaObject@QPacketProtocol@@UBEPBUQMetaObject@@XZ @ 1490 NONAME ; struct QMetaObject const * QPacketProtocol::metaObject(void) const
+ ??4QDeclarativeGridScaledImage@@QAEAAV0@ABV0@@Z @ 1491 NONAME ; class QDeclarativeGridScaledImage & QDeclarativeGridScaledImage::operator=(class QDeclarativeGridScaledImage const &)
+ ?tr@QDeclarativeScaleGrid@@SA?AVQString@@PBD0@Z @ 1492 NONAME ; class QString QDeclarativeScaleGrid::tr(char const *, char const *)
+ ??1QDeclarativeScriptString@@QAE@XZ @ 1493 NONAME ; QDeclarativeScriptString::~QDeclarativeScriptString(void)
+ ??1QDeclarativePropertyValueSource@@UAE@XZ @ 1494 NONAME ; QDeclarativePropertyValueSource::~QDeclarativePropertyValueSource(void)
+ ?position@QDeclarativeDomList@@QBEHXZ @ 1495 NONAME ; int QDeclarativeDomList::position(void) const
+ ?toQObject@QDeclarativeMetaType@@SAPAVQObject@@ABVQVariant@@PA_N@Z @ 1496 NONAME ; class QObject * QDeclarativeMetaType::toQObject(class QVariant const &, bool *)
+ ??_EQDeclarativeItem@@UAE@I@Z @ 1497 NONAME ; QDeclarativeItem::~QDeclarativeItem(unsigned int)
+ ?getStaticMetaObject@QDeclarativeContext@@SAABUQMetaObject@@XZ @ 1498 NONAME ; struct QMetaObject const & QDeclarativeContext::getStaticMetaObject(void)
+ ?metaObject@QDeclarativeListModel@@UBEPBUQMetaObject@@XZ @ 1499 NONAME ; struct QMetaObject const * QDeclarativeListModel::metaObject(void) const
+ ?transformChanged@QDeclarativeItemPrivate@@UAEXXZ @ 1500 NONAME ; void QDeclarativeItemPrivate::transformChanged(void)
+ ?remove@QDeclarativeListModel@@QAEXH@Z @ 1501 NONAME ; void QDeclarativeListModel::remove(int)
+ ?setResizeMode@QDeclarativeView@@QAEXW4ResizeMode@1@@Z @ 1502 NONAME ; void QDeclarativeView::setResizeMode(enum QDeclarativeView::ResizeMode)
+ ?left@QDeclarativeAnchors@@QBE?AVQDeclarativeAnchorLine@@XZ @ 1503 NONAME ; class QDeclarativeAnchorLine QDeclarativeAnchors::left(void) const
+ ?flags@QMetaObjectBuilder@@QBE?AV?$QFlags@W4MetaObjectFlag@QMetaObjectBuilder@@@@XZ @ 1504 NONAME ; class QFlags<enum QMetaObjectBuilder::MetaObjectFlag> QMetaObjectBuilder::flags(void) const
+ ??0QDeclarativeItem@@IAE@AAVQDeclarativeItemPrivate@@PAV0@@Z @ 1505 NONAME ; QDeclarativeItem::QDeclarativeItem(class QDeclarativeItemPrivate &, class QDeclarativeItem *)
+ ??0QDeclarativeContext@@QAE@PAV0@PAVQObject@@@Z @ 1506 NONAME ; QDeclarativeContext::QDeclarativeContext(class QDeclarativeContext *, class QObject *)
+ ?trUtf8@QDeclarativeDebugConnection@@SA?AVQString@@PBD0@Z @ 1507 NONAME ; class QString QDeclarativeDebugConnection::trUtf8(char const *, char const *)
+ ??1QDeclarativeDebugEnginesQuery@@UAE@XZ @ 1508 NONAME ; QDeclarativeDebugEnginesQuery::~QDeclarativeDebugEnginesQuery(void)
+ ?getStaticMetaObject@QDeclarativeTransition@@SAABUQMetaObject@@XZ @ 1509 NONAME ; struct QMetaObject const & QDeclarativeTransition::getStaticMetaObject(void)
+ ?trUtf8@QDeclarativeDebugObjectExpressionWatch@@SA?AVQString@@PBD0H@Z @ 1510 NONAME ; class QString QDeclarativeDebugObjectExpressionWatch::trUtf8(char const *, char const *, int)
+ ?metaObject@QDeclarativePropertyMap@@UBEPBUQMetaObject@@XZ @ 1511 NONAME ; struct QMetaObject const * QDeclarativePropertyMap::metaObject(void) const
+ ?componentRoot@QDeclarativeDomComponent@@QBE?AVQDeclarativeDomObject@@XZ @ 1512 NONAME ; class QDeclarativeDomObject QDeclarativeDomComponent::componentRoot(void) const
+ ?metaObject@QDeclarativeDebugConnection@@UBEPBUQMetaObject@@XZ @ 1513 NONAME ; struct QMetaObject const * QDeclarativeDebugConnection::metaObject(void) const
+ ?setTag@QMetaMethodBuilder@@QAEXABVQByteArray@@@Z @ 1514 NONAME ; void QMetaMethodBuilder::setTag(class QByteArray const &)
+ ?objects@QDeclarativeDebugContextReference@@QBE?AV?$QList@VQDeclarativeDebugObjectReference@@@@XZ @ 1515 NONAME ; class QList<class QDeclarativeDebugObjectReference> QDeclarativeDebugContextReference::objects(void) const
+ ??4Variant@QDeclarativeParser@@QAEAAV01@ABV01@@Z @ 1516 NONAME ; class QDeclarativeParser::Variant & QDeclarativeParser::Variant::operator=(class QDeclarativeParser::Variant const &)
+ ?tr@QDeclarativeStateGroup@@SA?AVQString@@PBD0@Z @ 1517 NONAME ; class QString QDeclarativeStateGroup::tr(char const *, char const *)
+ ?setScopeObject@QDeclarativeScriptString@@QAEXPAVQObject@@@Z @ 1518 NONAME ; void QDeclarativeScriptString::setScopeObject(class QObject *)
+ ??1QDeclarativeBinding@@MAE@XZ @ 1519 NONAME ; QDeclarativeBinding::~QDeclarativeBinding(void)
+ ?importPlugin@QDeclarativeEngine@@QAE_NABVQString@@0PAV2@@Z @ 1520 NONAME ; bool QDeclarativeEngine::importPlugin(class QString const &, class QString const &, class QString *)
+ ?setBottomMargin@QDeclarativeAnchors@@QAEXM@Z @ 1521 NONAME ; void QDeclarativeAnchors::setBottomMargin(float)
+ ?geometryChanged@QDeclarativeItem@@MAEXABVQRectF@@0@Z @ 1522 NONAME ; void QDeclarativeItem::geometryChanged(class QRectF const &, class QRectF const &)
+ ?toValueSource@QDeclarativeDomValue@@QBE?AVQDeclarativeDomValueValueSource@@XZ @ 1523 NONAME ; class QDeclarativeDomValueValueSource QDeclarativeDomValue::toValueSource(void) const
+ ?hAlign@QDeclarativeText@@QBE?AW4HAlignment@1@XZ @ 1524 NONAME ; enum QDeclarativeText::HAlignment QDeclarativeText::hAlign(void) const
+ ?when@QDeclarativeState@@QBEPAVQDeclarativeBinding@@XZ @ 1525 NONAME ; class QDeclarativeBinding * QDeclarativeState::when(void) const
+ ?setRootObject@QDeclarativeView@@MAEXPAVQObject@@@Z @ 1526 NONAME ; void QDeclarativeView::setRootObject(class QObject *)
+ ?resetBottom@QDeclarativeAnchors@@QAEXXZ @ 1527 NONAME ; void QDeclarativeAnchors::resetBottom(void)
+ ?qt_metacall@QDeclarativePropertyMap@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1528 NONAME ; int QDeclarativePropertyMap::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0QDeclarativeDebugEngineReference@@QAE@ABV0@@Z @ 1529 NONAME ; QDeclarativeDebugEngineReference::QDeclarativeDebugEngineReference(class QDeclarativeDebugEngineReference const &)
+ ?objectDebugId@QDeclarativeDebugPropertyReference@@QBEHXZ @ 1530 NONAME ; int QDeclarativeDebugPropertyReference::objectDebugId(void) const
+ ?trUtf8@QDeclarativeDebugQuery@@SA?AVQString@@PBD0@Z @ 1531 NONAME ; class QString QDeclarativeDebugQuery::trUtf8(char const *, char const *)
+ ??AQDeclarativeValueTypeFactory@@QBEPAVQDeclarativeValueType@@H@Z @ 1532 NONAME ; class QDeclarativeValueType * QDeclarativeValueTypeFactory::operator[](int) const
+ ?siblingOrderChange@QDeclarativeItemPrivate@@UAEXXZ @ 1533 NONAME ; void QDeclarativeItemPrivate::siblingOrderChange(void)
+ ??1QDeclarativeState@@UAE@XZ @ 1534 NONAME ; QDeclarativeState::~QDeclarativeState(void)
+ ?paint@QDeclarativeText@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 1535 NONAME ; void QDeclarativeText::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
+ ??1QDeclarativeStateGroup@@UAE@XZ @ 1536 NONAME ; QDeclarativeStateGroup::~QDeclarativeStateGroup(void)
+ ?setEditable@QMetaPropertyBuilder@@QAEX_N@Z @ 1537 NONAME ; void QMetaPropertyBuilder::setEditable(bool)
+ ?setBinding@QDeclarativePropertyPrivate@@SAPAVQDeclarativeAbstractBinding@@ABVQDeclarativeProperty@@PAV2@V?$QFlags@W4WriteFlag@QDeclarativePropertyPrivate@@@@@Z @ 1538 NONAME ; class QDeclarativeAbstractBinding * QDeclarativePropertyPrivate::setBinding(class QDeclarativeProperty const &, class QDeclarativeAbstractBinding *, class QFlags<enum QDeclarativePropertyPrivate::WriteFlag>)
+ ?trUtf8@QDeclarativeBinding@@SA?AVQString@@PBD0@Z @ 1539 NONAME ; class QString QDeclarativeBinding::trUtf8(char const *, char const *)
+ ?requestSize@QDeclarativePixmap@@QBEABVQSize@@XZ @ 1540 NONAME ; class QSize const & QDeclarativePixmap::requestSize(void) const
+ ?progress@QDeclarativeComponent@@QBEMXZ @ 1541 NONAME ; float QDeclarativeComponent::progress(void) const
+ ?d_func@QDeclarativeState@@ABEPBVQDeclarativeStatePrivate@@XZ @ 1542 NONAME ; class QDeclarativeStatePrivate const * QDeclarativeState::d_func(void) const
+ ??0QListModelInterface@@QAE@PAVQObject@@@Z @ 1543 NONAME ; QListModelInterface::QListModelInterface(class QObject *)
+ ?pointFFromString@QDeclarativeStringConverters@@YA?AVQPointF@@ABVQString@@PA_N@Z @ 1544 NONAME ; class QPointF QDeclarativeStringConverters::pointFFromString(class QString const &, bool *)
+ ?propertyCreated@QDeclarativeOpenMetaObject@@MAEXHAAVQMetaPropertyBuilder@@@Z @ 1545 NONAME ; void QDeclarativeOpenMetaObject::propertyCreated(int, class QMetaPropertyBuilder &)
+ ?d_func@QDeclarativeView@@ABEPBVQDeclarativeViewPrivate@@XZ @ 1546 NONAME ; class QDeclarativeViewPrivate const * QDeclarativeView::d_func(void) const
+ ?rootObject@QDeclarativeView@@QBEPAVQGraphicsObject@@XZ @ 1547 NONAME ; class QGraphicsObject * QDeclarativeView::rootObject(void) const
+ ?tr@QDeclarativeBinding@@SA?AVQString@@PBD0H@Z @ 1548 NONAME ; class QString QDeclarativeBinding::tr(char const *, char const *, int)
+ ?queryObjectRecursive@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugObjectQuery@@ABVQDeclarativeDebugObjectReference@@PAVQObject@@@Z @ 1549 NONAME ; class QDeclarativeDebugObjectQuery * QDeclarativeEngineDebug::queryObjectRecursive(class QDeclarativeDebugObjectReference const &, class QObject *)
+ ?prepare@QDeclarativeTransition@@QAEXAAV?$QList@VQDeclarativeAction@@@@AAV?$QList@VQDeclarativeProperty@@@@PAVQDeclarativeTransitionManager@@@Z @ 1550 NONAME ; void QDeclarativeTransition::prepare(class QList<class QDeclarativeAction> &, class QList<class QDeclarativeProperty> &, class QDeclarativeTransitionManager *)
+ ??6QDeclarativeInfo@@QAEAAV0@ABVQUrl@@@Z @ 1551 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QUrl const &)
+ ?scopeObject@QDeclarativeExpression@@QBEPAVQObject@@XZ @ 1552 NONAME ; class QObject * QDeclarativeExpression::scopeObject(void) const
+ ?isValid@QDeclarativeContext@@QBE_NXZ @ 1553 NONAME ; bool QDeclarativeContext::isValid(void) const
+ ?trUtf8@QDeclarativeValueType@@SA?AVQString@@PBD0H@Z @ 1554 NONAME ; class QString QDeclarativeValueType::trUtf8(char const *, char const *, int)
+ ?qmlAttachedPropertiesObjectById@@YAPAVQObject@@HPBV1@_N@Z @ 1555 NONAME ; class QObject * qmlAttachedPropertiesObjectById(int, class QObject const *, bool)
+ ?constructorCount@QMetaObjectBuilder@@QBEHXZ @ 1556 NONAME ; int QMetaObjectBuilder::constructorCount(void) const
+ ??0QDeclarativeDomValueValueInterceptor@@QAE@ABV0@@Z @ 1557 NONAME ; QDeclarativeDomValueValueInterceptor::QDeclarativeDomValueValueInterceptor(class QDeclarativeDomValueValueInterceptor const &)
+ ?object@QDeclarativeDebugObjectQuery@@QBE?AVQDeclarativeDebugObjectReference@@XZ @ 1558 NONAME ; class QDeclarativeDebugObjectReference QDeclarativeDebugObjectQuery::object(void) const
+ ??0QMetaPropertyBuilder@@QAE@XZ @ 1559 NONAME ; QMetaPropertyBuilder::QMetaPropertyBuilder(void)
+ ?toMetaObject@QMetaObjectBuilder@@QBEPAUQMetaObject@@XZ @ 1560 NONAME ; struct QMetaObject * QMetaObjectBuilder::toMetaObject(void) const
+ ?d_func@QDeclarativeEngine@@AAEPAVQDeclarativeEnginePrivate@@XZ @ 1561 NONAME ; class QDeclarativeEnginePrivate * QDeclarativeEngine::d_func(void)
+ ?staticMetaObject@QDeclarativeRectangle@@2UQMetaObject@@B @ 1562 NONAME ; struct QMetaObject const QDeclarativeRectangle::staticMetaObject
+ ?addSignal@QMetaObjectBuilder@@QAE?AVQMetaMethodBuilder@@ABVQByteArray@@@Z @ 1563 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::addSignal(class QByteArray const &)
+ ?getStaticMetaObject@QDeclarativeStateGroup@@SAABUQMetaObject@@XZ @ 1564 NONAME ; struct QMetaObject const & QDeclarativeStateGroup::getStaticMetaObject(void)
+ ?childrenRectChanged@QDeclarativeItem@@IAEXABVQRectF@@@Z @ 1565 NONAME ; void QDeclarativeItem::childrenRectChanged(class QRectF const &)
+ ?isDesignable@QDeclarativeProperty@@QBE_NXZ @ 1566 NONAME ; bool QDeclarativeProperty::isDesignable(void) const
+ ?propertyTypeCategory@QDeclarativePropertyPrivate@@QBE?AW4PropertyTypeCategory@QDeclarativeProperty@@XZ @ 1567 NONAME ; enum QDeclarativeProperty::PropertyTypeCategory QDeclarativePropertyPrivate::propertyTypeCategory(void) const
+ ?setSize@QDeclarativeItem@@QAEXABVQSizeF@@@Z @ 1568 NONAME ; void QDeclarativeItem::setSize(class QSizeF const &)
+ ?generateRoundedRect@QDeclarativeRectangle@@AAEXXZ @ 1569 NONAME ; void QDeclarativeRectangle::generateRoundedRect(void)
+ ??0QDeclarativePixmap@@QAE@PAVQDeclarativeEngine@@ABVQUrl@@ABVQSize@@@Z @ 1570 NONAME ; QDeclarativePixmap::QDeclarativePixmap(class QDeclarativeEngine *, class QUrl const &, class QSize const &)
+ ?tr@QDeclarativeDebugPropertyWatch@@SA?AVQString@@PBD0@Z @ 1571 NONAME ; class QString QDeclarativeDebugPropertyWatch::tr(char const *, char const *)
+ ?propertyTypeCategory@QDeclarativeProperty@@QBE?AW4PropertyTypeCategory@1@XZ @ 1572 NONAME ; enum QDeclarativeProperty::PropertyTypeCategory QDeclarativeProperty::propertyTypeCategory(void) const
+ ??0QPacketAutoSend@@AAE@PAVQPacketProtocol@@@Z @ 1573 NONAME ; QPacketAutoSend::QPacketAutoSend(class QPacketProtocol *)
+ ?keyCount@QMetaEnumBuilder@@QBEHXZ @ 1574 NONAME ; int QMetaEnumBuilder::keyCount(void) const
+ ??1QDeclarativeDomProperty@@QAE@XZ @ 1575 NONAME ; QDeclarativeDomProperty::~QDeclarativeDomProperty(void)
+ ?url@QDeclarativePixmap@@QBEABVQUrl@@XZ @ 1576 NONAME ; class QUrl const & QDeclarativePixmap::url(void) const
+ ?sendMessage@QDeclarativeDebugService@@QAEXABVQByteArray@@@Z @ 1577 NONAME ; void QDeclarativeDebugService::sendMessage(class QByteArray const &)
+ ?context@QDeclarativeScriptString@@QBEPAVQDeclarativeContext@@XZ @ 1578 NONAME ; class QDeclarativeContext * QDeclarativeScriptString::context(void) const
+ ?queryObject@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugObjectQuery@@ABVQDeclarativeDebugObjectReference@@PAVQObject@@@Z @ 1579 NONAME ; class QDeclarativeDebugObjectQuery * QDeclarativeEngineDebug::queryObject(class QDeclarativeDebugObjectReference const &, class QObject *)
+ ?tr@QDeclarativePropertyMap@@SA?AVQString@@PBD0H@Z @ 1580 NONAME ; class QString QDeclarativePropertyMap::tr(char const *, char const *, int)
+ ?setNotifyOnValueChanged@QDeclarativeExpression@@QAEX_N@Z @ 1581 NONAME ; void QDeclarativeExpression::setNotifyOnValueChanged(bool)
+ ??0QDeclarativeExpression@@IAE@PAVQDeclarativeContextData@@PAVQObject@@ABVQString@@AAVQDeclarativeExpressionPrivate@@@Z @ 1582 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContextData *, class QObject *, class QString const &, class QDeclarativeExpressionPrivate &)
+ ?fillChanged@QDeclarativeAnchors@@IAEXXZ @ 1583 NONAME ; void QDeclarativeAnchors::fillChanged(void)
+ ?resources_append@QDeclarativeItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQObject@@@@PAVQObject@@@Z @ 1584 NONAME ; void QDeclarativeItemPrivate::resources_append(class QDeclarativeListProperty<class QObject> *, class QObject *)
+ ??0QDeclarativeComponent@@IAE@AAVQDeclarativeComponentPrivate@@PAVQObject@@@Z @ 1585 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeComponentPrivate &, class QObject *)
+ ?height@QDeclarativeItem@@QBEMXZ @ 1586 NONAME ; float QDeclarativeItem::height(void) const
+ ?minorVersion@QDeclarativeType@@QBEHXZ @ 1587 NONAME ; int QDeclarativeType::minorVersion(void) const
+ ?qt_metacall@QDeclarativeText@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1588 NONAME ; int QDeclarativeText::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?isConnected@QDeclarativeDebugConnection@@QBE_NXZ @ 1589 NONAME ; bool QDeclarativeDebugConnection::isConnected(void) const
+ ??6QDeclarativeInfo@@QAEAAV0@I@Z @ 1590 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(unsigned int)
+ ?setNetworkAccessManagerFactory@QDeclarativeEngine@@QAEXPAVQDeclarativeNetworkAccessManagerFactory@@@Z @ 1591 NONAME ; void QDeclarativeEngine::setNetworkAccessManagerFactory(class QDeclarativeNetworkAccessManagerFactory *)
+ ?tr@QDeclarativeDebugQuery@@SA?AVQString@@PBD0H@Z @ 1592 NONAME ; class QString QDeclarativeDebugQuery::tr(char const *, char const *, int)
+ ??AQDeclarativePropertyMap@@QAEAAVQVariant@@ABVQString@@@Z @ 1593 NONAME ; class QVariant & QDeclarativePropertyMap::operator[](class QString const &)
+ ??0Variant@QDeclarativeParser@@QAE@_N@Z @ 1594 NONAME ; QDeclarativeParser::Variant::Variant(bool)
+ ?trUtf8@QDeclarativeState@@SA?AVQString@@PBD0H@Z @ 1595 NONAME ; class QString QDeclarativeState::trUtf8(char const *, char const *, int)
+ ??0QDeclarativeStateGroup@@QAE@PAVQObject@@@Z @ 1596 NONAME ; QDeclarativeStateGroup::QDeclarativeStateGroup(class QObject *)
+ ?count@QDeclarativeListReference@@QBEHXZ @ 1597 NONAME ; int QDeclarativeListReference::count(void) const
+ ?location@QDeclarativeCustomParserProperty@@QBE?AULocation@QDeclarativeParser@@XZ @ 1598 NONAME ; struct QDeclarativeParser::Location QDeclarativeCustomParserProperty::location(void) const
+ ?metaObject@QDeclarativePen@@UBEPBUQMetaObject@@XZ @ 1599 NONAME ; struct QMetaObject const * QDeclarativePen::metaObject(void) const
+ ?url@QDeclarativeError@@QBE?AVQUrl@@XZ @ 1600 NONAME ; class QUrl QDeclarativeError::url(void) const
+ ?isBinding@QDeclarativeDomValue@@QBE_NXZ @ 1601 NONAME ; bool QDeclarativeDomValue::isBinding(void) const
+ ?name@QDeclarativeProperty@@QBE?AVQString@@XZ @ 1602 NONAME ; class QString QDeclarativeProperty::name(void) const
+ ?asString@Variant@QDeclarativeParser@@QBE?AVQString@@XZ @ 1603 NONAME ; class QString QDeclarativeParser::Variant::asString(void) const
+ ?trUtf8@QDeclarativeExtensionPlugin@@SA?AVQString@@PBD0@Z @ 1604 NONAME ; class QString QDeclarativeExtensionPlugin::trUtf8(char const *, char const *)
+ ?sendMessage@QDeclarativeDebugClient@@QAEXABVQByteArray@@@Z @ 1605 NONAME ; void QDeclarativeDebugClient::sendMessage(class QByteArray const &)
+ ?canAppend@QDeclarativeListReference@@QBE_NXZ @ 1606 NONAME ; bool QDeclarativeListReference::canAppend(void) const
+ ??_EQDeclarativeComponent@@UAE@I@Z @ 1607 NONAME ; QDeclarativeComponent::~QDeclarativeComponent(unsigned int)
+ ?get@QDeclarativeItemPrivate@@SAPAV1@PAVQDeclarativeItem@@@Z @ 1608 NONAME ; class QDeclarativeItemPrivate * QDeclarativeItemPrivate::get(class QDeclarativeItem *)
+ ?staticMetaObject@QDeclarativeView@@2UQMetaObject@@B @ 1609 NONAME ; struct QMetaObject const QDeclarativeView::staticMetaObject
+ ?objectToString@QDeclarativeDebugService@@SA?AVQString@@PAVQObject@@@Z @ 1610 NONAME ; class QString QDeclarativeDebugService::objectToString(class QObject *)
+ ?defaultValue@QDeclarativeDomDynamicProperty@@QBE?AVQDeclarativeDomProperty@@XZ @ 1611 NONAME ; class QDeclarativeDomProperty QDeclarativeDomDynamicProperty::defaultValue(void) const
+ ?relatedMetaObject@QMetaObjectBuilder@@QBEPBUQMetaObject@@H@Z @ 1612 NONAME ; struct QMetaObject const * QMetaObjectBuilder::relatedMetaObject(int) const
+ ?addKey@QMetaEnumBuilder@@QAEHABVQByteArray@@H@Z @ 1613 NONAME ; int QMetaEnumBuilder::addKey(class QByteArray const &, int)
+ ?setPosHelper@QDeclarativeItemPrivate@@UAEXABVQPointF@@@Z @ 1614 NONAME ; void QDeclarativeItemPrivate::setPosHelper(class QPointF const &)
+ ?attributes@QMetaMethodBuilder@@QBEHXZ @ 1615 NONAME ; int QMetaMethodBuilder::attributes(void) const
+ ?lineNumber@QDeclarativeDebugFileReference@@QBEHXZ @ 1616 NONAME ; int QDeclarativeDebugFileReference::lineNumber(void) const
+ ?setTop@QDeclarativeScaleGrid@@QAEXH@Z @ 1617 NONAME ; void QDeclarativeScaleGrid::setTop(int)
+ ?metaObject@QDeclarativeItem@@UBEPBUQMetaObject@@XZ @ 1618 NONAME ; struct QMetaObject const * QDeclarativeItem::metaObject(void) const
+ ?clear@QDeclarativeAbstractBinding@@IAEXXZ @ 1619 NONAME ; void QDeclarativeAbstractBinding::clear(void)
+ ?start@QDeclarativeItemPrivate@@SAXAAVQElapsedTimer@@@Z @ 1620 NONAME ; void QDeclarativeItemPrivate::start(class QElapsedTimer &)
+ ?load@QDeclarativePixmap@@QAEXPAVQDeclarativeEngine@@ABVQUrl@@ABVQSize@@_N@Z @ 1621 NONAME ; void QDeclarativePixmap::load(class QDeclarativeEngine *, class QUrl const &, class QSize const &, bool)
+ ?stringToRule@QDeclarativeGridScaledImage@@CA?AW4TileMode@QDeclarativeBorderImage@@ABVQString@@@Z @ 1622 NONAME ; enum QDeclarativeBorderImage::TileMode QDeclarativeGridScaledImage::stringToRule(class QString const &)
+ ?setHorizontalCenter@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 1623 NONAME ; void QDeclarativeAnchors::setHorizontalCenter(class QDeclarativeAnchorLine const &)
+ ?setFocus@QDeclarativeItem@@QAEX_N@Z @ 1624 NONAME ; void QDeclarativeItem::setFocus(bool)
+ ?connectNotifySignal@QDeclarativeProperty@@QBE_NPAVQObject@@PBD@Z @ 1625 NONAME ; bool QDeclarativeProperty::connectNotifySignal(class QObject *, char const *) const
+ ??4QDeclarativeProperty@@QAEAAV0@ABV0@@Z @ 1626 NONAME ; class QDeclarativeProperty & QDeclarativeProperty::operator=(class QDeclarativeProperty const &)
+ ?messageReceived@QDeclarativeDebugClient@@MAEXABVQByteArray@@@Z @ 1627 NONAME ; void QDeclarativeDebugClient::messageReceived(class QByteArray const &)
+ ?setImplicitWidth@QDeclarativeItem@@IAEXM@Z @ 1628 NONAME ; void QDeclarativeItem::setImplicitWidth(float)
+ ?isInterface@QDeclarativeType@@QBE_NXZ @ 1629 NONAME ; bool QDeclarativeType::isInterface(void) const
+ ??0QDeclarativeContext@@AAE@PAVQDeclarativeEngine@@_N@Z @ 1630 NONAME ; QDeclarativeContext::QDeclarativeContext(class QDeclarativeEngine *, bool)
+ ?initialValue@QDeclarativeOpenMetaObject@@UAE?AVQVariant@@H@Z @ 1631 NONAME ; class QVariant QDeclarativeOpenMetaObject::initialValue(int)
+ ?tr@QDeclarativeView@@SA?AVQString@@PBD0@Z @ 1632 NONAME ; class QString QDeclarativeView::tr(char const *, char const *)
+ ?qt_metacall@QPacketProtocol@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1633 NONAME ; int QPacketProtocol::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0QDeclarativeItem@@QAE@PAV0@@Z @ 1634 NONAME ; QDeclarativeItem::QDeclarativeItem(class QDeclarativeItem *)
+ ?hasDebuggingClient@QDeclarativeDebugService@@SA_NXZ @ 1635 NONAME ; bool QDeclarativeDebugService::hasDebuggingClient(void)
+ ?staticMetaObject@QDeclarativeContext@@2UQMetaObject@@B @ 1636 NONAME ; struct QMetaObject const QDeclarativeContext::staticMetaObject
+ ?setContextForObject@QDeclarativeEngine@@SAXPAVQObject@@PAVQDeclarativeContext@@@Z @ 1637 NONAME ; void QDeclarativeEngine::setContextForObject(class QObject *, class QDeclarativeContext *)
+ ?baselineOffsetChanged@QDeclarativeItem@@IAEXM@Z @ 1638 NONAME ; void QDeclarativeItem::baselineOffsetChanged(float)
+ ??6QDeclarativeInfo@@QAEAAV0@VQChar@@@Z @ 1639 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QChar)
+ ?newObjects@QDeclarativeEngineDebug@@IAEXXZ @ 1640 NONAME ; void QDeclarativeEngineDebug::newObjects(void)
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 21a21221da..01630e25f1 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -2645,7 +2645,7 @@ EXPORTS
?childItems@QGraphicsItem@@QBE?AV?$QList@PAVQGraphicsItem@@@@XZ @ 2644 NONAME ; class QList<class QGraphicsItem *> QGraphicsItem::childItems(void) const
?children@QGraphicsItem@@QBE?AV?$QList@PAVQGraphicsItem@@@@XZ @ 2645 NONAME ; class QList<class QGraphicsItem *> QGraphicsItem::children(void) const
?childrenBoundingRect@QGraphicsItem@@QBE?AVQRectF@@XZ @ 2646 NONAME ; class QRectF QGraphicsItem::childrenBoundingRect(void) const
- ?childrenBoundingRectHelper@QGraphicsItemPrivate@@QAEXPAVQTransform@@PAVQRectF@@@Z @ 2647 NONAME ABSENT ; void QGraphicsItemPrivate::childrenBoundingRectHelper(class QTransform *, class QRectF *)
+ ?childrenBoundingRectHelper@QGraphicsItemPrivate@@QAEXPAVQTransform@@PAVQRectF@@@Z @ 2647 NONAME ; void QGraphicsItemPrivate::childrenBoundingRectHelper(class QTransform *, class QRectF *)
?childrenCheckState@QTreeWidgetItem@@ABE?AVQVariant@@H@Z @ 2648 NONAME ; class QVariant QTreeWidgetItem::childrenCheckState(int) const
?childrenClippedToShape@QGraphicsItemPrivate@@QBE_NXZ @ 2649 NONAME ; bool QGraphicsItemPrivate::childrenClippedToShape(void) const
?childrenCollapsible@QSplitter@@QBE_NXZ @ 2650 NONAME ; bool QSplitter::childrenCollapsible(void) const
@@ -8181,7 +8181,7 @@ EXPORTS
?rowsInserted@QTreeView@@MAEXABVQModelIndex@@HH@Z @ 8180 NONAME ; void QTreeView::rowsInserted(class QModelIndex const &, int, int)
?rowsRemoved@QTreeView@@IAEXABVQModelIndex@@HH@Z @ 8181 NONAME ; void QTreeView::rowsRemoved(class QModelIndex const &, int, int)
?rubberBandSelectionMode@QGraphicsView@@QBE?AW4ItemSelectionMode@Qt@@XZ @ 8182 NONAME ; enum Qt::ItemSelectionMode QGraphicsView::rubberBandSelectionMode(void) const
- ?symbianAdjustedPosition@QDialog@@AAE_NXZ @ 8183 NONAME ; bool QDialog::symbianAdjustedPosition(void)
+ ?s60AdjustedPosition@QDialog@@AAE_NXZ @ 8183 NONAME ABSENT ; bool QDialog::s60AdjustedPosition(void)
?s60UpdateIsOpaque@QWidgetPrivate@@QAEXXZ @ 8184 NONAME ; void QWidgetPrivate::s60UpdateIsOpaque(void)
?saturation@QColor@@QBEHXZ @ 8185 NONAME ; int QColor::saturation(void) const
?saturationF@QColor@@QBEMXZ @ 8186 NONAME ; float QColor::saturationF(void) const
@@ -12609,283 +12609,280 @@ EXPORTS
?currentContext@QEglContext@@CAPAV1@W4API@QEgl@@@Z @ 12608 NONAME ; class QEglContext * QEglContext::currentContext(enum QEgl::API)
?setFocusHelper@QGraphicsItemPrivate@@QAEXW4FocusReason@Qt@@_N1@Z @ 12609 NONAME ; void QGraphicsItemPrivate::setFocusHelper(enum Qt::FocusReason, bool, bool)
?errorString@QEglContext@@SA?AVQString@@H@Z @ 12610 NONAME ABSENT ; class QString QEglContext::errorString(int)
- ?positionInBlock@QTextCursor@@QBEHXZ @ 12611 NONAME ; int QTextCursor::positionInBlock(void) const
- ?height@QGraphicsItemPrivate@@UBEMXZ @ 12612 NONAME ; float QGraphicsItemPrivate::height(void) const
- ?clearUndoRedoStacks@QTextDocument@@QAEXW4Stacks@1@@Z @ 12613 NONAME ; void QTextDocument::clearUndoRedoStacks(enum QTextDocument::Stacks)
- ?mapToViewRect@QGraphicsViewPrivate@@QBE?AVQRect@@PBVQGraphicsItem@@ABVQRectF@@@Z @ 12614 NONAME ; class QRect QGraphicsViewPrivate::mapToViewRect(class QGraphicsItem const *, class QRectF const &) const
- ?findItems@QGraphicsViewPrivate@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQRegion@@PA_NABVQTransform@@@Z @ 12615 NONAME ; class QList<class QGraphicsItem *> QGraphicsViewPrivate::findItems(class QRegion const &, bool *, class QTransform const &) const
- ?constScanLine@QImage@@QBEPBEH@Z @ 12616 NONAME ; unsigned char const * QImage::constScanLine(int) const
- ?text@QStaticText@@QBE?AVQString@@XZ @ 12617 NONAME ; class QString QStaticText::text(void) const
- ?updateLastCenterPoint@QGraphicsViewPrivate@@QAEXXZ @ 12618 NONAME ; void QGraphicsViewPrivate::updateLastCenterPoint(void)
- ?sideWidget@QWizard@@QBEPAVQWidget@@XZ @ 12619 NONAME ; class QWidget * QWizard::sideWidget(void) const
- ?verticalScroll@QGraphicsViewPrivate@@QBE_JXZ @ 12620 NONAME ; long long QGraphicsViewPrivate::verticalScroll(void) const
- ?fileInfoList@QZipReader@@QBE?AV?$QList@UFileInfo@QZipReader@@@@XZ @ 12621 NONAME ; class QList<struct QZipReader::FileInfo> QZipReader::fileInfoList(void) const
- ?setSideWidget@QWizard@@QAEXPAVQWidget@@@Z @ 12622 NONAME ; void QWizard::setSideWidget(class QWidget *)
- ?paste@QLineControl@@QAEXW4Mode@QClipboard@@@Z @ 12623 NONAME ; void QLineControl::paste(enum QClipboard::Mode)
- ?performanceHint@QStaticText@@QBE?AW4PerformanceHint@1@XZ @ 12624 NONAME ; enum QStaticText::PerformanceHint QStaticText::performanceHint(void) const
- ?frameStartIndex@QPaintBuffer@@QBEHH@Z @ 12625 NONAME ; int QPaintBuffer::frameStartIndex(int) const
- ??0QAbstractScrollAreaPrivate@@QAE@XZ @ 12626 NONAME ; QAbstractScrollAreaPrivate::QAbstractScrollAreaPrivate(void)
- ?_q_setViewportCursor@QGraphicsViewPrivate@@QAEXABVQCursor@@@Z @ 12627 NONAME ; void QGraphicsViewPrivate::_q_setViewportCursor(class QCursor const &)
- ?display@QEglContext@@QAEHXZ @ 12628 NONAME ; int QEglContext::display(void)
- ?setPartialUpdateSupport@QWindowSurface@@IAEX_N@Z @ 12629 NONAME ; void QWindowSurface::setPartialUpdateSupport(bool)
- ?transformChanged@QGraphicsItemPrivate@@UAEXXZ @ 12630 NONAME ; void QGraphicsItemPrivate::transformChanged(void)
- ?setUserData@QStaticTextItem@@QAEXPAVQStaticTextUserData@@@Z @ 12631 NONAME ; void QStaticTextItem::setUserData(class QStaticTextUserData *)
- ?isValid@FileInfo@QZipReader@@QBE_NXZ @ 12632 NONAME ; bool QZipReader::FileInfo::isValid(void) const
- ?hasSelectedText@QLabel@@QBE_NXZ @ 12633 NONAME ; bool QLabel::hasSelectedText(void) const
- ?size@QStaticText@@QBE?AVQSizeF@@XZ @ 12634 NONAME ; class QSizeF QStaticText::size(void) const
- ?processCommands@QPainterReplayer@@QAEXABVQPaintBuffer@@PAVQPainter@@HH@Z @ 12635 NONAME ; void QPainterReplayer::processCommands(class QPaintBuffer const &, class QPainter *, int, int)
- ?defaultConfig@QEgl@@YAHHW4API@1@V?$QFlags@W4ConfigOption@QEgl@@@@@Z @ 12636 NONAME ; int QEgl::defaultConfig(int, enum QEgl::API, class QFlags<enum QEgl::ConfigOption>)
- ??0QZipReader@@QAE@PAVQIODevice@@@Z @ 12637 NONAME ; QZipReader::QZipReader(class QIODevice *)
- ?configAttrib@QEglContext@@QBEHH@Z @ 12638 NONAME ; int QEglContext::configAttrib(int) const
- ?setAutoFillBackground@QGraphicsWidget@@QAEX_N@Z @ 12639 NONAME ; void QGraphicsWidget::setAutoFillBackground(bool)
- ??4QStaticText@@QAEAAV0@ABV0@@Z @ 12640 NONAME ; class QStaticText & QStaticText::operator=(class QStaticText const &)
- ?updateRegion@QGraphicsViewPrivate@@QAE_NABVQRectF@@ABVQTransform@@@Z @ 12641 NONAME ; bool QGraphicsViewPrivate::updateRegion(class QRectF const &, class QTransform const &)
- ??9QStaticText@@QBE_NABV0@@Z @ 12642 NONAME ; bool QStaticText::operator!=(class QStaticText const &) const
- ??_EQGraphicsViewPrivate@@UAE@I@Z @ 12643 NONAME ; QGraphicsViewPrivate::~QGraphicsViewPrivate(unsigned int)
- ?status@QZipReader@@QBE?AW4Status@1@XZ @ 12644 NONAME ; enum QZipReader::Status QZipReader::status(void) const
- ?autoFillBackground@QGraphicsWidget@@QBE_NXZ @ 12645 NONAME ; bool QGraphicsWidget::autoFillBackground(void) const
- ?createTextureData@QImageTextureGlyphCache@@UAEXHH@Z @ 12646 NONAME ; void QImageTextureGlyphCache::createTextureData(int, int)
- ?image@QImageTextureGlyphCache@@QBEABVQImage@@XZ @ 12647 NONAME ; class QImage const & QImageTextureGlyphCache::image(void) const
- ?extensions@QEgl@@YA?AVQString@@XZ @ 12648 NONAME ; class QString QEgl::extensions(void)
- ?pageRemoved@QWizard@@IAEXH@Z @ 12649 NONAME ; void QWizard::pageRemoved(int)
- ?init@QAbstractScrollAreaPrivate@@QAEXXZ @ 12650 NONAME ; void QAbstractScrollAreaPrivate::init(void)
- ?mapRectToScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABVQRect@@@Z @ 12651 NONAME ; class QRectF QGraphicsViewPrivate::mapRectToScene(class QRect const &) const
- ?width@QGraphicsItemPrivate@@UBEMXZ @ 12652 NONAME ; float QGraphicsItemPrivate::width(void) const
- ?toPolygon@QBezier@@QBE?AVQPolygonF@@M@Z @ 12653 NONAME ; class QPolygonF QBezier::toPolygon(float) const
- ?freeStyleOptionsArray@QGraphicsViewPrivate@@QAEXPAVQStyleOptionGraphicsItem@@@Z @ 12654 NONAME ; void QGraphicsViewPrivate::freeStyleOptionsArray(class QStyleOptionGraphicsItem *)
- ?visibilityChanged@QToolBar@@IAEX_N@Z @ 12655 NONAME ; void QToolBar::visibilityChanged(bool)
- ?updateInputMethodSensitivity@QGraphicsViewPrivate@@QAEXXZ @ 12656 NONAME ; void QGraphicsViewPrivate::updateInputMethodSensitivity(void)
- ?glyphMargin@QImageTextureGlyphCache@@UBEHXZ @ 12657 NONAME ; int QImageTextureGlyphCache::glyphMargin(void) const
- ?setTextFormat@QStaticText@@QAEXW4TextFormat@Qt@@@Z @ 12658 NONAME ; void QStaticText::setTextFormat(enum Qt::TextFormat)
- ?storeDragDropEvent@QGraphicsViewPrivate@@QAEXPBVQGraphicsSceneDragDropEvent@@@Z @ 12659 NONAME ; void QGraphicsViewPrivate::storeDragDropEvent(class QGraphicsSceneDragDropEvent const *)
- ?updateRect@QGraphicsViewPrivate@@QAE_NABVQRect@@@Z @ 12660 NONAME ; bool QGraphicsViewPrivate::updateRect(class QRect const &)
- ?fileData@QZipReader@@QBE?AVQByteArray@@ABVQString@@@Z @ 12661 NONAME ; class QByteArray QZipReader::fileData(class QString const &) const
- ?translateTouchEvent@QGraphicsViewPrivate@@SAXPAV1@PAVQTouchEvent@@@Z @ 12662 NONAME ; void QGraphicsViewPrivate::translateTouchEvent(class QGraphicsViewPrivate *, class QTouchEvent *)
- ?dispatchPendingUpdateRequests@QGraphicsViewPrivate@@QAEXXZ @ 12663 NONAME ; void QGraphicsViewPrivate::dispatchPendingUpdateRequests(void)
- ?updatePaintedViewBoundingRects@QGraphicsItemPrivate@@QAEX_N@Z @ 12664 NONAME ; void QGraphicsItemPrivate::updatePaintedViewBoundingRects(bool)
- ?setHeight@QGraphicsItemPrivate@@UAEXM@Z @ 12665 NONAME ; void QGraphicsItemPrivate::setHeight(float)
- ?isValidColor@QColor@@SA_NABVQString@@@Z @ 12666 NONAME ; bool QColor::isValidColor(class QString const &)
- ??0QStaticTextItem@@QAE@XZ @ 12667 NONAME ; QStaticTextItem::QStaticTextItem(void)
- ?updateMicroFocus@QGraphicsItem@@IAEXXZ @ 12668 NONAME ; void QGraphicsItem::updateMicroFocus(void)
- ??1QStaticText@@QAE@XZ @ 12669 NONAME ; QStaticText::~QStaticText(void)
- ?nativePixmap@QEgl@@YAPAXPAVQPixmap@@@Z @ 12670 NONAME ; void * QEgl::nativePixmap(class QPixmap *)
- ?render@QWidgetPrivate@@QAEXPAVQPaintDevice@@ABVQPoint@@ABVQRegion@@V?$QFlags@W4RenderFlag@QWidget@@@@_N@Z @ 12671 NONAME ; void QWidgetPrivate::render(class QPaintDevice *, class QPoint const &, class QRegion const &, class QFlags<enum QWidget::RenderFlag>, bool)
- ?constBits@QImage@@QBEPBEXZ @ 12672 NONAME ; unsigned char const * QImage::constBits(void) const
- ??8QStaticText@@QBE_NABV0@@Z @ 12673 NONAME ; bool QStaticText::operator==(class QStaticText const &) const
- ??0FileInfo@QZipReader@@QAE@XZ @ 12674 NONAME ; QZipReader::FileInfo::FileInfo(void)
- ?q_func@QGraphicsViewPrivate@@ABEPBVQGraphicsView@@XZ @ 12675 NONAME ; class QGraphicsView const * QGraphicsViewPrivate::q_func(void) const
- ?textFormat@QStaticText@@QBE?AW4TextFormat@Qt@@XZ @ 12676 NONAME ; enum Qt::TextFormat QStaticText::textFormat(void) const
- ?isReadable@QZipReader@@QBE_NXZ @ 12677 NONAME ; bool QZipReader::isReadable(void) const
- ?getPixmapCursor@QApplicationPrivate@@QAE?AVQPixmap@@W4CursorShape@Qt@@@Z @ 12678 NONAME ; class QPixmap QApplicationPrivate::getPixmapCursor(enum Qt::CursorShape)
- ?entryInfoAt@QZipReader@@QBE?AUFileInfo@1@H@Z @ 12679 NONAME ; struct QZipReader::FileInfo QZipReader::entryInfoAt(int) const
- ?children_append@QGraphicsItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@PAVQGraphicsObject@@@Z @ 12680 NONAME ; void QGraphicsItemPrivate::children_append(class QDeclarativeListProperty<class QGraphicsObject> *, class QGraphicsObject *)
- ?hasPartialUpdateSupport@QWindowSurface@@QBE_NXZ @ 12681 NONAME ; bool QWindowSurface::hasPartialUpdateSupport(void) const
- ?storeMouseEvent@QGraphicsViewPrivate@@QAEXPAVQMouseEvent@@@Z @ 12682 NONAME ; void QGraphicsViewPrivate::storeMouseEvent(class QMouseEvent *)
- ?mapToScene@QGraphicsViewPrivate@@QBE?AVQPointF@@ABV2@@Z @ 12683 NONAME ; class QPointF QGraphicsViewPrivate::mapToScene(class QPointF const &) const
- ?display@QEgl@@YAHXZ @ 12684 NONAME ; int QEgl::display(void)
- ?drawStaticText@QPainter@@QAEXABVQPoint@@ABVQStaticText@@@Z @ 12685 NONAME ; void QPainter::drawStaticText(class QPoint const &, class QStaticText const &)
- ?fillTexture@QImageTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 12686 NONAME ; void QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int)
- ?addToPolygon@QBezier@@QBEXPAVQPolygonF@@M@Z @ 12687 NONAME ; void QBezier::addToPolygon(class QPolygonF *, float) const
- ?eglCreateImageKHR@QEgl@@YAHHHHHPBH@Z @ 12688 NONAME ; int QEgl::eglCreateImageKHR(int, int, int, int, int const *)
- ?resetWidth@QGraphicsItemPrivate@@UAEXXZ @ 12689 NONAME ; void QGraphicsItemPrivate::resetWidth(void)
- ?detach@QStaticText@@AAEXXZ @ 12690 NONAME ; void QStaticText::detach(void)
- ?totalUsed@QPixmapCache@@SAHXZ @ 12691 NONAME ; int QPixmapCache::totalUsed(void)
- ??0QKeySequence@@QAE@ABVQString@@W4SequenceFormat@0@@Z @ 12692 NONAME ; QKeySequence::QKeySequence(class QString const &, enum QKeySequence::SequenceFormat)
- ?device@QZipReader@@QBEPAVQIODevice@@XZ @ 12693 NONAME ; class QIODevice * QZipReader::device(void) const
- ?hasExtension@QEgl@@YA_NPBD@Z @ 12694 NONAME ; bool QEgl::hasExtension(char const *)
- ?mapRectFromScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12695 NONAME ; class QRectF QGraphicsViewPrivate::mapRectFromScene(class QRectF const &) const
- ?commandDescription@QPaintBuffer@@QBE?AVQString@@H@Z @ 12696 NONAME ; class QString QPaintBuffer::commandDescription(int) const
- ?layoutChanged@QGraphicsWidget@@IAEXXZ @ 12697 NONAME ; void QGraphicsWidget::layoutChanged(void)
- ??0QGraphicsViewPrivate@@QAE@XZ @ 12698 NONAME ; QGraphicsViewPrivate::QGraphicsViewPrivate(void)
- ?anchorAt@QPlainTextEdit@@QBE?AVQString@@ABVQPoint@@@Z @ 12699 NONAME ; class QString QPlainTextEdit::anchorAt(class QPoint const &) const
- ?getSubRange@QBezier@@QBE?AV1@MM@Z @ 12700 NONAME ; class QBezier QBezier::getSubRange(float, float) const
- ?replaceScrollBar@QAbstractScrollAreaPrivate@@QAEXPAVQScrollBar@@W4Orientation@Qt@@@Z @ 12701 NONAME ; void QAbstractScrollAreaPrivate::replaceScrollBar(class QScrollBar *, enum Qt::Orientation)
- ?mapToViewRegion@QGraphicsViewPrivate@@QBE?AVQRegion@@PBVQGraphicsItem@@ABVQRectF@@@Z @ 12702 NONAME ; class QRegion QGraphicsViewPrivate::mapToViewRegion(class QGraphicsItem const *, class QRectF const &) const
- ?allPixmaps@QPixmapCache@@SA?AV?$QList@U?$QPair@VQString@@VQPixmap@@@@@@XZ @ 12703 NONAME ; class QList<struct QPair<class QString, class QPixmap> > QPixmapCache::allPixmaps(void)
- ??_EQAbstractScrollAreaPrivate@@UAE@I@Z @ 12704 NONAME ; QAbstractScrollAreaPrivate::~QAbstractScrollAreaPrivate(unsigned int)
- ?pageAdded@QWizard@@IAEXH@Z @ 12705 NONAME ; void QWizard::pageAdded(int)
- ?populate@QTextureGlyphCache@@QAEXPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12706 NONAME ; void QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *)
- ??1QStaticTextItem@@QAE@XZ @ 12707 NONAME ; QStaticTextItem::~QStaticTextItem(void)
- ?populateSceneDragDropEvent@QGraphicsViewPrivate@@QAEXPAVQGraphicsSceneDragDropEvent@@PAVQDropEvent@@@Z @ 12708 NONAME ; void QGraphicsViewPrivate::populateSceneDragDropEvent(class QGraphicsSceneDragDropEvent *, class QDropEvent *)
- ?updateAll@QGraphicsViewPrivate@@QAEXXZ @ 12709 NONAME ; void QGraphicsViewPrivate::updateAll(void)
- ?nativeWindow@QEgl@@YAPAXPAVQWidget@@@Z @ 12710 NONAME ; void * QEgl::nativeWindow(class QWidget *)
- ?children_count@QGraphicsItemPrivate@@SAHPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@@Z @ 12711 NONAME ; int QGraphicsItemPrivate::children_count(class QDeclarativeListProperty<class QGraphicsObject> *)
- ?allocStyleOptionsArray@QGraphicsViewPrivate@@QAEPAVQStyleOptionGraphicsItem@@H@Z @ 12712 NONAME ; class QStyleOptionGraphicsItem * QGraphicsViewPrivate::allocStyleOptionsArray(int)
- ?resizeTextureData@QImageTextureGlyphCache@@UAEXHH@Z @ 12713 NONAME ; void QImageTextureGlyphCache::resizeTextureData(int, int)
- ?drawPixmapFragments@QPainter@@QAEXPBVPixmapFragment@1@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 12714 NONAME ; void QPainter::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
- ?setColorFromString@QColor@@AAE_NABVQString@@@Z @ 12715 NONAME ; bool QColor::setColorFromString(class QString const &)
- ??1QAbstractScrollAreaPrivate@@UAE@XZ @ 12716 NONAME ; QAbstractScrollAreaPrivate::~QAbstractScrollAreaPrivate(void)
- ?setText@QStaticText@@QAEXABVQString@@@Z @ 12717 NONAME ; void QStaticText::setText(class QString const &)
- ?bitPlaneCount@QImage@@QBEHXZ @ 12718 NONAME ; int QImage::bitPlaneCount(void) const
- ?_q_unsetViewportCursor@QGraphicsViewPrivate@@QAEXXZ @ 12719 NONAME ; void QGraphicsViewPrivate::_q_unsetViewportCursor(void)
- ?setUpdateClip@QGraphicsViewPrivate@@QAEXPAVQGraphicsItem@@@Z @ 12720 NONAME ; void QGraphicsViewPrivate::setUpdateClip(class QGraphicsItem *)
- ?resetHeight@QGraphicsItemPrivate@@UAEXXZ @ 12721 NONAME ; void QGraphicsItemPrivate::resetHeight(void)
- ?runtimeData@QPixmapData@@UBEPAV1@XZ @ 12722 NONAME ; class QPixmapData * QPixmapData::runtimeData(void) const
- ?selectedText@QLabel@@QBE?AVQString@@XZ @ 12723 NONAME ; class QString QLabel::selectedText(void) const
- ?childrenList@QGraphicsItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQGraphicsObject@@@@XZ @ 12724 NONAME ; class QDeclarativeListProperty<class QGraphicsObject> QGraphicsItemPrivate::childrenList(void)
- ?childrenChanged@QGraphicsObject@@IAEXXZ @ 12725 NONAME ; void QGraphicsObject::childrenChanged(void)
- ?recalculateContentSize@QGraphicsViewPrivate@@QAEXXZ @ 12726 NONAME ; void QGraphicsViewPrivate::recalculateContentSize(void)
- ?heightChanged@QGraphicsObject@@IAEXXZ @ 12727 NONAME ; void QGraphicsObject::heightChanged(void)
- ?name@QIcon@@QBE?AVQString@@XZ @ 12728 NONAME ; class QString QIcon::name(void) const
- ?errorString@QEgl@@YA?AVQString@@H@Z @ 12729 NONAME ; class QString QEgl::errorString(int)
- ??4FileInfo@QZipReader@@QAEAAU01@ABU01@@Z @ 12730 NONAME ; struct QZipReader::FileInfo & QZipReader::FileInfo::operator=(struct QZipReader::FileInfo const &)
- ??1QGraphicsViewPrivate@@UAE@XZ @ 12731 NONAME ; QGraphicsViewPrivate::~QGraphicsViewPrivate(void)
- ?chooseConfig@QEgl@@YAHPBVQEglProperties@@W4PixelFormatMatch@1@@Z @ 12732 NONAME ; int QEgl::chooseConfig(class QEglProperties const *, enum QEgl::PixelFormatMatch)
- ?prependGraphicsTransform@QGraphicsItemPrivate@@QAEXPAVQGraphicsTransform@@@Z @ 12733 NONAME ; void QGraphicsItemPrivate::prependGraphicsTransform(class QGraphicsTransform *)
- ?eglDestroyImageKHR@QEgl@@YAHHH@Z @ 12734 NONAME ; int QEgl::eglDestroyImageKHR(int, int)
- ?qt_draw_glyphs@@YAXPAVQPainter@@PBIPBVQPointF@@H@Z @ 12735 NONAME ; void qt_draw_glyphs(class QPainter *, unsigned int const *, class QPointF const *, int)
- ?isEmpty@QItemSelectionRange@@QBE_NXZ @ 12736 NONAME ; bool QItemSelectionRange::isEmpty(void) const
- ?count@QZipReader@@QBEHXZ @ 12737 NONAME ; int QZipReader::count(void) const
- ?centerView@QGraphicsViewPrivate@@QAEXW4ViewportAnchor@QGraphicsView@@@Z @ 12738 NONAME ; void QGraphicsViewPrivate::centerView(enum QGraphicsView::ViewportAnchor)
- ?contentsOffset@QAbstractScrollAreaPrivate@@UBE?AVQPoint@@XZ @ 12739 NONAME ; class QPoint QAbstractScrollAreaPrivate::contentsOffset(void) const
- ?_q_vslide@QAbstractScrollAreaPrivate@@QAEXH@Z @ 12740 NONAME ; void QAbstractScrollAreaPrivate::_q_vslide(int)
- ??1QZipReader@@QAE@XZ @ 12741 NONAME ; QZipReader::~QZipReader(void)
- ??_EQImageTextureGlyphCache@@UAE@I@Z @ 12742 NONAME ; QImageTextureGlyphCache::~QImageTextureGlyphCache(unsigned int)
- ?drawPixmapFragments@QPaintEngineEx@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 12743 NONAME ; void QPaintEngineEx::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
- ?nativeDisplay@QEgl@@YAHXZ @ 12744 NONAME ; int QEgl::nativeDisplay(void)
- ?layoutChildren@QAbstractScrollAreaPrivate@@QAEXXZ @ 12745 NONAME ; void QAbstractScrollAreaPrivate::layoutChildren(void)
- ?horizontalScroll@QGraphicsViewPrivate@@QBE_JXZ @ 12746 NONAME ; long long QGraphicsViewPrivate::horizontalScroll(void) const
- ?updateRectF@QGraphicsViewPrivate@@QAE_NABVQRectF@@@Z @ 12747 NONAME ; bool QGraphicsViewPrivate::updateRectF(class QRectF const &)
- ?setPlaceholderText@QLineEdit@@QAEXABVQString@@@Z @ 12748 NONAME ; void QLineEdit::setPlaceholderText(class QString const &)
- ?resizeEvent@QSplitterHandle@@MAEXPAVQResizeEvent@@@Z @ 12749 NONAME ; void QSplitterHandle::resizeEvent(class QResizeEvent *)
- ?drawStaticText@QPainter@@QAEXHHABVQStaticText@@@Z @ 12750 NONAME ; void QPainter::drawStaticText(int, int, class QStaticText const &)
- ?setSelection@QLabel@@QAEXHH@Z @ 12751 NONAME ; void QLabel::setSelection(int, int)
- ?q_func@QAbstractScrollAreaPrivate@@AAEPAVQAbstractScrollArea@@XZ @ 12752 NONAME ; class QAbstractScrollArea * QAbstractScrollAreaPrivate::q_func(void)
- ?updateMicroFocus@QGraphicsObject@@IAEXXZ @ 12753 NONAME ; void QGraphicsObject::updateMicroFocus(void)
- ?drawStaticText@QPainter@@QAEXABVQPointF@@ABVQStaticText@@@Z @ 12754 NONAME ; void QPainter::drawStaticText(class QPointF const &, class QStaticText const &)
- ?processPendingUpdates@QGraphicsViewPrivate@@QAEXXZ @ 12755 NONAME ; void QGraphicsViewPrivate::processPendingUpdates(void)
- ?rubberBandRegion@QGraphicsViewPrivate@@QBE?AVQRegion@@PBVQWidget@@ABVQRect@@@Z @ 12756 NONAME ; class QRegion QGraphicsViewPrivate::rubberBandRegion(class QWidget const *, class QRect const &) const
- ?children_at@QGraphicsItemPrivate@@SAPAVQGraphicsObject@@PAV?$QDeclarativeListProperty@VQGraphicsObject@@@@H@Z @ 12757 NONAME ; class QGraphicsObject * QGraphicsItemPrivate::children_at(class QDeclarativeListProperty<class QGraphicsObject> *, int)
- ?widthChanged@QGraphicsObject@@IAEXXZ @ 12758 NONAME ; void QGraphicsObject::widthChanged(void)
- ?_q_showOrHideScrollBars@QAbstractScrollAreaPrivate@@QAEXXZ @ 12759 NONAME ; void QAbstractScrollAreaPrivate::_q_showOrHideScrollBars(void)
- ?mouseMoveEventHandler@QGraphicsViewPrivate@@QAEXPAVQMouseEvent@@@Z @ 12760 NONAME ; void QGraphicsViewPrivate::mouseMoveEventHandler(class QMouseEvent *)
- ?replayLastMouseEvent@QGraphicsViewPrivate@@QAEXXZ @ 12761 NONAME ; void QGraphicsViewPrivate::replayLastMouseEvent(void)
- ??0QStaticText@@QAE@ABVQString@@@Z @ 12762 NONAME ; QStaticText::QStaticText(class QString const &)
- ?close@QZipReader@@QAEXXZ @ 12763 NONAME ; void QZipReader::close(void)
- ?geometryChanged@QGraphicsWidget@@IAEXXZ @ 12764 NONAME ; void QGraphicsWidget::geometryChanged(void)
- ?setCurveThreshold@QStrokerOps@@QAEXM@Z @ 12765 NONAME ; void QStrokerOps::setCurveThreshold(float)
- ?_q_hslide@QAbstractScrollAreaPrivate@@QAEXH@Z @ 12766 NONAME ; void QAbstractScrollAreaPrivate::_q_hslide(int)
- ?selectionStart@QLabel@@QBEHXZ @ 12767 NONAME ; int QLabel::selectionStart(void) const
- ??0QStaticText@@QAE@XZ @ 12768 NONAME ; QStaticText::QStaticText(void)
- ?curveThreshold@QStrokerOps@@QBEMXZ @ 12769 NONAME ; float QStrokerOps::curveThreshold(void) const
- ?iconName@QIconEngineV2@@QAE?AVQString@@XZ @ 12770 NONAME ; class QString QIconEngineV2::iconName(void)
- ?mapBy@QBezier@@QBE?AV1@ABVQTransform@@@Z @ 12771 NONAME ; class QBezier QBezier::mapBy(class QTransform const &) const
- ??0QZipReader@@QAE@ABVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 12772 NONAME ; QZipReader::QZipReader(class QString const &, class QFlags<enum QIODevice::OpenModeFlag>)
- ?flushDetachedPixmaps@QPixmapCache@@SAXXZ @ 12773 NONAME ; void QPixmapCache::flushDetachedPixmaps(void)
- ?exists@QZipReader@@QBE_NXZ @ 12774 NONAME ; bool QZipReader::exists(void) const
- ?prepare@QStaticText@@QAEXABVQTransform@@ABVQFont@@@Z @ 12775 NONAME ; void QStaticText::prepare(class QTransform const &, class QFont const &)
- ?paste@QTextControl@@QAEXW4Mode@QClipboard@@@Z @ 12776 NONAME ; void QTextControl::paste(enum QClipboard::Mode)
- ?horizontalAdvance@QTextLine@@QBEMXZ @ 12777 NONAME ; float QTextLine::horizontalAdvance(void) const
- ?setCurveThresholdFromTransform@QStrokerOps@@QAEXABVQTransform@@@Z @ 12778 NONAME ; void QStrokerOps::setCurveThresholdFromTransform(class QTransform const &)
- ?textWidth@QStaticText@@QBEMXZ @ 12779 NONAME ; float QStaticText::textWidth(void) const
- ?create@PixmapFragment@QPainter@@SA?AV12@ABVQPointF@@ABVQRectF@@MMMM@Z @ 12780 NONAME ; class QPainter::PixmapFragment QPainter::PixmapFragment::create(class QPointF const &, class QRectF const &, float, float, float, float)
- ?extractAll@QZipReader@@QBE_NABVQString@@@Z @ 12781 NONAME ; bool QZipReader::extractAll(class QString const &) const
- ??0FileInfo@QZipReader@@QAE@ABU01@@Z @ 12782 NONAME ; QZipReader::FileInfo::FileInfo(struct QZipReader::FileInfo const &)
- ?setTextWidth@QStaticText@@QAEXM@Z @ 12783 NONAME ; void QStaticText::setTextWidth(float)
- ?fixup@QIntValidator@@UBEXAAVQString@@@Z @ 12784 NONAME ; void QIntValidator::fixup(class QString &) const
- ?dumpAllConfigs@QEgl@@YAXXZ @ 12785 NONAME ; void QEgl::dumpAllConfigs(void)
- ?assign@QKeySequence@@AAEHABVQString@@W4SequenceFormat@1@@Z @ 12786 NONAME ; int QKeySequence::assign(class QString const &, enum QKeySequence::SequenceFormat)
- ?q_func@QAbstractScrollAreaPrivate@@ABEPBVQAbstractScrollArea@@XZ @ 12787 NONAME ; class QAbstractScrollArea const * QAbstractScrollAreaPrivate::q_func(void) const
- ?mapToScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12788 NONAME ; class QRectF QGraphicsViewPrivate::mapToScene(class QRectF const &) const
- ?updateScroll@QGraphicsViewPrivate@@QAEXXZ @ 12789 NONAME ; void QGraphicsViewPrivate::updateScroll(void)
- ?directoryLoaded@QFileSystemModel@@IAEXABVQString@@@Z @ 12790 NONAME ; void QFileSystemModel::directoryLoaded(class QString const &)
- ?placeholderText@QLineEdit@@QBE?AVQString@@XZ @ 12791 NONAME ; class QString QLineEdit::placeholderText(void) const
- ?setWidth@QGraphicsItemPrivate@@UAEXM@Z @ 12792 NONAME ; void QGraphicsItemPrivate::setWidth(float)
- ?q_func@QGraphicsViewPrivate@@AAEPAVQGraphicsView@@XZ @ 12793 NONAME ; class QGraphicsView * QGraphicsViewPrivate::q_func(void)
- ?setDeviceType@QEglProperties@@QAEXH@Z @ 12794 NONAME ; void QEglProperties::setDeviceType(int)
- ?convertFromImage@QPixmap@@QAE_NABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12795 NONAME ; bool QPixmap::convertFromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
- ?processCommands@QPaintBuffer@@QBEHPAVQPainter@@HH@Z @ 12796 NONAME ; int QPaintBuffer::processCommands(class QPainter *, int, int) const
- ?glyphPadding@QTextureGlyphCache@@UBEHXZ @ 12797 NONAME ; int QTextureGlyphCache::glyphPadding(void) const
- ??1FileInfo@QZipReader@@QAE@XZ @ 12798 NONAME ; QZipReader::FileInfo::~FileInfo(void)
- ?scrollBarPolicyChanged@QAbstractScrollAreaPrivate@@UAEXW4Orientation@Qt@@W4ScrollBarPolicy@3@@Z @ 12799 NONAME ; void QAbstractScrollAreaPrivate::scrollBarPolicyChanged(enum Qt::Orientation, enum Qt::ScrollBarPolicy)
- ?createSurface@QEgl@@YAHPAVQPaintDevice@@HPBVQEglProperties@@@Z @ 12800 NONAME ; int QEgl::createSurface(class QPaintDevice *, int, class QEglProperties const *)
- ?viewportEvent@QAbstractScrollAreaPrivate@@QAE_NPAVQEvent@@@Z @ 12801 NONAME ; bool QAbstractScrollAreaPrivate::viewportEvent(class QEvent *)
- ?frameEndIndex@QPaintBuffer@@QBEHH@Z @ 12802 NONAME ; int QPaintBuffer::frameEndIndex(int) const
- ??1QImageTextureGlyphCache@@UAE@XZ @ 12803 NONAME ; QImageTextureGlyphCache::~QImageTextureGlyphCache(void)
- ?setPerformanceHint@QStaticText@@QAEXW4PerformanceHint@1@@Z @ 12804 NONAME ; void QStaticText::setPerformanceHint(enum QStaticText::PerformanceHint)
- ??0QStaticText@@QAE@ABV0@@Z @ 12805 NONAME ; QStaticText::QStaticText(class QStaticText const &)
- ??0QImageTextureGlyphCache@@QAE@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 12806 NONAME ; QImageTextureGlyphCache::QImageTextureGlyphCache(enum QFontEngineGlyphCache::Type, class QTransform const &)
- ?verticalMovementX@QTextCursor@@QBEHXZ @ 12807 NONAME ; int QTextCursor::verticalMovementX(void) const
- ?runtime_graphics_system@QApplicationPrivate@@2_NA @ 12808 NONAME ; bool QApplicationPrivate::runtime_graphics_system
- ?keepPositionOnInsert@QTextCursor@@QBE_NXZ @ 12809 NONAME ; bool QTextCursor::keepPositionOnInsert(void) const
- ?setKeepPositionOnInsert@QTextCursor@@QAEX_N@Z @ 12810 NONAME ; void QTextCursor::setKeepPositionOnInsert(bool)
- ?textDirection@QProgressBar@@QBE?AW4Direction@1@XZ @ 12811 NONAME ; enum QProgressBar::Direction QProgressBar::textDirection(void) const
- ?setVerticalMovementX@QTextCursor@@QAEXH@Z @ 12812 NONAME ; void QTextCursor::setVerticalMovementX(int)
- ?invertedAppearance@QProgressBar@@QBE_NXZ @ 12813 NONAME ; bool QProgressBar::invertedAppearance(void) const
- ?width@QFontMetrics@@QBEHABVQString@@HH@Z @ 12814 NONAME ; int QFontMetrics::width(class QString const &, int, int) const
- ?aboutToDestroy@QWidgetPrivate@@UAEXXZ @ 12815 NONAME ; void QWidgetPrivate::aboutToDestroy(void)
- ?setTextOption@QStaticText@@QAEXABVQTextOption@@@Z @ 12816 NONAME ; void QStaticText::setTextOption(class QTextOption const &)
- ?pointInsideRectAndMask@QWidgetPrivate@@QBE_NABVQPoint@@@Z @ 12817 NONAME ; bool QWidgetPrivate::pointInsideRectAndMask(class QPoint const &) const
- ?childAtRecursiveHelper@QWidgetPrivate@@QBEPAVQWidget@@ABVQPoint@@_N1@Z @ 12818 NONAME ; class QWidget * QWidgetPrivate::childAtRecursiveHelper(class QPoint const &, bool, bool) const
- ?textOption@QStaticText@@QBE?AVQTextOption@@XZ @ 12819 NONAME ; class QTextOption QStaticText::textOption(void) const
- ?isRightToLeft@QTextEngine@@QBE_NXZ @ 12820 NONAME ; bool QTextEngine::isRightToLeft(void) const
- ?textDirection@QTextBlock@@QBE?AW4LayoutDirection@Qt@@XZ @ 12821 NONAME ; enum Qt::LayoutDirection QTextBlock::textDirection(void) const
- ?convertInPlace@QImageData@@QAE_NW4Format@QImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12822 NONAME ; bool QImageData::convertInPlace(enum QImage::Format, class QFlags<enum Qt::ImageConversionFlag>)
- ?createPixmapForImage@QRasterPixmapData@@IAEXAAVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@_N@Z @ 12823 NONAME ; void QRasterPixmapData::createPixmapForImage(class QImage &, class QFlags<enum Qt::ImageConversionFlag>, bool)
- ??0Tab@QTextOption@@QAE@MW4TabType@1@VQChar@@@Z @ 12824 NONAME ; QTextOption::Tab::Tab(float, enum QTextOption::TabType, class QChar)
- ?fromData@QRasterPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12825 NONAME ; bool QRasterPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
- ?transformed@QRuntimePixmapData@@UBE?AVQPixmap@@ABVQTransform@@W4TransformationMode@Qt@@@Z @ 12826 NONAME ; class QPixmap QRuntimePixmapData::transformed(class QTransform const &, enum Qt::TransformationMode) const
- ?scroll@QRuntimePixmapData@@UAE_NHHABVQRect@@@Z @ 12827 NONAME ; bool QRuntimePixmapData::scroll(int, int, class QRect const &)
- ?buffer@QRuntimePixmapData@@UAEPAVQImage@@XZ @ 12828 NONAME ; class QImage * QRuntimePixmapData::buffer(void)
- ?copy@QRuntimePixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12829 NONAME ; void QRuntimePixmapData::copy(class QPixmapData const *, class QRect const &)
- ?fromData@QRuntimePixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12830 NONAME ; bool QRuntimePixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
- ?readBackInfo@QRuntimePixmapData@@QAEXXZ @ 12831 NONAME ; void QRuntimePixmapData::readBackInfo(void)
- ??_EQRuntimePixmapData@@UAE@I@Z @ 12832 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(unsigned int)
- ?paintEngine@QRuntimePixmapData@@UBEPAVQPaintEngine@@XZ @ 12833 NONAME ; class QPaintEngine * QRuntimePixmapData::paintEngine(void) const
- ?memoryUsage@QRuntimePixmapData@@UBEIXZ @ 12834 NONAME ABSENT ; unsigned int QRuntimePixmapData::memoryUsage(void) const
- ?toImage@QRasterPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12835 NONAME ; class QImage QRasterPixmapData::toImage(class QRect const &) const
- ?fromImageReader@QRasterPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12836 NONAME ; void QRasterPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
- ?fill@QRuntimePixmapData@@UAEXABVQColor@@@Z @ 12837 NONAME ; void QRuntimePixmapData::fill(class QColor const &)
- ?alphaChannel@QRuntimePixmapData@@UBE?AVQPixmap@@XZ @ 12838 NONAME ; class QPixmap QRuntimePixmapData::alphaChannel(void) const
- ?createCompatiblePixmapData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12839 NONAME ; class QPixmapData * QRuntimePixmapData::createCompatiblePixmapData(void) const
- ?toImage@QRuntimePixmapData@@UBE?AVQImage@@XZ @ 12840 NONAME ; class QImage QRuntimePixmapData::toImage(void) const
- ?resize@QRuntimePixmapData@@UAEXHH@Z @ 12841 NONAME ; void QRuntimePixmapData::resize(int, int)
- ?fromNativeType@QRuntimePixmapData@@UAEXPAXW4NativeType@QPixmapData@@@Z @ 12842 NONAME ; void QRuntimePixmapData::fromNativeType(void *, enum QPixmapData::NativeType)
- ?fromFile@QRuntimePixmapData@@UAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12843 NONAME ; bool QRuntimePixmapData::fromFile(class QString const &, char const *, class QFlags<enum Qt::ImageConversionFlag>)
- ?setAlphaChannel@QRuntimePixmapData@@UAEXABVQPixmap@@@Z @ 12844 NONAME ; void QRuntimePixmapData::setAlphaChannel(class QPixmap const &)
- ?fromImageReader@QPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12845 NONAME ; void QPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
- ?toImage@QPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12846 NONAME ; class QImage QPixmapData::toImage(class QRect const &) const
- ?fromImageReader@QPixmap@@SA?AV1@PAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12847 NONAME ; class QPixmap QPixmap::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
- ?fromImage@QRuntimePixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12848 NONAME ; void QRuntimePixmapData::fromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
- ?setMask@QRuntimePixmapData@@UAEXABVQBitmap@@@Z @ 12849 NONAME ; void QRuntimePixmapData::setMask(class QBitmap const &)
- ?mask@QRuntimePixmapData@@UBE?AVQBitmap@@XZ @ 12850 NONAME ; class QBitmap QRuntimePixmapData::mask(void) const
- ?createPixmapData@QGraphicsSystem@@UAEPAVQPixmapData@@PAV2@@Z @ 12851 NONAME ; class QPixmapData * QGraphicsSystem::createPixmapData(class QPixmapData *)
- ?metric@QRuntimePixmapData@@UBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 12852 NONAME ; int QRuntimePixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const
- ??1QRuntimePixmapData@@UAE@XZ @ 12853 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(void)
- ??0QRuntimePixmapData@@QAE@PBVQRuntimeGraphicsSystem@@W4PixelType@QPixmapData@@@Z @ 12854 NONAME ; QRuntimePixmapData::QRuntimePixmapData(class QRuntimeGraphicsSystem const *, enum QPixmapData::PixelType)
- ?hasAlphaChannel@QRuntimePixmapData@@UBE_NXZ @ 12855 NONAME ; bool QRuntimePixmapData::hasAlphaChannel(void) const
- ?runtimeData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12856 NONAME ; class QPixmapData * QRuntimePixmapData::runtimeData(void) const
- ?toNativeType@QRuntimePixmapData@@UAEPAXW4NativeType@QPixmapData@@@Z @ 12857 NONAME ; void * QRuntimePixmapData::toNativeType(enum QPixmapData::NativeType)
- ?copy@QRasterPixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12858 NONAME ; void QRasterPixmapData::copy(class QPixmapData const *, class QRect const &)
- ?eglSwapBuffersRegion2NOK@QEgl@@YAHHHHPBH@Z @ 12859 NONAME ; int QEgl::eglSwapBuffersRegion2NOK(int, int, int, int const *)
- ?swapBuffersRegion2NOK@QEglContext@@QAE_NHPBVQRegion@@@Z @ 12860 NONAME ; bool QEglContext::swapBuffersRegion2NOK(int, class QRegion const *)
- ?OpenIniFileLC@QS60MainApplication@@UBEPAVCDictionaryStore@@AAVRFs@@@Z @ 12861 NONAME ; class CDictionaryStore * QS60MainApplication::OpenIniFileLC(class RFs &) const
- ?Reserved_MtsmObject@QS60MainAppUi@@MAEXXZ @ 12862 NONAME ; void QS60MainAppUi::Reserved_MtsmObject(void)
- ?HandleForegroundEventL@QS60MainAppUi@@MAEXH@Z @ 12863 NONAME ; void QS60MainAppUi::HandleForegroundEventL(int)
- ?OpenFileL@QS60MainDocument@@UAEPAVCFileStore@@HABVTDesC16@@AAVRFs@@@Z @ 12864 NONAME ; class CFileStore * QS60MainDocument::OpenFileL(int, class TDesC16 const &, class RFs &)
- ?HandleTouchPaneSizeChange@QS60MainAppUi@@UAEXXZ @ 12865 NONAME ; void QS60MainAppUi::HandleTouchPaneSizeChange(void)
- ?Reserved_MtsmPosition@QS60MainAppUi@@MAEXXZ @ 12866 NONAME ; void QS60MainAppUi::Reserved_MtsmPosition(void)
- ?ApplicationRect@QS60MainAppUi@@UBE?AVTRect@@XZ @ 12867 NONAME ; class TRect QS60MainAppUi::ApplicationRect(void) const
- ?HandleSystemEventL@QS60MainAppUi@@MAEXABVTWsEvent@@@Z @ 12868 NONAME ; void QS60MainAppUi::HandleSystemEventL(class TWsEvent const &)
- ?HandleApplicationSpecificEventL@QS60MainAppUi@@MAEXHABVTWsEvent@@@Z @ 12869 NONAME ; void QS60MainAppUi::HandleApplicationSpecificEventL(int, class TWsEvent const &)
- ?HandleError@QS60MainAppUi@@UAE?AW4TErrorHandlerResponse@@HABUSExtendedError@@AAVTDes16@@1@Z @ 12870 NONAME ; enum TErrorHandlerResponse QS60MainAppUi::HandleError(int, struct SExtendedError const &, class TDes16 &, class TDes16 &)
- ?PrepareToExit@QS60MainAppUi@@UAEXXZ @ 12871 NONAME ; void QS60MainAppUi::PrepareToExit(void)
- ?MopSupplyObject@QS60MainAppUi@@MAE?AVPtr@TTypeUid@@V3@@Z @ 12872 NONAME ; class TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(class TTypeUid)
- ?SetFadedL@QS60MainAppUi@@UAEXH@Z @ 12873 NONAME ; void QS60MainAppUi::SetFadedL(int)
- ?Exit@QS60MainAppUi@@UAEXXZ @ 12874 NONAME ; void QS60MainAppUi::Exit(void)
- ?ProcessCommandL@QS60MainAppUi@@UAEXH@Z @ 12875 NONAME ; void QS60MainAppUi::ProcessCommandL(int)
- ?OpenFileL@QS60MainDocument@@UAEXAAPAVCFileStore@@AAVRFile@@@Z @ 12876 NONAME ; void QS60MainDocument::OpenFileL(class CFileStore * &, class RFile &)
- ?HandleScreenDeviceChangedL@QS60MainAppUi@@MAEXXZ @ 12877 NONAME ; void QS60MainAppUi::HandleScreenDeviceChangedL(void)
- ?PreDocConstructL@QS60MainApplication@@UAEXXZ @ 12878 NONAME ; void QS60MainApplication::PreDocConstructL(void)
- ?NewAppServerL@QS60MainApplication@@UAEXAAPAVCApaAppServer@@@Z @ 12879 NONAME ; void QS60MainApplication::NewAppServerL(class CApaAppServer * &)
+ ?totalUsed@QPixmapCache@@SAHXZ @ 12611 NONAME ; int QPixmapCache::totalUsed(void)
+ ?drawPixmapFragments@QPainter@@QAEXPBVPixmapFragment@1@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 12612 NONAME ; void QPainter::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
+ ?createCompatiblePixmapData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12613 NONAME ; class QPixmapData * QRuntimePixmapData::createCompatiblePixmapData(void) const
+ ?resizeTextureData@QImageTextureGlyphCache@@UAEXHH@Z @ 12614 NONAME ; void QImageTextureGlyphCache::resizeTextureData(int, int)
+ ??_EQAbstractScrollAreaPrivate@@UAE@I@Z @ 12615 NONAME ; QAbstractScrollAreaPrivate::~QAbstractScrollAreaPrivate(unsigned int)
+ ?mapBy@QBezier@@QBE?AV1@ABVQTransform@@@Z @ 12616 NONAME ; class QBezier QBezier::mapBy(class QTransform const &) const
+ ?alphaChannel@QRuntimePixmapData@@UBE?AVQPixmap@@XZ @ 12617 NONAME ; class QPixmap QRuntimePixmapData::alphaChannel(void) const
+ ?dispatchPendingUpdateRequests@QGraphicsViewPrivate@@QAEXXZ @ 12618 NONAME ; void QGraphicsViewPrivate::dispatchPendingUpdateRequests(void)
+ ?display@QEgl@@YAHXZ @ 12619 NONAME ; int QEgl::display(void)
+ ?setSelection@QLabel@@QAEXHH@Z @ 12620 NONAME ; void QLabel::setSelection(int, int)
+ ?mapToScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12621 NONAME ; class QRectF QGraphicsViewPrivate::mapToScene(class QRectF const &) const
+ ?defaultConfig@QEgl@@YAHHW4API@1@V?$QFlags@W4ConfigOption@QEgl@@@@@Z @ 12622 NONAME ; int QEgl::defaultConfig(int, enum QEgl::API, class QFlags<enum QEgl::ConfigOption>)
+ ?mouseMoveEventHandler@QGraphicsViewPrivate@@QAEXPAVQMouseEvent@@@Z @ 12623 NONAME ; void QGraphicsViewPrivate::mouseMoveEventHandler(class QMouseEvent *)
+ ?textOption@QStaticText@@QBE?AVQTextOption@@XZ @ 12624 NONAME ; class QTextOption QStaticText::textOption(void) const
+ ?status@QZipReader@@QBE?AW4Status@1@XZ @ 12625 NONAME ; enum QZipReader::Status QZipReader::status(void) const
+ ?geometryChanged@QGraphicsWidget@@IAEXXZ @ 12626 NONAME ; void QGraphicsWidget::geometryChanged(void)
+ ??_EQImageTextureGlyphCache@@UAE@I@Z @ 12627 NONAME ; QImageTextureGlyphCache::~QImageTextureGlyphCache(unsigned int)
+ ?OpenIniFileLC@QS60MainApplication@@UBEPAVCDictionaryStore@@AAVRFs@@@Z @ 12628 NONAME ; class CDictionaryStore * QS60MainApplication::OpenIniFileLC(class RFs &) const
+ ?setPerformanceHint@QStaticText@@QAEXW4PerformanceHint@1@@Z @ 12629 NONAME ; void QStaticText::setPerformanceHint(enum QStaticText::PerformanceHint)
+ ?Reserved_MtsmObject@QS60MainAppUi@@MAEXXZ @ 12630 NONAME ; void QS60MainAppUi::Reserved_MtsmObject(void)
+ ?updateInputMethodSensitivity@QGraphicsViewPrivate@@QAEXXZ @ 12631 NONAME ; void QGraphicsViewPrivate::updateInputMethodSensitivity(void)
+ ?pageAdded@QWizard@@IAEXH@Z @ 12632 NONAME ; void QWizard::pageAdded(int)
+ ?setTextOption@QStaticText@@QAEXABVQTextOption@@@Z @ 12633 NONAME ; void QStaticText::setTextOption(class QTextOption const &)
+ ?readBackInfo@QRuntimePixmapData@@QAEXXZ @ 12634 NONAME ; void QRuntimePixmapData::readBackInfo(void)
+ ?invertedAppearance@QProgressBar@@QBE_NXZ @ 12635 NONAME ; bool QProgressBar::invertedAppearance(void) const
+ ?mapToViewRegion@QGraphicsViewPrivate@@QBE?AVQRegion@@PBVQGraphicsItem@@ABVQRectF@@@Z @ 12636 NONAME ; class QRegion QGraphicsViewPrivate::mapToViewRegion(class QGraphicsItem const *, class QRectF const &) const
+ ?setKeepPositionOnInsert@QTextCursor@@QAEX_N@Z @ 12637 NONAME ; void QTextCursor::setKeepPositionOnInsert(bool)
+ ?addToPolygon@QBezier@@QBEXPAVQPolygonF@@M@Z @ 12638 NONAME ; void QBezier::addToPolygon(class QPolygonF *, float) const
+ ?_q_aboutToQuit@QApplicationPrivate@@QAEXXZ @ 12639 NONAME ; void QApplicationPrivate::_q_aboutToQuit(void)
+ ??1QImageTextureGlyphCache@@UAE@XZ @ 12640 NONAME ; QImageTextureGlyphCache::~QImageTextureGlyphCache(void)
+ ?updateMicroFocus@QGraphicsObject@@IAEXXZ @ 12641 NONAME ; void QGraphicsObject::updateMicroFocus(void)
+ ??0QZipReader@@QAE@ABVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 12642 NONAME ; QZipReader::QZipReader(class QString const &, class QFlags<enum QIODevice::OpenModeFlag>)
+ ?isEmpty@QItemSelectionRange@@QBE_NXZ @ 12643 NONAME ; bool QItemSelectionRange::isEmpty(void) const
+ ?children_append@QGraphicsItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@PAVQGraphicsObject@@@Z @ 12644 NONAME ; void QGraphicsItemPrivate::children_append(class QDeclarativeListProperty<class QGraphicsObject> *, class QGraphicsObject *)
+ ?buffer@QRuntimePixmapData@@UAEPAVQImage@@XZ @ 12645 NONAME ; class QImage * QRuntimePixmapData::buffer(void)
+ ?paintEngine@QRuntimePixmapData@@UBEPAVQPaintEngine@@XZ @ 12646 NONAME ; class QPaintEngine * QRuntimePixmapData::paintEngine(void) const
+ ?setUpdateClip@QGraphicsViewPrivate@@QAEXPAVQGraphicsItem@@@Z @ 12647 NONAME ; void QGraphicsViewPrivate::setUpdateClip(class QGraphicsItem *)
+ ?viewportEvent@QAbstractScrollAreaPrivate@@QAE_NPAVQEvent@@@Z @ 12648 NONAME ; bool QAbstractScrollAreaPrivate::viewportEvent(class QEvent *)
+ ?extensions@QEgl@@YA?AVQString@@XZ @ 12649 NONAME ; class QString QEgl::extensions(void)
+ ?toImage@QRuntimePixmapData@@UBE?AVQImage@@XZ @ 12650 NONAME ; class QImage QRuntimePixmapData::toImage(void) const
+ ??0QAbstractScrollAreaPrivate@@QAE@XZ @ 12651 NONAME ; QAbstractScrollAreaPrivate::QAbstractScrollAreaPrivate(void)
+ ?resizeEvent@QSplitterHandle@@MAEXPAVQResizeEvent@@@Z @ 12652 NONAME ; void QSplitterHandle::resizeEvent(class QResizeEvent *)
+ ?setPartialUpdateSupport@QWindowSurface@@IAEX_N@Z @ 12653 NONAME ; void QWindowSurface::setPartialUpdateSupport(bool)
+ ?HandleForegroundEventL@QS60MainAppUi@@MAEXH@Z @ 12654 NONAME ; void QS60MainAppUi::HandleForegroundEventL(int)
+ ?curveThreshold@QStrokerOps@@QBEMXZ @ 12655 NONAME ; float QStrokerOps::curveThreshold(void) const
+ ?createTextureData@QImageTextureGlyphCache@@UAEXHH@Z @ 12656 NONAME ; void QImageTextureGlyphCache::createTextureData(int, int)
+ ?toNativeType@QRuntimePixmapData@@UAEPAXW4NativeType@QPixmapData@@@Z @ 12657 NONAME ; void * QRuntimePixmapData::toNativeType(enum QPixmapData::NativeType)
+ ?eglDestroyImageKHR@QEgl@@YAHHH@Z @ 12658 NONAME ; int QEgl::eglDestroyImageKHR(int, int)
+ ??1FileInfo@QZipReader@@QAE@XZ @ 12659 NONAME ; QZipReader::FileInfo::~FileInfo(void)
+ ?setTextFormat@QStaticText@@QAEXW4TextFormat@Qt@@@Z @ 12660 NONAME ; void QStaticText::setTextFormat(enum Qt::TextFormat)
+ ?setWidth@QGraphicsItemPrivate@@UAEXM@Z @ 12661 NONAME ; void QGraphicsItemPrivate::setWidth(float)
+ ?allocStyleOptionsArray@QGraphicsViewPrivate@@QAEPAVQStyleOptionGraphicsItem@@H@Z @ 12662 NONAME ; class QStyleOptionGraphicsItem * QGraphicsViewPrivate::allocStyleOptionsArray(int)
+ ?getPixmapCursor@QApplicationPrivate@@QAE?AVQPixmap@@W4CursorShape@Qt@@@Z @ 12663 NONAME ; class QPixmap QApplicationPrivate::getPixmapCursor(enum Qt::CursorShape)
+ ?fromNativeType@QRuntimePixmapData@@UAEXPAXW4NativeType@QPixmapData@@@Z @ 12664 NONAME ; void QRuntimePixmapData::fromNativeType(void *, enum QPixmapData::NativeType)
+ ?setCurveThresholdFromTransform@QStrokerOps@@QAEXABVQTransform@@@Z @ 12665 NONAME ; void QStrokerOps::setCurveThresholdFromTransform(class QTransform const &)
+ ?runtimeData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12666 NONAME ; class QPixmapData * QRuntimePixmapData::runtimeData(void) const
+ ?hasExtension@QEgl@@YA_NPBD@Z @ 12667 NONAME ; bool QEgl::hasExtension(char const *)
+ ?updateRegion@QGraphicsViewPrivate@@QAE_NABVQRectF@@ABVQTransform@@@Z @ 12668 NONAME ; bool QGraphicsViewPrivate::updateRegion(class QRectF const &, class QTransform const &)
+ ?create@PixmapFragment@QPainter@@SA?AV12@ABVQPointF@@ABVQRectF@@MMMM@Z @ 12669 NONAME ; class QPainter::PixmapFragment QPainter::PixmapFragment::create(class QPointF const &, class QRectF const &, float, float, float, float)
+ ?verticalMovementX@QTextCursor@@QBEHXZ @ 12670 NONAME ; int QTextCursor::verticalMovementX(void) const
+ ??4QStaticText@@QAEAAV0@ABV0@@Z @ 12671 NONAME ; class QStaticText & QStaticText::operator=(class QStaticText const &)
+ ?OpenFileL@QS60MainDocument@@UAEPAVCFileStore@@HABVTDesC16@@AAVRFs@@@Z @ 12672 NONAME ; class CFileStore * QS60MainDocument::OpenFileL(int, class TDesC16 const &, class RFs &)
+ ?fileData@QZipReader@@QBE?AVQByteArray@@ABVQString@@@Z @ 12673 NONAME ; class QByteArray QZipReader::fileData(class QString const &) const
+ ?sideWidget@QWizard@@QBEPAVQWidget@@XZ @ 12674 NONAME ; class QWidget * QWizard::sideWidget(void) const
+ ?fromFile@QRuntimePixmapData@@UAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12675 NONAME ; bool QRuntimePixmapData::fromFile(class QString const &, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?HandleTouchPaneSizeChange@QS60MainAppUi@@UAEXXZ @ 12676 NONAME ; void QS60MainAppUi::HandleTouchPaneSizeChange(void)
+ ?setDeviceType@QEglProperties@@QAEXH@Z @ 12677 NONAME ; void QEglProperties::setDeviceType(int)
+ ?configAttrib@QEglContext@@QBEHH@Z @ 12678 NONAME ; int QEglContext::configAttrib(int) const
+ ?toImage@QPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12679 NONAME ; class QImage QPixmapData::toImage(class QRect const &) const
+ ?clearUndoRedoStacks@QTextDocument@@QAEXW4Stacks@1@@Z @ 12680 NONAME ; void QTextDocument::clearUndoRedoStacks(enum QTextDocument::Stacks)
+ ?copy@QRuntimePixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12681 NONAME ; void QRuntimePixmapData::copy(class QPixmapData const *, class QRect const &)
+ ??0QKeySequence@@QAE@ABVQString@@W4SequenceFormat@0@@Z @ 12682 NONAME ; QKeySequence::QKeySequence(class QString const &, enum QKeySequence::SequenceFormat)
+ ?fromData@QRuntimePixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12683 NONAME ; bool QRuntimePixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?updatePaintedViewBoundingRects@QGraphicsItemPrivate@@QAEX_N@Z @ 12684 NONAME ; void QGraphicsItemPrivate::updatePaintedViewBoundingRects(bool)
+ ?mapRectFromScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12685 NONAME ; class QRectF QGraphicsViewPrivate::mapRectFromScene(class QRectF const &) const
+ ??1QGraphicsViewPrivate@@UAE@XZ @ 12686 NONAME ; QGraphicsViewPrivate::~QGraphicsViewPrivate(void)
+ ?drawPixmapFragments@QPaintEngineEx@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 12687 NONAME ; void QPaintEngineEx::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
+ ?horizontalAdvance@QTextLine@@QBEMXZ @ 12688 NONAME ; float QTextLine::horizontalAdvance(void) const
+ ?paste@QTextControl@@QAEXW4Mode@QClipboard@@@Z @ 12689 NONAME ; void QTextControl::paste(enum QClipboard::Mode)
+ ?selectionStart@QLabel@@QBEHXZ @ 12690 NONAME ; int QLabel::selectionStart(void) const
+ ?symbianAdjustedPosition@QDialog@@AAE_NXZ @ 12691 NONAME ; bool QDialog::symbianAdjustedPosition(void)
+ ?convertFromImage@QPixmap@@QAE_NABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12692 NONAME ; bool QPixmap::convertFromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
+ ?iconName@QIconEngineV2@@QAE?AVQString@@XZ @ 12693 NONAME ; class QString QIconEngineV2::iconName(void)
+ ?constBits@QImage@@QBEPBEXZ @ 12694 NONAME ; unsigned char const * QImage::constBits(void) const
+ ?init@QAbstractScrollAreaPrivate@@QAEXXZ @ 12695 NONAME ; void QAbstractScrollAreaPrivate::init(void)
+ ?_q_vslide@QAbstractScrollAreaPrivate@@QAEXH@Z @ 12696 NONAME ; void QAbstractScrollAreaPrivate::_q_vslide(int)
+ ??0QStaticTextItem@@QAE@XZ @ 12697 NONAME ; QStaticTextItem::QStaticTextItem(void)
+ ?setTextWidth@QStaticText@@QAEXM@Z @ 12698 NONAME ; void QStaticText::setTextWidth(float)
+ ?translateTouchEvent@QGraphicsViewPrivate@@SAXPAV1@PAVQTouchEvent@@@Z @ 12699 NONAME ; void QGraphicsViewPrivate::translateTouchEvent(class QGraphicsViewPrivate *, class QTouchEvent *)
+ ?fileInfoList@QZipReader@@QBE?AV?$QList@UFileInfo@QZipReader@@@@XZ @ 12700 NONAME ; class QList<struct QZipReader::FileInfo> QZipReader::fileInfoList(void) const
+ ?_q_unsetViewportCursor@QGraphicsViewPrivate@@QAEXXZ @ 12701 NONAME ; void QGraphicsViewPrivate::_q_unsetViewportCursor(void)
+ ?hasAlphaChannel@QRuntimePixmapData@@UBE_NXZ @ 12702 NONAME ; bool QRuntimePixmapData::hasAlphaChannel(void) const
+ ?textWidth@QStaticText@@QBEMXZ @ 12703 NONAME ; float QStaticText::textWidth(void) const
+ ?chooseConfig@QEgl@@YAHPBVQEglProperties@@W4PixelFormatMatch@1@@Z @ 12704 NONAME ; int QEgl::chooseConfig(class QEglProperties const *, enum QEgl::PixelFormatMatch)
+ ?width@QFontMetrics@@QBEHABVQString@@HH@Z @ 12705 NONAME ; int QFontMetrics::width(class QString const &, int, int) const
+ ?isValidColor@QColor@@SA_NABVQString@@@Z @ 12706 NONAME ; bool QColor::isValidColor(class QString const &)
+ ?text@QStaticText@@QBE?AVQString@@XZ @ 12707 NONAME ; class QString QStaticText::text(void) const
+ ??0FileInfo@QZipReader@@QAE@ABU01@@Z @ 12708 NONAME ; QZipReader::FileInfo::FileInfo(struct QZipReader::FileInfo const &)
+ ??1QStaticTextItem@@QAE@XZ @ 12709 NONAME ; QStaticTextItem::~QStaticTextItem(void)
+ ?directoryLoaded@QFileSystemModel@@IAEXABVQString@@@Z @ 12710 NONAME ; void QFileSystemModel::directoryLoaded(class QString const &)
+ ?Reserved_MtsmPosition@QS60MainAppUi@@MAEXXZ @ 12711 NONAME ; void QS60MainAppUi::Reserved_MtsmPosition(void)
+ ?ApplicationRect@QS60MainAppUi@@UBE?AVTRect@@XZ @ 12712 NONAME ; class TRect QS60MainAppUi::ApplicationRect(void) const
+ ?assign@QKeySequence@@AAEHABVQString@@W4SequenceFormat@1@@Z @ 12713 NONAME ; int QKeySequence::assign(class QString const &, enum QKeySequence::SequenceFormat)
+ ?selectedText@QLabel@@QBE?AVQString@@XZ @ 12714 NONAME ; class QString QLabel::selectedText(void) const
+ ?HandleSystemEventL@QS60MainAppUi@@MAEXABVTWsEvent@@@Z @ 12715 NONAME ; void QS60MainAppUi::HandleSystemEventL(class TWsEvent const &)
+ ?textFormat@QStaticText@@QBE?AW4TextFormat@Qt@@XZ @ 12716 NONAME ; enum Qt::TextFormat QStaticText::textFormat(void) const
+ ?runtimeData@QPixmapData@@UBEPAV1@XZ @ 12717 NONAME ; class QPixmapData * QPixmapData::runtimeData(void) const
+ ?drawStaticText@QPainter@@QAEXHHABVQStaticText@@@Z @ 12718 NONAME ; void QPainter::drawStaticText(int, int, class QStaticText const &)
+ ?visibilityChanged@QToolBar@@IAEX_N@Z @ 12719 NONAME ; void QToolBar::visibilityChanged(bool)
+ ?metric@QRuntimePixmapData@@UBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 12720 NONAME ; int QRuntimePixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const
+ ?HandleApplicationSpecificEventL@QS60MainAppUi@@MAEXHABVTWsEvent@@@Z @ 12721 NONAME ; void QS60MainAppUi::HandleApplicationSpecificEventL(int, class TWsEvent const &)
+ ??0QStaticText@@QAE@ABVQString@@@Z @ 12722 NONAME ; QStaticText::QStaticText(class QString const &)
+ ?replaceScrollBar@QAbstractScrollAreaPrivate@@QAEXPAVQScrollBar@@W4Orientation@Qt@@@Z @ 12723 NONAME ; void QAbstractScrollAreaPrivate::replaceScrollBar(class QScrollBar *, enum Qt::Orientation)
+ ?textDirection@QProgressBar@@QBE?AW4Direction@1@XZ @ 12724 NONAME ; enum QProgressBar::Direction QProgressBar::textDirection(void) const
+ ?setVerticalMovementX@QTextCursor@@QAEXH@Z @ 12725 NONAME ; void QTextCursor::setVerticalMovementX(int)
+ ?mapRectToScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABVQRect@@@Z @ 12726 NONAME ; class QRectF QGraphicsViewPrivate::mapRectToScene(class QRect const &) const
+ ?bitPlaneCount@QImage@@QBEHXZ @ 12727 NONAME ; int QImage::bitPlaneCount(void) const
+ ?zScaleChanged@QGraphicsScale@@IAEXXZ @ 12728 NONAME ; void QGraphicsScale::zScaleChanged(void)
+ ?render@QWidgetPrivate@@QAEXPAVQPaintDevice@@ABVQPoint@@ABVQRegion@@V?$QFlags@W4RenderFlag@QWidget@@@@_N@Z @ 12729 NONAME ; void QWidgetPrivate::render(class QPaintDevice *, class QPoint const &, class QRegion const &, class QFlags<enum QWidget::RenderFlag>, bool)
+ ?focusScopeItemChange@QGraphicsItemPrivate@@UAEX_N@Z @ 12730 NONAME ; void QGraphicsItemPrivate::focusScopeItemChange(bool)
+ ??0QImageTextureGlyphCache@@QAE@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 12731 NONAME ; QImageTextureGlyphCache::QImageTextureGlyphCache(enum QFontEngineGlyphCache::Type, class QTransform const &)
+ ?exists@QZipReader@@QBE_NXZ @ 12732 NONAME ; bool QZipReader::exists(void) const
+ ?xScaleChanged@QGraphicsScale@@IAEXXZ @ 12733 NONAME ; void QGraphicsScale::xScaleChanged(void)
+ ?glyphMargin@QImageTextureGlyphCache@@UBEHXZ @ 12734 NONAME ; int QImageTextureGlyphCache::glyphMargin(void) const
+ ?updateLastCenterPoint@QGraphicsViewPrivate@@QAEXXZ @ 12735 NONAME ; void QGraphicsViewPrivate::updateLastCenterPoint(void)
+ ?HandleError@QS60MainAppUi@@UAE?AW4TErrorHandlerResponse@@HABUSExtendedError@@AAVTDes16@@1@Z @ 12736 NONAME ; enum TErrorHandlerResponse QS60MainAppUi::HandleError(int, struct SExtendedError const &, class TDes16 &, class TDes16 &)
+ ?mapToScene@QGraphicsViewPrivate@@QBE?AVQPointF@@ABV2@@Z @ 12737 NONAME ; class QPointF QGraphicsViewPrivate::mapToScene(class QPointF const &) const
+ ??_EQGraphicsViewPrivate@@UAE@I@Z @ 12738 NONAME ; QGraphicsViewPrivate::~QGraphicsViewPrivate(unsigned int)
+ ?ensureSpace@QTextEngine@@QBE_NH@Z @ 12739 NONAME ; bool QTextEngine::ensureSpace(int) const
+ ?setPlaceholderText@QLineEdit@@QAEXABVQString@@@Z @ 12740 NONAME ; void QLineEdit::setPlaceholderText(class QString const &)
+ ?childrenChanged@QGraphicsObject@@IAEXXZ @ 12741 NONAME ; void QGraphicsObject::childrenChanged(void)
+ ?fromImage@QRuntimePixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12742 NONAME ; void QRuntimePixmapData::fromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
+ ??1QStaticText@@QAE@XZ @ 12743 NONAME ; QStaticText::~QStaticText(void)
+ ?updateRect@QGraphicsViewPrivate@@QAE_NABVQRect@@@Z @ 12744 NONAME ; bool QGraphicsViewPrivate::updateRect(class QRect const &)
+ ?setColorFromString@QColor@@AAE_NABVQString@@@Z @ 12745 NONAME ; bool QColor::setColorFromString(class QString const &)
+ ?setUserData@QStaticTextItem@@QAEXPAVQStaticTextUserData@@@Z @ 12746 NONAME ; void QStaticTextItem::setUserData(class QStaticTextUserData *)
+ ?widthChanged@QGraphicsObject@@IAEXXZ @ 12747 NONAME ; void QGraphicsObject::widthChanged(void)
+ ?mapToViewRect@QGraphicsViewPrivate@@QBE?AVQRect@@PBVQGraphicsItem@@ABVQRectF@@@Z @ 12748 NONAME ; class QRect QGraphicsViewPrivate::mapToViewRect(class QGraphicsItem const *, class QRectF const &) const
+ ?_q_setViewportCursor@QGraphicsViewPrivate@@QAEXABVQCursor@@@Z @ 12749 NONAME ; void QGraphicsViewPrivate::_q_setViewportCursor(class QCursor const &)
+ ?eglCreateImageKHR@QEgl@@YAHHHHHPBH@Z @ 12750 NONAME ; int QEgl::eglCreateImageKHR(int, int, int, int, int const *)
+ ?count@QZipReader@@QBEHXZ @ 12751 NONAME ; int QZipReader::count(void) const
+ ?transformed@QRuntimePixmapData@@UBE?AVQPixmap@@ABVQTransform@@W4TransformationMode@Qt@@@Z @ 12752 NONAME ; class QPixmap QRuntimePixmapData::transformed(class QTransform const &, enum Qt::TransformationMode) const
+ ??0QStaticText@@QAE@ABV0@@Z @ 12753 NONAME ; QStaticText::QStaticText(class QStaticText const &)
+ ?getSubRange@QBezier@@QBE?AV1@MM@Z @ 12754 NONAME ; class QBezier QBezier::getSubRange(float, float) const
+ ?centerView@QGraphicsViewPrivate@@QAEXW4ViewportAnchor@QGraphicsView@@@Z @ 12755 NONAME ; void QGraphicsViewPrivate::centerView(enum QGraphicsView::ViewportAnchor)
+ ??1QAbstractScrollAreaPrivate@@UAE@XZ @ 12756 NONAME ; QAbstractScrollAreaPrivate::~QAbstractScrollAreaPrivate(void)
+ ?storeMouseEvent@QGraphicsViewPrivate@@QAEXPAVQMouseEvent@@@Z @ 12757 NONAME ; void QGraphicsViewPrivate::storeMouseEvent(class QMouseEvent *)
+ ?swapBuffersRegion2NOK@QEglContext@@QAE_NHPBVQRegion@@@Z @ 12758 NONAME ; bool QEglContext::swapBuffersRegion2NOK(int, class QRegion const *)
+ ?close@QZipReader@@QAEXXZ @ 12759 NONAME ; void QZipReader::close(void)
+ ?transformChanged@QGraphicsItemPrivate@@UAEXXZ @ 12760 NONAME ; void QGraphicsItemPrivate::transformChanged(void)
+ ?hasSelectedText@QLabel@@QBE_NXZ @ 12761 NONAME ; bool QLabel::hasSelectedText(void) const
+ ?display@QEglContext@@QAEHXZ @ 12762 NONAME ; int QEglContext::display(void)
+ ?placeholderText@QLineEdit@@QBE?AVQString@@XZ @ 12763 NONAME ; class QString QLineEdit::placeholderText(void) const
+ ?q_func@QGraphicsViewPrivate@@ABEPBVQGraphicsView@@XZ @ 12764 NONAME ; class QGraphicsView const * QGraphicsViewPrivate::q_func(void) const
+ ??8QStaticText@@QBE_NABV0@@Z @ 12765 NONAME ; bool QStaticText::operator==(class QStaticText const &) const
+ ?freeStyleOptionsArray@QGraphicsViewPrivate@@QAEXPAVQStyleOptionGraphicsItem@@@Z @ 12766 NONAME ; void QGraphicsViewPrivate::freeStyleOptionsArray(class QStyleOptionGraphicsItem *)
+ ?PrepareToExit@QS60MainAppUi@@UAEXXZ @ 12767 NONAME ; void QS60MainAppUi::PrepareToExit(void)
+ ?createSurface@QEgl@@YAHPAVQPaintDevice@@HPBVQEglProperties@@@Z @ 12768 NONAME ; int QEgl::createSurface(class QPaintDevice *, int, class QEglProperties const *)
+ ?errorString@QEgl@@YA?AVQString@@H@Z @ 12769 NONAME ; class QString QEgl::errorString(int)
+ ?contentsOffset@QAbstractScrollAreaPrivate@@UBE?AVQPoint@@XZ @ 12770 NONAME ; class QPoint QAbstractScrollAreaPrivate::contentsOffset(void) const
+ ??1QRuntimePixmapData@@UAE@XZ @ 12771 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(void)
+ ?setAlphaChannel@QRuntimePixmapData@@UAEXABVQPixmap@@@Z @ 12772 NONAME ; void QRuntimePixmapData::setAlphaChannel(class QPixmap const &)
+ ?glyphPadding@QTextureGlyphCache@@UBEHXZ @ 12773 NONAME ; int QTextureGlyphCache::glyphPadding(void) const
+ ?setAutoFillBackground@QGraphicsWidget@@QAEX_N@Z @ 12774 NONAME ; void QGraphicsWidget::setAutoFillBackground(bool)
+ ?setCurveThreshold@QStrokerOps@@QAEXM@Z @ 12775 NONAME ; void QStrokerOps::setCurveThreshold(float)
+ ?q_func@QAbstractScrollAreaPrivate@@ABEPBVQAbstractScrollArea@@XZ @ 12776 NONAME ; class QAbstractScrollArea const * QAbstractScrollAreaPrivate::q_func(void) const
+ ?toImage@QRasterPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12777 NONAME ; class QImage QRasterPixmapData::toImage(class QRect const &) const
+ ?resetWidth@QGraphicsItemPrivate@@UAEXXZ @ 12778 NONAME ; void QGraphicsItemPrivate::resetWidth(void)
+ ?height@QGraphicsItemPrivate@@UBEMXZ @ 12779 NONAME ; float QGraphicsItemPrivate::height(void) const
+ ?fromData@QRasterPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12780 NONAME ; bool QRasterPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?childAtRecursiveHelper@QWidgetPrivate@@QBEPAVQWidget@@ABVQPoint@@_N1@Z @ 12781 NONAME ; class QWidget * QWidgetPrivate::childAtRecursiveHelper(class QPoint const &, bool, bool) const
+ ?MopSupplyObject@QS60MainAppUi@@MAE?AVPtr@TTypeUid@@V3@@Z @ 12782 NONAME ; class TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(class TTypeUid)
+ ?nativeWindow@QEgl@@YAPAXPAVQWidget@@@Z @ 12783 NONAME ; void * QEgl::nativeWindow(class QWidget *)
+ ?childrenList@QGraphicsItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQGraphicsObject@@@@XZ @ 12784 NONAME ; class QDeclarativeListProperty<class QGraphicsObject> QGraphicsItemPrivate::childrenList(void)
+ ?processPendingUpdates@QGraphicsViewPrivate@@QAEXXZ @ 12785 NONAME ; void QGraphicsViewPrivate::processPendingUpdates(void)
+ ??0QRuntimePixmapData@@QAE@PBVQRuntimeGraphicsSystem@@W4PixelType@QPixmapData@@@Z @ 12786 NONAME ; QRuntimePixmapData::QRuntimePixmapData(class QRuntimeGraphicsSystem const *, enum QPixmapData::PixelType)
+ ?isRightToLeft@QTextEngine@@QBE_NXZ @ 12787 NONAME ; bool QTextEngine::isRightToLeft(void) const
+ ?verticalScroll@QGraphicsViewPrivate@@QBE_JXZ @ 12788 NONAME ; long long QGraphicsViewPrivate::verticalScroll(void) const
+ ?setSideWidget@QWizard@@QAEXPAVQWidget@@@Z @ 12789 NONAME ; void QWizard::setSideWidget(class QWidget *)
+ ??0Tab@QTextOption@@QAE@MW4TabType@1@VQChar@@@Z @ 12790 NONAME ; QTextOption::Tab::Tab(float, enum QTextOption::TabType, class QChar)
+ ?setHeight@QGraphicsItemPrivate@@UAEXM@Z @ 12791 NONAME ; void QGraphicsItemPrivate::setHeight(float)
+ ??9QStaticText@@QBE_NABV0@@Z @ 12792 NONAME ; bool QStaticText::operator!=(class QStaticText const &) const
+ ?_q_showOrHideScrollBars@QAbstractScrollAreaPrivate@@QAEXXZ @ 12793 NONAME ; void QAbstractScrollAreaPrivate::_q_showOrHideScrollBars(void)
+ ?nativePixmap@QEgl@@YAPAXPAVQPixmap@@@Z @ 12794 NONAME ; void * QEgl::nativePixmap(class QPixmap *)
+ ?image@QImageTextureGlyphCache@@QBEABVQImage@@XZ @ 12795 NONAME ; class QImage const & QImageTextureGlyphCache::image(void) const
+ ?entryInfoAt@QZipReader@@QBE?AUFileInfo@1@H@Z @ 12796 NONAME ; struct QZipReader::FileInfo QZipReader::entryInfoAt(int) const
+ ?runtime_graphics_system@QApplicationPrivate@@2_NA @ 12797 NONAME ; bool QApplicationPrivate::runtime_graphics_system
+ ??0FileInfo@QZipReader@@QAE@XZ @ 12798 NONAME ; QZipReader::FileInfo::FileInfo(void)
+ ?mask@QRuntimePixmapData@@UBE?AVQBitmap@@XZ @ 12799 NONAME ; class QBitmap QRuntimePixmapData::mask(void) const
+ ?setMask@QRuntimePixmapData@@UAEXABVQBitmap@@@Z @ 12800 NONAME ; void QRuntimePixmapData::setMask(class QBitmap const &)
+ ?width@QGraphicsItemPrivate@@UBEMXZ @ 12801 NONAME ; float QGraphicsItemPrivate::width(void) const
+ ?drawStaticText@QPainter@@QAEXABVQPoint@@ABVQStaticText@@@Z @ 12802 NONAME ; void QPainter::drawStaticText(class QPoint const &, class QStaticText const &)
+ ?SetFadedL@QS60MainAppUi@@UAEXH@Z @ 12803 NONAME ; void QS60MainAppUi::SetFadedL(int)
+ ?fromImageReader@QPixmap@@SA?AV1@PAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12804 NONAME ; class QPixmap QPixmap::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?findItems@QGraphicsViewPrivate@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQRegion@@PA_NABVQTransform@@@Z @ 12805 NONAME ; class QList<class QGraphicsItem *> QGraphicsViewPrivate::findItems(class QRegion const &, bool *, class QTransform const &) const
+ ?Exit@QS60MainAppUi@@UAEXXZ @ 12806 NONAME ; void QS60MainAppUi::Exit(void)
+ ?positionInBlock@QTextCursor@@QBEHXZ @ 12807 NONAME ; int QTextCursor::positionInBlock(void) const
+ ?dumpAllConfigs@QEgl@@YAXXZ @ 12808 NONAME ; void QEgl::dumpAllConfigs(void)
+ ?recalculateContentSize@QGraphicsViewPrivate@@QAEXXZ @ 12809 NONAME ; void QGraphicsViewPrivate::recalculateContentSize(void)
+ ?anchorAt@QPlainTextEdit@@QBE?AVQString@@ABVQPoint@@@Z @ 12810 NONAME ; class QString QPlainTextEdit::anchorAt(class QPoint const &) const
+ ?_q_hslide@QAbstractScrollAreaPrivate@@QAEXH@Z @ 12811 NONAME ; void QAbstractScrollAreaPrivate::_q_hslide(int)
+ ??_EQRuntimePixmapData@@UAE@I@Z @ 12812 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(unsigned int)
+ ?extractAll@QZipReader@@QBE_NABVQString@@@Z @ 12813 NONAME ; bool QZipReader::extractAll(class QString const &) const
+ ?layoutChanged@QGraphicsWidget@@IAEXXZ @ 12814 NONAME ; void QGraphicsWidget::layoutChanged(void)
+ ?isValid@FileInfo@QZipReader@@QBE_NXZ @ 12815 NONAME ; bool QZipReader::FileInfo::isValid(void) const
+ ?name@QIcon@@QBE?AVQString@@XZ @ 12816 NONAME ; class QString QIcon::name(void) const
+ ?resize@QRuntimePixmapData@@UAEXHH@Z @ 12817 NONAME ; void QRuntimePixmapData::resize(int, int)
+ ?q_func@QAbstractScrollAreaPrivate@@AAEPAVQAbstractScrollArea@@XZ @ 12818 NONAME ; class QAbstractScrollArea * QAbstractScrollAreaPrivate::q_func(void)
+ ?ProcessCommandL@QS60MainAppUi@@UAEXH@Z @ 12819 NONAME ; void QS60MainAppUi::ProcessCommandL(int)
+ ?processCommands@QPainterReplayer@@QAEXABVQPaintBuffer@@PAVQPainter@@HH@Z @ 12820 NONAME ; void QPainterReplayer::processCommands(class QPaintBuffer const &, class QPainter *, int, int)
+ ?heightChanged@QGraphicsObject@@IAEXXZ @ 12821 NONAME ; void QGraphicsObject::heightChanged(void)
+ ?paste@QLineControl@@QAEXW4Mode@QClipboard@@@Z @ 12822 NONAME ; void QLineControl::paste(enum QClipboard::Mode)
+ ?fromImageReader@QPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12823 NONAME ; void QPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?toPolygon@QBezier@@QBE?AVQPolygonF@@M@Z @ 12824 NONAME ; class QPolygonF QBezier::toPolygon(float) const
+ ?prepare@QStaticText@@QAEXABVQTransform@@ABVQFont@@@Z @ 12825 NONAME ; void QStaticText::prepare(class QTransform const &, class QFont const &)
+ ?fillTexture@QImageTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 12826 NONAME ; void QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int)
+ ?OpenFileL@QS60MainDocument@@UAEXAAPAVCFileStore@@AAVRFile@@@Z @ 12827 NONAME ; void QS60MainDocument::OpenFileL(class CFileStore * &, class RFile &)
+ ?fixup@QIntValidator@@UBEXAAVQString@@@Z @ 12828 NONAME ; void QIntValidator::fixup(class QString &) const
+ ?resetHeight@QGraphicsItemPrivate@@UAEXXZ @ 12829 NONAME ; void QGraphicsItemPrivate::resetHeight(void)
+ ?commandDescription@QPaintBuffer@@QBE?AVQString@@H@Z @ 12830 NONAME ; class QString QPaintBuffer::commandDescription(int) const
+ ?isReadable@QZipReader@@QBE_NXZ @ 12831 NONAME ; bool QZipReader::isReadable(void) const
+ ?performanceHint@QStaticText@@QBE?AW4PerformanceHint@1@XZ @ 12832 NONAME ; enum QStaticText::PerformanceHint QStaticText::performanceHint(void) const
+ ?updateScroll@QGraphicsViewPrivate@@QAEXXZ @ 12833 NONAME ; void QGraphicsViewPrivate::updateScroll(void)
+ ?fromImageReader@QRasterPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12834 NONAME ; void QRasterPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?rubberBandRegion@QGraphicsViewPrivate@@QBE?AVQRegion@@PBVQWidget@@ABVQRect@@@Z @ 12835 NONAME ; class QRegion QGraphicsViewPrivate::rubberBandRegion(class QWidget const *, class QRect const &) const
+ ?storeDragDropEvent@QGraphicsViewPrivate@@QAEXPBVQGraphicsSceneDragDropEvent@@@Z @ 12836 NONAME ; void QGraphicsViewPrivate::storeDragDropEvent(class QGraphicsSceneDragDropEvent const *)
+ ??0QZipReader@@QAE@PAVQIODevice@@@Z @ 12837 NONAME ; QZipReader::QZipReader(class QIODevice *)
+ ?aboutToDestroy@QWidgetPrivate@@UAEXXZ @ 12838 NONAME ; void QWidgetPrivate::aboutToDestroy(void)
+ ?createPixmapForImage@QRasterPixmapData@@IAEXAAVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@_N@Z @ 12839 NONAME ; void QRasterPixmapData::createPixmapForImage(class QImage &, class QFlags<enum Qt::ImageConversionFlag>, bool)
+ ?populateSceneDragDropEvent@QGraphicsViewPrivate@@QAEXPAVQGraphicsSceneDragDropEvent@@PAVQDropEvent@@@Z @ 12840 NONAME ; void QGraphicsViewPrivate::populateSceneDragDropEvent(class QGraphicsSceneDragDropEvent *, class QDropEvent *)
+ ?children_count@QGraphicsItemPrivate@@SAHPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@@Z @ 12841 NONAME ; int QGraphicsItemPrivate::children_count(class QDeclarativeListProperty<class QGraphicsObject> *)
+ ??0QStaticText@@QAE@XZ @ 12842 NONAME ; QStaticText::QStaticText(void)
+ ?HandleScreenDeviceChangedL@QS60MainAppUi@@MAEXXZ @ 12843 NONAME ; void QS60MainAppUi::HandleScreenDeviceChangedL(void)
+ ?allPixmaps@QPixmapCache@@SA?AV?$QList@U?$QPair@VQString@@VQPixmap@@@@@@XZ @ 12844 NONAME ; class QList<struct QPair<class QString, class QPixmap> > QPixmapCache::allPixmaps(void)
+ ?keepPositionOnInsert@QTextCursor@@QBE_NXZ @ 12845 NONAME ; bool QTextCursor::keepPositionOnInsert(void) const
+ ??1QZipReader@@QAE@XZ @ 12846 NONAME ; QZipReader::~QZipReader(void)
+ ?updateRectF@QGraphicsViewPrivate@@QAE_NABVQRectF@@@Z @ 12847 NONAME ; bool QGraphicsViewPrivate::updateRectF(class QRectF const &)
+ ?setText@QStaticText@@QAEXABVQString@@@Z @ 12848 NONAME ; void QStaticText::setText(class QString const &)
+ ?device@QZipReader@@QBEPAVQIODevice@@XZ @ 12849 NONAME ; class QIODevice * QZipReader::device(void) const
+ ?layoutChildren@QAbstractScrollAreaPrivate@@QAEXXZ @ 12850 NONAME ; void QAbstractScrollAreaPrivate::layoutChildren(void)
+ ?drawStaticText@QPainter@@QAEXABVQPointF@@ABVQStaticText@@@Z @ 12851 NONAME ; void QPainter::drawStaticText(class QPointF const &, class QStaticText const &)
+ ?updateAll@QGraphicsViewPrivate@@QAEXXZ @ 12852 NONAME ; void QGraphicsViewPrivate::updateAll(void)
+ ?updateMicroFocus@QGraphicsItem@@IAEXXZ @ 12853 NONAME ; void QGraphicsItem::updateMicroFocus(void)
+ ?populate@QTextureGlyphCache@@QAEXPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12854 NONAME ; void QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *)
+ ?hasPartialUpdateSupport@QWindowSurface@@QBE_NXZ @ 12855 NONAME ; bool QWindowSurface::hasPartialUpdateSupport(void) const
+ ?scroll@QRuntimePixmapData@@UAE_NHHABVQRect@@@Z @ 12856 NONAME ; bool QRuntimePixmapData::scroll(int, int, class QRect const &)
+ ?qt_draw_glyphs@@YAXPAVQPainter@@PBIPBVQPointF@@H@Z @ 12857 NONAME ; void qt_draw_glyphs(class QPainter *, unsigned int const *, class QPointF const *, int)
+ ?nativeDisplay@QEgl@@YAHXZ @ 12858 NONAME ; int QEgl::nativeDisplay(void)
+ ?PreDocConstructL@QS60MainApplication@@UAEXXZ @ 12859 NONAME ; void QS60MainApplication::PreDocConstructL(void)
+ ?detach@QStaticText@@AAEXXZ @ 12860 NONAME ; void QStaticText::detach(void)
+ ?yScaleChanged@QGraphicsScale@@IAEXXZ @ 12861 NONAME ; void QGraphicsScale::yScaleChanged(void)
+ ?size@QStaticText@@QBE?AVQSizeF@@XZ @ 12862 NONAME ; class QSizeF QStaticText::size(void) const
+ ?NewAppServerL@QS60MainApplication@@UAEXAAPAVCApaAppServer@@@Z @ 12863 NONAME ; void QS60MainApplication::NewAppServerL(class CApaAppServer * &)
+ ?createPixmapData@QGraphicsSystem@@UAEPAVQPixmapData@@PAV2@@Z @ 12864 NONAME ; class QPixmapData * QGraphicsSystem::createPixmapData(class QPixmapData *)
+ ??4FileInfo@QZipReader@@QAEAAU01@ABU01@@Z @ 12865 NONAME ; struct QZipReader::FileInfo & QZipReader::FileInfo::operator=(struct QZipReader::FileInfo const &)
+ ?convertInPlace@QImageData@@QAE_NW4Format@QImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12866 NONAME ; bool QImageData::convertInPlace(enum QImage::Format, class QFlags<enum Qt::ImageConversionFlag>)
+ ?pageRemoved@QWizard@@IAEXH@Z @ 12867 NONAME ; void QWizard::pageRemoved(int)
+ ?q_func@QGraphicsViewPrivate@@AAEPAVQGraphicsView@@XZ @ 12868 NONAME ; class QGraphicsView * QGraphicsViewPrivate::q_func(void)
+ ?pointInsideRectAndMask@QWidgetPrivate@@QBE_NABVQPoint@@@Z @ 12869 NONAME ; bool QWidgetPrivate::pointInsideRectAndMask(class QPoint const &) const
+ ?copy@QRasterPixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12870 NONAME ; void QRasterPixmapData::copy(class QPixmapData const *, class QRect const &)
+ ?frameEndIndex@QPaintBuffer@@QBEHH@Z @ 12871 NONAME ; int QPaintBuffer::frameEndIndex(int) const
+ ?prependGraphicsTransform@QGraphicsItemPrivate@@QAEXPAVQGraphicsTransform@@@Z @ 12872 NONAME ; void QGraphicsItemPrivate::prependGraphicsTransform(class QGraphicsTransform *)
+ ?processCommands@QPaintBuffer@@QBEHPAVQPainter@@HH@Z @ 12873 NONAME ; int QPaintBuffer::processCommands(class QPainter *, int, int) const
+ ?eglSwapBuffersRegion2NOK@QEgl@@YAHHHHPBH@Z @ 12874 NONAME ; int QEgl::eglSwapBuffersRegion2NOK(int, int, int, int const *)
+ ?horizontalScroll@QGraphicsViewPrivate@@QBE_JXZ @ 12875 NONAME ; long long QGraphicsViewPrivate::horizontalScroll(void) const
+ ?constScanLine@QImage@@QBEPBEH@Z @ 12876 NONAME ; unsigned char const * QImage::constScanLine(int) const
+ ?textDirection@QTextBlock@@QBE?AW4LayoutDirection@Qt@@XZ @ 12877 NONAME ; enum Qt::LayoutDirection QTextBlock::textDirection(void) const
+ ?scrollBarPolicyChanged@QAbstractScrollAreaPrivate@@UAEXW4Orientation@Qt@@W4ScrollBarPolicy@3@@Z @ 12878 NONAME ; void QAbstractScrollAreaPrivate::scrollBarPolicyChanged(enum Qt::Orientation, enum Qt::ScrollBarPolicy)
+ ?frameStartIndex@QPaintBuffer@@QBEHH@Z @ 12879 NONAME ; int QPaintBuffer::frameStartIndex(int) const
?HandleViewDeactivation@QS60MainAppUi@@UAEXABVTVwsViewId@@0@Z @ 12880 NONAME ; void QS60MainAppUi::HandleViewDeactivation(class TVwsViewId const &, class TVwsViewId const &)
- ?timeout@QTapAndHoldGesture@@SAHXZ @ 12881 NONAME ; int QTapAndHoldGesture::timeout(void)
- ?focusScopeItemChange@QGraphicsItemPrivate@@UAEX_N@Z @ 12882 NONAME ; void QGraphicsItemPrivate::focusScopeItemChange(bool)
- ?setTimeout@QTapAndHoldGesture@@SAXH@Z @ 12883 NONAME ; void QTapAndHoldGesture::setTimeout(int)
- ?childrenBoundingRectHelper@QGraphicsItemPrivate@@QAEXPAVQTransform@@PAVQRectF@@_N@Z @ 12884 NONAME ; void QGraphicsItemPrivate::childrenBoundingRectHelper(class QTransform *, class QRectF *, bool)
- ?zScaleChanged@QGraphicsScale@@IAEXXZ @ 12885 NONAME ; void QGraphicsScale::zScaleChanged(void)
- ?xScaleChanged@QGraphicsScale@@IAEXXZ @ 12886 NONAME ; void QGraphicsScale::xScaleChanged(void)
- ?yScaleChanged@QGraphicsScale@@IAEXXZ @ 12887 NONAME ; void QGraphicsScale::yScaleChanged(void)
- ?_q_aboutToQuit@QApplicationPrivate@@QAEXXZ @ 12888 NONAME ; void QApplicationPrivate::_q_aboutToQuit(void)
- ?ensureSpace@QTextEngine@@QBE_NH@Z @ 12889 NONAME ; bool QTextEngine::ensureSpace(int) const
+ ?fill@QRuntimePixmapData@@UAEXABVQColor@@@Z @ 12881 NONAME ; void QRuntimePixmapData::fill(class QColor const &)
+ ?autoFillBackground@QGraphicsWidget@@QBE_NXZ @ 12882 NONAME ; bool QGraphicsWidget::autoFillBackground(void) const
+ ?children_at@QGraphicsItemPrivate@@SAPAVQGraphicsObject@@PAV?$QDeclarativeListProperty@VQGraphicsObject@@@@H@Z @ 12883 NONAME ; class QGraphicsObject * QGraphicsItemPrivate::children_at(class QDeclarativeListProperty<class QGraphicsObject> *, int)
+ ??0QGraphicsViewPrivate@@QAE@XZ @ 12884 NONAME ; QGraphicsViewPrivate::QGraphicsViewPrivate(void)
+ ?flushDetachedPixmaps@QPixmapCache@@SAXXZ @ 12885 NONAME ; void QPixmapCache::flushDetachedPixmaps(void)
+ ?replayLastMouseEvent@QGraphicsViewPrivate@@QAEXXZ @ 12886 NONAME ; void QGraphicsViewPrivate::replayLastMouseEvent(void)
diff --git a/src/s60installs/bwins/QtMultimediau.def b/src/s60installs/bwins/QtMultimediau.def
index b0e6368cae..b8cf6b9932 100644
--- a/src/s60installs/bwins/QtMultimediau.def
+++ b/src/s60installs/bwins/QtMultimediau.def
@@ -268,10 +268,10 @@ EXPORTS
?staticMetaObject@QAbstractAudioOutput@@2UQMetaObject@@B @ 267 NONAME ; struct QMetaObject const QAbstractAudioOutput::staticMetaObject
?staticMetaObject@QAudioOutput@@2UQMetaObject@@B @ 268 NONAME ; struct QMetaObject const QAudioOutput::staticMetaObject
?staticMetaObject@QAbstractAudioInput@@2UQMetaObject@@B @ 269 NONAME ; struct QMetaObject const QAbstractAudioInput::staticMetaObject
- ?channelCount@QAudioFormat@@QBEHXZ @ 270 NONAME ; int QAudioFormat::channelCount(void) const
- ?sampleRate@QAudioFormat@@QBEHXZ @ 271 NONAME ; int QAudioFormat::sampleRate(void) const
- ?setChannelCount@QAudioFormat@@QAEXH@Z @ 272 NONAME ; void QAudioFormat::setChannelCount(int)
- ?setSampleRate@QAudioFormat@@QAEXH@Z @ 273 NONAME ; void QAudioFormat::setSampleRate(int)
- ?supportedChannelCounts@QAudioDeviceInfo@@QBE?AV?$QList@H@@XZ @ 274 NONAME ; class QList<int> QAudioDeviceInfo::supportedChannelCounts(void) const
- ?supportedSampleRates@QAudioDeviceInfo@@QBE?AV?$QList@H@@XZ @ 275 NONAME ; class QList<int> QAudioDeviceInfo::supportedSampleRates(void) const
+ ?setSampleRate@QAudioFormat@@QAEXH@Z @ 270 NONAME ; void QAudioFormat::setSampleRate(int)
+ ?channelCount@QAudioFormat@@QBEHXZ @ 271 NONAME ; int QAudioFormat::channelCount(void) const
+ ?supportedChannelCounts@QAudioDeviceInfo@@QBE?AV?$QList@H@@XZ @ 272 NONAME ; class QList<int> QAudioDeviceInfo::supportedChannelCounts(void) const
+ ?sampleRate@QAudioFormat@@QBEHXZ @ 273 NONAME ; int QAudioFormat::sampleRate(void) const
+ ?supportedSampleRates@QAudioDeviceInfo@@QBE?AV?$QList@H@@XZ @ 274 NONAME ; class QList<int> QAudioDeviceInfo::supportedSampleRates(void) const
+ ?setChannelCount@QAudioFormat@@QAEXH@Z @ 275 NONAME ; void QAudioFormat::setChannelCount(int)
diff --git a/src/s60installs/bwins/QtNetworku.def b/src/s60installs/bwins/QtNetworku.def
index 2cf62a88b1..21718d38a2 100644
--- a/src/s60installs/bwins/QtNetworku.def
+++ b/src/s60installs/bwins/QtNetworku.def
@@ -1029,120 +1029,120 @@ EXPORTS
??1QBearerEngine@@UAE@XZ @ 1028 NONAME ; QBearerEngine::~QBearerEngine(void)
?capabilities@QNetworkConfigurationManagerPrivate@@QAE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1029 NONAME ; class QFlags<enum QNetworkConfigurationManager::Capability> QNetworkConfigurationManagerPrivate::capabilities(void)
??1QNetworkConfiguration@@QAE@XZ @ 1030 NONAME ; QNetworkConfiguration::~QNetworkConfiguration(void)
- ??0QNetworkConfigurationManagerPrivate@@QAE@XZ @ 1031 NONAME ; QNetworkConfigurationManagerPrivate::QNetworkConfigurationManagerPrivate(void)
- ?preferredConfigurationChanged@QNetworkSession@@IAEXABVQNetworkConfiguration@@_N@Z @ 1032 NONAME ; void QNetworkSession::preferredConfigurationChanged(class QNetworkConfiguration const &, bool)
- ?isValid@QNetworkConfiguration@@QBE_NXZ @ 1033 NONAME ; bool QNetworkConfiguration::isValid(void) const
- ?configurationAdded@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1034 NONAME ; void QBearerEngine::configurationAdded(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
- ??1QNetworkSession@@UAE@XZ @ 1035 NONAME ; QNetworkSession::~QNetworkSession(void)
- ?qt_metacast@QBearerEnginePlugin@@UAEPAXPBD@Z @ 1036 NONAME ; void * QBearerEnginePlugin::qt_metacast(char const *)
- ??0QNetworkSession@@QAE@ABVQNetworkConfiguration@@PAVQObject@@@Z @ 1037 NONAME ; QNetworkSession::QNetworkSession(class QNetworkConfiguration const &, class QObject *)
- ?error@QNetworkSessionPrivate@@IAEXW4SessionError@QNetworkSession@@@Z @ 1038 NONAME ; void QNetworkSessionPrivate::error(enum QNetworkSession::SessionError)
- ?name@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1039 NONAME ; class QString QNetworkConfiguration::name(void) const
- ?close@QNetworkSession@@QAEXXZ @ 1040 NONAME ; void QNetworkSession::close(void)
- ?sessionProperty@QNetworkSession@@QBE?AVQVariant@@ABVQString@@@Z @ 1041 NONAME ; class QVariant QNetworkSession::sessionProperty(class QString const &) const
- ?engines@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@PAVQBearerEngine@@@@XZ @ 1042 NONAME ; class QList<class QBearerEngine *> QNetworkConfigurationManagerPrivate::engines(void)
- ?isOnline@QNetworkConfigurationManager@@QBE_NXZ @ 1043 NONAME ; bool QNetworkConfigurationManager::isOnline(void) const
- ?capabilities@QNetworkConfigurationManager@@QBE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1044 NONAME ; class QFlags<enum QNetworkConfigurationManager::Capability> QNetworkConfigurationManager::capabilities(void) const
- ?configurationRemoved@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1045 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
- ??0QNetworkConfiguration@@QAE@ABV0@@Z @ 1046 NONAME ; QNetworkConfiguration::QNetworkConfiguration(class QNetworkConfiguration const &)
- ?setPriority@QNetworkRequest@@QAEXW4Priority@1@@Z @ 1047 NONAME ; void QNetworkRequest::setPriority(enum QNetworkRequest::Priority)
- ?disconnectNotify@QNetworkSession@@MAEXPBD@Z @ 1048 NONAME ; void QNetworkSession::disconnectNotify(char const *)
- ?metaObject@QNetworkSession@@UBEPBUQMetaObject@@XZ @ 1049 NONAME ; struct QMetaObject const * QNetworkSession::metaObject(void) const
- ?trUtf8@QBearerEngine@@SA?AVQString@@PBD0H@Z @ 1050 NONAME ; class QString QBearerEngine::trUtf8(char const *, char const *, int)
- ?configuration@QNetworkSession@@QBE?AVQNetworkConfiguration@@XZ @ 1051 NONAME ; class QNetworkConfiguration QNetworkSession::configuration(void) const
- ?closed@QNetworkSessionPrivate@@IAEXXZ @ 1052 NONAME ; void QNetworkSessionPrivate::closed(void)
- ??1QNetworkSessionPrivate@@UAE@XZ @ 1053 NONAME ; QNetworkSessionPrivate::~QNetworkSessionPrivate(void)
- ?staticMetaObject@QNetworkConfigurationManager@@2UQMetaObject@@B @ 1054 NONAME ; struct QMetaObject const QNetworkConfigurationManager::staticMetaObject
- ?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0H@Z @ 1055 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *, int)
- ?tr@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0H@Z @ 1056 NONAME ; class QString QNetworkConfigurationManagerPrivate::tr(char const *, char const *, int)
- ?configurationChanged@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1057 NONAME ; void QBearerEngine::configurationChanged(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
- ?tr@QBearerEngine@@SA?AVQString@@PBD0@Z @ 1058 NONAME ; class QString QBearerEngine::tr(char const *, char const *)
- ??0QNetworkConfiguration@@QAE@XZ @ 1059 NONAME ; QNetworkConfiguration::QNetworkConfiguration(void)
- ?configurationRemoved@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1060 NONAME ; void QNetworkConfigurationManager::configurationRemoved(class QNetworkConfiguration const &)
- ?preferredConfigurationChanged@QNetworkSessionPrivate@@IAEXABVQNetworkConfiguration@@_N@Z @ 1061 NONAME ; void QNetworkSessionPrivate::preferredConfigurationChanged(class QNetworkConfiguration const &, bool)
- ??1QBearerEnginePlugin@@UAE@XZ @ 1062 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(void)
- ?tr@QNetworkSession@@SA?AVQString@@PBD0@Z @ 1063 NONAME ; class QString QNetworkSession::tr(char const *, char const *)
- ??0QNetworkConfigurationManager@@QAE@PAVQObject@@@Z @ 1064 NONAME ; QNetworkConfigurationManager::QNetworkConfigurationManager(class QObject *)
- ?qt_metacall@QNetworkConfigurationManagerPrivate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1065 NONAME ; int QNetworkConfigurationManagerPrivate::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??_EQNetworkSession@@UAE@I@Z @ 1066 NONAME ; QNetworkSession::~QNetworkSession(unsigned int)
- ??9QNetworkConfiguration@@QBE_NABV0@@Z @ 1067 NONAME ; bool QNetworkConfiguration::operator!=(class QNetworkConfiguration const &) const
- ?configurationsInUse@QBearerEngine@@QBE_NXZ @ 1068 NONAME ; bool QBearerEngine::configurationsInUse(void) const
- ?tr@QBearerEngine@@SA?AVQString@@PBD0H@Z @ 1069 NONAME ; class QString QBearerEngine::tr(char const *, char const *, int)
- ?configuration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 1070 NONAME ; class QNetworkConfiguration QNetworkAccessManager::configuration(void) const
- ?tr@QNetworkSessionPrivate@@SA?AVQString@@PBD0@Z @ 1071 NONAME ; class QString QNetworkSessionPrivate::tr(char const *, char const *)
- ?activeTime@QNetworkSession@@QBE_KXZ @ 1072 NONAME ; unsigned long long QNetworkSession::activeTime(void) const
- ?state@QNetworkSession@@QBE?AW4State@1@XZ @ 1073 NONAME ; enum QNetworkSession::State QNetworkSession::state(void) const
- ?disablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1074 NONAME ; void QNetworkConfigurationManagerPrivate::disablePolling(void)
- ?getStaticMetaObject@QNetworkSessionPrivate@@SAABUQMetaObject@@XZ @ 1075 NONAME ; struct QMetaObject const & QNetworkSessionPrivate::getStaticMetaObject(void)
- ?configurationAdded@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1076 NONAME ; void QNetworkConfigurationManager::configurationAdded(class QNetworkConfiguration const &)
- ?tr@QNetworkSessionPrivate@@SA?AVQString@@PBD0H@Z @ 1077 NONAME ; class QString QNetworkSessionPrivate::tr(char const *, char const *, int)
- ?performAsyncConfigurationUpdate@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1078 NONAME ; void QNetworkConfigurationManagerPrivate::performAsyncConfigurationUpdate(void)
- ?trUtf8@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0@Z @ 1079 NONAME ; class QString QNetworkConfigurationManagerPrivate::trUtf8(char const *, char const *)
- ?networkAccessible@QNetworkAccessManager@@QBE?AW4NetworkAccessibility@1@XZ @ 1080 NONAME ; enum QNetworkAccessManager::NetworkAccessibility QNetworkAccessManager::networkAccessible(void) const
- ?setOption@QAuthenticator@@QAEXABVQString@@ABVQVariant@@@Z @ 1081 NONAME ; void QAuthenticator::setOption(class QString const &, class QVariant const &)
- ?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0H@Z @ 1082 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *, int)
- ?trUtf8@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1083 NONAME ; class QString QNetworkConfigurationManager::trUtf8(char const *, char const *)
- ?allConfigurations@QNetworkConfigurationManager@@QBE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1084 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfigurationManager::allConfigurations(class QFlags<enum QNetworkConfiguration::StateFlag>) const
- ?requiresPolling@QBearerEngine@@UBE_NXZ @ 1085 NONAME ; bool QBearerEngine::requiresPolling(void) const
- ?priority@QNetworkRequest@@QBE?AW4Priority@1@XZ @ 1086 NONAME ; enum QNetworkRequest::Priority QNetworkRequest::priority(void) const
- ?networkAccessibleChanged@QNetworkAccessManager@@IAEXW4NetworkAccessibility@1@@Z @ 1087 NONAME ; void QNetworkAccessManager::networkAccessibleChanged(enum QNetworkAccessManager::NetworkAccessibility)
- ??8QNetworkConfiguration@@QBE_NABV0@@Z @ 1088 NONAME ; bool QNetworkConfiguration::operator==(class QNetworkConfiguration const &) const
- ?option@QAuthenticator@@QBE?AVQVariant@@ABVQString@@@Z @ 1089 NONAME ; class QVariant QAuthenticator::option(class QString const &) const
- ?tr@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1090 NONAME ; class QString QBearerEnginePlugin::tr(char const *, char const *)
- ?configurationFromIdentifier@QNetworkConfigurationManager@@QBE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1091 NONAME ; class QNetworkConfiguration QNetworkConfigurationManager::configurationFromIdentifier(class QString const &) const
- ??_EQBearerEnginePlugin@@UAE@I@Z @ 1092 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(unsigned int)
- ?children@QNetworkConfiguration@@QBE?AV?$QList@VQNetworkConfiguration@@@@XZ @ 1093 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfiguration::children(void) const
- ?activeConfiguration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 1094 NONAME ; class QNetworkConfiguration QNetworkAccessManager::activeConfiguration(void) const
- ?defaultConfiguration@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@XZ @ 1095 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration(void)
- ?getStaticMetaObject@QNetworkSession@@SAABUQMetaObject@@XZ @ 1096 NONAME ; struct QMetaObject const & QNetworkSession::getStaticMetaObject(void)
- ?qt_metacast@QNetworkSession@@UAEPAXPBD@Z @ 1097 NONAME ; void * QNetworkSession::qt_metacast(char const *)
- ?updateCompleted@QBearerEngine@@IAEXXZ @ 1098 NONAME ; void QBearerEngine::updateCompleted(void)
- ?qt_metacall@QNetworkSessionPrivate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1099 NONAME ; int QNetworkSessionPrivate::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?onlineStateChanged@QNetworkConfigurationManager@@IAEX_N@Z @ 1100 NONAME ; void QNetworkConfigurationManager::onlineStateChanged(bool)
- ?getStaticMetaObject@QNetworkConfigurationManager@@SAABUQMetaObject@@XZ @ 1101 NONAME ; struct QMetaObject const & QNetworkConfigurationManager::getStaticMetaObject(void)
- ??0QNetworkSessionPrivate@@QAE@XZ @ 1102 NONAME ; QNetworkSessionPrivate::QNetworkSessionPrivate(void)
- ?qt_metacast@QNetworkConfigurationManager@@UAEPAXPBD@Z @ 1103 NONAME ; void * QNetworkConfigurationManager::qt_metacast(char const *)
- ?configurationChanged@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1104 NONAME ; void QNetworkConfigurationManagerPrivate::configurationChanged(class QNetworkConfiguration const &)
- ?staticMetaObject@QBearerEnginePlugin@@2UQMetaObject@@B @ 1105 NONAME ; struct QMetaObject const QBearerEnginePlugin::staticMetaObject
- ?qt_metacast@QNetworkConfigurationManagerPrivate@@UAEPAXPBD@Z @ 1106 NONAME ; void * QNetworkConfigurationManagerPrivate::qt_metacast(char const *)
- ?newConfigurationActivated@QNetworkSessionPrivate@@IAEXXZ @ 1107 NONAME ; void QNetworkSessionPrivate::newConfigurationActivated(void)
- ?qt_metacast@QNetworkSessionPrivate@@UAEPAXPBD@Z @ 1108 NONAME ; void * QNetworkSessionPrivate::qt_metacast(char const *)
- ?startPolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1109 NONAME ; void QNetworkConfigurationManagerPrivate::startPolling(void)
- ?allConfigurations@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1110 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfigurationManagerPrivate::allConfigurations(class QFlags<enum QNetworkConfiguration::StateFlag>)
- ?connectNotify@QNetworkSession@@MAEXPBD@Z @ 1111 NONAME ; void QNetworkSession::connectNotify(char const *)
- ?onlineStateChanged@QNetworkConfigurationManagerPrivate@@IAEX_N@Z @ 1112 NONAME ; void QNetworkConfigurationManagerPrivate::onlineStateChanged(bool)
- ?bytesWritten@QNetworkSession@@QBE_KXZ @ 1113 NONAME ; unsigned long long QNetworkSession::bytesWritten(void) const
- ?sendCustomRequest@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@ABVQByteArray@@PAVQIODevice@@@Z @ 1114 NONAME ; class QNetworkReply * QNetworkAccessManager::sendCustomRequest(class QNetworkRequest const &, class QByteArray const &, class QIODevice *)
- ?addPendingConnection@QTcpServer@@IAEXPAVQTcpSocket@@@Z @ 1115 NONAME ; void QTcpServer::addPendingConnection(class QTcpSocket *)
- ?ignore@QNetworkSession@@QAEXXZ @ 1116 NONAME ; void QNetworkSession::ignore(void)
- ?updateConfigurations@QNetworkConfigurationManager@@QAEXXZ @ 1117 NONAME ; void QNetworkConfigurationManager::updateConfigurations(void)
- ?stateChanged@QNetworkSessionPrivate@@IAEXW4State@QNetworkSession@@@Z @ 1118 NONAME ; void QNetworkSessionPrivate::stateChanged(enum QNetworkSession::State)
- ?setALREnabled@QNetworkSessionPrivate@@UAEX_N@Z @ 1119 NONAME ; void QNetworkSessionPrivate::setALREnabled(bool)
- ?configurationRemoved@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1120 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QNetworkConfiguration const &)
- ?qt_metacall@QBearerEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1121 NONAME ; int QBearerEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?interface@QNetworkSession@@QBE?AVQNetworkInterface@@XZ @ 1122 NONAME ; class QNetworkInterface QNetworkSession::interface(void) const
- ?opened@QNetworkSession@@IAEXXZ @ 1123 NONAME ; void QNetworkSession::opened(void)
- ?type@QNetworkConfiguration@@QBE?AW4Type@1@XZ @ 1124 NONAME ; enum QNetworkConfiguration::Type QNetworkConfiguration::type(void) const
- ?migrate@QNetworkSession@@QAEXXZ @ 1125 NONAME ; void QNetworkSession::migrate(void)
- ?closed@QNetworkSession@@IAEXXZ @ 1126 NONAME ; void QNetworkSession::closed(void)
- ?pollEngines@QNetworkConfigurationManagerPrivate@@AAEXXZ @ 1127 NONAME ; void QNetworkConfigurationManagerPrivate::pollEngines(void)
- ?staticMetaObject@QNetworkConfigurationManagerPrivate@@2UQMetaObject@@B @ 1128 NONAME ; struct QMetaObject const QNetworkConfigurationManagerPrivate::staticMetaObject
- ?reject@QNetworkSession@@QAEXXZ @ 1129 NONAME ; void QNetworkSession::reject(void)
- ?options@QAuthenticator@@QBE?AV?$QHash@VQString@@VQVariant@@@@XZ @ 1130 NONAME ; class QHash<class QString, class QVariant> QAuthenticator::options(void) const
- ?purpose@QNetworkConfiguration@@QBE?AW4Purpose@1@XZ @ 1131 NONAME ; enum QNetworkConfiguration::Purpose QNetworkConfiguration::purpose(void) const
- ?configurationFromIdentifier@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1132 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIdentifier(class QString const &)
- ?abort@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1133 NONAME ; void QNetworkConfigurationManagerPrivate::abort(void)
- ?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1134 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *)
- ?trUtf8@QNetworkSession@@SA?AVQString@@PBD0H@Z @ 1135 NONAME ; class QString QNetworkSession::trUtf8(char const *, char const *, int)
- ?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1136 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *)
- ??_EQNetworkSessionPrivate@@UAE@I@Z @ 1137 NONAME ; QNetworkSessionPrivate::~QNetworkSessionPrivate(unsigned int)
- ?configurationUpdateComplete@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1138 NONAME ; void QNetworkConfigurationManagerPrivate::configurationUpdateComplete(void)
- ?metaObject@QNetworkConfigurationManager@@UBEPBUQMetaObject@@XZ @ 1139 NONAME ; struct QMetaObject const * QNetworkConfigurationManager::metaObject(void) const
- ?tr@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0@Z @ 1140 NONAME ; class QString QNetworkConfigurationManagerPrivate::tr(char const *, char const *)
- ?updateCompleted@QNetworkConfigurationManager@@IAEXXZ @ 1141 NONAME ; void QNetworkConfigurationManager::updateCompleted(void)
- ?setNetworkAccessible@QNetworkAccessManager@@QAEXW4NetworkAccessibility@1@@Z @ 1142 NONAME ; void QNetworkAccessManager::setNetworkAccessible(enum QNetworkAccessManager::NetworkAccessibility)
- ??_EQBearerEngineFactoryInterface@@UAE@I@Z @ 1143 NONAME ; QBearerEngineFactoryInterface::~QBearerEngineFactoryInterface(unsigned int)
- ?enablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1144 NONAME ; void QNetworkConfigurationManagerPrivate::enablePolling(void)
- ?bearerTypeName@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1145 NONAME ; class QString QNetworkConfiguration::bearerTypeName(void) const
- ?bearerType@QNetworkConfiguration@@QBE?AW4BearerType@1@XZ @ 1146 NONAME ; enum QNetworkConfiguration::BearerType QNetworkConfiguration::bearerType(void) const
+ ?bearerTypeName@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1031 NONAME ; class QString QNetworkConfiguration::bearerTypeName(void) const
+ ??0QNetworkConfigurationManagerPrivate@@QAE@XZ @ 1032 NONAME ; QNetworkConfigurationManagerPrivate::QNetworkConfigurationManagerPrivate(void)
+ ?preferredConfigurationChanged@QNetworkSession@@IAEXABVQNetworkConfiguration@@_N@Z @ 1033 NONAME ; void QNetworkSession::preferredConfigurationChanged(class QNetworkConfiguration const &, bool)
+ ?isValid@QNetworkConfiguration@@QBE_NXZ @ 1034 NONAME ; bool QNetworkConfiguration::isValid(void) const
+ ?configurationAdded@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1035 NONAME ; void QBearerEngine::configurationAdded(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+ ??1QNetworkSession@@UAE@XZ @ 1036 NONAME ; QNetworkSession::~QNetworkSession(void)
+ ?qt_metacast@QBearerEnginePlugin@@UAEPAXPBD@Z @ 1037 NONAME ; void * QBearerEnginePlugin::qt_metacast(char const *)
+ ??0QNetworkSession@@QAE@ABVQNetworkConfiguration@@PAVQObject@@@Z @ 1038 NONAME ; QNetworkSession::QNetworkSession(class QNetworkConfiguration const &, class QObject *)
+ ?error@QNetworkSessionPrivate@@IAEXW4SessionError@QNetworkSession@@@Z @ 1039 NONAME ; void QNetworkSessionPrivate::error(enum QNetworkSession::SessionError)
+ ?name@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1040 NONAME ; class QString QNetworkConfiguration::name(void) const
+ ?close@QNetworkSession@@QAEXXZ @ 1041 NONAME ; void QNetworkSession::close(void)
+ ?sessionProperty@QNetworkSession@@QBE?AVQVariant@@ABVQString@@@Z @ 1042 NONAME ; class QVariant QNetworkSession::sessionProperty(class QString const &) const
+ ?engines@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@PAVQBearerEngine@@@@XZ @ 1043 NONAME ; class QList<class QBearerEngine *> QNetworkConfigurationManagerPrivate::engines(void)
+ ?isOnline@QNetworkConfigurationManager@@QBE_NXZ @ 1044 NONAME ; bool QNetworkConfigurationManager::isOnline(void) const
+ ?capabilities@QNetworkConfigurationManager@@QBE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1045 NONAME ; class QFlags<enum QNetworkConfigurationManager::Capability> QNetworkConfigurationManager::capabilities(void) const
+ ?configurationRemoved@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1046 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+ ??0QNetworkConfiguration@@QAE@ABV0@@Z @ 1047 NONAME ; QNetworkConfiguration::QNetworkConfiguration(class QNetworkConfiguration const &)
+ ?setPriority@QNetworkRequest@@QAEXW4Priority@1@@Z @ 1048 NONAME ; void QNetworkRequest::setPriority(enum QNetworkRequest::Priority)
+ ?disconnectNotify@QNetworkSession@@MAEXPBD@Z @ 1049 NONAME ; void QNetworkSession::disconnectNotify(char const *)
+ ?metaObject@QNetworkSession@@UBEPBUQMetaObject@@XZ @ 1050 NONAME ; struct QMetaObject const * QNetworkSession::metaObject(void) const
+ ?trUtf8@QBearerEngine@@SA?AVQString@@PBD0H@Z @ 1051 NONAME ; class QString QBearerEngine::trUtf8(char const *, char const *, int)
+ ?configuration@QNetworkSession@@QBE?AVQNetworkConfiguration@@XZ @ 1052 NONAME ; class QNetworkConfiguration QNetworkSession::configuration(void) const
+ ?closed@QNetworkSessionPrivate@@IAEXXZ @ 1053 NONAME ; void QNetworkSessionPrivate::closed(void)
+ ??1QNetworkSessionPrivate@@UAE@XZ @ 1054 NONAME ; QNetworkSessionPrivate::~QNetworkSessionPrivate(void)
+ ?staticMetaObject@QNetworkConfigurationManager@@2UQMetaObject@@B @ 1055 NONAME ; struct QMetaObject const QNetworkConfigurationManager::staticMetaObject
+ ?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0H@Z @ 1056 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *, int)
+ ?tr@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0H@Z @ 1057 NONAME ; class QString QNetworkConfigurationManagerPrivate::tr(char const *, char const *, int)
+ ?configurationChanged@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1058 NONAME ; void QBearerEngine::configurationChanged(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+ ?tr@QBearerEngine@@SA?AVQString@@PBD0@Z @ 1059 NONAME ; class QString QBearerEngine::tr(char const *, char const *)
+ ??0QNetworkConfiguration@@QAE@XZ @ 1060 NONAME ; QNetworkConfiguration::QNetworkConfiguration(void)
+ ?configurationRemoved@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1061 NONAME ; void QNetworkConfigurationManager::configurationRemoved(class QNetworkConfiguration const &)
+ ?preferredConfigurationChanged@QNetworkSessionPrivate@@IAEXABVQNetworkConfiguration@@_N@Z @ 1062 NONAME ; void QNetworkSessionPrivate::preferredConfigurationChanged(class QNetworkConfiguration const &, bool)
+ ??1QBearerEnginePlugin@@UAE@XZ @ 1063 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(void)
+ ?tr@QNetworkSession@@SA?AVQString@@PBD0@Z @ 1064 NONAME ; class QString QNetworkSession::tr(char const *, char const *)
+ ??0QNetworkConfigurationManager@@QAE@PAVQObject@@@Z @ 1065 NONAME ; QNetworkConfigurationManager::QNetworkConfigurationManager(class QObject *)
+ ?qt_metacall@QNetworkConfigurationManagerPrivate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1066 NONAME ; int QNetworkConfigurationManagerPrivate::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??_EQNetworkSession@@UAE@I@Z @ 1067 NONAME ; QNetworkSession::~QNetworkSession(unsigned int)
+ ??9QNetworkConfiguration@@QBE_NABV0@@Z @ 1068 NONAME ; bool QNetworkConfiguration::operator!=(class QNetworkConfiguration const &) const
+ ?configurationsInUse@QBearerEngine@@QBE_NXZ @ 1069 NONAME ; bool QBearerEngine::configurationsInUse(void) const
+ ?tr@QBearerEngine@@SA?AVQString@@PBD0H@Z @ 1070 NONAME ; class QString QBearerEngine::tr(char const *, char const *, int)
+ ?configuration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 1071 NONAME ; class QNetworkConfiguration QNetworkAccessManager::configuration(void) const
+ ?tr@QNetworkSessionPrivate@@SA?AVQString@@PBD0@Z @ 1072 NONAME ; class QString QNetworkSessionPrivate::tr(char const *, char const *)
+ ?activeTime@QNetworkSession@@QBE_KXZ @ 1073 NONAME ; unsigned long long QNetworkSession::activeTime(void) const
+ ?state@QNetworkSession@@QBE?AW4State@1@XZ @ 1074 NONAME ; enum QNetworkSession::State QNetworkSession::state(void) const
+ ?disablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1075 NONAME ; void QNetworkConfigurationManagerPrivate::disablePolling(void)
+ ?getStaticMetaObject@QNetworkSessionPrivate@@SAABUQMetaObject@@XZ @ 1076 NONAME ; struct QMetaObject const & QNetworkSessionPrivate::getStaticMetaObject(void)
+ ?configurationAdded@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1077 NONAME ; void QNetworkConfigurationManager::configurationAdded(class QNetworkConfiguration const &)
+ ?tr@QNetworkSessionPrivate@@SA?AVQString@@PBD0H@Z @ 1078 NONAME ; class QString QNetworkSessionPrivate::tr(char const *, char const *, int)
+ ?performAsyncConfigurationUpdate@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1079 NONAME ; void QNetworkConfigurationManagerPrivate::performAsyncConfigurationUpdate(void)
+ ?trUtf8@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0@Z @ 1080 NONAME ; class QString QNetworkConfigurationManagerPrivate::trUtf8(char const *, char const *)
+ ?networkAccessible@QNetworkAccessManager@@QBE?AW4NetworkAccessibility@1@XZ @ 1081 NONAME ; enum QNetworkAccessManager::NetworkAccessibility QNetworkAccessManager::networkAccessible(void) const
+ ?setOption@QAuthenticator@@QAEXABVQString@@ABVQVariant@@@Z @ 1082 NONAME ; void QAuthenticator::setOption(class QString const &, class QVariant const &)
+ ?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0H@Z @ 1083 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *, int)
+ ?trUtf8@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1084 NONAME ; class QString QNetworkConfigurationManager::trUtf8(char const *, char const *)
+ ?allConfigurations@QNetworkConfigurationManager@@QBE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1085 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfigurationManager::allConfigurations(class QFlags<enum QNetworkConfiguration::StateFlag>) const
+ ?requiresPolling@QBearerEngine@@UBE_NXZ @ 1086 NONAME ; bool QBearerEngine::requiresPolling(void) const
+ ?bearerType@QNetworkConfiguration@@QBE?AW4BearerType@1@XZ @ 1087 NONAME ; enum QNetworkConfiguration::BearerType QNetworkConfiguration::bearerType(void) const
+ ?priority@QNetworkRequest@@QBE?AW4Priority@1@XZ @ 1088 NONAME ; enum QNetworkRequest::Priority QNetworkRequest::priority(void) const
+ ?networkAccessibleChanged@QNetworkAccessManager@@IAEXW4NetworkAccessibility@1@@Z @ 1089 NONAME ; void QNetworkAccessManager::networkAccessibleChanged(enum QNetworkAccessManager::NetworkAccessibility)
+ ??8QNetworkConfiguration@@QBE_NABV0@@Z @ 1090 NONAME ; bool QNetworkConfiguration::operator==(class QNetworkConfiguration const &) const
+ ?option@QAuthenticator@@QBE?AVQVariant@@ABVQString@@@Z @ 1091 NONAME ; class QVariant QAuthenticator::option(class QString const &) const
+ ?tr@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1092 NONAME ; class QString QBearerEnginePlugin::tr(char const *, char const *)
+ ?configurationFromIdentifier@QNetworkConfigurationManager@@QBE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1093 NONAME ; class QNetworkConfiguration QNetworkConfigurationManager::configurationFromIdentifier(class QString const &) const
+ ??_EQBearerEnginePlugin@@UAE@I@Z @ 1094 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(unsigned int)
+ ?children@QNetworkConfiguration@@QBE?AV?$QList@VQNetworkConfiguration@@@@XZ @ 1095 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfiguration::children(void) const
+ ?activeConfiguration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 1096 NONAME ; class QNetworkConfiguration QNetworkAccessManager::activeConfiguration(void) const
+ ?defaultConfiguration@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@XZ @ 1097 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration(void)
+ ?getStaticMetaObject@QNetworkSession@@SAABUQMetaObject@@XZ @ 1098 NONAME ; struct QMetaObject const & QNetworkSession::getStaticMetaObject(void)
+ ?qt_metacast@QNetworkSession@@UAEPAXPBD@Z @ 1099 NONAME ; void * QNetworkSession::qt_metacast(char const *)
+ ?updateCompleted@QBearerEngine@@IAEXXZ @ 1100 NONAME ; void QBearerEngine::updateCompleted(void)
+ ?qt_metacall@QNetworkSessionPrivate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1101 NONAME ; int QNetworkSessionPrivate::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?onlineStateChanged@QNetworkConfigurationManager@@IAEX_N@Z @ 1102 NONAME ; void QNetworkConfigurationManager::onlineStateChanged(bool)
+ ?getStaticMetaObject@QNetworkConfigurationManager@@SAABUQMetaObject@@XZ @ 1103 NONAME ; struct QMetaObject const & QNetworkConfigurationManager::getStaticMetaObject(void)
+ ??0QNetworkSessionPrivate@@QAE@XZ @ 1104 NONAME ; QNetworkSessionPrivate::QNetworkSessionPrivate(void)
+ ?qt_metacast@QNetworkConfigurationManager@@UAEPAXPBD@Z @ 1105 NONAME ; void * QNetworkConfigurationManager::qt_metacast(char const *)
+ ?configurationChanged@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1106 NONAME ; void QNetworkConfigurationManagerPrivate::configurationChanged(class QNetworkConfiguration const &)
+ ?staticMetaObject@QBearerEnginePlugin@@2UQMetaObject@@B @ 1107 NONAME ; struct QMetaObject const QBearerEnginePlugin::staticMetaObject
+ ?qt_metacast@QNetworkConfigurationManagerPrivate@@UAEPAXPBD@Z @ 1108 NONAME ; void * QNetworkConfigurationManagerPrivate::qt_metacast(char const *)
+ ?newConfigurationActivated@QNetworkSessionPrivate@@IAEXXZ @ 1109 NONAME ; void QNetworkSessionPrivate::newConfigurationActivated(void)
+ ?qt_metacast@QNetworkSessionPrivate@@UAEPAXPBD@Z @ 1110 NONAME ; void * QNetworkSessionPrivate::qt_metacast(char const *)
+ ?startPolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1111 NONAME ; void QNetworkConfigurationManagerPrivate::startPolling(void)
+ ?allConfigurations@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1112 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfigurationManagerPrivate::allConfigurations(class QFlags<enum QNetworkConfiguration::StateFlag>)
+ ?connectNotify@QNetworkSession@@MAEXPBD@Z @ 1113 NONAME ; void QNetworkSession::connectNotify(char const *)
+ ?onlineStateChanged@QNetworkConfigurationManagerPrivate@@IAEX_N@Z @ 1114 NONAME ; void QNetworkConfigurationManagerPrivate::onlineStateChanged(bool)
+ ?bytesWritten@QNetworkSession@@QBE_KXZ @ 1115 NONAME ; unsigned long long QNetworkSession::bytesWritten(void) const
+ ?sendCustomRequest@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@ABVQByteArray@@PAVQIODevice@@@Z @ 1116 NONAME ; class QNetworkReply * QNetworkAccessManager::sendCustomRequest(class QNetworkRequest const &, class QByteArray const &, class QIODevice *)
+ ?addPendingConnection@QTcpServer@@IAEXPAVQTcpSocket@@@Z @ 1117 NONAME ; void QTcpServer::addPendingConnection(class QTcpSocket *)
+ ?ignore@QNetworkSession@@QAEXXZ @ 1118 NONAME ; void QNetworkSession::ignore(void)
+ ?updateConfigurations@QNetworkConfigurationManager@@QAEXXZ @ 1119 NONAME ; void QNetworkConfigurationManager::updateConfigurations(void)
+ ?stateChanged@QNetworkSessionPrivate@@IAEXW4State@QNetworkSession@@@Z @ 1120 NONAME ; void QNetworkSessionPrivate::stateChanged(enum QNetworkSession::State)
+ ?setALREnabled@QNetworkSessionPrivate@@UAEX_N@Z @ 1121 NONAME ; void QNetworkSessionPrivate::setALREnabled(bool)
+ ?configurationRemoved@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1122 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QNetworkConfiguration const &)
+ ?qt_metacall@QBearerEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1123 NONAME ; int QBearerEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?interface@QNetworkSession@@QBE?AVQNetworkInterface@@XZ @ 1124 NONAME ; class QNetworkInterface QNetworkSession::interface(void) const
+ ?opened@QNetworkSession@@IAEXXZ @ 1125 NONAME ; void QNetworkSession::opened(void)
+ ?type@QNetworkConfiguration@@QBE?AW4Type@1@XZ @ 1126 NONAME ; enum QNetworkConfiguration::Type QNetworkConfiguration::type(void) const
+ ?migrate@QNetworkSession@@QAEXXZ @ 1127 NONAME ; void QNetworkSession::migrate(void)
+ ?closed@QNetworkSession@@IAEXXZ @ 1128 NONAME ; void QNetworkSession::closed(void)
+ ?pollEngines@QNetworkConfigurationManagerPrivate@@AAEXXZ @ 1129 NONAME ; void QNetworkConfigurationManagerPrivate::pollEngines(void)
+ ?staticMetaObject@QNetworkConfigurationManagerPrivate@@2UQMetaObject@@B @ 1130 NONAME ; struct QMetaObject const QNetworkConfigurationManagerPrivate::staticMetaObject
+ ?reject@QNetworkSession@@QAEXXZ @ 1131 NONAME ; void QNetworkSession::reject(void)
+ ?options@QAuthenticator@@QBE?AV?$QHash@VQString@@VQVariant@@@@XZ @ 1132 NONAME ; class QHash<class QString, class QVariant> QAuthenticator::options(void) const
+ ?purpose@QNetworkConfiguration@@QBE?AW4Purpose@1@XZ @ 1133 NONAME ; enum QNetworkConfiguration::Purpose QNetworkConfiguration::purpose(void) const
+ ?configurationFromIdentifier@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1134 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIdentifier(class QString const &)
+ ?abort@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1135 NONAME ; void QNetworkConfigurationManagerPrivate::abort(void)
+ ?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1136 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *)
+ ?trUtf8@QNetworkSession@@SA?AVQString@@PBD0H@Z @ 1137 NONAME ; class QString QNetworkSession::trUtf8(char const *, char const *, int)
+ ?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1138 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *)
+ ??_EQNetworkSessionPrivate@@UAE@I@Z @ 1139 NONAME ; QNetworkSessionPrivate::~QNetworkSessionPrivate(unsigned int)
+ ?configurationUpdateComplete@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1140 NONAME ; void QNetworkConfigurationManagerPrivate::configurationUpdateComplete(void)
+ ?metaObject@QNetworkConfigurationManager@@UBEPBUQMetaObject@@XZ @ 1141 NONAME ; struct QMetaObject const * QNetworkConfigurationManager::metaObject(void) const
+ ?tr@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0@Z @ 1142 NONAME ; class QString QNetworkConfigurationManagerPrivate::tr(char const *, char const *)
+ ?updateCompleted@QNetworkConfigurationManager@@IAEXXZ @ 1143 NONAME ; void QNetworkConfigurationManager::updateCompleted(void)
+ ?setNetworkAccessible@QNetworkAccessManager@@QAEXW4NetworkAccessibility@1@@Z @ 1144 NONAME ; void QNetworkAccessManager::setNetworkAccessible(enum QNetworkAccessManager::NetworkAccessibility)
+ ??_EQBearerEngineFactoryInterface@@UAE@I@Z @ 1145 NONAME ; QBearerEngineFactoryInterface::~QBearerEngineFactoryInterface(unsigned int)
+ ?enablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1146 NONAME ; void QNetworkConfigurationManagerPrivate::enablePolling(void)
diff --git a/src/s60installs/bwins/QtOpenVGu.def b/src/s60installs/bwins/QtOpenVGu.def
index 14523836eb..a67725ed96 100644
--- a/src/s60installs/bwins/QtOpenVGu.def
+++ b/src/s60installs/bwins/QtOpenVGu.def
@@ -171,4 +171,8 @@ EXPORTS
?drawCachedGlyphs@QVGPaintEngine@@QAE_NHPBIABVQFont@@PAVQFontEngine@@ABVQPointF@@PBUQFixedPoint@@@Z @ 170 NONAME ; bool QVGPaintEngine::drawCachedGlyphs(int, unsigned int const *, class QFont const &, class QFontEngine *, class QPointF const &, struct QFixedPoint const *)
?drawPixmapFragments@QVGPaintEngine@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 171 NONAME ; void QVGPaintEngine::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
?drawStaticTextItem@QVGPaintEngine@@UAEXPAVQStaticTextItem@@@Z @ 172 NONAME ; void QVGPaintEngine::drawStaticTextItem(class QStaticTextItem *)
+ ?fromFile@QVGPixmapData@@UAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 173 NONAME ; bool QVGPixmapData::fromFile(class QString const &, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?createPixmapForImage@QVGPixmapData@@IAEXAAVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@_N@Z @ 174 NONAME ; void QVGPixmapData::createPixmapForImage(class QImage &, class QFlags<enum Qt::ImageConversionFlag>, bool)
+ ?fromData@QVGPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 175 NONAME ; bool QVGPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?fromImageReader@QVGPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 176 NONAME ; void QVGPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
diff --git a/src/s60installs/bwins/QtScriptu.def b/src/s60installs/bwins/QtScriptu.def
index fbf0d3be41..9d998cab22 100644
--- a/src/s60installs/bwins/QtScriptu.def
+++ b/src/s60installs/bwins/QtScriptu.def
@@ -370,37 +370,37 @@ EXPORTS
?staticMetaObject@QScriptExtensionPlugin@@2UQMetaObject@@B @ 369 NONAME ; struct QMetaObject const QScriptExtensionPlugin::staticMetaObject
?staticMetaObject@QScriptEngine@@2UQMetaObject@@B @ 370 NONAME ; struct QMetaObject const QScriptEngine::staticMetaObject
?isQObject@QScriptDeclarativeClass@@UBE_NXZ @ 371 NONAME ; bool QScriptDeclarativeClass::isQObject(void) const
- ??0Value@QScriptDeclarativeClass@@QAE@ABV01@@Z @ 372 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptDeclarativeClass::Value const &)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@ABVQScriptValue@@@Z @ 373 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, class QScriptValue const &)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@ABVQString@@@Z @ 374 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, class QString const &)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@H@Z @ 375 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, int)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@I@Z @ 376 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, unsigned int)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@M@Z @ 377 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, float)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@N@Z @ 378 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, double)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@_N@Z @ 379 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, bool)
+ ?toScriptValue@Value@QScriptDeclarativeClass@@QBE?AVQScriptValue@@PAVQScriptEngine@@@Z @ 372 NONAME ; class QScriptValue QScriptDeclarativeClass::Value::toScriptValue(class QScriptEngine *) const
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@N@Z @ 373 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, double)
+ ?newStaticScopeObject@QScriptDeclarativeClass@@SA?AVQScriptValue@@PAVQScriptEngine@@@Z @ 374 NONAME ; class QScriptValue QScriptDeclarativeClass::newStaticScopeObject(class QScriptEngine *)
+ ?call@QScriptDeclarativeClass@@UAE?AVValue@1@PAUObject@1@PAVQScriptContext@@@Z @ 375 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::call(struct QScriptDeclarativeClass::Object *, class QScriptContext *)
+ ??0Value@QScriptDeclarativeClass@@QAE@XZ @ 376 NONAME ; QScriptDeclarativeClass::Value::Value(void)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@I@Z @ 377 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, unsigned int)
+ ??1Value@QScriptDeclarativeClass@@QAE@XZ @ 378 NONAME ; QScriptDeclarativeClass::Value::~Value(void)
+ ?newObjectValue@QScriptDeclarativeClass@@SA?AVValue@1@PAVQScriptEngine@@PAV1@PAUObject@1@@Z @ 379 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::newObjectValue(class QScriptEngine *, class QScriptDeclarativeClass *, struct QScriptDeclarativeClass::Object *)
??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@ABVQScriptValue@@@Z @ 380 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, class QScriptValue const &)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@ABVQString@@@Z @ 381 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, class QString const &)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@H@Z @ 382 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, int)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@I@Z @ 383 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, unsigned int)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@M@Z @ 384 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, float)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@N@Z @ 385 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, double)
- ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@_N@Z @ 386 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, bool)
- ??0Value@QScriptDeclarativeClass@@QAE@XZ @ 387 NONAME ; QScriptDeclarativeClass::Value::Value(void)
- ??1Value@QScriptDeclarativeClass@@QAE@XZ @ 388 NONAME ; QScriptDeclarativeClass::Value::~Value(void)
- ?call@QScriptDeclarativeClass@@UAE?AVValue@1@PAUObject@1@PAVQScriptContext@@@Z @ 389 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::call(struct QScriptDeclarativeClass::Object *, class QScriptContext *)
- ?functionValue@QScriptDeclarativeClass@@SA?AVValue@1@ABVQScriptValue@@ABQAX@Z @ 390 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::functionValue(class QScriptValue const &, void * const const &)
- ?newObjectValue@QScriptDeclarativeClass@@SA?AVValue@1@PAVQScriptEngine@@PAV1@PAUObject@1@@Z @ 391 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::newObjectValue(class QScriptEngine *, class QScriptDeclarativeClass *, struct QScriptDeclarativeClass::Object *)
- ?property@QScriptDeclarativeClass@@UAE?AVValue@1@PAUObject@1@ABQAX@Z @ 392 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::property(struct QScriptDeclarativeClass::Object *, void * const const &)
- ?propertyValue@QScriptDeclarativeClass@@SA?AVValue@1@ABVQScriptValue@@ABQAX@Z @ 393 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::propertyValue(class QScriptValue const &, void * const const &)
- ?setSupportsCall@QScriptDeclarativeClass@@QAEX_N@Z @ 394 NONAME ; void QScriptDeclarativeClass::setSupportsCall(bool)
- ?supportsCall@QScriptDeclarativeClass@@QBE_NXZ @ 395 NONAME ; bool QScriptDeclarativeClass::supportsCall(void) const
- ?toScriptValue@Value@QScriptDeclarativeClass@@QBE?AVQScriptValue@@PAVQScriptEngine@@@Z @ 396 NONAME ; class QScriptValue QScriptDeclarativeClass::Value::toScriptValue(class QScriptEngine *) const
- ??0PersistentIdentifier@QScriptDeclarativeClass@@AAE@PAVQScriptEnginePrivate@@@Z @ 397 NONAME ; QScriptDeclarativeClass::PersistentIdentifier::PersistentIdentifier(class QScriptEnginePrivate *)
- ?atStatement@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 398 NONAME ; void QScriptEngineAgentPrivate::atStatement(class QTJSC::DebuggerCallFrame const &, int, int)
- ?compare@QScriptDeclarativeClass@@UAE_NPAUObject@1@0@Z @ 399 NONAME ; bool QScriptDeclarativeClass::compare(struct QScriptDeclarativeClass::Object *, struct QScriptDeclarativeClass::Object *)
- ?didReachBreakpoint@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 400 NONAME ; void QScriptEngineAgentPrivate::didReachBreakpoint(class QTJSC::DebuggerCallFrame const &, int, int)
- ?exception@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH_N@Z @ 401 NONAME ; void QScriptEngineAgentPrivate::exception(class QTJSC::DebuggerCallFrame const &, int, int, bool)
- ?reportAdditionalMemoryCost@QScriptEngine@@QAEXH@Z @ 402 NONAME ; void QScriptEngine::reportAdditionalMemoryCost(int)
- ?newStaticScopeObject@QScriptDeclarativeClass@@SA?AVQScriptValue@@PAVQScriptEngine@@@Z @ 403 NONAME ; class QScriptValue QScriptDeclarativeClass::newStaticScopeObject(class QScriptEngine *)
- ?newStaticScopeObject@QScriptDeclarativeClass@@SA?AVQScriptValue@@PAVQScriptEngine@@HPBVQString@@PBV2@PBV?$QFlags@W4PropertyFlag@QScriptValue@@@@@Z @ 404 NONAME ; class QScriptValue QScriptDeclarativeClass::newStaticScopeObject(class QScriptEngine *, int, class QString const *, class QScriptValue const *, class QFlags<enum QScriptValue::PropertyFlag> const *)
+ ?atStatement@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 381 NONAME ; void QScriptEngineAgentPrivate::atStatement(class QTJSC::DebuggerCallFrame const &, int, int)
+ ?exception@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH_N@Z @ 382 NONAME ; void QScriptEngineAgentPrivate::exception(class QTJSC::DebuggerCallFrame const &, int, int, bool)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@M@Z @ 383 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, float)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@H@Z @ 384 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, int)
+ ?functionValue@QScriptDeclarativeClass@@SA?AVValue@1@ABVQScriptValue@@ABQAX@Z @ 385 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::functionValue(class QScriptValue const &, void * const const &)
+ ?setSupportsCall@QScriptDeclarativeClass@@QAEX_N@Z @ 386 NONAME ; void QScriptDeclarativeClass::setSupportsCall(bool)
+ ?property@QScriptDeclarativeClass@@UAE?AVValue@1@PAUObject@1@ABQAX@Z @ 387 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::property(struct QScriptDeclarativeClass::Object *, void * const const &)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@_N@Z @ 388 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, bool)
+ ?newStaticScopeObject@QScriptDeclarativeClass@@SA?AVQScriptValue@@PAVQScriptEngine@@HPBVQString@@PBV2@PBV?$QFlags@W4PropertyFlag@QScriptValue@@@@@Z @ 389 NONAME ; class QScriptValue QScriptDeclarativeClass::newStaticScopeObject(class QScriptEngine *, int, class QString const *, class QScriptValue const *, class QFlags<enum QScriptValue::PropertyFlag> const *)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@ABVQString@@@Z @ 390 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, class QString const &)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@N@Z @ 391 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, double)
+ ?supportsCall@QScriptDeclarativeClass@@QBE_NXZ @ 392 NONAME ; bool QScriptDeclarativeClass::supportsCall(void) const
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptEngine@@I@Z @ 393 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptEngine *, unsigned int)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@_N@Z @ 394 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, bool)
+ ?didReachBreakpoint@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 395 NONAME ; void QScriptEngineAgentPrivate::didReachBreakpoint(class QTJSC::DebuggerCallFrame const &, int, int)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@ABVQScriptValue@@@Z @ 396 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, class QScriptValue const &)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@ABVQString@@@Z @ 397 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, class QString const &)
+ ?propertyValue@QScriptDeclarativeClass@@SA?AVValue@1@ABVQScriptValue@@ABQAX@Z @ 398 NONAME ; class QScriptDeclarativeClass::Value QScriptDeclarativeClass::propertyValue(class QScriptValue const &, void * const const &)
+ ??0Value@QScriptDeclarativeClass@@QAE@ABV01@@Z @ 399 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptDeclarativeClass::Value const &)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@M@Z @ 400 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, float)
+ ?reportAdditionalMemoryCost@QScriptEngine@@QAEXH@Z @ 401 NONAME ; void QScriptEngine::reportAdditionalMemoryCost(int)
+ ??0Value@QScriptDeclarativeClass@@QAE@PAVQScriptContext@@H@Z @ 402 NONAME ; QScriptDeclarativeClass::Value::Value(class QScriptContext *, int)
+ ??0PersistentIdentifier@QScriptDeclarativeClass@@AAE@PAVQScriptEnginePrivate@@@Z @ 403 NONAME ; QScriptDeclarativeClass::PersistentIdentifier::PersistentIdentifier(class QScriptEnginePrivate *)
+ ?compare@QScriptDeclarativeClass@@UAE_NPAUObject@1@0@Z @ 404 NONAME ; bool QScriptDeclarativeClass::compare(struct QScriptDeclarativeClass::Object *, struct QScriptDeclarativeClass::Object *)
diff --git a/src/s60installs/bwins/QtTestu.def b/src/s60installs/bwins/QtTestu.def
index 47198e275a..a7bb9cdc92 100644
--- a/src/s60installs/bwins/QtTestu.def
+++ b/src/s60installs/bwins/QtTestu.def
@@ -75,6 +75,6 @@ EXPORTS
?trUtf8@QTestEventLoop@@SA?AVQString@@PBD0@Z @ 74 NONAME ; class QString QTestEventLoop::trUtf8(char const *, char const *)
?trUtf8@QTestEventLoop@@SA?AVQString@@PBD0H@Z @ 75 NONAME ; class QString QTestEventLoop::trUtf8(char const *, char const *, int)
?staticMetaObject@QTestEventLoop@@2UQMetaObject@@B @ 76 NONAME ; struct QMetaObject const QTestEventLoop::staticMetaObject
- ?endBenchmarkMeasurement@QTest@@YA_KXZ @ 77 NONAME ; unsigned long long QTest::endBenchmarkMeasurement(void)
- ?setBenchmarkResult@QTest@@YAXMW4QBenchmarkMetric@1@@Z @ 78 NONAME ; void QTest::setBenchmarkResult(float, enum QTest::QBenchmarkMetric)
+ ?setBenchmarkResult@QTest@@YAXMW4QBenchmarkMetric@1@@Z @ 77 NONAME ; void QTest::setBenchmarkResult(float, enum QTest::QBenchmarkMetric)
+ ?endBenchmarkMeasurement@QTest@@YA_KXZ @ 78 NONAME ; unsigned long long QTest::endBenchmarkMeasurement(void)
diff --git a/src/s60installs/bwins/phononu.def b/src/s60installs/bwins/phononu.def
index cc4c083896..fe80e12df5 100644
--- a/src/s60installs/bwins/phononu.def
+++ b/src/s60installs/bwins/phononu.def
@@ -514,60 +514,60 @@ EXPORTS
?staticMetaObject@AudioOutput@Phonon@@2UQMetaObject@@B @ 513 NONAME ; struct QMetaObject const Phonon::AudioOutput::staticMetaObject
?staticMetaObject@VideoWidget@Phonon@@2UQMetaObject@@B @ 514 NONAME ; struct QMetaObject const Phonon::VideoWidget::staticMetaObject
?staticMetaObject@SeekSlider@Phonon@@2UQMetaObject@@B @ 515 NONAME ; struct QMetaObject const Phonon::SeekSlider::staticMetaObject
- ??0AudioDataOutput@Phonon@@QAE@PAVQObject@@@Z @ 516 NONAME ; Phonon::AudioDataOutput::AudioDataOutput(class QObject *)
- ??0PulseSupport@Phonon@@AAE@XZ @ 517 NONAME ; Phonon::PulseSupport::PulseSupport(void)
- ??1AudioDataOutput@Phonon@@UAE@XZ @ 518 NONAME ; Phonon::AudioDataOutput::~AudioDataOutput(void)
- ??1PulseSupport@Phonon@@EAE@XZ @ 519 NONAME ; Phonon::PulseSupport::~PulseSupport(void)
- ??_EAudioDataOutput@Phonon@@UAE@I@Z @ 520 NONAME ; Phonon::AudioDataOutput::~AudioDataOutput(unsigned int)
- ??_EPulseSupport@Phonon@@UAE@I@Z @ 521 NONAME ; Phonon::PulseSupport::~PulseSupport(unsigned int)
- ?clearStreamCache@PulseSupport@Phonon@@QAEXVQString@@@Z @ 522 NONAME ; void Phonon::PulseSupport::clearStreamCache(class QString)
+ ?tr@PulseSupport@Phonon@@SA?AVQString@@PBD0H@Z @ 516 NONAME ; class QString Phonon::PulseSupport::tr(char const *, char const *, int)
+ ?setHideAdvancedDevices@GlobalConfig@Phonon@@QAEX_N@Z @ 517 NONAME ; void Phonon::GlobalConfig::setHideAdvancedDevices(bool)
+ ??_EAudioDataOutput@Phonon@@UAE@I@Z @ 518 NONAME ; Phonon::AudioDataOutput::~AudioDataOutput(unsigned int)
+ ?tr@AudioDataOutput@Phonon@@SA?AVQString@@PBD0@Z @ 519 NONAME ; class QString Phonon::AudioDataOutput::tr(char const *, char const *)
+ ?setDataSize@AudioDataOutput@Phonon@@QAEXH@Z @ 520 NONAME ; void Phonon::AudioDataOutput::setDataSize(int)
+ ?qt_metacall@AudioDataOutput@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 521 NONAME ; int Phonon::AudioDataOutput::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?getStaticMetaObject@AudioDataOutput@Phonon@@SAABUQMetaObject@@XZ @ 522 NONAME ; struct QMetaObject const & Phonon::AudioDataOutput::getStaticMetaObject(void)
?createAudioDataOutput@Factory@Phonon@@YAPAVQObject@@PAV3@@Z @ 523 NONAME ; class QObject * Phonon::Factory::createAudioDataOutput(class QObject *)
- ?dataReady@AudioDataOutput@Phonon@@IAEXABV?$QMap@W4Channel@AudioDataOutput@Phonon@@V?$QVector@F@@@@@Z @ 524 NONAME ; void Phonon::AudioDataOutput::dataReady(class QMap<enum Phonon::AudioDataOutput::Channel, class QVector<short> > const &)
- ?dataSize@AudioDataOutput@Phonon@@QBEHXZ @ 525 NONAME ; int Phonon::AudioDataOutput::dataSize(void) const
- ?emitObjectDescriptionChanged@PulseSupport@Phonon@@QAEXW4ObjectDescriptionType@2@@Z @ 526 NONAME ; void Phonon::PulseSupport::emitObjectDescriptionChanged(enum Phonon::ObjectDescriptionType)
- ?emitUsingDevice@PulseSupport@Phonon@@QAEXVQString@@H@Z @ 527 NONAME ; void Phonon::PulseSupport::emitUsingDevice(class QString, int)
- ?enable@PulseSupport@Phonon@@QAEX_N@Z @ 528 NONAME ; void Phonon::PulseSupport::enable(bool)
- ?endOfMedia@AudioDataOutput@Phonon@@IAEXH@Z @ 529 NONAME ; void Phonon::AudioDataOutput::endOfMedia(int)
- ?getInstance@PulseSupport@Phonon@@SAPAV12@XZ @ 530 NONAME ; class Phonon::PulseSupport * Phonon::PulseSupport::getInstance(void)
- ?getStaticMetaObject@AudioDataOutput@Phonon@@SAABUQMetaObject@@XZ @ 531 NONAME ; struct QMetaObject const & Phonon::AudioDataOutput::getStaticMetaObject(void)
- ?getStaticMetaObject@PulseSupport@Phonon@@SAABUQMetaObject@@XZ @ 532 NONAME ; struct QMetaObject const & Phonon::PulseSupport::getStaticMetaObject(void)
- ?hideAdvancedDevices@GlobalConfig@Phonon@@QBE_NXZ @ 533 NONAME ; bool Phonon::GlobalConfig::hideAdvancedDevices(void) const
- ?isActive@PulseSupport@Phonon@@QAE_NXZ @ 534 NONAME ; bool Phonon::PulseSupport::isActive(void)
- ?k_func@AudioDataOutput@Phonon@@AAEPAVAudioDataOutputPrivate@2@XZ @ 535 NONAME ; class Phonon::AudioDataOutputPrivate * Phonon::AudioDataOutput::k_func(void)
- ?k_func@AudioDataOutput@Phonon@@ABEPBVAudioDataOutputPrivate@2@XZ @ 536 NONAME ; class Phonon::AudioDataOutputPrivate const * Phonon::AudioDataOutput::k_func(void) const
- ?k_func@GlobalConfig@Phonon@@AAEPAVGlobalConfigPrivate@2@XZ @ 537 NONAME ; class Phonon::GlobalConfigPrivate * Phonon::GlobalConfig::k_func(void)
- ?k_func@GlobalConfig@Phonon@@ABEPBVGlobalConfigPrivate@2@XZ @ 538 NONAME ; class Phonon::GlobalConfigPrivate const * Phonon::GlobalConfig::k_func(void) const
- ?metaObject@AudioDataOutput@Phonon@@UBEPBUQMetaObject@@XZ @ 539 NONAME ; struct QMetaObject const * Phonon::AudioDataOutput::metaObject(void) const
- ?metaObject@PulseSupport@Phonon@@UBEPBUQMetaObject@@XZ @ 540 NONAME ; struct QMetaObject const * Phonon::PulseSupport::metaObject(void) const
- ?objectDescriptionChanged@PulseSupport@Phonon@@IAEXW4ObjectDescriptionType@2@@Z @ 541 NONAME ; void Phonon::PulseSupport::objectDescriptionChanged(enum Phonon::ObjectDescriptionType)
- ?objectDescriptionIndexes@PulseSupport@Phonon@@QBE?AV?$QList@H@@W4ObjectDescriptionType@2@@Z @ 542 NONAME ; class QList<int> Phonon::PulseSupport::objectDescriptionIndexes(enum Phonon::ObjectDescriptionType) const
- ?objectDescriptionProperties@PulseSupport@Phonon@@QBE?AV?$QHash@VQByteArray@@VQVariant@@@@W4ObjectDescriptionType@2@H@Z @ 543 NONAME ; class QHash<class QByteArray, class QVariant> Phonon::PulseSupport::objectDescriptionProperties(enum Phonon::ObjectDescriptionType, int) const
- ?objectIndexesByCategory@PulseSupport@Phonon@@QBE?AV?$QList@H@@W4ObjectDescriptionType@2@W4Category@2@@Z @ 544 NONAME ; class QList<int> Phonon::PulseSupport::objectIndexesByCategory(enum Phonon::ObjectDescriptionType, enum Phonon::Category) const
- ?qt_metacall@AudioDataOutput@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 545 NONAME ; int Phonon::AudioDataOutput::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?qt_metacall@PulseSupport@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 546 NONAME ; int Phonon::PulseSupport::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?qt_metacast@AudioDataOutput@Phonon@@UAEPAXPBD@Z @ 547 NONAME ; void * Phonon::AudioDataOutput::qt_metacast(char const *)
- ?qt_metacast@PulseSupport@Phonon@@UAEPAXPBD@Z @ 548 NONAME ; void * Phonon::PulseSupport::qt_metacast(char const *)
- ?sampleRate@AudioDataOutput@Phonon@@QBEHXZ @ 549 NONAME ; int Phonon::AudioDataOutput::sampleRate(void) const
+ ?trUtf8@PulseSupport@Phonon@@SA?AVQString@@PBD0@Z @ 524 NONAME ; class QString Phonon::PulseSupport::trUtf8(char const *, char const *)
+ ??1AudioDataOutput@Phonon@@UAE@XZ @ 525 NONAME ; Phonon::AudioDataOutput::~AudioDataOutput(void)
+ ?trUtf8@AudioDataOutput@Phonon@@SA?AVQString@@PBD0H@Z @ 526 NONAME ; class QString Phonon::AudioDataOutput::trUtf8(char const *, char const *, int)
+ ?staticMetaObject@PulseSupport@Phonon@@2UQMetaObject@@B @ 527 NONAME ; struct QMetaObject const Phonon::PulseSupport::staticMetaObject
+ ??1PulseSupport@Phonon@@EAE@XZ @ 528 NONAME ; Phonon::PulseSupport::~PulseSupport(void)
+ ?metaObject@PulseSupport@Phonon@@UBEPBUQMetaObject@@XZ @ 529 NONAME ; struct QMetaObject const * Phonon::PulseSupport::metaObject(void) const
+ ?emitObjectDescriptionChanged@PulseSupport@Phonon@@QAEXW4ObjectDescriptionType@2@@Z @ 530 NONAME ; void Phonon::PulseSupport::emitObjectDescriptionChanged(enum Phonon::ObjectDescriptionType)
+ ?tr@AudioDataOutput@Phonon@@SA?AVQString@@PBD0H@Z @ 531 NONAME ; class QString Phonon::AudioDataOutput::tr(char const *, char const *, int)
+ ?sampleRate@AudioDataOutput@Phonon@@QBEHXZ @ 532 NONAME ; int Phonon::AudioDataOutput::sampleRate(void) const
+ ?qt_metacast@PulseSupport@Phonon@@UAEPAXPBD@Z @ 533 NONAME ; void * Phonon::PulseSupport::qt_metacast(char const *)
+ ?trUtf8@PulseSupport@Phonon@@SA?AVQString@@PBD0H@Z @ 534 NONAME ; class QString Phonon::PulseSupport::trUtf8(char const *, char const *, int)
+ ?enable@PulseSupport@Phonon@@QAEX_N@Z @ 535 NONAME ; void Phonon::PulseSupport::enable(bool)
+ ?staticMetaObject@AudioDataOutput@Phonon@@2UQMetaObject@@B @ 536 NONAME ; struct QMetaObject const Phonon::AudioDataOutput::staticMetaObject
+ ?hideAdvancedDevices@GlobalConfig@Phonon@@QBE_NXZ @ 537 NONAME ; bool Phonon::GlobalConfig::hideAdvancedDevices(void) const
+ ?setOutputDevicePriorityForCategory@PulseSupport@Phonon@@QAEXW4Category@2@V?$QList@H@@@Z @ 538 NONAME ; void Phonon::PulseSupport::setOutputDevicePriorityForCategory(enum Phonon::Category, class QList<int>)
+ ??0AudioDataOutput@Phonon@@QAE@PAVQObject@@@Z @ 539 NONAME ; Phonon::AudioDataOutput::AudioDataOutput(class QObject *)
+ ?dataSize@AudioDataOutput@Phonon@@QBEHXZ @ 540 NONAME ; int Phonon::AudioDataOutput::dataSize(void) const
+ ?shutdown@PulseSupport@Phonon@@SAXXZ @ 541 NONAME ; void Phonon::PulseSupport::shutdown(void)
+ ?emitUsingDevice@PulseSupport@Phonon@@QAEXVQString@@H@Z @ 542 NONAME ; void Phonon::PulseSupport::emitUsingDevice(class QString, int)
+ ?isActive@PulseSupport@Phonon@@QAE_NXZ @ 543 NONAME ; bool Phonon::PulseSupport::isActive(void)
+ ?getStaticMetaObject@PulseSupport@Phonon@@SAABUQMetaObject@@XZ @ 544 NONAME ; struct QMetaObject const & Phonon::PulseSupport::getStaticMetaObject(void)
+ ??0PulseSupport@Phonon@@AAE@XZ @ 545 NONAME ; Phonon::PulseSupport::PulseSupport(void)
+ ??_EPulseSupport@Phonon@@UAE@I@Z @ 546 NONAME ; Phonon::PulseSupport::~PulseSupport(unsigned int)
+ ?setCaptureDevice@PulseSupport@Phonon@@QAE_NVQString@@H@Z @ 547 NONAME ; bool Phonon::PulseSupport::setCaptureDevice(class QString, int)
+ ?setCaptureDevicePriorityForCategory@PulseSupport@Phonon@@QAEXW4Category@2@V?$QList@H@@@Z @ 548 NONAME ; void Phonon::PulseSupport::setCaptureDevicePriorityForCategory(enum Phonon::Category, class QList<int>)
+ ?trUtf8@AudioDataOutput@Phonon@@SA?AVQString@@PBD0@Z @ 549 NONAME ; class QString Phonon::AudioDataOutput::trUtf8(char const *, char const *)
?setAudioCaptureDeviceListFor@GlobalConfig@Phonon@@QAEXW4Category@2@V?$QList@H@@@Z @ 550 NONAME ; void Phonon::GlobalConfig::setAudioCaptureDeviceListFor(enum Phonon::Category, class QList<int>)
- ?setAudioOutputDeviceListFor@GlobalConfig@Phonon@@QAEXW4Category@2@V?$QList@H@@@Z @ 551 NONAME ; void Phonon::GlobalConfig::setAudioOutputDeviceListFor(enum Phonon::Category, class QList<int>)
- ?setCaptureDevice@PulseSupport@Phonon@@QAE_NVQString@@H@Z @ 552 NONAME ; bool Phonon::PulseSupport::setCaptureDevice(class QString, int)
- ?setCaptureDevicePriorityForCategory@PulseSupport@Phonon@@QAEXW4Category@2@V?$QList@H@@@Z @ 553 NONAME ; void Phonon::PulseSupport::setCaptureDevicePriorityForCategory(enum Phonon::Category, class QList<int>)
- ?setDataSize@AudioDataOutput@Phonon@@QAEXH@Z @ 554 NONAME ; void Phonon::AudioDataOutput::setDataSize(int)
- ?setHideAdvancedDevices@GlobalConfig@Phonon@@QAEX_N@Z @ 555 NONAME ; void Phonon::GlobalConfig::setHideAdvancedDevices(bool)
- ?setOutputDevice@PulseSupport@Phonon@@QAE_NVQString@@H@Z @ 556 NONAME ; bool Phonon::PulseSupport::setOutputDevice(class QString, int)
- ?setOutputDevicePriorityForCategory@PulseSupport@Phonon@@QAEXW4Category@2@V?$QList@H@@@Z @ 557 NONAME ; void Phonon::PulseSupport::setOutputDevicePriorityForCategory(enum Phonon::Category, class QList<int>)
+ ?metaObject@AudioDataOutput@Phonon@@UBEPBUQMetaObject@@XZ @ 551 NONAME ; struct QMetaObject const * Phonon::AudioDataOutput::metaObject(void) const
+ ?k_func@AudioDataOutput@Phonon@@AAEPAVAudioDataOutputPrivate@2@XZ @ 552 NONAME ; class Phonon::AudioDataOutputPrivate * Phonon::AudioDataOutput::k_func(void)
+ ?setAudioOutputDeviceListFor@GlobalConfig@Phonon@@QAEXW4Category@2@V?$QList@H@@@Z @ 553 NONAME ; void Phonon::GlobalConfig::setAudioOutputDeviceListFor(enum Phonon::Category, class QList<int>)
+ ?dataReady@AudioDataOutput@Phonon@@IAEXABV?$QMap@W4Channel@AudioDataOutput@Phonon@@V?$QVector@F@@@@@Z @ 554 NONAME ; void Phonon::AudioDataOutput::dataReady(class QMap<enum Phonon::AudioDataOutput::Channel, class QVector<short> > const &)
+ ?qt_metacall@PulseSupport@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 555 NONAME ; int Phonon::PulseSupport::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?k_func@GlobalConfig@Phonon@@ABEPBVGlobalConfigPrivate@2@XZ @ 556 NONAME ; class Phonon::GlobalConfigPrivate const * Phonon::GlobalConfig::k_func(void) const
+ ?tr@PulseSupport@Phonon@@SA?AVQString@@PBD0@Z @ 557 NONAME ; class QString Phonon::PulseSupport::tr(char const *, char const *)
?setStreamPropList@PulseSupport@Phonon@@QAEXW4Category@2@VQString@@@Z @ 558 NONAME ; void Phonon::PulseSupport::setStreamPropList(enum Phonon::Category, class QString)
- ?shutdown@PulseSupport@Phonon@@SAXXZ @ 559 NONAME ; void Phonon::PulseSupport::shutdown(void)
- ?snapshot@VideoWidget@Phonon@@QBE?AVQImage@@XZ @ 560 NONAME ; class QImage Phonon::VideoWidget::snapshot(void) const
- ?tr@AudioDataOutput@Phonon@@SA?AVQString@@PBD0@Z @ 561 NONAME ; class QString Phonon::AudioDataOutput::tr(char const *, char const *)
- ?tr@AudioDataOutput@Phonon@@SA?AVQString@@PBD0H@Z @ 562 NONAME ; class QString Phonon::AudioDataOutput::tr(char const *, char const *, int)
- ?tr@PulseSupport@Phonon@@SA?AVQString@@PBD0@Z @ 563 NONAME ; class QString Phonon::PulseSupport::tr(char const *, char const *)
- ?tr@PulseSupport@Phonon@@SA?AVQString@@PBD0H@Z @ 564 NONAME ; class QString Phonon::PulseSupport::tr(char const *, char const *, int)
- ?trUtf8@AudioDataOutput@Phonon@@SA?AVQString@@PBD0@Z @ 565 NONAME ; class QString Phonon::AudioDataOutput::trUtf8(char const *, char const *)
- ?trUtf8@AudioDataOutput@Phonon@@SA?AVQString@@PBD0H@Z @ 566 NONAME ; class QString Phonon::AudioDataOutput::trUtf8(char const *, char const *, int)
- ?trUtf8@PulseSupport@Phonon@@SA?AVQString@@PBD0@Z @ 567 NONAME ; class QString Phonon::PulseSupport::trUtf8(char const *, char const *)
- ?trUtf8@PulseSupport@Phonon@@SA?AVQString@@PBD0H@Z @ 568 NONAME ; class QString Phonon::PulseSupport::trUtf8(char const *, char const *, int)
- ?usingDevice@PulseSupport@Phonon@@IAEXVQString@@H@Z @ 569 NONAME ; void Phonon::PulseSupport::usingDevice(class QString, int)
- ?staticMetaObject@PulseSupport@Phonon@@2UQMetaObject@@B @ 570 NONAME ; struct QMetaObject const Phonon::PulseSupport::staticMetaObject
- ?staticMetaObject@AudioDataOutput@Phonon@@2UQMetaObject@@B @ 571 NONAME ; struct QMetaObject const Phonon::AudioDataOutput::staticMetaObject
+ ?k_func@GlobalConfig@Phonon@@AAEPAVGlobalConfigPrivate@2@XZ @ 559 NONAME ; class Phonon::GlobalConfigPrivate * Phonon::GlobalConfig::k_func(void)
+ ?objectDescriptionChanged@PulseSupport@Phonon@@IAEXW4ObjectDescriptionType@2@@Z @ 560 NONAME ; void Phonon::PulseSupport::objectDescriptionChanged(enum Phonon::ObjectDescriptionType)
+ ?k_func@AudioDataOutput@Phonon@@ABEPBVAudioDataOutputPrivate@2@XZ @ 561 NONAME ; class Phonon::AudioDataOutputPrivate const * Phonon::AudioDataOutput::k_func(void) const
+ ?objectDescriptionIndexes@PulseSupport@Phonon@@QBE?AV?$QList@H@@W4ObjectDescriptionType@2@@Z @ 562 NONAME ; class QList<int> Phonon::PulseSupport::objectDescriptionIndexes(enum Phonon::ObjectDescriptionType) const
+ ?getInstance@PulseSupport@Phonon@@SAPAV12@XZ @ 563 NONAME ; class Phonon::PulseSupport * Phonon::PulseSupport::getInstance(void)
+ ?usingDevice@PulseSupport@Phonon@@IAEXVQString@@H@Z @ 564 NONAME ; void Phonon::PulseSupport::usingDevice(class QString, int)
+ ?snapshot@VideoWidget@Phonon@@QBE?AVQImage@@XZ @ 565 NONAME ; class QImage Phonon::VideoWidget::snapshot(void) const
+ ?objectIndexesByCategory@PulseSupport@Phonon@@QBE?AV?$QList@H@@W4ObjectDescriptionType@2@W4Category@2@@Z @ 566 NONAME ; class QList<int> Phonon::PulseSupport::objectIndexesByCategory(enum Phonon::ObjectDescriptionType, enum Phonon::Category) const
+ ?endOfMedia@AudioDataOutput@Phonon@@IAEXH@Z @ 567 NONAME ; void Phonon::AudioDataOutput::endOfMedia(int)
+ ?objectDescriptionProperties@PulseSupport@Phonon@@QBE?AV?$QHash@VQByteArray@@VQVariant@@@@W4ObjectDescriptionType@2@H@Z @ 568 NONAME ; class QHash<class QByteArray, class QVariant> Phonon::PulseSupport::objectDescriptionProperties(enum Phonon::ObjectDescriptionType, int) const
+ ?setOutputDevice@PulseSupport@Phonon@@QAE_NVQString@@H@Z @ 569 NONAME ; bool Phonon::PulseSupport::setOutputDevice(class QString, int)
+ ?qt_metacast@AudioDataOutput@Phonon@@UAEPAXPBD@Z @ 570 NONAME ; void * Phonon::AudioDataOutput::qt_metacast(char const *)
+ ?clearStreamCache@PulseSupport@Phonon@@QAEXVQString@@@Z @ 571 NONAME ; void Phonon::PulseSupport::clearStreamCache(class QString)
diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def
index 46c4885d27..01679be98d 100644
--- a/src/s60installs/eabi/QtCoreu.def
+++ b/src/s60installs/eabi/QtCoreu.def
@@ -3667,48 +3667,48 @@ EXPORTS
_ZN13QElapsedTimer5startEv @ 3666 NONAME
_ZN13QElapsedTimer7restartEv @ 3667 NONAME
_ZN13QElapsedTimer9clockTypeEv @ 3668 NONAME
- _ZN23QCoreApplicationPrivate11symbianInitEv @ 3669 NONAME
- _ZN23QEventDispatcherSymbian11qt_metacallEN11QMetaObject4CallEiPPv @ 3670 NONAME
- _ZN23QEventDispatcherSymbian11qt_metacastEPKc @ 3671 NONAME
- _ZN23QEventDispatcherSymbian12selectThreadEv @ 3672 NONAME
- _ZN23QEventDispatcherSymbian16staticMetaObjectE @ 3673 NONAME DATA 16
- _ZN23QEventDispatcherSymbian19getStaticMetaObjectEv @ 3674 NONAME
- _ZN24QAbstractDeclarativeData13parentChangedE @ 3675 NONAME DATA 4
- _ZN24QAbstractDeclarativeData9destroyedE @ 3676 NONAME DATA 4
- _ZN7QString10setRawDataEPK5QChari @ 3677 NONAME
- _ZN7QStringC1EPK5QChar @ 3678 NONAME
- _ZN7QStringC2EPK5QChar @ 3679 NONAME
- _ZN8QVariantC1ERK12QEasingCurve @ 3680 NONAME
- _ZN8QVariantC2ERK12QEasingCurve @ 3681 NONAME
- _ZN9QDateTime18currentDateTimeUtcEv @ 3682 NONAME
- _ZN9QDateTime18setMSecsSinceEpochEx @ 3683 NONAME
- _ZN9QDateTime19fromMSecsSinceEpochEx @ 3684 NONAME
- _ZN9QDateTime22currentMSecsSinceEpochEv @ 3685 NONAME
- _ZN9QListData11detach_growEPii @ 3686 NONAME
- _ZN9QListData6appendEi @ 3687 NONAME
- _ZN9QListData6detachEi @ 3688 NONAME
- _ZN9QMetaType15registerTypedefEPKci @ 3689 NONAME
- _ZN9QMetaType23registerStreamOperatorsEiPFvR11QDataStreamPKvEPFvS1_PvE @ 3690 NONAME
- _ZNK10QTextCodec11makeDecoderE6QFlagsINS_14ConversionFlagEE @ 3691 NONAME
- _ZNK10QTextCodec11makeEncoderE6QFlagsINS_14ConversionFlagEE @ 3692 NONAME
- _ZNK13QElapsedTimer10hasExpiredEx @ 3693 NONAME
- _ZNK13QElapsedTimer19msecsSinceReferenceEv @ 3694 NONAME
- _ZNK13QElapsedTimer6secsToERKS_ @ 3695 NONAME
- _ZNK13QElapsedTimer7elapsedEv @ 3696 NONAME
- _ZNK13QElapsedTimer7isValidEv @ 3697 NONAME
- _ZNK13QElapsedTimer7msecsToERKS_ @ 3698 NONAME
- _ZNK23QEventDispatcherSymbian10metaObjectEv @ 3699 NONAME
- _ZNK6QState11transitionsEv @ 3700 NONAME
- _ZNK8QVariant13toEasingCurveEv @ 3701 NONAME
- _ZNK9QDateTime17toMSecsSinceEpochEv @ 3702 NONAME
- _ZNK9QDateTime7msecsToERKS_ @ 3703 NONAME
- _ZlsR11QDataStreamRK12QEasingCurve @ 3704 NONAME
- _ZltRK13QElapsedTimerS1_ @ 3705 NONAME
- _ZrsR11QDataStreamR12QEasingCurve @ 3706 NONAME
- _ZNK7QLocale13textDirectionEv @ 3707 NONAME
- _ZNK7QString13isRightToLeftEv @ 3708 NONAME
- _ZN16QIODevicePrivate4peekEPcx @ 3709 NONAME
- _ZN16QIODevicePrivate4peekEx @ 3710 NONAME
- _ZN8QProcess18setNativeArgumentsERK7QString @ 3711 NONAME
- _ZNK8QProcess15nativeArgumentsEv @ 3712 NONAME
+ _ZN16QIODevicePrivate4peekEPcx @ 3669 NONAME
+ _ZN16QIODevicePrivate4peekEx @ 3670 NONAME
+ _ZN23QCoreApplicationPrivate11symbianInitEv @ 3671 NONAME
+ _ZN23QEventDispatcherSymbian11qt_metacallEN11QMetaObject4CallEiPPv @ 3672 NONAME
+ _ZN23QEventDispatcherSymbian11qt_metacastEPKc @ 3673 NONAME
+ _ZN23QEventDispatcherSymbian12selectThreadEv @ 3674 NONAME
+ _ZN23QEventDispatcherSymbian16staticMetaObjectE @ 3675 NONAME DATA 16
+ _ZN23QEventDispatcherSymbian19getStaticMetaObjectEv @ 3676 NONAME
+ _ZN24QAbstractDeclarativeData13parentChangedE @ 3677 NONAME DATA 4
+ _ZN24QAbstractDeclarativeData9destroyedE @ 3678 NONAME DATA 4
+ _ZN7QString10setRawDataEPK5QChari @ 3679 NONAME
+ _ZN7QStringC1EPK5QChar @ 3680 NONAME
+ _ZN7QStringC2EPK5QChar @ 3681 NONAME
+ _ZN8QProcess18setNativeArgumentsERK7QString @ 3682 NONAME
+ _ZN8QVariantC1ERK12QEasingCurve @ 3683 NONAME
+ _ZN8QVariantC2ERK12QEasingCurve @ 3684 NONAME
+ _ZN9QDateTime18currentDateTimeUtcEv @ 3685 NONAME
+ _ZN9QDateTime18setMSecsSinceEpochEx @ 3686 NONAME
+ _ZN9QDateTime19fromMSecsSinceEpochEx @ 3687 NONAME
+ _ZN9QDateTime22currentMSecsSinceEpochEv @ 3688 NONAME
+ _ZN9QListData11detach_growEPii @ 3689 NONAME
+ _ZN9QListData6appendEi @ 3690 NONAME
+ _ZN9QListData6detachEi @ 3691 NONAME
+ _ZN9QMetaType15registerTypedefEPKci @ 3692 NONAME
+ _ZN9QMetaType23registerStreamOperatorsEiPFvR11QDataStreamPKvEPFvS1_PvE @ 3693 NONAME
+ _ZNK10QTextCodec11makeDecoderE6QFlagsINS_14ConversionFlagEE @ 3694 NONAME
+ _ZNK10QTextCodec11makeEncoderE6QFlagsINS_14ConversionFlagEE @ 3695 NONAME
+ _ZNK13QElapsedTimer10hasExpiredEx @ 3696 NONAME
+ _ZNK13QElapsedTimer19msecsSinceReferenceEv @ 3697 NONAME
+ _ZNK13QElapsedTimer6secsToERKS_ @ 3698 NONAME
+ _ZNK13QElapsedTimer7elapsedEv @ 3699 NONAME
+ _ZNK13QElapsedTimer7isValidEv @ 3700 NONAME
+ _ZNK13QElapsedTimer7msecsToERKS_ @ 3701 NONAME
+ _ZNK23QEventDispatcherSymbian10metaObjectEv @ 3702 NONAME
+ _ZNK6QState11transitionsEv @ 3703 NONAME
+ _ZNK7QLocale13textDirectionEv @ 3704 NONAME
+ _ZNK7QString13isRightToLeftEv @ 3705 NONAME
+ _ZNK8QProcess15nativeArgumentsEv @ 3706 NONAME
+ _ZNK8QVariant13toEasingCurveEv @ 3707 NONAME
+ _ZNK9QDateTime17toMSecsSinceEpochEv @ 3708 NONAME
+ _ZNK9QDateTime7msecsToERKS_ @ 3709 NONAME
+ _ZlsR11QDataStreamRK12QEasingCurve @ 3710 NONAME
+ _ZltRK13QElapsedTimerS1_ @ 3711 NONAME
+ _ZrsR11QDataStreamR12QEasingCurve @ 3712 NONAME
diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def
index 723f2aefdb..2a14abe5e5 100644
--- a/src/s60installs/eabi/QtDeclarativeu.def
+++ b/src/s60installs/eabi/QtDeclarativeu.def
@@ -44,762 +44,762 @@ EXPORTS
_ZN16QDeclarativeInfoD1Ev @ 43 NONAME
_ZN16QDeclarativeInfoD2Ev @ 44 NONAME
_ZN16QDeclarativeItem10classBeginEv @ 45 NONAME
- _ZN16QDeclarativeItem10forceFocusEv @ 46 NONAME ABSENT
- _ZN16QDeclarativeItem10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 47 NONAME
- _ZN16QDeclarativeItem10resetWidthEv @ 48 NONAME
- _ZN16QDeclarativeItem10sceneEventEP6QEvent @ 49 NONAME
- _ZN16QDeclarativeItem11clipChangedEb @ 50 NONAME
- _ZN16QDeclarativeItem11qt_metacallEN11QMetaObject4CallEiPPv @ 51 NONAME
- _ZN16QDeclarativeItem11qt_metacastEPKc @ 52 NONAME
- _ZN16QDeclarativeItem11resetHeightEv @ 53 NONAME
- _ZN16QDeclarativeItem12childrenRectEv @ 54 NONAME
- _ZN16QDeclarativeItem12focusChangedEb @ 55 NONAME
- _ZN16QDeclarativeItem12stateChangedERK7QString @ 56 NONAME
- _ZN16QDeclarativeItem13keyPressEventEP9QKeyEvent @ 57 NONAME
- _ZN16QDeclarativeItem13parentChangedEPS_ @ 58 NONAME
- _ZN16QDeclarativeItem13setParentItemEPS_ @ 59 NONAME
- _ZN16QDeclarativeItem13smoothChangedEb @ 60 NONAME
- _ZN16QDeclarativeItem15childrenChangedEv @ 61 NONAME ABSENT
- _ZN16QDeclarativeItem15geometryChangedERK6QRectFS2_ @ 62 NONAME
- _ZN16QDeclarativeItem15keyReleaseEventEP9QKeyEvent @ 63 NONAME
- _ZN16QDeclarativeItem16inputMethodEventEP17QInputMethodEvent @ 64 NONAME
- _ZN16QDeclarativeItem16setImplicitWidthEf @ 65 NONAME
- _ZN16QDeclarativeItem16setKeepMouseGrabEb @ 66 NONAME
- _ZN16QDeclarativeItem16staticMetaObjectE @ 67 NONAME DATA 16
- _ZN16QDeclarativeItem17componentCompleteEv @ 68 NONAME
- _ZN16QDeclarativeItem17setBaselineOffsetEf @ 69 NONAME
- _ZN16QDeclarativeItem17setImplicitHeightEf @ 70 NONAME
- _ZN16QDeclarativeItem17wantsFocusChangedEb @ 71 NONAME ABSENT
- _ZN16QDeclarativeItem18keyPressPreHandlerEP9QKeyEvent @ 72 NONAME
- _ZN16QDeclarativeItem18setTransformOriginENS_15TransformOriginE @ 73 NONAME
- _ZN16QDeclarativeItem19childrenRectChangedERK6QRectF @ 74 NONAME
- _ZN16QDeclarativeItem19getStaticMetaObjectEv @ 75 NONAME
- _ZN16QDeclarativeItem20keyReleasePreHandlerEP9QKeyEvent @ 76 NONAME
- _ZN16QDeclarativeItem21baselineOffsetChangedEf @ 77 NONAME
- _ZN16QDeclarativeItem21inputMethodPreHandlerEP17QInputMethodEvent @ 78 NONAME
- _ZN16QDeclarativeItem22transformOriginChangedENS_15TransformOriginE @ 79 NONAME
- _ZN16QDeclarativeItem5eventEP6QEvent @ 80 NONAME
- _ZN16QDeclarativeItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 81 NONAME
- _ZN16QDeclarativeItem7setClipEb @ 82 NONAME
- _ZN16QDeclarativeItem7setSizeERK6QSizeF @ 83 NONAME
- _ZN16QDeclarativeItem8setFocusEb @ 84 NONAME
- _ZN16QDeclarativeItem8setWidthEf @ 85 NONAME
- _ZN16QDeclarativeItem9setHeightEf @ 86 NONAME
- _ZN16QDeclarativeItem9setSmoothEb @ 87 NONAME
- _ZN16QDeclarativeItem9transformEv @ 88 NONAME
- _ZN16QDeclarativeItemC1EPS_ @ 89 NONAME
- _ZN16QDeclarativeItemC1ER23QDeclarativeItemPrivatePS_ @ 90 NONAME
- _ZN16QDeclarativeItemC2EPS_ @ 91 NONAME
- _ZN16QDeclarativeItemC2ER23QDeclarativeItemPrivatePS_ @ 92 NONAME
- _ZN16QDeclarativeItemD0Ev @ 93 NONAME
- _ZN16QDeclarativeItemD1Ev @ 94 NONAME
- _ZN16QDeclarativeItemD2Ev @ 95 NONAME
- _ZN16QDeclarativeText11fontChangedERK5QFont @ 96 NONAME
- _ZN16QDeclarativeText11qt_metacallEN11QMetaObject4CallEiPPv @ 97 NONAME
- _ZN16QDeclarativeText11qt_metacastEPKc @ 98 NONAME
- _ZN16QDeclarativeText11setWrapModeENS_8WrapModeE @ 99 NONAME
- _ZN16QDeclarativeText11textChangedERK7QString @ 100 NONAME
- _ZN16QDeclarativeText12colorChangedERK6QColor @ 101 NONAME
- _ZN16QDeclarativeText12setElideModeENS_13TextElideModeE @ 102 NONAME
- _ZN16QDeclarativeText12styleChangedENS_9TextStyleE @ 103 NONAME
- _ZN16QDeclarativeText13linkActivatedERK7QString @ 104 NONAME
- _ZN16QDeclarativeText13setStyleColorERK6QColor @ 105 NONAME
- _ZN16QDeclarativeText13setTextFormatENS_10TextFormatE @ 106 NONAME
- _ZN16QDeclarativeText15geometryChangedERK6QRectFS2_ @ 107 NONAME
- _ZN16QDeclarativeText15mousePressEventEP24QGraphicsSceneMouseEvent @ 108 NONAME
- _ZN16QDeclarativeText15wrapModeChangedEv @ 109 NONAME
- _ZN16QDeclarativeText16elideModeChangedENS_13TextElideModeE @ 110 NONAME
- _ZN16QDeclarativeText16staticMetaObjectE @ 111 NONAME DATA 16
- _ZN16QDeclarativeText17componentCompleteEv @ 112 NONAME
- _ZN16QDeclarativeText17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 113 NONAME
- _ZN16QDeclarativeText17styleColorChangedERK6QColor @ 114 NONAME
- _ZN16QDeclarativeText17textFormatChangedENS_10TextFormatE @ 115 NONAME
- _ZN16QDeclarativeText18paintedSizeChangedEv @ 116 NONAME
- _ZN16QDeclarativeText19getStaticMetaObjectEv @ 117 NONAME
- _ZN16QDeclarativeText19reloadWithResourcesEv @ 118 NONAME ABSENT
- _ZN16QDeclarativeText24verticalAlignmentChangedENS_10VAlignmentE @ 119 NONAME
- _ZN16QDeclarativeText26horizontalAlignmentChangedENS_10HAlignmentE @ 120 NONAME
- _ZN16QDeclarativeText5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 121 NONAME
- _ZN16QDeclarativeText7setFontERK5QFont @ 122 NONAME
- _ZN16QDeclarativeText7setTextERK7QString @ 123 NONAME
- _ZN16QDeclarativeText8setColorERK6QColor @ 124 NONAME
- _ZN16QDeclarativeText8setStyleENS_9TextStyleE @ 125 NONAME
- _ZN16QDeclarativeText9setHAlignENS_10HAlignmentE @ 126 NONAME
- _ZN16QDeclarativeText9setVAlignENS_10VAlignmentE @ 127 NONAME
- _ZN16QDeclarativeTextC1EP16QDeclarativeItem @ 128 NONAME
- _ZN16QDeclarativeTextC2EP16QDeclarativeItem @ 129 NONAME
- _ZN16QDeclarativeTextD0Ev @ 130 NONAME
- _ZN16QDeclarativeTextD1Ev @ 131 NONAME
- _ZN16QDeclarativeTextD2Ev @ 132 NONAME
- _ZN16QDeclarativeTypeC1EiRKN19QDeclarativePrivate12RegisterTypeE @ 133 NONAME
- _ZN16QDeclarativeTypeC1EiRKN19QDeclarativePrivate17RegisterInterfaceE @ 134 NONAME
- _ZN16QDeclarativeTypeC2EiRKN19QDeclarativePrivate12RegisterTypeE @ 135 NONAME
- _ZN16QDeclarativeTypeC2EiRKN19QDeclarativePrivate17RegisterInterfaceE @ 136 NONAME
- _ZN16QDeclarativeTypeD1Ev @ 137 NONAME
- _ZN16QDeclarativeTypeD2Ev @ 138 NONAME
- _ZN16QDeclarativeView10paintEventEP11QPaintEvent @ 139 NONAME
- _ZN16QDeclarativeView10timerEventEP11QTimerEvent @ 140 NONAME
- _ZN16QDeclarativeView11eventFilterEP7QObjectP6QEvent @ 141 NONAME
- _ZN16QDeclarativeView11qt_metacallEN11QMetaObject4CallEiPPv @ 142 NONAME
- _ZN16QDeclarativeView11qt_metacastEPKc @ 143 NONAME
- _ZN16QDeclarativeView11resizeEventEP12QResizeEvent @ 144 NONAME
- _ZN16QDeclarativeView11rootContextEv @ 145 NONAME ABSENT
- _ZN16QDeclarativeView12sceneResizedE5QSize @ 146 NONAME
- _ZN16QDeclarativeView13setResizeModeENS_10ResizeModeE @ 147 NONAME
- _ZN16QDeclarativeView13setRootObjectEP7QObject @ 148 NONAME
- _ZN16QDeclarativeView13statusChangedENS_6StatusE @ 149 NONAME
- _ZN16QDeclarativeView15continueExecuteEv @ 150 NONAME
- _ZN16QDeclarativeView16staticMetaObjectE @ 151 NONAME DATA 16
- _ZN16QDeclarativeView19getStaticMetaObjectEv @ 152 NONAME
- _ZN16QDeclarativeView6engineEv @ 153 NONAME ABSENT
- _ZN16QDeclarativeView9setSourceERK4QUrl @ 154 NONAME
- _ZN16QDeclarativeViewC1EP7QWidget @ 155 NONAME
- _ZN16QDeclarativeViewC1ERK4QUrlP7QWidget @ 156 NONAME
- _ZN16QDeclarativeViewC2EP7QWidget @ 157 NONAME
- _ZN16QDeclarativeViewC2ERK4QUrlP7QWidget @ 158 NONAME
- _ZN16QDeclarativeViewD0Ev @ 159 NONAME
- _ZN16QDeclarativeViewD1Ev @ 160 NONAME
- _ZN16QDeclarativeViewD2Ev @ 161 NONAME
- _ZN16QMetaEnumBuilder6addKeyERK10QByteArrayi @ 162 NONAME
- _ZN16QMetaEnumBuilder9removeKeyEi @ 163 NONAME
- _ZN16QMetaEnumBuilder9setIsFlagEb @ 164 NONAME
- _ZN17QDeclarativeError14setDescriptionERK7QString @ 165 NONAME
- _ZN17QDeclarativeError6setUrlERK4QUrl @ 166 NONAME
- _ZN17QDeclarativeError7setLineEi @ 167 NONAME
- _ZN17QDeclarativeError9setColumnEi @ 168 NONAME
- _ZN17QDeclarativeErrorC1ERKS_ @ 169 NONAME
- _ZN17QDeclarativeErrorC1Ev @ 170 NONAME
- _ZN17QDeclarativeErrorC2ERKS_ @ 171 NONAME
- _ZN17QDeclarativeErrorC2Ev @ 172 NONAME
- _ZN17QDeclarativeErrorD1Ev @ 173 NONAME
- _ZN17QDeclarativeErrorD2Ev @ 174 NONAME
- _ZN17QDeclarativeErroraSERKS_ @ 175 NONAME
- _ZN17QDeclarativeState10setExtendsERK7QString @ 176 NONAME
- _ZN17QDeclarativeState11qt_metacallEN11QMetaObject4CallEiPPv @ 177 NONAME
- _ZN17QDeclarativeState11qt_metacastEPKc @ 178 NONAME
- _ZN17QDeclarativeState13setStateGroupEP22QDeclarativeStateGroup @ 179 NONAME
- _ZN17QDeclarativeState16staticMetaObjectE @ 180 NONAME DATA 16
- _ZN17QDeclarativeState19getStaticMetaObjectEv @ 181 NONAME
- _ZN17QDeclarativeState5applyEP22QDeclarativeStateGroupP22QDeclarativeTransitionPS_ @ 182 NONAME
- _ZN17QDeclarativeState6cancelEv @ 183 NONAME
- _ZN17QDeclarativeState7changesEv @ 184 NONAME
- _ZN17QDeclarativeState7setNameERK7QString @ 185 NONAME
- _ZN17QDeclarativeState7setWhenEP19QDeclarativeBinding @ 186 NONAME
- _ZN17QDeclarativeState9completedEv @ 187 NONAME
- _ZN17QDeclarativeStateC1EP7QObject @ 188 NONAME
- _ZN17QDeclarativeStateC2EP7QObject @ 189 NONAME
- _ZN17QDeclarativeStateD0Ev @ 190 NONAME
- _ZN17QDeclarativeStateD1Ev @ 191 NONAME
- _ZN17QDeclarativeStateD2Ev @ 192 NONAME
- _ZN17QDeclarativeStatelsEP26QDeclarativeStateOperation @ 193 NONAME
- _ZN18QDeclarativeAction17deleteFromBindingEv @ 194 NONAME
- _ZN18QDeclarativeActionC1EP7QObjectRK7QStringP19QDeclarativeContextRK8QVariant @ 195 NONAME
- _ZN18QDeclarativeActionC1EP7QObjectRK7QStringRK8QVariant @ 196 NONAME
- _ZN18QDeclarativeActionC1Ev @ 197 NONAME
- _ZN18QDeclarativeActionC2EP7QObjectRK7QStringP19QDeclarativeContextRK8QVariant @ 198 NONAME
- _ZN18QDeclarativeActionC2EP7QObjectRK7QStringRK8QVariant @ 199 NONAME
- _ZN18QDeclarativeActionC2Ev @ 200 NONAME
- _ZN18QDeclarativeEngine10setBaseUrlERK4QUrl @ 201 NONAME
- _ZN18QDeclarativeEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 202 NONAME
- _ZN18QDeclarativeEngine11qt_metacastEPKc @ 203 NONAME
- _ZN18QDeclarativeEngine11rootContextEv @ 204 NONAME ABSENT
- _ZN18QDeclarativeEngine12importPluginERK7QStringS2_PS0_ @ 205 NONAME
- _ZN18QDeclarativeEngine13addImportPathERK7QString @ 206 NONAME
- _ZN18QDeclarativeEngine13addPluginPathERK7QString @ 207 NONAME
- _ZN18QDeclarativeEngine15objectOwnershipEP7QObject @ 208 NONAME
- _ZN18QDeclarativeEngine16addImageProviderERK7QStringP25QDeclarativeImageProvider @ 209 NONAME
- _ZN18QDeclarativeEngine16contextForObjectEPK7QObject @ 210 NONAME
- _ZN18QDeclarativeEngine16staticMetaObjectE @ 211 NONAME DATA 16
- _ZN18QDeclarativeEngine17setImportPathListERK11QStringList @ 212 NONAME
- _ZN18QDeclarativeEngine17setPluginPathListERK11QStringList @ 213 NONAME
- _ZN18QDeclarativeEngine18setObjectOwnershipEP7QObjectNS_15ObjectOwnershipE @ 214 NONAME
- _ZN18QDeclarativeEngine19clearComponentCacheEv @ 215 NONAME
- _ZN18QDeclarativeEngine19getStaticMetaObjectEv @ 216 NONAME
- _ZN18QDeclarativeEngine19removeImageProviderERK7QString @ 217 NONAME
- _ZN18QDeclarativeEngine19setContextForObjectEP7QObjectP19QDeclarativeContext @ 218 NONAME
- _ZN18QDeclarativeEngine21setOfflineStoragePathERK7QString @ 219 NONAME
- _ZN18QDeclarativeEngine30setNetworkAccessManagerFactoryEP39QDeclarativeNetworkAccessManagerFactory @ 220 NONAME
- _ZN18QDeclarativeEngine32setOutputWarningsToStandardErrorEb @ 221 NONAME
- _ZN18QDeclarativeEngine4quitEv @ 222 NONAME
- _ZN18QDeclarativeEngine8warningsERK5QListI17QDeclarativeErrorE @ 223 NONAME
- _ZN18QDeclarativeEngineC1EP7QObject @ 224 NONAME
- _ZN18QDeclarativeEngineC2EP7QObject @ 225 NONAME
- _ZN18QDeclarativeEngineD0Ev @ 226 NONAME
- _ZN18QDeclarativeEngineD1Ev @ 227 NONAME
- _ZN18QDeclarativeEngineD2Ev @ 228 NONAME
- _ZN18QDeclarativeParser7VariantC1ERK7QString @ 229 NONAME
- _ZN18QDeclarativeParser7VariantC1ERK7QStringPN14QDeclarativeJS3AST4NodeE @ 230 NONAME
- _ZN18QDeclarativeParser7VariantC1ERKS0_ @ 231 NONAME
- _ZN18QDeclarativeParser7VariantC1Eb @ 232 NONAME
- _ZN18QDeclarativeParser7VariantC1EdRK7QString @ 233 NONAME
- _ZN18QDeclarativeParser7VariantC1Ev @ 234 NONAME
- _ZN18QDeclarativeParser7VariantC2ERK7QString @ 235 NONAME
- _ZN18QDeclarativeParser7VariantC2ERK7QStringPN14QDeclarativeJS3AST4NodeE @ 236 NONAME
- _ZN18QDeclarativeParser7VariantC2ERKS0_ @ 237 NONAME
- _ZN18QDeclarativeParser7VariantC2Eb @ 238 NONAME
- _ZN18QDeclarativeParser7VariantC2EdRK7QString @ 239 NONAME
- _ZN18QDeclarativeParser7VariantC2Ev @ 240 NONAME
- _ZN18QDeclarativeParser7VariantaSERKS0_ @ 241 NONAME
- _ZN18QMetaMethodBuilder13setAttributesEi @ 242 NONAME
- _ZN18QMetaMethodBuilder13setReturnTypeERK10QByteArray @ 243 NONAME
- _ZN18QMetaMethodBuilder17setParameterNamesERK5QListI10QByteArrayE @ 244 NONAME
- _ZN18QMetaMethodBuilder6setTagERK10QByteArray @ 245 NONAME
- _ZN18QMetaMethodBuilder9setAccessEN11QMetaMethod6AccessE @ 246 NONAME
- _ZN18QMetaObjectBuilder11addPropertyERK10QByteArrayS2_i @ 247 NONAME
- _ZN18QMetaObjectBuilder11addPropertyERK13QMetaProperty @ 248 NONAME
- _ZN18QMetaObjectBuilder11deserializeER11QDataStreamRK4QMapI10QByteArrayPK11QMetaObjectE @ 249 NONAME
- _ZN18QMetaObjectBuilder11indexOfSlotERK10QByteArray @ 250 NONAME
- _ZN18QMetaObjectBuilder12addClassInfoERK10QByteArrayS2_ @ 251 NONAME
- _ZN18QMetaObjectBuilder12removeMethodEi @ 252 NONAME
- _ZN18QMetaObjectBuilder12setClassNameERK10QByteArray @ 253 NONAME
- _ZN18QMetaObjectBuilder13addEnumeratorERK10QByteArray @ 254 NONAME
- _ZN18QMetaObjectBuilder13addEnumeratorERK9QMetaEnum @ 255 NONAME
- _ZN18QMetaObjectBuilder13addMetaObjectEPK11QMetaObject6QFlagsINS_9AddMemberEE @ 256 NONAME
- _ZN18QMetaObjectBuilder13indexOfMethodERK10QByteArray @ 257 NONAME
- _ZN18QMetaObjectBuilder13indexOfSignalERK10QByteArray @ 258 NONAME
- _ZN18QMetaObjectBuilder13setSuperClassEPK11QMetaObject @ 259 NONAME
- _ZN18QMetaObjectBuilder14addConstructorERK10QByteArray @ 260 NONAME
- _ZN18QMetaObjectBuilder14addConstructorERK11QMetaMethod @ 261 NONAME
- _ZN18QMetaObjectBuilder14removePropertyEi @ 262 NONAME
- _ZN18QMetaObjectBuilder15indexOfPropertyERK10QByteArray @ 263 NONAME
- _ZN18QMetaObjectBuilder15removeClassInfoEi @ 264 NONAME
- _ZN18QMetaObjectBuilder16indexOfClassInfoERK10QByteArray @ 265 NONAME
- _ZN18QMetaObjectBuilder16removeEnumeratorEi @ 266 NONAME
- _ZN18QMetaObjectBuilder17indexOfEnumeratorERK10QByteArray @ 267 NONAME
- _ZN18QMetaObjectBuilder17removeConstructorEi @ 268 NONAME
- _ZN18QMetaObjectBuilder18indexOfConstructorERK10QByteArray @ 269 NONAME
- _ZN18QMetaObjectBuilder19fromRelocatableDataEP11QMetaObjectPKS0_RK10QByteArray @ 270 NONAME
- _ZN18QMetaObjectBuilder20addRelatedMetaObjectERKPFRK11QMetaObjectvE @ 271 NONAME
- _ZN18QMetaObjectBuilder23removeRelatedMetaObjectEi @ 272 NONAME
- _ZN18QMetaObjectBuilder25setStaticMetacallFunctionEPFiN11QMetaObject4CallEiPPvE @ 273 NONAME
- _ZN18QMetaObjectBuilder7addSlotERK10QByteArray @ 274 NONAME
- _ZN18QMetaObjectBuilder8setFlagsE6QFlagsINS_14MetaObjectFlagEE @ 275 NONAME
- _ZN18QMetaObjectBuilder9addMethodERK10QByteArray @ 276 NONAME
- _ZN18QMetaObjectBuilder9addMethodERK10QByteArrayS2_ @ 277 NONAME
- _ZN18QMetaObjectBuilder9addMethodERK11QMetaMethod @ 278 NONAME
- _ZN18QMetaObjectBuilder9addSignalERK10QByteArray @ 279 NONAME
- _ZN18QMetaObjectBuilderC1EPK11QMetaObject6QFlagsINS_9AddMemberEE @ 280 NONAME
- _ZN18QMetaObjectBuilderC1Ev @ 281 NONAME
- _ZN18QMetaObjectBuilderC2EPK11QMetaObject6QFlagsINS_9AddMemberEE @ 282 NONAME
- _ZN18QMetaObjectBuilderC2Ev @ 283 NONAME
- _ZN18QMetaObjectBuilderD0Ev @ 284 NONAME
- _ZN18QMetaObjectBuilderD1Ev @ 285 NONAME
- _ZN18QMetaObjectBuilderD2Ev @ 286 NONAME
- _ZN19QDeclarativeAnchors10classBeginEv @ 287 NONAME
- _ZN19QDeclarativeAnchors10resetRightEv @ 288 NONAME
- _ZN19QDeclarativeAnchors10setMarginsEf @ 289 NONAME
- _ZN19QDeclarativeAnchors10topChangedEv @ 290 NONAME
- _ZN19QDeclarativeAnchors11fillChangedEv @ 291 NONAME
- _ZN19QDeclarativeAnchors11leftChangedEv @ 292 NONAME
- _ZN19QDeclarativeAnchors11qt_metacallEN11QMetaObject4CallEiPPv @ 293 NONAME
- _ZN19QDeclarativeAnchors11qt_metacastEPKc @ 294 NONAME
- _ZN19QDeclarativeAnchors11resetBottomEv @ 295 NONAME
- _ZN19QDeclarativeAnchors11setBaselineERK22QDeclarativeAnchorLine @ 296 NONAME
- _ZN19QDeclarativeAnchors11setCenterInEP15QGraphicsObject @ 297 NONAME
- _ZN19QDeclarativeAnchors12rightChangedEv @ 298 NONAME
- _ZN19QDeclarativeAnchors12setTopMarginEf @ 299 NONAME
- _ZN19QDeclarativeAnchors13bottomChangedEv @ 300 NONAME
- _ZN19QDeclarativeAnchors13resetBaselineEv @ 301 NONAME
- _ZN19QDeclarativeAnchors13resetCenterInEv @ 302 NONAME
- _ZN19QDeclarativeAnchors13setLeftMarginEf @ 303 NONAME
- _ZN19QDeclarativeAnchors14marginsChangedEv @ 304 NONAME
- _ZN19QDeclarativeAnchors14setRightMarginEf @ 305 NONAME
- _ZN19QDeclarativeAnchors15baselineChangedEv @ 306 NONAME
- _ZN19QDeclarativeAnchors15centerInChangedEv @ 307 NONAME
- _ZN19QDeclarativeAnchors15setBottomMarginEf @ 308 NONAME
- _ZN19QDeclarativeAnchors16staticMetaObjectE @ 309 NONAME DATA 16
- _ZN19QDeclarativeAnchors16topMarginChangedEv @ 310 NONAME
- _ZN19QDeclarativeAnchors17componentCompleteEv @ 311 NONAME
- _ZN19QDeclarativeAnchors17leftMarginChangedEv @ 312 NONAME
- _ZN19QDeclarativeAnchors17setBaselineOffsetEf @ 313 NONAME
- _ZN19QDeclarativeAnchors17setVerticalCenterERK22QDeclarativeAnchorLine @ 314 NONAME
- _ZN19QDeclarativeAnchors18rightMarginChangedEv @ 315 NONAME
- _ZN19QDeclarativeAnchors19bottomMarginChangedEv @ 316 NONAME
- _ZN19QDeclarativeAnchors19getStaticMetaObjectEv @ 317 NONAME
- _ZN19QDeclarativeAnchors19resetVerticalCenterEv @ 318 NONAME
- _ZN19QDeclarativeAnchors19setHorizontalCenterERK22QDeclarativeAnchorLine @ 319 NONAME
- _ZN19QDeclarativeAnchors21baselineOffsetChangedEv @ 320 NONAME
- _ZN19QDeclarativeAnchors21resetHorizontalCenterEv @ 321 NONAME
- _ZN19QDeclarativeAnchors21verticalCenterChangedEv @ 322 NONAME
- _ZN19QDeclarativeAnchors23horizontalCenterChangedEv @ 323 NONAME
- _ZN19QDeclarativeAnchors23setVerticalCenterOffsetEf @ 324 NONAME
- _ZN19QDeclarativeAnchors25setHorizontalCenterOffsetEf @ 325 NONAME
- _ZN19QDeclarativeAnchors27verticalCenterOffsetChangedEv @ 326 NONAME
- _ZN19QDeclarativeAnchors29horizontalCenterOffsetChangedEv @ 327 NONAME
- _ZN19QDeclarativeAnchors6setTopERK22QDeclarativeAnchorLine @ 328 NONAME
- _ZN19QDeclarativeAnchors7setFillEP15QGraphicsObject @ 329 NONAME
- _ZN19QDeclarativeAnchors7setLeftERK22QDeclarativeAnchorLine @ 330 NONAME
- _ZN19QDeclarativeAnchors8resetTopEv @ 331 NONAME
- _ZN19QDeclarativeAnchors8setRightERK22QDeclarativeAnchorLine @ 332 NONAME
- _ZN19QDeclarativeAnchors9resetFillEv @ 333 NONAME
- _ZN19QDeclarativeAnchors9resetLeftEv @ 334 NONAME
- _ZN19QDeclarativeAnchors9setBottomERK22QDeclarativeAnchorLine @ 335 NONAME
- _ZN19QDeclarativeAnchorsC1EP15QGraphicsObjectP7QObject @ 336 NONAME
- _ZN19QDeclarativeAnchorsC1EP7QObject @ 337 NONAME
- _ZN19QDeclarativeAnchorsC2EP15QGraphicsObjectP7QObject @ 338 NONAME
- _ZN19QDeclarativeAnchorsC2EP7QObject @ 339 NONAME
- _ZN19QDeclarativeAnchorsD0Ev @ 340 NONAME
- _ZN19QDeclarativeAnchorsD1Ev @ 341 NONAME
- _ZN19QDeclarativeAnchorsD2Ev @ 342 NONAME
- _ZN19QDeclarativeBinding10setEnabledEb6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 343 NONAME
- _ZN19QDeclarativeBinding11qt_metacallEN11QMetaObject4CallEiPPv @ 344 NONAME
- _ZN19QDeclarativeBinding11qt_metacastEPKc @ 345 NONAME
- _ZN19QDeclarativeBinding13propertyIndexEv @ 346 NONAME
- _ZN19QDeclarativeBinding16staticMetaObjectE @ 347 NONAME DATA 16
- _ZN19QDeclarativeBinding19getStaticMetaObjectEv @ 348 NONAME
- _ZN19QDeclarativeBinding6updateE6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 349 NONAME
- _ZN19QDeclarativeBinding9setTargetERK20QDeclarativeProperty @ 350 NONAME
- _ZN19QDeclarativeBindingC1EPvP20QDeclarativeRefCountP7QObjectP23QDeclarativeContextDataRK7QStringiS4_ @ 351 NONAME
- _ZN19QDeclarativeBindingC1ERK7QStringP7QObjectP19QDeclarativeContextS4_ @ 352 NONAME
- _ZN19QDeclarativeBindingC1ERK7QStringP7QObjectP23QDeclarativeContextDataS4_ @ 353 NONAME
- _ZN19QDeclarativeBindingC2EPvP20QDeclarativeRefCountP7QObjectP23QDeclarativeContextDataRK7QStringiS4_ @ 354 NONAME
- _ZN19QDeclarativeBindingC2ERK7QStringP7QObjectP19QDeclarativeContextS4_ @ 355 NONAME
- _ZN19QDeclarativeBindingC2ERK7QStringP7QObjectP23QDeclarativeContextDataS4_ @ 356 NONAME
- _ZN19QDeclarativeBindingD0Ev @ 357 NONAME
- _ZN19QDeclarativeBindingD1Ev @ 358 NONAME
- _ZN19QDeclarativeBindingD2Ev @ 359 NONAME
- _ZN19QDeclarativeContext10setBaseUrlERK4QUrl @ 360 NONAME
- _ZN19QDeclarativeContext11qt_metacallEN11QMetaObject4CallEiPPv @ 361 NONAME
- _ZN19QDeclarativeContext11qt_metacastEPKc @ 362 NONAME
- _ZN19QDeclarativeContext11resolvedUrlERK4QUrl @ 363 NONAME
- _ZN19QDeclarativeContext16setContextObjectEP7QObject @ 364 NONAME
- _ZN19QDeclarativeContext16staticMetaObjectE @ 365 NONAME DATA 16
- _ZN19QDeclarativeContext18setContextPropertyERK7QStringP7QObject @ 366 NONAME
- _ZN19QDeclarativeContext18setContextPropertyERK7QStringRK8QVariant @ 367 NONAME
- _ZN19QDeclarativeContext19getStaticMetaObjectEv @ 368 NONAME
- _ZN19QDeclarativeContextC1EP18QDeclarativeEngineP7QObject @ 369 NONAME
- _ZN19QDeclarativeContextC1EP18QDeclarativeEngineb @ 370 NONAME
- _ZN19QDeclarativeContextC1EP23QDeclarativeContextData @ 371 NONAME
- _ZN19QDeclarativeContextC1EPS_P7QObject @ 372 NONAME
- _ZN19QDeclarativeContextC2EP18QDeclarativeEngineP7QObject @ 373 NONAME
- _ZN19QDeclarativeContextC2EP18QDeclarativeEngineb @ 374 NONAME
- _ZN19QDeclarativeContextC2EP23QDeclarativeContextData @ 375 NONAME
- _ZN19QDeclarativeContextC2EPS_P7QObject @ 376 NONAME
- _ZN19QDeclarativeContextD0Ev @ 377 NONAME
- _ZN19QDeclarativeContextD1Ev @ 378 NONAME
- _ZN19QDeclarativeContextD2Ev @ 379 NONAME
- _ZN19QDeclarativeDomListC1ERKS_ @ 380 NONAME
- _ZN19QDeclarativeDomListC1Ev @ 381 NONAME
- _ZN19QDeclarativeDomListC2ERKS_ @ 382 NONAME
- _ZN19QDeclarativeDomListC2Ev @ 383 NONAME
- _ZN19QDeclarativeDomListD1Ev @ 384 NONAME
- _ZN19QDeclarativeDomListD2Ev @ 385 NONAME
- _ZN19QDeclarativeDomListaSERKS_ @ 386 NONAME
- _ZN19QDeclarativePrivate12registerTypeERKNS_12RegisterTypeE @ 387 NONAME ABSENT
- _ZN19QDeclarativePrivate12registerTypeERKNS_17RegisterInterfaceE @ 388 NONAME ABSENT
- _ZN19QDeclarativePrivate26registerAutoParentFunctionEPFNS_16AutoParentResultEP7QObjectS2_E @ 389 NONAME ABSENT
- _ZN19QDeclarativePrivate30qdeclarativeelement_destructorEP7QObject @ 390 NONAME
- _ZN19QListModelInterface10itemsMovedEiii @ 391 NONAME
- _ZN19QListModelInterface11qt_metacallEN11QMetaObject4CallEiPPv @ 392 NONAME
- _ZN19QListModelInterface11qt_metacastEPKc @ 393 NONAME
- _ZN19QListModelInterface12itemsChangedEiiRK5QListIiE @ 394 NONAME
- _ZN19QListModelInterface12itemsRemovedEii @ 395 NONAME
- _ZN19QListModelInterface13itemsInsertedEii @ 396 NONAME
- _ZN19QListModelInterface16staticMetaObjectE @ 397 NONAME DATA 16
- _ZN19QListModelInterface19getStaticMetaObjectEv @ 398 NONAME
- _ZN20QDeclarativeBehavior10setEnabledEb @ 399 NONAME
- _ZN20QDeclarativeBehavior11qt_metacallEN11QMetaObject4CallEiPPv @ 400 NONAME
- _ZN20QDeclarativeBehavior11qt_metacastEPKc @ 401 NONAME
- _ZN20QDeclarativeBehavior12setAnimationEP29QDeclarativeAbstractAnimation @ 402 NONAME
- _ZN20QDeclarativeBehavior14enabledChangedEv @ 403 NONAME
- _ZN20QDeclarativeBehavior16staticMetaObjectE @ 404 NONAME DATA 16
- _ZN20QDeclarativeBehavior18componentFinalizedEv @ 405 NONAME
- _ZN20QDeclarativeBehavior19getStaticMetaObjectEv @ 406 NONAME
- _ZN20QDeclarativeBehavior5writeERK8QVariant @ 407 NONAME
- _ZN20QDeclarativeBehavior9animationEv @ 408 NONAME
- _ZN20QDeclarativeBehavior9setTargetERK20QDeclarativeProperty @ 409 NONAME
- _ZN20QDeclarativeBehaviorC1EP7QObject @ 410 NONAME
- _ZN20QDeclarativeBehaviorC2EP7QObject @ 411 NONAME
- _ZN20QDeclarativeBehaviorD0Ev @ 412 NONAME
- _ZN20QDeclarativeBehaviorD1Ev @ 413 NONAME
- _ZN20QDeclarativeBehaviorD2Ev @ 414 NONAME
- _ZN20QDeclarativeDomValueC1ERKS_ @ 415 NONAME
- _ZN20QDeclarativeDomValueC1Ev @ 416 NONAME
- _ZN20QDeclarativeDomValueC2ERKS_ @ 417 NONAME
- _ZN20QDeclarativeDomValueC2Ev @ 418 NONAME
- _ZN20QDeclarativeDomValueD1Ev @ 419 NONAME
- _ZN20QDeclarativeDomValueD2Ev @ 420 NONAME
- _ZN20QDeclarativeDomValueaSERKS_ @ 421 NONAME
- _ZN20QDeclarativeMetaType11isInterfaceEi @ 422 NONAME
- _ZN20QDeclarativeMetaType12interfaceIIdEi @ 423 NONAME
- _ZN20QDeclarativeMetaType12qmlTypeNamesEv @ 424 NONAME
- _ZN20QDeclarativeMetaType12typeCategoryEi @ 425 NONAME
- _ZN20QDeclarativeMetaType13defaultMethodEP7QObject @ 426 NONAME
- _ZN20QDeclarativeMetaType13defaultMethodEPK11QMetaObject @ 427 NONAME
- _ZN20QDeclarativeMetaType15defaultPropertyEP7QObject @ 428 NONAME
- _ZN20QDeclarativeMetaType15defaultPropertyEPK11QMetaObject @ 429 NONAME
- _ZN20QDeclarativeMetaType15parentFunctionsEv @ 430 NONAME
- _ZN20QDeclarativeMetaType21customStringConverterEi @ 431 NONAME
- _ZN20QDeclarativeMetaType24attachedPropertiesFuncIdEPK11QMetaObject @ 432 NONAME
- _ZN20QDeclarativeMetaType26attachedPropertiesFuncByIdEi @ 433 NONAME
- _ZN20QDeclarativeMetaType29registerCustomStringConverterEiPF8QVariantRK7QStringE @ 434 NONAME
- _ZN20QDeclarativeMetaType4copyEiPvPKv @ 435 NONAME
- _ZN20QDeclarativeMetaType6isListEi @ 436 NONAME
- _ZN20QDeclarativeMetaType7qmlTypeEPK11QMetaObject @ 437 NONAME
- _ZN20QDeclarativeMetaType7qmlTypeERK10QByteArrayii @ 438 NONAME
- _ZN20QDeclarativeMetaType7qmlTypeEi @ 439 NONAME
- _ZN20QDeclarativeMetaType8isModuleERK10QByteArrayii @ 440 NONAME
- _ZN20QDeclarativeMetaType8listTypeEi @ 441 NONAME
- _ZN20QDeclarativeMetaType8qmlTypesEv @ 442 NONAME
- _ZN20QDeclarativeMetaType9isQObjectEi @ 443 NONAME
- _ZN20QDeclarativeMetaType9toQObjectERK8QVariantPb @ 444 NONAME
- _ZN20QDeclarativeProperty4readEP7QObjectRK7QString @ 445 NONAME
- _ZN20QDeclarativeProperty4readEP7QObjectRK7QStringP18QDeclarativeEngine @ 446 NONAME
- _ZN20QDeclarativeProperty4readEP7QObjectRK7QStringP19QDeclarativeContext @ 447 NONAME
- _ZN20QDeclarativeProperty5writeEP7QObjectRK7QStringRK8QVariant @ 448 NONAME
- _ZN20QDeclarativeProperty5writeEP7QObjectRK7QStringRK8QVariantP18QDeclarativeEngine @ 449 NONAME
- _ZN20QDeclarativeProperty5writeEP7QObjectRK7QStringRK8QVariantP19QDeclarativeContext @ 450 NONAME
- _ZN20QDeclarativePropertyC1EP7QObject @ 451 NONAME
- _ZN20QDeclarativePropertyC1EP7QObjectP18QDeclarativeEngine @ 452 NONAME
- _ZN20QDeclarativePropertyC1EP7QObjectP19QDeclarativeContext @ 453 NONAME
- _ZN20QDeclarativePropertyC1EP7QObjectRK7QString @ 454 NONAME
- _ZN20QDeclarativePropertyC1EP7QObjectRK7QStringP18QDeclarativeEngine @ 455 NONAME
- _ZN20QDeclarativePropertyC1EP7QObjectRK7QStringP19QDeclarativeContext @ 456 NONAME
- _ZN20QDeclarativePropertyC1ERKS_ @ 457 NONAME
- _ZN20QDeclarativePropertyC1Ev @ 458 NONAME
- _ZN20QDeclarativePropertyC2EP7QObject @ 459 NONAME
- _ZN20QDeclarativePropertyC2EP7QObjectP18QDeclarativeEngine @ 460 NONAME
- _ZN20QDeclarativePropertyC2EP7QObjectP19QDeclarativeContext @ 461 NONAME
- _ZN20QDeclarativePropertyC2EP7QObjectRK7QString @ 462 NONAME
- _ZN20QDeclarativePropertyC2EP7QObjectRK7QStringP18QDeclarativeEngine @ 463 NONAME
- _ZN20QDeclarativePropertyC2EP7QObjectRK7QStringP19QDeclarativeContext @ 464 NONAME
- _ZN20QDeclarativePropertyC2ERKS_ @ 465 NONAME
- _ZN20QDeclarativePropertyC2Ev @ 466 NONAME
- _ZN20QDeclarativePropertyD1Ev @ 467 NONAME
- _ZN20QDeclarativePropertyD2Ev @ 468 NONAME
- _ZN20QDeclarativePropertyaSERKS_ @ 469 NONAME
- _ZN20QMetaPropertyBuilder10setDynamicEb @ 470 NONAME
- _ZN20QMetaPropertyBuilder11setEditableEb @ 471 NONAME
- _ZN20QMetaPropertyBuilder11setReadableEb @ 472 NONAME
- _ZN20QMetaPropertyBuilder11setWritableEb @ 473 NONAME
- _ZN20QMetaPropertyBuilder12setStdCppSetEb @ 474 NONAME
- _ZN20QMetaPropertyBuilder13setDesignableEb @ 475 NONAME
- _ZN20QMetaPropertyBuilder13setEnumOrFlagEb @ 476 NONAME
- _ZN20QMetaPropertyBuilder13setResettableEb @ 477 NONAME
- _ZN20QMetaPropertyBuilder13setScriptableEb @ 478 NONAME
- _ZN20QMetaPropertyBuilder15setNotifySignalERK18QMetaMethodBuilder @ 479 NONAME
- _ZN20QMetaPropertyBuilder18removeNotifySignalEv @ 480 NONAME
- _ZN20QMetaPropertyBuilder7setUserEb @ 481 NONAME
- _ZN20QMetaPropertyBuilder9setStoredEb @ 482 NONAME
- _ZN21QDeclarativeComponent11beginCreateEP19QDeclarativeContext @ 483 NONAME
- _ZN21QDeclarativeComponent11qt_metacallEN11QMetaObject4CallEiPPv @ 484 NONAME
- _ZN21QDeclarativeComponent11qt_metacastEPKc @ 485 NONAME
- _ZN21QDeclarativeComponent12createObjectEP7QObject @ 486 NONAME
- _ZN21QDeclarativeComponent13statusChangedENS_6StatusE @ 487 NONAME
- _ZN21QDeclarativeComponent14completeCreateEv @ 488 NONAME
- _ZN21QDeclarativeComponent15progressChangedEf @ 489 NONAME
- _ZN21QDeclarativeComponent16staticMetaObjectE @ 490 NONAME DATA 16
- _ZN21QDeclarativeComponent19getStaticMetaObjectEv @ 491 NONAME
- _ZN21QDeclarativeComponent21qmlAttachedPropertiesEP7QObject @ 492 NONAME
- _ZN21QDeclarativeComponent6createEP19QDeclarativeContext @ 493 NONAME
- _ZN21QDeclarativeComponent7loadUrlERK4QUrl @ 494 NONAME
- _ZN21QDeclarativeComponent7setDataERK10QByteArrayRK4QUrl @ 495 NONAME
- _ZN21QDeclarativeComponentC1EP18QDeclarativeEngineP24QDeclarativeCompiledDataiiP7QObject @ 496 NONAME
- _ZN21QDeclarativeComponentC1EP18QDeclarativeEngineP7QObject @ 497 NONAME
- _ZN21QDeclarativeComponentC1EP18QDeclarativeEngineRK4QUrlP7QObject @ 498 NONAME
- _ZN21QDeclarativeComponentC1EP18QDeclarativeEngineRK7QStringP7QObject @ 499 NONAME
- _ZN21QDeclarativeComponentC1EP7QObject @ 500 NONAME
- _ZN21QDeclarativeComponentC1ER28QDeclarativeComponentPrivateP7QObject @ 501 NONAME
- _ZN21QDeclarativeComponentC2EP18QDeclarativeEngineP24QDeclarativeCompiledDataiiP7QObject @ 502 NONAME
- _ZN21QDeclarativeComponentC2EP18QDeclarativeEngineP7QObject @ 503 NONAME
- _ZN21QDeclarativeComponentC2EP18QDeclarativeEngineRK4QUrlP7QObject @ 504 NONAME
- _ZN21QDeclarativeComponentC2EP18QDeclarativeEngineRK7QStringP7QObject @ 505 NONAME
- _ZN21QDeclarativeComponentC2EP7QObject @ 506 NONAME
- _ZN21QDeclarativeComponentC2ER28QDeclarativeComponentPrivateP7QObject @ 507 NONAME
- _ZN21QDeclarativeComponentD0Ev @ 508 NONAME
- _ZN21QDeclarativeComponentD1Ev @ 509 NONAME
- _ZN21QDeclarativeComponentD2Ev @ 510 NONAME
- _ZN21QDeclarativeDomImportC1ERKS_ @ 511 NONAME
- _ZN21QDeclarativeDomImportC1Ev @ 512 NONAME
- _ZN21QDeclarativeDomImportC2ERKS_ @ 513 NONAME
- _ZN21QDeclarativeDomImportC2Ev @ 514 NONAME
- _ZN21QDeclarativeDomImportD1Ev @ 515 NONAME
- _ZN21QDeclarativeDomImportD2Ev @ 516 NONAME
- _ZN21QDeclarativeDomImportaSERKS_ @ 517 NONAME
- _ZN21QDeclarativeDomObjectC1ERKS_ @ 518 NONAME
- _ZN21QDeclarativeDomObjectC1Ev @ 519 NONAME
- _ZN21QDeclarativeDomObjectC2ERKS_ @ 520 NONAME
- _ZN21QDeclarativeDomObjectC2Ev @ 521 NONAME
- _ZN21QDeclarativeDomObjectD1Ev @ 522 NONAME
- _ZN21QDeclarativeDomObjectD2Ev @ 523 NONAME
- _ZN21QDeclarativeDomObjectaSERKS_ @ 524 NONAME
- _ZN21QDeclarativeListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 525 NONAME
- _ZN21QDeclarativeListModel11qt_metacastEPKc @ 526 NONAME
- _ZN21QDeclarativeListModel11setPropertyEiRK7QStringRK8QVariant @ 527 NONAME
- _ZN21QDeclarativeListModel12countChangedEv @ 528 NONAME
- _ZN21QDeclarativeListModel16staticMetaObjectE @ 529 NONAME DATA 16
- _ZN21QDeclarativeListModel19getStaticMetaObjectEv @ 530 NONAME
- _ZN21QDeclarativeListModel3setEiRK12QScriptValue @ 531 NONAME
- _ZN21QDeclarativeListModel4moveEiii @ 532 NONAME
- _ZN21QDeclarativeListModel4syncEv @ 533 NONAME
- _ZN21QDeclarativeListModel5agentEv @ 534 NONAME
- _ZN21QDeclarativeListModel5clearEv @ 535 NONAME
- _ZN21QDeclarativeListModel6appendERK12QScriptValue @ 536 NONAME
- _ZN21QDeclarativeListModel6insertEiRK12QScriptValue @ 537 NONAME
- _ZN21QDeclarativeListModel6removeEi @ 538 NONAME
- _ZN21QDeclarativeListModel7flattenEv @ 539 NONAME
- _ZN21QDeclarativeListModelC1EP7QObject @ 540 NONAME
- _ZN21QDeclarativeListModelC1EbP7QObject @ 541 NONAME
- _ZN21QDeclarativeListModelC2EP7QObject @ 542 NONAME
- _ZN21QDeclarativeListModelC2EbP7QObject @ 543 NONAME
- _ZN21QDeclarativeListModelD0Ev @ 544 NONAME
- _ZN21QDeclarativeListModelD1Ev @ 545 NONAME
- _ZN21QDeclarativeListModelD2Ev @ 546 NONAME
- _ZN21QDeclarativeRectangle11qt_metacallEN11QMetaObject4CallEiPPv @ 547 NONAME
- _ZN21QDeclarativeRectangle11qt_metacastEPKc @ 548 NONAME
- _ZN21QDeclarativeRectangle11setGradientEP20QDeclarativeGradient @ 549 NONAME
- _ZN21QDeclarativeRectangle12colorChangedEv @ 550 NONAME
- _ZN21QDeclarativeRectangle13radiusChangedEv @ 551 NONAME
- _ZN21QDeclarativeRectangle16staticMetaObjectE @ 552 NONAME DATA 16
- _ZN21QDeclarativeRectangle19generateRoundedRectEv @ 553 NONAME
- _ZN21QDeclarativeRectangle19getStaticMetaObjectEv @ 554 NONAME
- _ZN21QDeclarativeRectangle20generateBorderedRectEv @ 555 NONAME
- _ZN21QDeclarativeRectangle5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 556 NONAME
- _ZN21QDeclarativeRectangle6borderEv @ 557 NONAME
- _ZN21QDeclarativeRectangle8doUpdateEv @ 558 NONAME
- _ZN21QDeclarativeRectangle8drawRectER8QPainter @ 559 NONAME
- _ZN21QDeclarativeRectangle8setColorERK6QColor @ 560 NONAME
- _ZN21QDeclarativeRectangle9setRadiusEf @ 561 NONAME
- _ZN21QDeclarativeRectangleC1EP16QDeclarativeItem @ 562 NONAME
- _ZN21QDeclarativeRectangleC2EP16QDeclarativeItem @ 563 NONAME
- _ZN21QDeclarativeScaleGrid11qt_metacallEN11QMetaObject4CallEiPPv @ 564 NONAME
- _ZN21QDeclarativeScaleGrid11qt_metacastEPKc @ 565 NONAME
- _ZN21QDeclarativeScaleGrid13borderChangedEv @ 566 NONAME
- _ZN21QDeclarativeScaleGrid16staticMetaObjectE @ 567 NONAME DATA 16
- _ZN21QDeclarativeScaleGrid19getStaticMetaObjectEv @ 568 NONAME
- _ZN21QDeclarativeScaleGrid6setTopEi @ 569 NONAME
- _ZN21QDeclarativeScaleGrid7setLeftEi @ 570 NONAME
- _ZN21QDeclarativeScaleGrid8setRightEi @ 571 NONAME
- _ZN21QDeclarativeScaleGrid9setBottomEi @ 572 NONAME
- _ZN21QDeclarativeScaleGridC1EP7QObject @ 573 NONAME
- _ZN21QDeclarativeScaleGridC2EP7QObject @ 574 NONAME
- _ZN21QDeclarativeScaleGridD0Ev @ 575 NONAME
- _ZN21QDeclarativeScaleGridD1Ev @ 576 NONAME
- _ZN21QDeclarativeScaleGridD2Ev @ 577 NONAME
- _ZN21QDeclarativeValueType11qt_metacallEN11QMetaObject4CallEiPPv @ 578 NONAME
- _ZN21QDeclarativeValueType11qt_metacastEPKc @ 579 NONAME
- _ZN21QDeclarativeValueType16staticMetaObjectE @ 580 NONAME DATA 16
- _ZN21QDeclarativeValueType19getStaticMetaObjectEv @ 581 NONAME
- _ZN21QDeclarativeValueTypeC2EP7QObject @ 582 NONAME
- _ZN22QDeclarativeDebugQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 583 NONAME
- _ZN22QDeclarativeDebugQuery11qt_metacastEPKc @ 584 NONAME
- _ZN22QDeclarativeDebugQuery12stateChangedENS_5StateE @ 585 NONAME
- _ZN22QDeclarativeDebugQuery16staticMetaObjectE @ 586 NONAME DATA 16
- _ZN22QDeclarativeDebugQuery19getStaticMetaObjectEv @ 587 NONAME
- _ZN22QDeclarativeDebugQuery8setStateENS_5StateE @ 588 NONAME
- _ZN22QDeclarativeDebugQueryC1EP7QObject @ 589 NONAME
- _ZN22QDeclarativeDebugQueryC2EP7QObject @ 590 NONAME
- _ZN22QDeclarativeDebugWatch11qt_metacallEN11QMetaObject4CallEiPPv @ 591 NONAME
- _ZN22QDeclarativeDebugWatch11qt_metacastEPKc @ 592 NONAME
- _ZN22QDeclarativeDebugWatch12stateChangedENS_5StateE @ 593 NONAME
- _ZN22QDeclarativeDebugWatch12valueChangedERK10QByteArrayRK8QVariant @ 594 NONAME
- _ZN22QDeclarativeDebugWatch16staticMetaObjectE @ 595 NONAME DATA 16
- _ZN22QDeclarativeDebugWatch19getStaticMetaObjectEv @ 596 NONAME
- _ZN22QDeclarativeDebugWatch8setStateENS_5StateE @ 597 NONAME
- _ZN22QDeclarativeDebugWatchC1EP7QObject @ 598 NONAME
- _ZN22QDeclarativeDebugWatchC2EP7QObject @ 599 NONAME
- _ZN22QDeclarativeDebugWatchD0Ev @ 600 NONAME
- _ZN22QDeclarativeDebugWatchD1Ev @ 601 NONAME
- _ZN22QDeclarativeDebugWatchD2Ev @ 602 NONAME
- _ZN22QDeclarativeExpression10clearErrorEv @ 603 NONAME
- _ZN22QDeclarativeExpression11qt_metacallEN11QMetaObject4CallEiPPv @ 604 NONAME
- _ZN22QDeclarativeExpression11qt_metacastEPKc @ 605 NONAME
- _ZN22QDeclarativeExpression12valueChangedEv @ 606 NONAME
- _ZN22QDeclarativeExpression13setExpressionERK7QString @ 607 NONAME
- _ZN22QDeclarativeExpression16staticMetaObjectE @ 608 NONAME DATA 16
- _ZN22QDeclarativeExpression17setSourceLocationERK7QStringi @ 609 NONAME
- _ZN22QDeclarativeExpression19getStaticMetaObjectEv @ 610 NONAME
- _ZN22QDeclarativeExpression23setNotifyOnValueChangedEb @ 611 NONAME
- _ZN22QDeclarativeExpression8evaluateEPb @ 612 NONAME
- _ZN22QDeclarativeExpressionC1EP19QDeclarativeContextP7QObjectRK7QStringS3_ @ 613 NONAME
- _ZN22QDeclarativeExpressionC1EP23QDeclarativeContextDataP7QObjectRK7QString @ 614 NONAME
- _ZN22QDeclarativeExpressionC1EP23QDeclarativeContextDataP7QObjectRK7QStringR29QDeclarativeExpressionPrivate @ 615 NONAME
- _ZN22QDeclarativeExpressionC1EP23QDeclarativeContextDataPvP20QDeclarativeRefCountP7QObjectRK7QStringiR29QDeclarativeExpressionPrivate @ 616 NONAME
- _ZN22QDeclarativeExpressionC1Ev @ 617 NONAME
- _ZN22QDeclarativeExpressionC2EP19QDeclarativeContextP7QObjectRK7QStringS3_ @ 618 NONAME
- _ZN22QDeclarativeExpressionC2EP23QDeclarativeContextDataP7QObjectRK7QString @ 619 NONAME
- _ZN22QDeclarativeExpressionC2EP23QDeclarativeContextDataP7QObjectRK7QStringR29QDeclarativeExpressionPrivate @ 620 NONAME
- _ZN22QDeclarativeExpressionC2EP23QDeclarativeContextDataPvP20QDeclarativeRefCountP7QObjectRK7QStringiR29QDeclarativeExpressionPrivate @ 621 NONAME
- _ZN22QDeclarativeExpressionC2Ev @ 622 NONAME
- _ZN22QDeclarativeExpressionD0Ev @ 623 NONAME
- _ZN22QDeclarativeExpressionD1Ev @ 624 NONAME
- _ZN22QDeclarativeExpressionD2Ev @ 625 NONAME
- _ZN22QDeclarativeStateGroup10classBeginEv @ 626 NONAME
- _ZN22QDeclarativeStateGroup11qt_metacallEN11QMetaObject4CallEiPPv @ 627 NONAME
- _ZN22QDeclarativeStateGroup11qt_metacastEPKc @ 628 NONAME
- _ZN22QDeclarativeStateGroup11removeStateEP17QDeclarativeState @ 629 NONAME
- _ZN22QDeclarativeStateGroup12stateChangedERK7QString @ 630 NONAME
- _ZN22QDeclarativeStateGroup14statesPropertyEv @ 631 NONAME
- _ZN22QDeclarativeStateGroup15updateAutoStateEv @ 632 NONAME
- _ZN22QDeclarativeStateGroup16staticMetaObjectE @ 633 NONAME DATA 16
- _ZN22QDeclarativeStateGroup17componentCompleteEv @ 634 NONAME
- _ZN22QDeclarativeStateGroup19getStaticMetaObjectEv @ 635 NONAME
- _ZN22QDeclarativeStateGroup19transitionsPropertyEv @ 636 NONAME
- _ZN22QDeclarativeStateGroup8setStateERK7QString @ 637 NONAME
- _ZN22QDeclarativeStateGroupC1EP7QObject @ 638 NONAME
- _ZN22QDeclarativeStateGroupC2EP7QObject @ 639 NONAME
- _ZN22QDeclarativeStateGroupD0Ev @ 640 NONAME
- _ZN22QDeclarativeStateGroupD1Ev @ 641 NONAME
- _ZN22QDeclarativeStateGroupD2Ev @ 642 NONAME
- _ZN22QDeclarativeTransition10animationsEv @ 643 NONAME
- _ZN22QDeclarativeTransition10setToStateERK7QString @ 644 NONAME
- _ZN22QDeclarativeTransition11fromChangedEv @ 645 NONAME
- _ZN22QDeclarativeTransition11qt_metacallEN11QMetaObject4CallEiPPv @ 646 NONAME
- _ZN22QDeclarativeTransition11qt_metacastEPKc @ 647 NONAME
- _ZN22QDeclarativeTransition11setReversedEb @ 648 NONAME
- _ZN22QDeclarativeTransition12setFromStateERK7QString @ 649 NONAME
- _ZN22QDeclarativeTransition13setReversibleEb @ 650 NONAME
- _ZN22QDeclarativeTransition16staticMetaObjectE @ 651 NONAME DATA 16
- _ZN22QDeclarativeTransition17reversibleChangedEv @ 652 NONAME
- _ZN22QDeclarativeTransition19getStaticMetaObjectEv @ 653 NONAME
- _ZN22QDeclarativeTransition4stopEv @ 654 NONAME
- _ZN22QDeclarativeTransition7prepareER5QListI18QDeclarativeActionERS0_I20QDeclarativePropertyEP29QDeclarativeTransitionManager @ 655 NONAME
- _ZN22QDeclarativeTransition9toChangedEv @ 656 NONAME
- _ZN22QDeclarativeTransitionC1EP7QObject @ 657 NONAME
- _ZN22QDeclarativeTransitionC2EP7QObject @ 658 NONAME
- _ZN22QDeclarativeTransitionD0Ev @ 659 NONAME
- _ZN22QDeclarativeTransitionD1Ev @ 660 NONAME
- _ZN22QDeclarativeTransitionD2Ev @ 661 NONAME
- _ZN23QDeclarativeDebugClient10setEnabledEb @ 662 NONAME
- _ZN23QDeclarativeDebugClient11qt_metacallEN11QMetaObject4CallEiPPv @ 663 NONAME
- _ZN23QDeclarativeDebugClient11qt_metacastEPKc @ 664 NONAME
- _ZN23QDeclarativeDebugClient11sendMessageERK10QByteArray @ 665 NONAME
- _ZN23QDeclarativeDebugClient15messageReceivedERK10QByteArray @ 666 NONAME
- _ZN23QDeclarativeDebugClient16staticMetaObjectE @ 667 NONAME DATA 16
- _ZN23QDeclarativeDebugClient19getStaticMetaObjectEv @ 668 NONAME
- _ZN23QDeclarativeDebugClientC1ERK7QStringP27QDeclarativeDebugConnection @ 669 NONAME
- _ZN23QDeclarativeDebugClientC2ERK7QStringP27QDeclarativeDebugConnection @ 670 NONAME
- _ZN23QDeclarativeDomDocument4loadEP18QDeclarativeEngineRK10QByteArrayRK4QUrl @ 671 NONAME
- _ZN23QDeclarativeDomDocumentC1ERKS_ @ 672 NONAME
- _ZN23QDeclarativeDomDocumentC1Ev @ 673 NONAME
- _ZN23QDeclarativeDomDocumentC2ERKS_ @ 674 NONAME
- _ZN23QDeclarativeDomDocumentC2Ev @ 675 NONAME
- _ZN23QDeclarativeDomDocumentD1Ev @ 676 NONAME
- _ZN23QDeclarativeDomDocumentD2Ev @ 677 NONAME
- _ZN23QDeclarativeDomDocumentaSERKS_ @ 678 NONAME
- _ZN23QDeclarativeDomPropertyC1ERKS_ @ 679 NONAME
- _ZN23QDeclarativeDomPropertyC1Ev @ 680 NONAME
- _ZN23QDeclarativeDomPropertyC2ERKS_ @ 681 NONAME
- _ZN23QDeclarativeDomPropertyC2Ev @ 682 NONAME
- _ZN23QDeclarativeDomPropertyD1Ev @ 683 NONAME
- _ZN23QDeclarativeDomPropertyD2Ev @ 684 NONAME
- _ZN23QDeclarativeDomPropertyaSERKS_ @ 685 NONAME
- _ZN23QDeclarativeEngineDebug11qt_metacallEN11QMetaObject4CallEiPPv @ 686 NONAME
- _ZN23QDeclarativeEngineDebug11qt_metacastEPKc @ 687 NONAME
- _ZN23QDeclarativeEngineDebug11queryObjectERK32QDeclarativeDebugObjectReferenceP7QObject @ 688 NONAME
- _ZN23QDeclarativeEngineDebug11removeWatchEP22QDeclarativeDebugWatch @ 689 NONAME
- _ZN23QDeclarativeEngineDebug16staticMetaObjectE @ 690 NONAME DATA 16
- _ZN23QDeclarativeEngineDebug17queryRootContextsERK32QDeclarativeDebugEngineReferenceP7QObject @ 691 NONAME
- _ZN23QDeclarativeEngineDebug19getStaticMetaObjectEv @ 692 NONAME
- _ZN23QDeclarativeEngineDebug19setBindingForObjectEiRK7QStringRK8QVariantbP7QObject @ 693 NONAME ABSENT
- _ZN23QDeclarativeEngineDebug20queryObjectRecursiveERK32QDeclarativeDebugObjectReferenceP7QObject @ 694 NONAME
- _ZN23QDeclarativeEngineDebug21queryAvailableEnginesEP7QObject @ 695 NONAME
- _ZN23QDeclarativeEngineDebug21queryExpressionResultEiRK7QStringP7QObject @ 696 NONAME
- _ZN23QDeclarativeEngineDebug8addWatchERK30QDeclarativeDebugFileReferenceP7QObject @ 697 NONAME
- _ZN23QDeclarativeEngineDebug8addWatchERK32QDeclarativeDebugObjectReferenceP7QObject @ 698 NONAME
- _ZN23QDeclarativeEngineDebug8addWatchERK32QDeclarativeDebugObjectReferenceRK7QStringP7QObject @ 699 NONAME
- _ZN23QDeclarativeEngineDebug8addWatchERK33QDeclarativeDebugContextReferenceRK7QStringP7QObject @ 700 NONAME
- _ZN23QDeclarativeEngineDebug8addWatchERK34QDeclarativeDebugPropertyReferenceP7QObject @ 701 NONAME
- _ZN23QDeclarativeEngineDebugC1EP27QDeclarativeDebugConnectionP7QObject @ 702 NONAME
- _ZN23QDeclarativeEngineDebugC2EP27QDeclarativeDebugConnectionP7QObject @ 703 NONAME
- _ZN23QDeclarativeItemPrivate10resetWidthEv @ 704 NONAME
- _ZN23QDeclarativeItemPrivate11data_appendEP24QDeclarativeListPropertyI7QObjectEPS1_ @ 705 NONAME
- _ZN23QDeclarativeItemPrivate11resetHeightEv @ 706 NONAME
- _ZN23QDeclarativeItemPrivate11transitionsEv @ 707 NONAME
- _ZN23QDeclarativeItemPrivate12focusChangedEb @ 708 NONAME
- _ZN23QDeclarativeItemPrivate12resources_atEP24QDeclarativeListPropertyI7QObjectEi @ 709 NONAME
- _ZN23QDeclarativeItemPrivate12transform_atEP24QDeclarativeListPropertyI18QGraphicsTransformEi @ 710 NONAME
- _ZN23QDeclarativeItemPrivate14consistentTimeE @ 711 NONAME DATA 8
- _ZN23QDeclarativeItemPrivate14parentPropertyEP7QObjectPvP28QDeclarativeNotifierEndpoint @ 712 NONAME
- _ZN23QDeclarativeItemPrivate15resources_countEP24QDeclarativeListPropertyI7QObjectE @ 713 NONAME
- _ZN23QDeclarativeItemPrivate15transform_clearEP24QDeclarativeListPropertyI18QGraphicsTransformE @ 714 NONAME
- _ZN23QDeclarativeItemPrivate15transform_countEP24QDeclarativeListPropertyI18QGraphicsTransformE @ 715 NONAME
- _ZN23QDeclarativeItemPrivate16resources_appendEP24QDeclarativeListPropertyI7QObjectEPS1_ @ 716 NONAME
- _ZN23QDeclarativeItemPrivate16transformChangedEv @ 717 NONAME
- _ZN23QDeclarativeItemPrivate16transform_appendEP24QDeclarativeListPropertyI18QGraphicsTransformEPS1_ @ 718 NONAME
- _ZN23QDeclarativeItemPrivate17setConsistentTimeEx @ 719 NONAME
- _ZN23QDeclarativeItemPrivate24removeItemChangeListenerEP30QDeclarativeItemChangeListener6QFlagsINS_10ChangeTypeEE @ 720 NONAME
- _ZN23QDeclarativeItemPrivate4dataEv @ 721 NONAME
- _ZN23QDeclarativeItemPrivate5startER13QElapsedTimer @ 722 NONAME
- _ZN23QDeclarativeItemPrivate6statesEv @ 723 NONAME
- _ZN23QDeclarativeItemPrivate7_statesEv @ 724 NONAME
- _ZN23QDeclarativeItemPrivate7elapsedER13QElapsedTimer @ 725 NONAME
- _ZN23QDeclarativeItemPrivate7restartER13QElapsedTimer @ 726 NONAME
- _ZN23QDeclarativeItemPrivate8setStateERK7QString @ 727 NONAME
- _ZN23QDeclarativeItemPrivate8setWidthEf @ 728 NONAME
- _ZN23QDeclarativeItemPrivate9resourcesEv @ 729 NONAME
- _ZN23QDeclarativeItemPrivate9setHeightEf @ 730 NONAME
- _ZN23QDeclarativePixmapCache15pendingRequestsEv @ 731 NONAME ABSENT
- _ZN23QDeclarativePixmapCache3getERK4QUrlP7QPixmapP7QStringP5QSizebii @ 732 NONAME ABSENT
- _ZN23QDeclarativePixmapCache6cancelERK4QUrlP7QObject @ 733 NONAME ABSENT
- _ZN23QDeclarativePixmapCache7requestEP18QDeclarativeEngineRK4QUrlii @ 734 NONAME ABSENT
- _ZN23QDeclarativePixmapReply10setLoadingEv @ 735 NONAME ABSENT
- _ZN23QDeclarativePixmapReply11qt_metacallEN11QMetaObject4CallEiPPv @ 736 NONAME ABSENT
- _ZN23QDeclarativePixmapReply11qt_metacastEPKc @ 737 NONAME ABSENT
- _ZN23QDeclarativePixmapReply16downloadProgressExx @ 738 NONAME ABSENT
- _ZN23QDeclarativePixmapReply16staticMetaObjectE @ 739 NONAME DATA 16 ABSENT
- _ZN23QDeclarativePixmapReply19getStaticMetaObjectEv @ 740 NONAME ABSENT
- _ZN23QDeclarativePixmapReply5eventEP6QEvent @ 741 NONAME ABSENT
- _ZN23QDeclarativePixmapReply6addRefEv @ 742 NONAME ABSENT
- _ZN23QDeclarativePixmapReply7releaseEb @ 743 NONAME ABSENT
- _ZN23QDeclarativePixmapReply8finishedEv @ 744 NONAME ABSENT
- _ZN23QDeclarativePixmapReplyC1EP23QDeclarativeImageReaderRK4QUrlii @ 745 NONAME ABSENT
- _ZN23QDeclarativePixmapReplyC2EP23QDeclarativeImageReaderRK4QUrlii @ 746 NONAME ABSENT
- _ZN23QDeclarativePixmapReplyD0Ev @ 747 NONAME ABSENT
- _ZN23QDeclarativePixmapReplyD1Ev @ 748 NONAME ABSENT
- _ZN23QDeclarativePixmapReplyD2Ev @ 749 NONAME ABSENT
- _ZN23QDeclarativePropertyMap11qt_metacallEN11QMetaObject4CallEiPPv @ 750 NONAME
- _ZN23QDeclarativePropertyMap11qt_metacastEPKc @ 751 NONAME
- _ZN23QDeclarativePropertyMap12valueChangedERK7QStringRK8QVariant @ 752 NONAME
- _ZN23QDeclarativePropertyMap16staticMetaObjectE @ 753 NONAME DATA 16
- _ZN23QDeclarativePropertyMap19getStaticMetaObjectEv @ 754 NONAME
- _ZN23QDeclarativePropertyMap5clearERK7QString @ 755 NONAME
- _ZN23QDeclarativePropertyMap6insertERK7QStringRK8QVariant @ 756 NONAME
- _ZN23QDeclarativePropertyMapC1EP7QObject @ 757 NONAME
- _ZN23QDeclarativePropertyMapC2EP7QObject @ 758 NONAME
- _ZN23QDeclarativePropertyMapD0Ev @ 759 NONAME
- _ZN23QDeclarativePropertyMapD1Ev @ 760 NONAME
- _ZN23QDeclarativePropertyMapD2Ev @ 761 NONAME
- _ZN23QDeclarativePropertyMapixERK7QString @ 762 NONAME
- _ZN24QDeclarativeCustomParser11clearErrorsEv @ 763 NONAME
- _ZN24QDeclarativeCustomParser5errorERK28QDeclarativeCustomParserNodeRK7QString @ 764 NONAME
- _ZN24QDeclarativeCustomParser5errorERK32QDeclarativeCustomParserPropertyRK7QString @ 765 NONAME
- _ZN24QDeclarativeCustomParser5errorERK7QString @ 766 NONAME
- _ZN24QDeclarativeDebugService11idForObjectEP7QObject @ 767 NONAME
- _ZN24QDeclarativeDebugService11objectForIdEi @ 768 NONAME
- _ZN24QDeclarativeDebugService11qt_metacallEN11QMetaObject4CallEiPPv @ 769 NONAME
- _ZN24QDeclarativeDebugService11qt_metacastEPKc @ 770 NONAME
- _ZN24QDeclarativeDebugService11sendMessageERK10QByteArray @ 771 NONAME
- _ZN24QDeclarativeDebugService14enabledChangedEb @ 772 NONAME
- _ZN24QDeclarativeDebugService14objectToStringEP7QObject @ 773 NONAME
- _ZN24QDeclarativeDebugService15messageReceivedERK10QByteArray @ 774 NONAME
- _ZN24QDeclarativeDebugService16staticMetaObjectE @ 775 NONAME DATA 16
- _ZN24QDeclarativeDebugService18hasDebuggingClientEv @ 776 NONAME
- _ZN24QDeclarativeDebugService18isDebuggingEnabledEv @ 777 NONAME
- _ZN24QDeclarativeDebugService19getStaticMetaObjectEv @ 778 NONAME
- _ZN24QDeclarativeDebugServiceC1ERK7QStringP7QObject @ 779 NONAME
- _ZN24QDeclarativeDebugServiceC2ERK7QStringP7QObject @ 780 NONAME
- _ZN24QDeclarativeDomComponentC1ERKS_ @ 781 NONAME
- _ZN24QDeclarativeDomComponentC1Ev @ 782 NONAME
- _ZN24QDeclarativeDomComponentC2ERKS_ @ 783 NONAME
- _ZN24QDeclarativeDomComponentC2Ev @ 784 NONAME
- _ZN24QDeclarativeDomComponentD1Ev @ 785 NONAME
- _ZN24QDeclarativeDomComponentD2Ev @ 786 NONAME
- _ZN24QDeclarativeDomComponentaSERKS_ @ 787 NONAME
- _ZN24QDeclarativeParserStatusC2Ev @ 788 NONAME
- _ZN24QDeclarativeParserStatusD0Ev @ 789 NONAME
- _ZN24QDeclarativeParserStatusD1Ev @ 790 NONAME
- _ZN24QDeclarativeParserStatusD2Ev @ 791 NONAME
- _ZN24QDeclarativeScriptString10setContextEP19QDeclarativeContext @ 792 NONAME
- _ZN24QDeclarativeScriptString14setScopeObjectEP7QObject @ 793 NONAME
- _ZN24QDeclarativeScriptString9setScriptERK7QString @ 794 NONAME
- _ZN24QDeclarativeScriptStringC1ERKS_ @ 795 NONAME
- _ZN24QDeclarativeScriptStringC1Ev @ 796 NONAME
- _ZN24QDeclarativeScriptStringC2ERKS_ @ 797 NONAME
- _ZN24QDeclarativeScriptStringC2Ev @ 798 NONAME
- _ZN24QDeclarativeScriptStringD1Ev @ 799 NONAME
- _ZN24QDeclarativeScriptStringD2Ev @ 800 NONAME
- _ZN24QDeclarativeScriptStringaSERKS_ @ 801 NONAME
+ _ZN16QDeclarativeItem10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 46 NONAME
+ _ZN16QDeclarativeItem10resetWidthEv @ 47 NONAME
+ _ZN16QDeclarativeItem10sceneEventEP6QEvent @ 48 NONAME
+ _ZN16QDeclarativeItem11clipChangedEb @ 49 NONAME
+ _ZN16QDeclarativeItem11qt_metacallEN11QMetaObject4CallEiPPv @ 50 NONAME
+ _ZN16QDeclarativeItem11qt_metacastEPKc @ 51 NONAME
+ _ZN16QDeclarativeItem11resetHeightEv @ 52 NONAME
+ _ZN16QDeclarativeItem12childrenRectEv @ 53 NONAME
+ _ZN16QDeclarativeItem12focusChangedEb @ 54 NONAME
+ _ZN16QDeclarativeItem12stateChangedERK7QString @ 55 NONAME
+ _ZN16QDeclarativeItem13keyPressEventEP9QKeyEvent @ 56 NONAME
+ _ZN16QDeclarativeItem13parentChangedEPS_ @ 57 NONAME
+ _ZN16QDeclarativeItem13setParentItemEPS_ @ 58 NONAME
+ _ZN16QDeclarativeItem13smoothChangedEb @ 59 NONAME
+ _ZN16QDeclarativeItem15geometryChangedERK6QRectFS2_ @ 60 NONAME
+ _ZN16QDeclarativeItem15keyReleaseEventEP9QKeyEvent @ 61 NONAME
+ _ZN16QDeclarativeItem16forceActiveFocusEv @ 62 NONAME
+ _ZN16QDeclarativeItem16inputMethodEventEP17QInputMethodEvent @ 63 NONAME
+ _ZN16QDeclarativeItem16setImplicitWidthEf @ 64 NONAME
+ _ZN16QDeclarativeItem16setKeepMouseGrabEb @ 65 NONAME
+ _ZN16QDeclarativeItem16staticMetaObjectE @ 66 NONAME DATA 16
+ _ZN16QDeclarativeItem17componentCompleteEv @ 67 NONAME
+ _ZN16QDeclarativeItem17setBaselineOffsetEf @ 68 NONAME
+ _ZN16QDeclarativeItem17setImplicitHeightEf @ 69 NONAME
+ _ZN16QDeclarativeItem18activeFocusChangedEb @ 70 NONAME
+ _ZN16QDeclarativeItem18keyPressPreHandlerEP9QKeyEvent @ 71 NONAME
+ _ZN16QDeclarativeItem18setTransformOriginENS_15TransformOriginE @ 72 NONAME
+ _ZN16QDeclarativeItem19childrenRectChangedERK6QRectF @ 73 NONAME
+ _ZN16QDeclarativeItem19getStaticMetaObjectEv @ 74 NONAME
+ _ZN16QDeclarativeItem20keyReleasePreHandlerEP9QKeyEvent @ 75 NONAME
+ _ZN16QDeclarativeItem21baselineOffsetChangedEf @ 76 NONAME
+ _ZN16QDeclarativeItem21inputMethodPreHandlerEP17QInputMethodEvent @ 77 NONAME
+ _ZN16QDeclarativeItem22transformOriginChangedENS_15TransformOriginE @ 78 NONAME
+ _ZN16QDeclarativeItem5eventEP6QEvent @ 79 NONAME
+ _ZN16QDeclarativeItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 80 NONAME
+ _ZN16QDeclarativeItem7setClipEb @ 81 NONAME
+ _ZN16QDeclarativeItem7setSizeERK6QSizeF @ 82 NONAME
+ _ZN16QDeclarativeItem8setFocusEb @ 83 NONAME
+ _ZN16QDeclarativeItem8setWidthEf @ 84 NONAME
+ _ZN16QDeclarativeItem9setHeightEf @ 85 NONAME
+ _ZN16QDeclarativeItem9setSmoothEb @ 86 NONAME
+ _ZN16QDeclarativeItem9transformEv @ 87 NONAME
+ _ZN16QDeclarativeItemC1EPS_ @ 88 NONAME
+ _ZN16QDeclarativeItemC1ER23QDeclarativeItemPrivatePS_ @ 89 NONAME
+ _ZN16QDeclarativeItemC2EPS_ @ 90 NONAME
+ _ZN16QDeclarativeItemC2ER23QDeclarativeItemPrivatePS_ @ 91 NONAME
+ _ZN16QDeclarativeItemD0Ev @ 92 NONAME
+ _ZN16QDeclarativeItemD1Ev @ 93 NONAME
+ _ZN16QDeclarativeItemD2Ev @ 94 NONAME
+ _ZN16QDeclarativeText11fontChangedERK5QFont @ 95 NONAME
+ _ZN16QDeclarativeText11qt_metacallEN11QMetaObject4CallEiPPv @ 96 NONAME
+ _ZN16QDeclarativeText11qt_metacastEPKc @ 97 NONAME
+ _ZN16QDeclarativeText11setWrapModeENS_8WrapModeE @ 98 NONAME
+ _ZN16QDeclarativeText11textChangedERK7QString @ 99 NONAME
+ _ZN16QDeclarativeText12colorChangedERK6QColor @ 100 NONAME
+ _ZN16QDeclarativeText12setElideModeENS_13TextElideModeE @ 101 NONAME
+ _ZN16QDeclarativeText12styleChangedENS_9TextStyleE @ 102 NONAME
+ _ZN16QDeclarativeText13linkActivatedERK7QString @ 103 NONAME
+ _ZN16QDeclarativeText13setStyleColorERK6QColor @ 104 NONAME
+ _ZN16QDeclarativeText13setTextFormatENS_10TextFormatE @ 105 NONAME
+ _ZN16QDeclarativeText15geometryChangedERK6QRectFS2_ @ 106 NONAME
+ _ZN16QDeclarativeText15mousePressEventEP24QGraphicsSceneMouseEvent @ 107 NONAME
+ _ZN16QDeclarativeText15wrapModeChangedEv @ 108 NONAME
+ _ZN16QDeclarativeText16elideModeChangedENS_13TextElideModeE @ 109 NONAME
+ _ZN16QDeclarativeText16staticMetaObjectE @ 110 NONAME DATA 16
+ _ZN16QDeclarativeText17componentCompleteEv @ 111 NONAME
+ _ZN16QDeclarativeText17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 112 NONAME
+ _ZN16QDeclarativeText17styleColorChangedERK6QColor @ 113 NONAME
+ _ZN16QDeclarativeText17textFormatChangedENS_10TextFormatE @ 114 NONAME
+ _ZN16QDeclarativeText18paintedSizeChangedEv @ 115 NONAME
+ _ZN16QDeclarativeText19getStaticMetaObjectEv @ 116 NONAME
+ _ZN16QDeclarativeText24verticalAlignmentChangedENS_10VAlignmentE @ 117 NONAME
+ _ZN16QDeclarativeText26horizontalAlignmentChangedENS_10HAlignmentE @ 118 NONAME
+ _ZN16QDeclarativeText5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 119 NONAME
+ _ZN16QDeclarativeText7setFontERK5QFont @ 120 NONAME
+ _ZN16QDeclarativeText7setTextERK7QString @ 121 NONAME
+ _ZN16QDeclarativeText8setColorERK6QColor @ 122 NONAME
+ _ZN16QDeclarativeText8setStyleENS_9TextStyleE @ 123 NONAME
+ _ZN16QDeclarativeText9setHAlignENS_10HAlignmentE @ 124 NONAME
+ _ZN16QDeclarativeText9setVAlignENS_10VAlignmentE @ 125 NONAME
+ _ZN16QDeclarativeTextC1EP16QDeclarativeItem @ 126 NONAME
+ _ZN16QDeclarativeTextC2EP16QDeclarativeItem @ 127 NONAME
+ _ZN16QDeclarativeTextD0Ev @ 128 NONAME
+ _ZN16QDeclarativeTextD1Ev @ 129 NONAME
+ _ZN16QDeclarativeTextD2Ev @ 130 NONAME
+ _ZN16QDeclarativeTypeC1EiRKN19QDeclarativePrivate12RegisterTypeE @ 131 NONAME
+ _ZN16QDeclarativeTypeC1EiRKN19QDeclarativePrivate17RegisterInterfaceE @ 132 NONAME
+ _ZN16QDeclarativeTypeC2EiRKN19QDeclarativePrivate12RegisterTypeE @ 133 NONAME
+ _ZN16QDeclarativeTypeC2EiRKN19QDeclarativePrivate17RegisterInterfaceE @ 134 NONAME
+ _ZN16QDeclarativeTypeD1Ev @ 135 NONAME
+ _ZN16QDeclarativeTypeD2Ev @ 136 NONAME
+ _ZN16QDeclarativeView10paintEventEP11QPaintEvent @ 137 NONAME
+ _ZN16QDeclarativeView10timerEventEP11QTimerEvent @ 138 NONAME
+ _ZN16QDeclarativeView11eventFilterEP7QObjectP6QEvent @ 139 NONAME
+ _ZN16QDeclarativeView11qt_metacallEN11QMetaObject4CallEiPPv @ 140 NONAME
+ _ZN16QDeclarativeView11qt_metacastEPKc @ 141 NONAME
+ _ZN16QDeclarativeView11resizeEventEP12QResizeEvent @ 142 NONAME
+ _ZN16QDeclarativeView12sceneResizedE5QSize @ 143 NONAME
+ _ZN16QDeclarativeView13setResizeModeENS_10ResizeModeE @ 144 NONAME
+ _ZN16QDeclarativeView13setRootObjectEP7QObject @ 145 NONAME
+ _ZN16QDeclarativeView13statusChangedENS_6StatusE @ 146 NONAME
+ _ZN16QDeclarativeView15continueExecuteEv @ 147 NONAME
+ _ZN16QDeclarativeView16staticMetaObjectE @ 148 NONAME DATA 16
+ _ZN16QDeclarativeView19getStaticMetaObjectEv @ 149 NONAME
+ _ZN16QDeclarativeView9setSourceERK4QUrl @ 150 NONAME
+ _ZN16QDeclarativeViewC1EP7QWidget @ 151 NONAME
+ _ZN16QDeclarativeViewC1ERK4QUrlP7QWidget @ 152 NONAME
+ _ZN16QDeclarativeViewC2EP7QWidget @ 153 NONAME
+ _ZN16QDeclarativeViewC2ERK4QUrlP7QWidget @ 154 NONAME
+ _ZN16QDeclarativeViewD0Ev @ 155 NONAME
+ _ZN16QDeclarativeViewD1Ev @ 156 NONAME
+ _ZN16QDeclarativeViewD2Ev @ 157 NONAME
+ _ZN16QMetaEnumBuilder6addKeyERK10QByteArrayi @ 158 NONAME
+ _ZN16QMetaEnumBuilder9removeKeyEi @ 159 NONAME
+ _ZN16QMetaEnumBuilder9setIsFlagEb @ 160 NONAME
+ _ZN17QDeclarativeError14setDescriptionERK7QString @ 161 NONAME
+ _ZN17QDeclarativeError6setUrlERK4QUrl @ 162 NONAME
+ _ZN17QDeclarativeError7setLineEi @ 163 NONAME
+ _ZN17QDeclarativeError9setColumnEi @ 164 NONAME
+ _ZN17QDeclarativeErrorC1ERKS_ @ 165 NONAME
+ _ZN17QDeclarativeErrorC1Ev @ 166 NONAME
+ _ZN17QDeclarativeErrorC2ERKS_ @ 167 NONAME
+ _ZN17QDeclarativeErrorC2Ev @ 168 NONAME
+ _ZN17QDeclarativeErrorD1Ev @ 169 NONAME
+ _ZN17QDeclarativeErrorD2Ev @ 170 NONAME
+ _ZN17QDeclarativeErroraSERKS_ @ 171 NONAME
+ _ZN17QDeclarativeState10setExtendsERK7QString @ 172 NONAME
+ _ZN17QDeclarativeState11qt_metacallEN11QMetaObject4CallEiPPv @ 173 NONAME
+ _ZN17QDeclarativeState11qt_metacastEPKc @ 174 NONAME
+ _ZN17QDeclarativeState13setStateGroupEP22QDeclarativeStateGroup @ 175 NONAME
+ _ZN17QDeclarativeState16staticMetaObjectE @ 176 NONAME DATA 16
+ _ZN17QDeclarativeState19getStaticMetaObjectEv @ 177 NONAME
+ _ZN17QDeclarativeState5applyEP22QDeclarativeStateGroupP22QDeclarativeTransitionPS_ @ 178 NONAME
+ _ZN17QDeclarativeState6cancelEv @ 179 NONAME
+ _ZN17QDeclarativeState7changesEv @ 180 NONAME
+ _ZN17QDeclarativeState7setNameERK7QString @ 181 NONAME
+ _ZN17QDeclarativeState7setWhenEP19QDeclarativeBinding @ 182 NONAME
+ _ZN17QDeclarativeState9completedEv @ 183 NONAME
+ _ZN17QDeclarativeStateC1EP7QObject @ 184 NONAME
+ _ZN17QDeclarativeStateC2EP7QObject @ 185 NONAME
+ _ZN17QDeclarativeStateD0Ev @ 186 NONAME
+ _ZN17QDeclarativeStateD1Ev @ 187 NONAME
+ _ZN17QDeclarativeStateD2Ev @ 188 NONAME
+ _ZN17QDeclarativeStatelsEP26QDeclarativeStateOperation @ 189 NONAME
+ _ZN18QDeclarativeAction17deleteFromBindingEv @ 190 NONAME
+ _ZN18QDeclarativeActionC1EP7QObjectRK7QStringP19QDeclarativeContextRK8QVariant @ 191 NONAME
+ _ZN18QDeclarativeActionC1EP7QObjectRK7QStringRK8QVariant @ 192 NONAME
+ _ZN18QDeclarativeActionC1Ev @ 193 NONAME
+ _ZN18QDeclarativeActionC2EP7QObjectRK7QStringP19QDeclarativeContextRK8QVariant @ 194 NONAME
+ _ZN18QDeclarativeActionC2EP7QObjectRK7QStringRK8QVariant @ 195 NONAME
+ _ZN18QDeclarativeActionC2Ev @ 196 NONAME
+ _ZN18QDeclarativeEngine10setBaseUrlERK4QUrl @ 197 NONAME
+ _ZN18QDeclarativeEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 198 NONAME
+ _ZN18QDeclarativeEngine11qt_metacastEPKc @ 199 NONAME
+ _ZN18QDeclarativeEngine12importPluginERK7QStringS2_PS0_ @ 200 NONAME
+ _ZN18QDeclarativeEngine13addImportPathERK7QString @ 201 NONAME
+ _ZN18QDeclarativeEngine13addPluginPathERK7QString @ 202 NONAME
+ _ZN18QDeclarativeEngine15objectOwnershipEP7QObject @ 203 NONAME
+ _ZN18QDeclarativeEngine16addImageProviderERK7QStringP25QDeclarativeImageProvider @ 204 NONAME
+ _ZN18QDeclarativeEngine16contextForObjectEPK7QObject @ 205 NONAME
+ _ZN18QDeclarativeEngine16staticMetaObjectE @ 206 NONAME DATA 16
+ _ZN18QDeclarativeEngine17setImportPathListERK11QStringList @ 207 NONAME
+ _ZN18QDeclarativeEngine17setPluginPathListERK11QStringList @ 208 NONAME
+ _ZN18QDeclarativeEngine18setObjectOwnershipEP7QObjectNS_15ObjectOwnershipE @ 209 NONAME
+ _ZN18QDeclarativeEngine19clearComponentCacheEv @ 210 NONAME
+ _ZN18QDeclarativeEngine19getStaticMetaObjectEv @ 211 NONAME
+ _ZN18QDeclarativeEngine19removeImageProviderERK7QString @ 212 NONAME
+ _ZN18QDeclarativeEngine19setContextForObjectEP7QObjectP19QDeclarativeContext @ 213 NONAME
+ _ZN18QDeclarativeEngine21setOfflineStoragePathERK7QString @ 214 NONAME
+ _ZN18QDeclarativeEngine30setNetworkAccessManagerFactoryEP39QDeclarativeNetworkAccessManagerFactory @ 215 NONAME
+ _ZN18QDeclarativeEngine32setOutputWarningsToStandardErrorEb @ 216 NONAME
+ _ZN18QDeclarativeEngine4quitEv @ 217 NONAME
+ _ZN18QDeclarativeEngine8warningsERK5QListI17QDeclarativeErrorE @ 218 NONAME
+ _ZN18QDeclarativeEngineC1EP7QObject @ 219 NONAME
+ _ZN18QDeclarativeEngineC2EP7QObject @ 220 NONAME
+ _ZN18QDeclarativeEngineD0Ev @ 221 NONAME
+ _ZN18QDeclarativeEngineD1Ev @ 222 NONAME
+ _ZN18QDeclarativeEngineD2Ev @ 223 NONAME
+ _ZN18QDeclarativeParser7VariantC1ERK7QString @ 224 NONAME
+ _ZN18QDeclarativeParser7VariantC1ERK7QStringPN14QDeclarativeJS3AST4NodeE @ 225 NONAME
+ _ZN18QDeclarativeParser7VariantC1ERKS0_ @ 226 NONAME
+ _ZN18QDeclarativeParser7VariantC1Eb @ 227 NONAME
+ _ZN18QDeclarativeParser7VariantC1EdRK7QString @ 228 NONAME
+ _ZN18QDeclarativeParser7VariantC1Ev @ 229 NONAME
+ _ZN18QDeclarativeParser7VariantC2ERK7QString @ 230 NONAME
+ _ZN18QDeclarativeParser7VariantC2ERK7QStringPN14QDeclarativeJS3AST4NodeE @ 231 NONAME
+ _ZN18QDeclarativeParser7VariantC2ERKS0_ @ 232 NONAME
+ _ZN18QDeclarativeParser7VariantC2Eb @ 233 NONAME
+ _ZN18QDeclarativeParser7VariantC2EdRK7QString @ 234 NONAME
+ _ZN18QDeclarativeParser7VariantC2Ev @ 235 NONAME
+ _ZN18QDeclarativeParser7VariantaSERKS0_ @ 236 NONAME
+ _ZN18QDeclarativePixmap15connectFinishedEP7QObjectPKc @ 237 NONAME
+ _ZN18QDeclarativePixmap15connectFinishedEP7QObjecti @ 238 NONAME
+ _ZN18QDeclarativePixmap23connectDownloadProgressEP7QObjectPKc @ 239 NONAME
+ _ZN18QDeclarativePixmap23connectDownloadProgressEP7QObjecti @ 240 NONAME
+ _ZN18QDeclarativePixmap4loadEP18QDeclarativeEngineRK4QUrl @ 241 NONAME
+ _ZN18QDeclarativePixmap4loadEP18QDeclarativeEngineRK4QUrlRK5QSize @ 242 NONAME
+ _ZN18QDeclarativePixmap4loadEP18QDeclarativeEngineRK4QUrlRK5QSizeb @ 243 NONAME
+ _ZN18QDeclarativePixmap4loadEP18QDeclarativeEngineRK4QUrlb @ 244 NONAME
+ _ZN18QDeclarativePixmap5clearEP7QObject @ 245 NONAME
+ _ZN18QDeclarativePixmap5clearEv @ 246 NONAME
+ _ZN18QDeclarativePixmap9setPixmapERK7QPixmap @ 247 NONAME
+ _ZN18QDeclarativePixmapC1EP18QDeclarativeEngineRK4QUrl @ 248 NONAME
+ _ZN18QDeclarativePixmapC1EP18QDeclarativeEngineRK4QUrlRK5QSize @ 249 NONAME
+ _ZN18QDeclarativePixmapC1Ev @ 250 NONAME
+ _ZN18QDeclarativePixmapC2EP18QDeclarativeEngineRK4QUrl @ 251 NONAME
+ _ZN18QDeclarativePixmapC2EP18QDeclarativeEngineRK4QUrlRK5QSize @ 252 NONAME
+ _ZN18QDeclarativePixmapC2Ev @ 253 NONAME
+ _ZN18QDeclarativePixmapD1Ev @ 254 NONAME
+ _ZN18QDeclarativePixmapD2Ev @ 255 NONAME
+ _ZN18QMetaMethodBuilder13setAttributesEi @ 256 NONAME
+ _ZN18QMetaMethodBuilder13setReturnTypeERK10QByteArray @ 257 NONAME
+ _ZN18QMetaMethodBuilder17setParameterNamesERK5QListI10QByteArrayE @ 258 NONAME
+ _ZN18QMetaMethodBuilder6setTagERK10QByteArray @ 259 NONAME
+ _ZN18QMetaMethodBuilder9setAccessEN11QMetaMethod6AccessE @ 260 NONAME
+ _ZN18QMetaObjectBuilder11addPropertyERK10QByteArrayS2_i @ 261 NONAME
+ _ZN18QMetaObjectBuilder11addPropertyERK13QMetaProperty @ 262 NONAME
+ _ZN18QMetaObjectBuilder11deserializeER11QDataStreamRK4QMapI10QByteArrayPK11QMetaObjectE @ 263 NONAME
+ _ZN18QMetaObjectBuilder11indexOfSlotERK10QByteArray @ 264 NONAME
+ _ZN18QMetaObjectBuilder12addClassInfoERK10QByteArrayS2_ @ 265 NONAME
+ _ZN18QMetaObjectBuilder12removeMethodEi @ 266 NONAME
+ _ZN18QMetaObjectBuilder12setClassNameERK10QByteArray @ 267 NONAME
+ _ZN18QMetaObjectBuilder13addEnumeratorERK10QByteArray @ 268 NONAME
+ _ZN18QMetaObjectBuilder13addEnumeratorERK9QMetaEnum @ 269 NONAME
+ _ZN18QMetaObjectBuilder13addMetaObjectEPK11QMetaObject6QFlagsINS_9AddMemberEE @ 270 NONAME
+ _ZN18QMetaObjectBuilder13indexOfMethodERK10QByteArray @ 271 NONAME
+ _ZN18QMetaObjectBuilder13indexOfSignalERK10QByteArray @ 272 NONAME
+ _ZN18QMetaObjectBuilder13setSuperClassEPK11QMetaObject @ 273 NONAME
+ _ZN18QMetaObjectBuilder14addConstructorERK10QByteArray @ 274 NONAME
+ _ZN18QMetaObjectBuilder14addConstructorERK11QMetaMethod @ 275 NONAME
+ _ZN18QMetaObjectBuilder14removePropertyEi @ 276 NONAME
+ _ZN18QMetaObjectBuilder15indexOfPropertyERK10QByteArray @ 277 NONAME
+ _ZN18QMetaObjectBuilder15removeClassInfoEi @ 278 NONAME
+ _ZN18QMetaObjectBuilder16indexOfClassInfoERK10QByteArray @ 279 NONAME
+ _ZN18QMetaObjectBuilder16removeEnumeratorEi @ 280 NONAME
+ _ZN18QMetaObjectBuilder17indexOfEnumeratorERK10QByteArray @ 281 NONAME
+ _ZN18QMetaObjectBuilder17removeConstructorEi @ 282 NONAME
+ _ZN18QMetaObjectBuilder18indexOfConstructorERK10QByteArray @ 283 NONAME
+ _ZN18QMetaObjectBuilder19fromRelocatableDataEP11QMetaObjectPKS0_RK10QByteArray @ 284 NONAME
+ _ZN18QMetaObjectBuilder20addRelatedMetaObjectERKPFRK11QMetaObjectvE @ 285 NONAME
+ _ZN18QMetaObjectBuilder23removeRelatedMetaObjectEi @ 286 NONAME
+ _ZN18QMetaObjectBuilder25setStaticMetacallFunctionEPFiN11QMetaObject4CallEiPPvE @ 287 NONAME
+ _ZN18QMetaObjectBuilder7addSlotERK10QByteArray @ 288 NONAME
+ _ZN18QMetaObjectBuilder8setFlagsE6QFlagsINS_14MetaObjectFlagEE @ 289 NONAME
+ _ZN18QMetaObjectBuilder9addMethodERK10QByteArray @ 290 NONAME
+ _ZN18QMetaObjectBuilder9addMethodERK10QByteArrayS2_ @ 291 NONAME
+ _ZN18QMetaObjectBuilder9addMethodERK11QMetaMethod @ 292 NONAME
+ _ZN18QMetaObjectBuilder9addSignalERK10QByteArray @ 293 NONAME
+ _ZN18QMetaObjectBuilderC1EPK11QMetaObject6QFlagsINS_9AddMemberEE @ 294 NONAME
+ _ZN18QMetaObjectBuilderC1Ev @ 295 NONAME
+ _ZN18QMetaObjectBuilderC2EPK11QMetaObject6QFlagsINS_9AddMemberEE @ 296 NONAME
+ _ZN18QMetaObjectBuilderC2Ev @ 297 NONAME
+ _ZN18QMetaObjectBuilderD0Ev @ 298 NONAME
+ _ZN18QMetaObjectBuilderD1Ev @ 299 NONAME
+ _ZN18QMetaObjectBuilderD2Ev @ 300 NONAME
+ _ZN19QDeclarativeAnchors10classBeginEv @ 301 NONAME
+ _ZN19QDeclarativeAnchors10resetRightEv @ 302 NONAME
+ _ZN19QDeclarativeAnchors10setMarginsEf @ 303 NONAME
+ _ZN19QDeclarativeAnchors10topChangedEv @ 304 NONAME
+ _ZN19QDeclarativeAnchors11fillChangedEv @ 305 NONAME
+ _ZN19QDeclarativeAnchors11leftChangedEv @ 306 NONAME
+ _ZN19QDeclarativeAnchors11qt_metacallEN11QMetaObject4CallEiPPv @ 307 NONAME
+ _ZN19QDeclarativeAnchors11qt_metacastEPKc @ 308 NONAME
+ _ZN19QDeclarativeAnchors11resetBottomEv @ 309 NONAME
+ _ZN19QDeclarativeAnchors11setBaselineERK22QDeclarativeAnchorLine @ 310 NONAME
+ _ZN19QDeclarativeAnchors11setCenterInEP15QGraphicsObject @ 311 NONAME
+ _ZN19QDeclarativeAnchors12rightChangedEv @ 312 NONAME
+ _ZN19QDeclarativeAnchors12setTopMarginEf @ 313 NONAME
+ _ZN19QDeclarativeAnchors13bottomChangedEv @ 314 NONAME
+ _ZN19QDeclarativeAnchors13resetBaselineEv @ 315 NONAME
+ _ZN19QDeclarativeAnchors13resetCenterInEv @ 316 NONAME
+ _ZN19QDeclarativeAnchors13setLeftMarginEf @ 317 NONAME
+ _ZN19QDeclarativeAnchors14marginsChangedEv @ 318 NONAME
+ _ZN19QDeclarativeAnchors14setRightMarginEf @ 319 NONAME
+ _ZN19QDeclarativeAnchors15baselineChangedEv @ 320 NONAME
+ _ZN19QDeclarativeAnchors15centerInChangedEv @ 321 NONAME
+ _ZN19QDeclarativeAnchors15setBottomMarginEf @ 322 NONAME
+ _ZN19QDeclarativeAnchors16staticMetaObjectE @ 323 NONAME DATA 16
+ _ZN19QDeclarativeAnchors16topMarginChangedEv @ 324 NONAME
+ _ZN19QDeclarativeAnchors17componentCompleteEv @ 325 NONAME
+ _ZN19QDeclarativeAnchors17leftMarginChangedEv @ 326 NONAME
+ _ZN19QDeclarativeAnchors17setBaselineOffsetEf @ 327 NONAME
+ _ZN19QDeclarativeAnchors17setVerticalCenterERK22QDeclarativeAnchorLine @ 328 NONAME
+ _ZN19QDeclarativeAnchors18rightMarginChangedEv @ 329 NONAME
+ _ZN19QDeclarativeAnchors19bottomMarginChangedEv @ 330 NONAME
+ _ZN19QDeclarativeAnchors19getStaticMetaObjectEv @ 331 NONAME
+ _ZN19QDeclarativeAnchors19resetVerticalCenterEv @ 332 NONAME
+ _ZN19QDeclarativeAnchors19setHorizontalCenterERK22QDeclarativeAnchorLine @ 333 NONAME
+ _ZN19QDeclarativeAnchors21baselineOffsetChangedEv @ 334 NONAME
+ _ZN19QDeclarativeAnchors21resetHorizontalCenterEv @ 335 NONAME
+ _ZN19QDeclarativeAnchors21verticalCenterChangedEv @ 336 NONAME
+ _ZN19QDeclarativeAnchors23horizontalCenterChangedEv @ 337 NONAME
+ _ZN19QDeclarativeAnchors23setVerticalCenterOffsetEf @ 338 NONAME
+ _ZN19QDeclarativeAnchors25setHorizontalCenterOffsetEf @ 339 NONAME
+ _ZN19QDeclarativeAnchors27verticalCenterOffsetChangedEv @ 340 NONAME
+ _ZN19QDeclarativeAnchors29horizontalCenterOffsetChangedEv @ 341 NONAME
+ _ZN19QDeclarativeAnchors6setTopERK22QDeclarativeAnchorLine @ 342 NONAME
+ _ZN19QDeclarativeAnchors7setFillEP15QGraphicsObject @ 343 NONAME
+ _ZN19QDeclarativeAnchors7setLeftERK22QDeclarativeAnchorLine @ 344 NONAME
+ _ZN19QDeclarativeAnchors8resetTopEv @ 345 NONAME
+ _ZN19QDeclarativeAnchors8setRightERK22QDeclarativeAnchorLine @ 346 NONAME
+ _ZN19QDeclarativeAnchors9resetFillEv @ 347 NONAME
+ _ZN19QDeclarativeAnchors9resetLeftEv @ 348 NONAME
+ _ZN19QDeclarativeAnchors9setBottomERK22QDeclarativeAnchorLine @ 349 NONAME
+ _ZN19QDeclarativeAnchorsC1EP15QGraphicsObjectP7QObject @ 350 NONAME
+ _ZN19QDeclarativeAnchorsC1EP7QObject @ 351 NONAME
+ _ZN19QDeclarativeAnchorsC2EP15QGraphicsObjectP7QObject @ 352 NONAME
+ _ZN19QDeclarativeAnchorsC2EP7QObject @ 353 NONAME
+ _ZN19QDeclarativeAnchorsD0Ev @ 354 NONAME
+ _ZN19QDeclarativeAnchorsD1Ev @ 355 NONAME
+ _ZN19QDeclarativeAnchorsD2Ev @ 356 NONAME
+ _ZN19QDeclarativeBinding10setEnabledEb6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 357 NONAME
+ _ZN19QDeclarativeBinding11qt_metacallEN11QMetaObject4CallEiPPv @ 358 NONAME
+ _ZN19QDeclarativeBinding11qt_metacastEPKc @ 359 NONAME
+ _ZN19QDeclarativeBinding13propertyIndexEv @ 360 NONAME
+ _ZN19QDeclarativeBinding16staticMetaObjectE @ 361 NONAME DATA 16
+ _ZN19QDeclarativeBinding19getStaticMetaObjectEv @ 362 NONAME
+ _ZN19QDeclarativeBinding6updateE6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 363 NONAME
+ _ZN19QDeclarativeBinding9setTargetERK20QDeclarativeProperty @ 364 NONAME
+ _ZN19QDeclarativeBindingC1EPvP20QDeclarativeRefCountP7QObjectP23QDeclarativeContextDataRK7QStringiS4_ @ 365 NONAME
+ _ZN19QDeclarativeBindingC1ERK7QStringP7QObjectP19QDeclarativeContextS4_ @ 366 NONAME
+ _ZN19QDeclarativeBindingC1ERK7QStringP7QObjectP23QDeclarativeContextDataS4_ @ 367 NONAME
+ _ZN19QDeclarativeBindingC2EPvP20QDeclarativeRefCountP7QObjectP23QDeclarativeContextDataRK7QStringiS4_ @ 368 NONAME
+ _ZN19QDeclarativeBindingC2ERK7QStringP7QObjectP19QDeclarativeContextS4_ @ 369 NONAME
+ _ZN19QDeclarativeBindingC2ERK7QStringP7QObjectP23QDeclarativeContextDataS4_ @ 370 NONAME
+ _ZN19QDeclarativeBindingD0Ev @ 371 NONAME
+ _ZN19QDeclarativeBindingD1Ev @ 372 NONAME
+ _ZN19QDeclarativeBindingD2Ev @ 373 NONAME
+ _ZN19QDeclarativeContext10setBaseUrlERK4QUrl @ 374 NONAME
+ _ZN19QDeclarativeContext11qt_metacallEN11QMetaObject4CallEiPPv @ 375 NONAME
+ _ZN19QDeclarativeContext11qt_metacastEPKc @ 376 NONAME
+ _ZN19QDeclarativeContext11resolvedUrlERK4QUrl @ 377 NONAME
+ _ZN19QDeclarativeContext16setContextObjectEP7QObject @ 378 NONAME
+ _ZN19QDeclarativeContext16staticMetaObjectE @ 379 NONAME DATA 16
+ _ZN19QDeclarativeContext18setContextPropertyERK7QStringP7QObject @ 380 NONAME
+ _ZN19QDeclarativeContext18setContextPropertyERK7QStringRK8QVariant @ 381 NONAME
+ _ZN19QDeclarativeContext19getStaticMetaObjectEv @ 382 NONAME
+ _ZN19QDeclarativeContextC1EP18QDeclarativeEngineP7QObject @ 383 NONAME
+ _ZN19QDeclarativeContextC1EP18QDeclarativeEngineb @ 384 NONAME
+ _ZN19QDeclarativeContextC1EP23QDeclarativeContextData @ 385 NONAME
+ _ZN19QDeclarativeContextC1EPS_P7QObject @ 386 NONAME
+ _ZN19QDeclarativeContextC2EP18QDeclarativeEngineP7QObject @ 387 NONAME
+ _ZN19QDeclarativeContextC2EP18QDeclarativeEngineb @ 388 NONAME
+ _ZN19QDeclarativeContextC2EP23QDeclarativeContextData @ 389 NONAME
+ _ZN19QDeclarativeContextC2EPS_P7QObject @ 390 NONAME
+ _ZN19QDeclarativeContextD0Ev @ 391 NONAME
+ _ZN19QDeclarativeContextD1Ev @ 392 NONAME
+ _ZN19QDeclarativeContextD2Ev @ 393 NONAME
+ _ZN19QDeclarativeDomListC1ERKS_ @ 394 NONAME
+ _ZN19QDeclarativeDomListC1Ev @ 395 NONAME
+ _ZN19QDeclarativeDomListC2ERKS_ @ 396 NONAME
+ _ZN19QDeclarativeDomListC2Ev @ 397 NONAME
+ _ZN19QDeclarativeDomListD1Ev @ 398 NONAME
+ _ZN19QDeclarativeDomListD2Ev @ 399 NONAME
+ _ZN19QDeclarativeDomListaSERKS_ @ 400 NONAME
+ _ZN19QDeclarativePrivate11qmlregisterENS_16RegistrationTypeEPv @ 401 NONAME
+ _ZN19QDeclarativePrivate30qdeclarativeelement_destructorEP7QObject @ 402 NONAME
+ _ZN19QListModelInterface10itemsMovedEiii @ 403 NONAME
+ _ZN19QListModelInterface11qt_metacallEN11QMetaObject4CallEiPPv @ 404 NONAME
+ _ZN19QListModelInterface11qt_metacastEPKc @ 405 NONAME
+ _ZN19QListModelInterface12itemsChangedEiiRK5QListIiE @ 406 NONAME
+ _ZN19QListModelInterface12itemsRemovedEii @ 407 NONAME
+ _ZN19QListModelInterface13itemsInsertedEii @ 408 NONAME
+ _ZN19QListModelInterface16staticMetaObjectE @ 409 NONAME DATA 16
+ _ZN19QListModelInterface19getStaticMetaObjectEv @ 410 NONAME
+ _ZN20QDeclarativeBehavior10setEnabledEb @ 411 NONAME
+ _ZN20QDeclarativeBehavior11qt_metacallEN11QMetaObject4CallEiPPv @ 412 NONAME
+ _ZN20QDeclarativeBehavior11qt_metacastEPKc @ 413 NONAME
+ _ZN20QDeclarativeBehavior12setAnimationEP29QDeclarativeAbstractAnimation @ 414 NONAME
+ _ZN20QDeclarativeBehavior14enabledChangedEv @ 415 NONAME
+ _ZN20QDeclarativeBehavior16staticMetaObjectE @ 416 NONAME DATA 16
+ _ZN20QDeclarativeBehavior18componentFinalizedEv @ 417 NONAME
+ _ZN20QDeclarativeBehavior19getStaticMetaObjectEv @ 418 NONAME
+ _ZN20QDeclarativeBehavior23qtAnimationStateChangedEN18QAbstractAnimation5StateES1_ @ 419 NONAME
+ _ZN20QDeclarativeBehavior5writeERK8QVariant @ 420 NONAME
+ _ZN20QDeclarativeBehavior9animationEv @ 421 NONAME
+ _ZN20QDeclarativeBehavior9setTargetERK20QDeclarativeProperty @ 422 NONAME
+ _ZN20QDeclarativeBehaviorC1EP7QObject @ 423 NONAME
+ _ZN20QDeclarativeBehaviorC2EP7QObject @ 424 NONAME
+ _ZN20QDeclarativeBehaviorD0Ev @ 425 NONAME
+ _ZN20QDeclarativeBehaviorD1Ev @ 426 NONAME
+ _ZN20QDeclarativeBehaviorD2Ev @ 427 NONAME
+ _ZN20QDeclarativeDomValueC1ERKS_ @ 428 NONAME
+ _ZN20QDeclarativeDomValueC1Ev @ 429 NONAME
+ _ZN20QDeclarativeDomValueC2ERKS_ @ 430 NONAME
+ _ZN20QDeclarativeDomValueC2Ev @ 431 NONAME
+ _ZN20QDeclarativeDomValueD1Ev @ 432 NONAME
+ _ZN20QDeclarativeDomValueD2Ev @ 433 NONAME
+ _ZN20QDeclarativeDomValueaSERKS_ @ 434 NONAME
+ _ZN20QDeclarativeMetaType11isInterfaceEi @ 435 NONAME
+ _ZN20QDeclarativeMetaType12interfaceIIdEi @ 436 NONAME
+ _ZN20QDeclarativeMetaType12qmlTypeNamesEv @ 437 NONAME
+ _ZN20QDeclarativeMetaType12typeCategoryEi @ 438 NONAME
+ _ZN20QDeclarativeMetaType13defaultMethodEP7QObject @ 439 NONAME
+ _ZN20QDeclarativeMetaType13defaultMethodEPK11QMetaObject @ 440 NONAME
+ _ZN20QDeclarativeMetaType15defaultPropertyEP7QObject @ 441 NONAME
+ _ZN20QDeclarativeMetaType15defaultPropertyEPK11QMetaObject @ 442 NONAME
+ _ZN20QDeclarativeMetaType15parentFunctionsEv @ 443 NONAME
+ _ZN20QDeclarativeMetaType21customStringConverterEi @ 444 NONAME
+ _ZN20QDeclarativeMetaType24attachedPropertiesFuncIdEPK11QMetaObject @ 445 NONAME
+ _ZN20QDeclarativeMetaType26attachedPropertiesFuncByIdEi @ 446 NONAME
+ _ZN20QDeclarativeMetaType29registerCustomStringConverterEiPF8QVariantRK7QStringE @ 447 NONAME
+ _ZN20QDeclarativeMetaType4copyEiPvPKv @ 448 NONAME
+ _ZN20QDeclarativeMetaType6isListEi @ 449 NONAME
+ _ZN20QDeclarativeMetaType7qmlTypeEPK11QMetaObject @ 450 NONAME
+ _ZN20QDeclarativeMetaType7qmlTypeERK10QByteArrayii @ 451 NONAME
+ _ZN20QDeclarativeMetaType7qmlTypeEi @ 452 NONAME
+ _ZN20QDeclarativeMetaType8isModuleERK10QByteArrayii @ 453 NONAME
+ _ZN20QDeclarativeMetaType8listTypeEi @ 454 NONAME
+ _ZN20QDeclarativeMetaType8qmlTypesEv @ 455 NONAME
+ _ZN20QDeclarativeMetaType9isQObjectEi @ 456 NONAME
+ _ZN20QDeclarativeMetaType9toQObjectERK8QVariantPb @ 457 NONAME
+ _ZN20QDeclarativeProperty4readEP7QObjectRK7QString @ 458 NONAME
+ _ZN20QDeclarativeProperty4readEP7QObjectRK7QStringP18QDeclarativeEngine @ 459 NONAME
+ _ZN20QDeclarativeProperty4readEP7QObjectRK7QStringP19QDeclarativeContext @ 460 NONAME
+ _ZN20QDeclarativeProperty5writeEP7QObjectRK7QStringRK8QVariant @ 461 NONAME
+ _ZN20QDeclarativeProperty5writeEP7QObjectRK7QStringRK8QVariantP18QDeclarativeEngine @ 462 NONAME
+ _ZN20QDeclarativeProperty5writeEP7QObjectRK7QStringRK8QVariantP19QDeclarativeContext @ 463 NONAME
+ _ZN20QDeclarativePropertyC1EP7QObject @ 464 NONAME
+ _ZN20QDeclarativePropertyC1EP7QObjectP18QDeclarativeEngine @ 465 NONAME
+ _ZN20QDeclarativePropertyC1EP7QObjectP19QDeclarativeContext @ 466 NONAME
+ _ZN20QDeclarativePropertyC1EP7QObjectRK7QString @ 467 NONAME
+ _ZN20QDeclarativePropertyC1EP7QObjectRK7QStringP18QDeclarativeEngine @ 468 NONAME
+ _ZN20QDeclarativePropertyC1EP7QObjectRK7QStringP19QDeclarativeContext @ 469 NONAME
+ _ZN20QDeclarativePropertyC1ERKS_ @ 470 NONAME
+ _ZN20QDeclarativePropertyC1Ev @ 471 NONAME
+ _ZN20QDeclarativePropertyC2EP7QObject @ 472 NONAME
+ _ZN20QDeclarativePropertyC2EP7QObjectP18QDeclarativeEngine @ 473 NONAME
+ _ZN20QDeclarativePropertyC2EP7QObjectP19QDeclarativeContext @ 474 NONAME
+ _ZN20QDeclarativePropertyC2EP7QObjectRK7QString @ 475 NONAME
+ _ZN20QDeclarativePropertyC2EP7QObjectRK7QStringP18QDeclarativeEngine @ 476 NONAME
+ _ZN20QDeclarativePropertyC2EP7QObjectRK7QStringP19QDeclarativeContext @ 477 NONAME
+ _ZN20QDeclarativePropertyC2ERKS_ @ 478 NONAME
+ _ZN20QDeclarativePropertyC2Ev @ 479 NONAME
+ _ZN20QDeclarativePropertyD1Ev @ 480 NONAME
+ _ZN20QDeclarativePropertyD2Ev @ 481 NONAME
+ _ZN20QDeclarativePropertyaSERKS_ @ 482 NONAME
+ _ZN20QMetaPropertyBuilder10setDynamicEb @ 483 NONAME
+ _ZN20QMetaPropertyBuilder11setEditableEb @ 484 NONAME
+ _ZN20QMetaPropertyBuilder11setReadableEb @ 485 NONAME
+ _ZN20QMetaPropertyBuilder11setWritableEb @ 486 NONAME
+ _ZN20QMetaPropertyBuilder12setStdCppSetEb @ 487 NONAME
+ _ZN20QMetaPropertyBuilder13setDesignableEb @ 488 NONAME
+ _ZN20QMetaPropertyBuilder13setEnumOrFlagEb @ 489 NONAME
+ _ZN20QMetaPropertyBuilder13setResettableEb @ 490 NONAME
+ _ZN20QMetaPropertyBuilder13setScriptableEb @ 491 NONAME
+ _ZN20QMetaPropertyBuilder15setNotifySignalERK18QMetaMethodBuilder @ 492 NONAME
+ _ZN20QMetaPropertyBuilder18removeNotifySignalEv @ 493 NONAME
+ _ZN20QMetaPropertyBuilder7setUserEb @ 494 NONAME
+ _ZN20QMetaPropertyBuilder9setStoredEb @ 495 NONAME
+ _ZN21QDeclarativeComponent11beginCreateEP19QDeclarativeContext @ 496 NONAME
+ _ZN21QDeclarativeComponent11qt_metacallEN11QMetaObject4CallEiPPv @ 497 NONAME
+ _ZN21QDeclarativeComponent11qt_metacastEPKc @ 498 NONAME
+ _ZN21QDeclarativeComponent12createObjectEP7QObject @ 499 NONAME
+ _ZN21QDeclarativeComponent13statusChangedENS_6StatusE @ 500 NONAME
+ _ZN21QDeclarativeComponent14completeCreateEv @ 501 NONAME
+ _ZN21QDeclarativeComponent15progressChangedEf @ 502 NONAME
+ _ZN21QDeclarativeComponent16staticMetaObjectE @ 503 NONAME DATA 16
+ _ZN21QDeclarativeComponent19getStaticMetaObjectEv @ 504 NONAME
+ _ZN21QDeclarativeComponent21qmlAttachedPropertiesEP7QObject @ 505 NONAME
+ _ZN21QDeclarativeComponent6createEP19QDeclarativeContext @ 506 NONAME
+ _ZN21QDeclarativeComponent7loadUrlERK4QUrl @ 507 NONAME
+ _ZN21QDeclarativeComponent7setDataERK10QByteArrayRK4QUrl @ 508 NONAME
+ _ZN21QDeclarativeComponentC1EP18QDeclarativeEngineP24QDeclarativeCompiledDataiiP7QObject @ 509 NONAME
+ _ZN21QDeclarativeComponentC1EP18QDeclarativeEngineP7QObject @ 510 NONAME
+ _ZN21QDeclarativeComponentC1EP18QDeclarativeEngineRK4QUrlP7QObject @ 511 NONAME
+ _ZN21QDeclarativeComponentC1EP18QDeclarativeEngineRK7QStringP7QObject @ 512 NONAME
+ _ZN21QDeclarativeComponentC1EP7QObject @ 513 NONAME
+ _ZN21QDeclarativeComponentC1ER28QDeclarativeComponentPrivateP7QObject @ 514 NONAME
+ _ZN21QDeclarativeComponentC2EP18QDeclarativeEngineP24QDeclarativeCompiledDataiiP7QObject @ 515 NONAME
+ _ZN21QDeclarativeComponentC2EP18QDeclarativeEngineP7QObject @ 516 NONAME
+ _ZN21QDeclarativeComponentC2EP18QDeclarativeEngineRK4QUrlP7QObject @ 517 NONAME
+ _ZN21QDeclarativeComponentC2EP18QDeclarativeEngineRK7QStringP7QObject @ 518 NONAME
+ _ZN21QDeclarativeComponentC2EP7QObject @ 519 NONAME
+ _ZN21QDeclarativeComponentC2ER28QDeclarativeComponentPrivateP7QObject @ 520 NONAME
+ _ZN21QDeclarativeComponentD0Ev @ 521 NONAME
+ _ZN21QDeclarativeComponentD1Ev @ 522 NONAME
+ _ZN21QDeclarativeComponentD2Ev @ 523 NONAME
+ _ZN21QDeclarativeDomImportC1ERKS_ @ 524 NONAME
+ _ZN21QDeclarativeDomImportC1Ev @ 525 NONAME
+ _ZN21QDeclarativeDomImportC2ERKS_ @ 526 NONAME
+ _ZN21QDeclarativeDomImportC2Ev @ 527 NONAME
+ _ZN21QDeclarativeDomImportD1Ev @ 528 NONAME
+ _ZN21QDeclarativeDomImportD2Ev @ 529 NONAME
+ _ZN21QDeclarativeDomImportaSERKS_ @ 530 NONAME
+ _ZN21QDeclarativeDomObjectC1ERKS_ @ 531 NONAME
+ _ZN21QDeclarativeDomObjectC1Ev @ 532 NONAME
+ _ZN21QDeclarativeDomObjectC2ERKS_ @ 533 NONAME
+ _ZN21QDeclarativeDomObjectC2Ev @ 534 NONAME
+ _ZN21QDeclarativeDomObjectD1Ev @ 535 NONAME
+ _ZN21QDeclarativeDomObjectD2Ev @ 536 NONAME
+ _ZN21QDeclarativeDomObjectaSERKS_ @ 537 NONAME
+ _ZN21QDeclarativeListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 538 NONAME
+ _ZN21QDeclarativeListModel11qt_metacastEPKc @ 539 NONAME
+ _ZN21QDeclarativeListModel11setPropertyEiRK7QStringRK8QVariant @ 540 NONAME
+ _ZN21QDeclarativeListModel12countChangedEv @ 541 NONAME
+ _ZN21QDeclarativeListModel16staticMetaObjectE @ 542 NONAME DATA 16
+ _ZN21QDeclarativeListModel19getStaticMetaObjectEv @ 543 NONAME
+ _ZN21QDeclarativeListModel3setEiRK12QScriptValue @ 544 NONAME
+ _ZN21QDeclarativeListModel4moveEiii @ 545 NONAME
+ _ZN21QDeclarativeListModel4syncEv @ 546 NONAME
+ _ZN21QDeclarativeListModel5agentEv @ 547 NONAME
+ _ZN21QDeclarativeListModel5clearEv @ 548 NONAME
+ _ZN21QDeclarativeListModel6appendERK12QScriptValue @ 549 NONAME
+ _ZN21QDeclarativeListModel6insertEiRK12QScriptValue @ 550 NONAME
+ _ZN21QDeclarativeListModel6removeEi @ 551 NONAME
+ _ZN21QDeclarativeListModel7flattenEv @ 552 NONAME
+ _ZN21QDeclarativeListModelC1EP7QObject @ 553 NONAME
+ _ZN21QDeclarativeListModelC1EbP7QObject @ 554 NONAME
+ _ZN21QDeclarativeListModelC2EP7QObject @ 555 NONAME
+ _ZN21QDeclarativeListModelC2EbP7QObject @ 556 NONAME
+ _ZN21QDeclarativeListModelD0Ev @ 557 NONAME
+ _ZN21QDeclarativeListModelD1Ev @ 558 NONAME
+ _ZN21QDeclarativeListModelD2Ev @ 559 NONAME
+ _ZN21QDeclarativeRectangle11qt_metacallEN11QMetaObject4CallEiPPv @ 560 NONAME
+ _ZN21QDeclarativeRectangle11qt_metacastEPKc @ 561 NONAME
+ _ZN21QDeclarativeRectangle11setGradientEP20QDeclarativeGradient @ 562 NONAME
+ _ZN21QDeclarativeRectangle12colorChangedEv @ 563 NONAME
+ _ZN21QDeclarativeRectangle13radiusChangedEv @ 564 NONAME
+ _ZN21QDeclarativeRectangle16staticMetaObjectE @ 565 NONAME DATA 16
+ _ZN21QDeclarativeRectangle19generateRoundedRectEv @ 566 NONAME
+ _ZN21QDeclarativeRectangle19getStaticMetaObjectEv @ 567 NONAME
+ _ZN21QDeclarativeRectangle20generateBorderedRectEv @ 568 NONAME
+ _ZN21QDeclarativeRectangle5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 569 NONAME
+ _ZN21QDeclarativeRectangle6borderEv @ 570 NONAME
+ _ZN21QDeclarativeRectangle8doUpdateEv @ 571 NONAME
+ _ZN21QDeclarativeRectangle8drawRectER8QPainter @ 572 NONAME
+ _ZN21QDeclarativeRectangle8setColorERK6QColor @ 573 NONAME
+ _ZN21QDeclarativeRectangle9setRadiusEf @ 574 NONAME
+ _ZN21QDeclarativeRectangleC1EP16QDeclarativeItem @ 575 NONAME
+ _ZN21QDeclarativeRectangleC2EP16QDeclarativeItem @ 576 NONAME
+ _ZN21QDeclarativeScaleGrid11qt_metacallEN11QMetaObject4CallEiPPv @ 577 NONAME
+ _ZN21QDeclarativeScaleGrid11qt_metacastEPKc @ 578 NONAME
+ _ZN21QDeclarativeScaleGrid13borderChangedEv @ 579 NONAME
+ _ZN21QDeclarativeScaleGrid16staticMetaObjectE @ 580 NONAME DATA 16
+ _ZN21QDeclarativeScaleGrid19getStaticMetaObjectEv @ 581 NONAME
+ _ZN21QDeclarativeScaleGrid6setTopEi @ 582 NONAME
+ _ZN21QDeclarativeScaleGrid7setLeftEi @ 583 NONAME
+ _ZN21QDeclarativeScaleGrid8setRightEi @ 584 NONAME
+ _ZN21QDeclarativeScaleGrid9setBottomEi @ 585 NONAME
+ _ZN21QDeclarativeScaleGridC1EP7QObject @ 586 NONAME
+ _ZN21QDeclarativeScaleGridC2EP7QObject @ 587 NONAME
+ _ZN21QDeclarativeScaleGridD0Ev @ 588 NONAME
+ _ZN21QDeclarativeScaleGridD1Ev @ 589 NONAME
+ _ZN21QDeclarativeScaleGridD2Ev @ 590 NONAME
+ _ZN21QDeclarativeValueType11qt_metacallEN11QMetaObject4CallEiPPv @ 591 NONAME
+ _ZN21QDeclarativeValueType11qt_metacastEPKc @ 592 NONAME
+ _ZN21QDeclarativeValueType16staticMetaObjectE @ 593 NONAME DATA 16
+ _ZN21QDeclarativeValueType19getStaticMetaObjectEv @ 594 NONAME
+ _ZN21QDeclarativeValueTypeC2EP7QObject @ 595 NONAME
+ _ZN22QDeclarativeDebugQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 596 NONAME
+ _ZN22QDeclarativeDebugQuery11qt_metacastEPKc @ 597 NONAME
+ _ZN22QDeclarativeDebugQuery12stateChangedENS_5StateE @ 598 NONAME
+ _ZN22QDeclarativeDebugQuery16staticMetaObjectE @ 599 NONAME DATA 16
+ _ZN22QDeclarativeDebugQuery19getStaticMetaObjectEv @ 600 NONAME
+ _ZN22QDeclarativeDebugQuery8setStateENS_5StateE @ 601 NONAME
+ _ZN22QDeclarativeDebugQueryC1EP7QObject @ 602 NONAME
+ _ZN22QDeclarativeDebugQueryC2EP7QObject @ 603 NONAME
+ _ZN22QDeclarativeDebugWatch11qt_metacallEN11QMetaObject4CallEiPPv @ 604 NONAME
+ _ZN22QDeclarativeDebugWatch11qt_metacastEPKc @ 605 NONAME
+ _ZN22QDeclarativeDebugWatch12stateChangedENS_5StateE @ 606 NONAME
+ _ZN22QDeclarativeDebugWatch12valueChangedERK10QByteArrayRK8QVariant @ 607 NONAME
+ _ZN22QDeclarativeDebugWatch16staticMetaObjectE @ 608 NONAME DATA 16
+ _ZN22QDeclarativeDebugWatch19getStaticMetaObjectEv @ 609 NONAME
+ _ZN22QDeclarativeDebugWatch8setStateENS_5StateE @ 610 NONAME
+ _ZN22QDeclarativeDebugWatchC1EP7QObject @ 611 NONAME
+ _ZN22QDeclarativeDebugWatchC2EP7QObject @ 612 NONAME
+ _ZN22QDeclarativeDebugWatchD0Ev @ 613 NONAME
+ _ZN22QDeclarativeDebugWatchD1Ev @ 614 NONAME
+ _ZN22QDeclarativeDebugWatchD2Ev @ 615 NONAME
+ _ZN22QDeclarativeExpression10clearErrorEv @ 616 NONAME
+ _ZN22QDeclarativeExpression11qt_metacallEN11QMetaObject4CallEiPPv @ 617 NONAME
+ _ZN22QDeclarativeExpression11qt_metacastEPKc @ 618 NONAME
+ _ZN22QDeclarativeExpression12valueChangedEv @ 619 NONAME
+ _ZN22QDeclarativeExpression13setExpressionERK7QString @ 620 NONAME
+ _ZN22QDeclarativeExpression16staticMetaObjectE @ 621 NONAME DATA 16
+ _ZN22QDeclarativeExpression17setSourceLocationERK7QStringi @ 622 NONAME
+ _ZN22QDeclarativeExpression19getStaticMetaObjectEv @ 623 NONAME
+ _ZN22QDeclarativeExpression23setNotifyOnValueChangedEb @ 624 NONAME
+ _ZN22QDeclarativeExpression8evaluateEPb @ 625 NONAME
+ _ZN22QDeclarativeExpressionC1EP19QDeclarativeContextP7QObjectRK7QStringS3_ @ 626 NONAME
+ _ZN22QDeclarativeExpressionC1EP23QDeclarativeContextDataP7QObjectRK7QString @ 627 NONAME
+ _ZN22QDeclarativeExpressionC1EP23QDeclarativeContextDataP7QObjectRK7QStringR29QDeclarativeExpressionPrivate @ 628 NONAME
+ _ZN22QDeclarativeExpressionC1EP23QDeclarativeContextDataPvP20QDeclarativeRefCountP7QObjectRK7QStringiR29QDeclarativeExpressionPrivate @ 629 NONAME
+ _ZN22QDeclarativeExpressionC1Ev @ 630 NONAME
+ _ZN22QDeclarativeExpressionC2EP19QDeclarativeContextP7QObjectRK7QStringS3_ @ 631 NONAME
+ _ZN22QDeclarativeExpressionC2EP23QDeclarativeContextDataP7QObjectRK7QString @ 632 NONAME
+ _ZN22QDeclarativeExpressionC2EP23QDeclarativeContextDataP7QObjectRK7QStringR29QDeclarativeExpressionPrivate @ 633 NONAME
+ _ZN22QDeclarativeExpressionC2EP23QDeclarativeContextDataPvP20QDeclarativeRefCountP7QObjectRK7QStringiR29QDeclarativeExpressionPrivate @ 634 NONAME
+ _ZN22QDeclarativeExpressionC2Ev @ 635 NONAME
+ _ZN22QDeclarativeExpressionD0Ev @ 636 NONAME
+ _ZN22QDeclarativeExpressionD1Ev @ 637 NONAME
+ _ZN22QDeclarativeExpressionD2Ev @ 638 NONAME
+ _ZN22QDeclarativeStateGroup10classBeginEv @ 639 NONAME
+ _ZN22QDeclarativeStateGroup11qt_metacallEN11QMetaObject4CallEiPPv @ 640 NONAME
+ _ZN22QDeclarativeStateGroup11qt_metacastEPKc @ 641 NONAME
+ _ZN22QDeclarativeStateGroup11removeStateEP17QDeclarativeState @ 642 NONAME
+ _ZN22QDeclarativeStateGroup12stateChangedERK7QString @ 643 NONAME
+ _ZN22QDeclarativeStateGroup14statesPropertyEv @ 644 NONAME
+ _ZN22QDeclarativeStateGroup15updateAutoStateEv @ 645 NONAME
+ _ZN22QDeclarativeStateGroup16staticMetaObjectE @ 646 NONAME DATA 16
+ _ZN22QDeclarativeStateGroup17componentCompleteEv @ 647 NONAME
+ _ZN22QDeclarativeStateGroup19getStaticMetaObjectEv @ 648 NONAME
+ _ZN22QDeclarativeStateGroup19transitionsPropertyEv @ 649 NONAME
+ _ZN22QDeclarativeStateGroup8setStateERK7QString @ 650 NONAME
+ _ZN22QDeclarativeStateGroupC1EP7QObject @ 651 NONAME
+ _ZN22QDeclarativeStateGroupC2EP7QObject @ 652 NONAME
+ _ZN22QDeclarativeStateGroupD0Ev @ 653 NONAME
+ _ZN22QDeclarativeStateGroupD1Ev @ 654 NONAME
+ _ZN22QDeclarativeStateGroupD2Ev @ 655 NONAME
+ _ZN22QDeclarativeTransition10animationsEv @ 656 NONAME
+ _ZN22QDeclarativeTransition10setToStateERK7QString @ 657 NONAME
+ _ZN22QDeclarativeTransition11fromChangedEv @ 658 NONAME
+ _ZN22QDeclarativeTransition11qt_metacallEN11QMetaObject4CallEiPPv @ 659 NONAME
+ _ZN22QDeclarativeTransition11qt_metacastEPKc @ 660 NONAME
+ _ZN22QDeclarativeTransition11setReversedEb @ 661 NONAME
+ _ZN22QDeclarativeTransition12setFromStateERK7QString @ 662 NONAME
+ _ZN22QDeclarativeTransition13setReversibleEb @ 663 NONAME
+ _ZN22QDeclarativeTransition16staticMetaObjectE @ 664 NONAME DATA 16
+ _ZN22QDeclarativeTransition17reversibleChangedEv @ 665 NONAME
+ _ZN22QDeclarativeTransition19getStaticMetaObjectEv @ 666 NONAME
+ _ZN22QDeclarativeTransition4stopEv @ 667 NONAME
+ _ZN22QDeclarativeTransition7prepareER5QListI18QDeclarativeActionERS0_I20QDeclarativePropertyEP29QDeclarativeTransitionManager @ 668 NONAME
+ _ZN22QDeclarativeTransition9toChangedEv @ 669 NONAME
+ _ZN22QDeclarativeTransitionC1EP7QObject @ 670 NONAME
+ _ZN22QDeclarativeTransitionC2EP7QObject @ 671 NONAME
+ _ZN22QDeclarativeTransitionD0Ev @ 672 NONAME
+ _ZN22QDeclarativeTransitionD1Ev @ 673 NONAME
+ _ZN22QDeclarativeTransitionD2Ev @ 674 NONAME
+ _ZN23QDeclarativeDebugClient10setEnabledEb @ 675 NONAME
+ _ZN23QDeclarativeDebugClient11qt_metacallEN11QMetaObject4CallEiPPv @ 676 NONAME
+ _ZN23QDeclarativeDebugClient11qt_metacastEPKc @ 677 NONAME
+ _ZN23QDeclarativeDebugClient11sendMessageERK10QByteArray @ 678 NONAME
+ _ZN23QDeclarativeDebugClient15messageReceivedERK10QByteArray @ 679 NONAME
+ _ZN23QDeclarativeDebugClient16staticMetaObjectE @ 680 NONAME DATA 16
+ _ZN23QDeclarativeDebugClient19getStaticMetaObjectEv @ 681 NONAME
+ _ZN23QDeclarativeDebugClientC1ERK7QStringP27QDeclarativeDebugConnection @ 682 NONAME
+ _ZN23QDeclarativeDebugClientC2ERK7QStringP27QDeclarativeDebugConnection @ 683 NONAME
+ _ZN23QDeclarativeDomDocument4loadEP18QDeclarativeEngineRK10QByteArrayRK4QUrl @ 684 NONAME
+ _ZN23QDeclarativeDomDocumentC1ERKS_ @ 685 NONAME
+ _ZN23QDeclarativeDomDocumentC1Ev @ 686 NONAME
+ _ZN23QDeclarativeDomDocumentC2ERKS_ @ 687 NONAME
+ _ZN23QDeclarativeDomDocumentC2Ev @ 688 NONAME
+ _ZN23QDeclarativeDomDocumentD1Ev @ 689 NONAME
+ _ZN23QDeclarativeDomDocumentD2Ev @ 690 NONAME
+ _ZN23QDeclarativeDomDocumentaSERKS_ @ 691 NONAME
+ _ZN23QDeclarativeDomPropertyC1ERKS_ @ 692 NONAME
+ _ZN23QDeclarativeDomPropertyC1Ev @ 693 NONAME
+ _ZN23QDeclarativeDomPropertyC2ERKS_ @ 694 NONAME
+ _ZN23QDeclarativeDomPropertyC2Ev @ 695 NONAME
+ _ZN23QDeclarativeDomPropertyD1Ev @ 696 NONAME
+ _ZN23QDeclarativeDomPropertyD2Ev @ 697 NONAME
+ _ZN23QDeclarativeDomPropertyaSERKS_ @ 698 NONAME
+ _ZN23QDeclarativeEngineDebug11qt_metacallEN11QMetaObject4CallEiPPv @ 699 NONAME
+ _ZN23QDeclarativeEngineDebug11qt_metacastEPKc @ 700 NONAME
+ _ZN23QDeclarativeEngineDebug11queryObjectERK32QDeclarativeDebugObjectReferenceP7QObject @ 701 NONAME
+ _ZN23QDeclarativeEngineDebug11removeWatchEP22QDeclarativeDebugWatch @ 702 NONAME
+ _ZN23QDeclarativeEngineDebug13setMethodBodyEiRK7QStringS2_ @ 703 NONAME
+ _ZN23QDeclarativeEngineDebug16staticMetaObjectE @ 704 NONAME DATA 16
+ _ZN23QDeclarativeEngineDebug17queryRootContextsERK32QDeclarativeDebugEngineReferenceP7QObject @ 705 NONAME
+ _ZN23QDeclarativeEngineDebug19getStaticMetaObjectEv @ 706 NONAME
+ _ZN23QDeclarativeEngineDebug19setBindingForObjectEiRK7QStringRK8QVariantb @ 707 NONAME
+ _ZN23QDeclarativeEngineDebug20queryObjectRecursiveERK32QDeclarativeDebugObjectReferenceP7QObject @ 708 NONAME
+ _ZN23QDeclarativeEngineDebug21queryAvailableEnginesEP7QObject @ 709 NONAME
+ _ZN23QDeclarativeEngineDebug21queryExpressionResultEiRK7QStringP7QObject @ 710 NONAME
+ _ZN23QDeclarativeEngineDebug21resetBindingForObjectEiRK7QString @ 711 NONAME
+ _ZN23QDeclarativeEngineDebug8addWatchERK30QDeclarativeDebugFileReferenceP7QObject @ 712 NONAME
+ _ZN23QDeclarativeEngineDebug8addWatchERK32QDeclarativeDebugObjectReferenceP7QObject @ 713 NONAME
+ _ZN23QDeclarativeEngineDebug8addWatchERK32QDeclarativeDebugObjectReferenceRK7QStringP7QObject @ 714 NONAME
+ _ZN23QDeclarativeEngineDebug8addWatchERK33QDeclarativeDebugContextReferenceRK7QStringP7QObject @ 715 NONAME
+ _ZN23QDeclarativeEngineDebug8addWatchERK34QDeclarativeDebugPropertyReferenceP7QObject @ 716 NONAME
+ _ZN23QDeclarativeEngineDebugC1EP27QDeclarativeDebugConnectionP7QObject @ 717 NONAME
+ _ZN23QDeclarativeEngineDebugC2EP27QDeclarativeDebugConnectionP7QObject @ 718 NONAME
+ _ZN23QDeclarativeItemPrivate10resetWidthEv @ 719 NONAME
+ _ZN23QDeclarativeItemPrivate11data_appendEP24QDeclarativeListPropertyI7QObjectEPS1_ @ 720 NONAME
+ _ZN23QDeclarativeItemPrivate11resetHeightEv @ 721 NONAME
+ _ZN23QDeclarativeItemPrivate11transitionsEv @ 722 NONAME
+ _ZN23QDeclarativeItemPrivate12focusChangedEb @ 723 NONAME
+ _ZN23QDeclarativeItemPrivate12resources_atEP24QDeclarativeListPropertyI7QObjectEi @ 724 NONAME
+ _ZN23QDeclarativeItemPrivate12transform_atEP24QDeclarativeListPropertyI18QGraphicsTransformEi @ 725 NONAME
+ _ZN23QDeclarativeItemPrivate14consistentTimeE @ 726 NONAME DATA 8
+ _ZN23QDeclarativeItemPrivate14parentPropertyEP7QObjectPvP28QDeclarativeNotifierEndpoint @ 727 NONAME
+ _ZN23QDeclarativeItemPrivate15resources_countEP24QDeclarativeListPropertyI7QObjectE @ 728 NONAME
+ _ZN23QDeclarativeItemPrivate15transform_clearEP24QDeclarativeListPropertyI18QGraphicsTransformE @ 729 NONAME
+ _ZN23QDeclarativeItemPrivate15transform_countEP24QDeclarativeListPropertyI18QGraphicsTransformE @ 730 NONAME
+ _ZN23QDeclarativeItemPrivate16resources_appendEP24QDeclarativeListPropertyI7QObjectEPS1_ @ 731 NONAME
+ _ZN23QDeclarativeItemPrivate16transformChangedEv @ 732 NONAME
+ _ZN23QDeclarativeItemPrivate16transform_appendEP24QDeclarativeListPropertyI18QGraphicsTransformEPS1_ @ 733 NONAME
+ _ZN23QDeclarativeItemPrivate17setConsistentTimeEx @ 734 NONAME
+ _ZN23QDeclarativeItemPrivate24removeItemChangeListenerEP30QDeclarativeItemChangeListener6QFlagsINS_10ChangeTypeEE @ 735 NONAME
+ _ZN23QDeclarativeItemPrivate4dataEv @ 736 NONAME
+ _ZN23QDeclarativeItemPrivate5startER13QElapsedTimer @ 737 NONAME
+ _ZN23QDeclarativeItemPrivate6statesEv @ 738 NONAME
+ _ZN23QDeclarativeItemPrivate7_statesEv @ 739 NONAME
+ _ZN23QDeclarativeItemPrivate7elapsedER13QElapsedTimer @ 740 NONAME
+ _ZN23QDeclarativeItemPrivate7restartER13QElapsedTimer @ 741 NONAME
+ _ZN23QDeclarativeItemPrivate8setStateERK7QString @ 742 NONAME
+ _ZN23QDeclarativeItemPrivate8setWidthEf @ 743 NONAME
+ _ZN23QDeclarativeItemPrivate9resourcesEv @ 744 NONAME
+ _ZN23QDeclarativeItemPrivate9setHeightEf @ 745 NONAME
+ _ZN23QDeclarativePropertyMap11qt_metacallEN11QMetaObject4CallEiPPv @ 746 NONAME
+ _ZN23QDeclarativePropertyMap11qt_metacastEPKc @ 747 NONAME
+ _ZN23QDeclarativePropertyMap12valueChangedERK7QStringRK8QVariant @ 748 NONAME
+ _ZN23QDeclarativePropertyMap16staticMetaObjectE @ 749 NONAME DATA 16
+ _ZN23QDeclarativePropertyMap19getStaticMetaObjectEv @ 750 NONAME
+ _ZN23QDeclarativePropertyMap5clearERK7QString @ 751 NONAME
+ _ZN23QDeclarativePropertyMap6insertERK7QStringRK8QVariant @ 752 NONAME
+ _ZN23QDeclarativePropertyMapC1EP7QObject @ 753 NONAME
+ _ZN23QDeclarativePropertyMapC2EP7QObject @ 754 NONAME
+ _ZN23QDeclarativePropertyMapD0Ev @ 755 NONAME
+ _ZN23QDeclarativePropertyMapD1Ev @ 756 NONAME
+ _ZN23QDeclarativePropertyMapD2Ev @ 757 NONAME
+ _ZN23QDeclarativePropertyMapixERK7QString @ 758 NONAME
+ _ZN24QDeclarativeCustomParser11clearErrorsEv @ 759 NONAME
+ _ZN24QDeclarativeCustomParser5errorERK28QDeclarativeCustomParserNodeRK7QString @ 760 NONAME
+ _ZN24QDeclarativeCustomParser5errorERK32QDeclarativeCustomParserPropertyRK7QString @ 761 NONAME
+ _ZN24QDeclarativeCustomParser5errorERK7QString @ 762 NONAME
+ _ZN24QDeclarativeDebugService11idForObjectEP7QObject @ 763 NONAME
+ _ZN24QDeclarativeDebugService11objectForIdEi @ 764 NONAME
+ _ZN24QDeclarativeDebugService11qt_metacallEN11QMetaObject4CallEiPPv @ 765 NONAME
+ _ZN24QDeclarativeDebugService11qt_metacastEPKc @ 766 NONAME
+ _ZN24QDeclarativeDebugService11sendMessageERK10QByteArray @ 767 NONAME
+ _ZN24QDeclarativeDebugService14enabledChangedEb @ 768 NONAME
+ _ZN24QDeclarativeDebugService14objectToStringEP7QObject @ 769 NONAME
+ _ZN24QDeclarativeDebugService15messageReceivedERK10QByteArray @ 770 NONAME
+ _ZN24QDeclarativeDebugService16staticMetaObjectE @ 771 NONAME DATA 16
+ _ZN24QDeclarativeDebugService18hasDebuggingClientEv @ 772 NONAME
+ _ZN24QDeclarativeDebugService18isDebuggingEnabledEv @ 773 NONAME
+ _ZN24QDeclarativeDebugService19getStaticMetaObjectEv @ 774 NONAME
+ _ZN24QDeclarativeDebugServiceC1ERK7QStringP7QObject @ 775 NONAME
+ _ZN24QDeclarativeDebugServiceC2ERK7QStringP7QObject @ 776 NONAME
+ _ZN24QDeclarativeDomComponentC1ERKS_ @ 777 NONAME
+ _ZN24QDeclarativeDomComponentC1Ev @ 778 NONAME
+ _ZN24QDeclarativeDomComponentC2ERKS_ @ 779 NONAME
+ _ZN24QDeclarativeDomComponentC2Ev @ 780 NONAME
+ _ZN24QDeclarativeDomComponentD1Ev @ 781 NONAME
+ _ZN24QDeclarativeDomComponentD2Ev @ 782 NONAME
+ _ZN24QDeclarativeDomComponentaSERKS_ @ 783 NONAME
+ _ZN24QDeclarativeParserStatusC2Ev @ 784 NONAME
+ _ZN24QDeclarativeParserStatusD0Ev @ 785 NONAME
+ _ZN24QDeclarativeParserStatusD1Ev @ 786 NONAME
+ _ZN24QDeclarativeParserStatusD2Ev @ 787 NONAME
+ _ZN24QDeclarativeScriptString10setContextEP19QDeclarativeContext @ 788 NONAME
+ _ZN24QDeclarativeScriptString14setScopeObjectEP7QObject @ 789 NONAME
+ _ZN24QDeclarativeScriptString9setScriptERK7QString @ 790 NONAME
+ _ZN24QDeclarativeScriptStringC1ERKS_ @ 791 NONAME
+ _ZN24QDeclarativeScriptStringC1Ev @ 792 NONAME
+ _ZN24QDeclarativeScriptStringC2ERKS_ @ 793 NONAME
+ _ZN24QDeclarativeScriptStringC2Ev @ 794 NONAME
+ _ZN24QDeclarativeScriptStringD1Ev @ 795 NONAME
+ _ZN24QDeclarativeScriptStringD2Ev @ 796 NONAME
+ _ZN24QDeclarativeScriptStringaSERKS_ @ 797 NONAME
+ _ZN25QDeclarativeImageProvider12requestImageERK7QStringP5QSizeRKS3_ @ 798 NONAME
+ _ZN25QDeclarativeImageProvider13requestPixmapERK7QStringP5QSizeRKS3_ @ 799 NONAME
+ _ZN25QDeclarativeImageProviderC1ENS_9ImageTypeE @ 800 NONAME
+ _ZN25QDeclarativeImageProviderC2ENS_9ImageTypeE @ 801 NONAME
_ZN25QDeclarativeImageProviderD0Ev @ 802 NONAME
_ZN25QDeclarativeImageProviderD1Ev @ 803 NONAME
_ZN25QDeclarativeImageProviderD2Ev @ 804 NONAME
@@ -1075,14 +1075,14 @@ EXPORTS
_ZNK15QPacketProtocol17maximumPacketSizeEv @ 1074 NONAME
_ZNK16QDeclarativeItem10metaObjectEv @ 1075 NONAME
_ZNK16QDeclarativeItem10parentItemEv @ 1076 NONAME
- _ZNK16QDeclarativeItem10wantsFocusEv @ 1077 NONAME ABSENT
- _ZNK16QDeclarativeItem10widthValidEv @ 1078 NONAME
- _ZNK16QDeclarativeItem11heightValidEv @ 1079 NONAME
- _ZNK16QDeclarativeItem11mapFromItemERK12QScriptValueff @ 1080 NONAME
- _ZNK16QDeclarativeItem12boundingRectEv @ 1081 NONAME
- _ZNK16QDeclarativeItem13implicitWidthEv @ 1082 NONAME
- _ZNK16QDeclarativeItem13keepMouseGrabEv @ 1083 NONAME
- _ZNK16QDeclarativeItem14baselineOffsetEv @ 1084 NONAME
+ _ZNK16QDeclarativeItem10widthValidEv @ 1077 NONAME
+ _ZNK16QDeclarativeItem11heightValidEv @ 1078 NONAME
+ _ZNK16QDeclarativeItem11mapFromItemERK12QScriptValueff @ 1079 NONAME
+ _ZNK16QDeclarativeItem12boundingRectEv @ 1080 NONAME
+ _ZNK16QDeclarativeItem13implicitWidthEv @ 1081 NONAME
+ _ZNK16QDeclarativeItem13keepMouseGrabEv @ 1082 NONAME
+ _ZNK16QDeclarativeItem14baselineOffsetEv @ 1083 NONAME
+ _ZNK16QDeclarativeItem14hasActiveFocusEv @ 1084 NONAME
_ZNK16QDeclarativeItem14implicitHeightEv @ 1085 NONAME
_ZNK16QDeclarativeItem15transformOriginEv @ 1086 NONAME
_ZNK16QDeclarativeItem16inputMethodQueryEN2Qt16InputMethodQueryE @ 1087 NONAME
@@ -1138,581 +1138,541 @@ EXPORTS
_ZNK16QDeclarativeView10resizeModeEv @ 1137 NONAME
_ZNK16QDeclarativeView10rootObjectEv @ 1138 NONAME
_ZNK16QDeclarativeView11initialSizeEv @ 1139 NONAME
- _ZNK16QDeclarativeView6errorsEv @ 1140 NONAME
- _ZNK16QDeclarativeView6sourceEv @ 1141 NONAME
- _ZNK16QDeclarativeView6statusEv @ 1142 NONAME
- _ZNK16QDeclarativeView8sizeHintEv @ 1143 NONAME
- _ZNK16QMetaEnumBuilder3keyEi @ 1144 NONAME
- _ZNK16QMetaEnumBuilder4nameEv @ 1145 NONAME
- _ZNK16QMetaEnumBuilder5valueEi @ 1146 NONAME
- _ZNK16QMetaEnumBuilder6d_funcEv @ 1147 NONAME
- _ZNK16QMetaEnumBuilder6isFlagEv @ 1148 NONAME
- _ZNK16QMetaEnumBuilder8keyCountEv @ 1149 NONAME
- _ZNK17QDeclarativeError11descriptionEv @ 1150 NONAME
- _ZNK17QDeclarativeError3urlEv @ 1151 NONAME
- _ZNK17QDeclarativeError4lineEv @ 1152 NONAME
- _ZNK17QDeclarativeError6columnEv @ 1153 NONAME
- _ZNK17QDeclarativeError7isValidEv @ 1154 NONAME
- _ZNK17QDeclarativeError8toStringEv @ 1155 NONAME
- _ZNK17QDeclarativeState10metaObjectEv @ 1156 NONAME
- _ZNK17QDeclarativeState10stateGroupEv @ 1157 NONAME
- _ZNK17QDeclarativeState11isWhenKnownEv @ 1158 NONAME
- _ZNK17QDeclarativeState11operationAtEi @ 1159 NONAME
- _ZNK17QDeclarativeState14operationCountEv @ 1160 NONAME
- _ZNK17QDeclarativeState4nameEv @ 1161 NONAME
- _ZNK17QDeclarativeState4whenEv @ 1162 NONAME
- _ZNK17QDeclarativeState7extendsEv @ 1163 NONAME
- _ZNK17QDeclarativeState7isNamedEv @ 1164 NONAME
- _ZNK18QDeclarativeEngine10metaObjectEv @ 1165 NONAME
- _ZNK18QDeclarativeEngine13imageProviderERK7QString @ 1166 NONAME
- _ZNK18QDeclarativeEngine14importPathListEv @ 1167 NONAME
- _ZNK18QDeclarativeEngine14pluginPathListEv @ 1168 NONAME
- _ZNK18QDeclarativeEngine18offlineStoragePathEv @ 1169 NONAME
- _ZNK18QDeclarativeEngine20networkAccessManagerEv @ 1170 NONAME
- _ZNK18QDeclarativeEngine27networkAccessManagerFactoryEv @ 1171 NONAME
- _ZNK18QDeclarativeEngine29outputWarningsToStandardErrorEv @ 1172 NONAME
- _ZNK18QDeclarativeEngine7baseUrlEv @ 1173 NONAME
- _ZNK18QDeclarativeParser7Variant12asStringListEv @ 1174 NONAME
- _ZNK18QDeclarativeParser7Variant12isStringListEv @ 1175 NONAME
- _ZNK18QDeclarativeParser7Variant4typeEv @ 1176 NONAME
- _ZNK18QDeclarativeParser7Variant5asASTEv @ 1177 NONAME
- _ZNK18QDeclarativeParser7Variant8asNumberEv @ 1178 NONAME
- _ZNK18QDeclarativeParser7Variant8asScriptEv @ 1179 NONAME
- _ZNK18QDeclarativeParser7Variant8asStringEv @ 1180 NONAME
- _ZNK18QDeclarativeParser7Variant9asBooleanEv @ 1181 NONAME
- _ZNK18QMetaMethodBuilder10attributesEv @ 1182 NONAME
- _ZNK18QMetaMethodBuilder10methodTypeEv @ 1183 NONAME
- _ZNK18QMetaMethodBuilder10returnTypeEv @ 1184 NONAME
- _ZNK18QMetaMethodBuilder14parameterNamesEv @ 1185 NONAME
- _ZNK18QMetaMethodBuilder3tagEv @ 1186 NONAME
- _ZNK18QMetaMethodBuilder5indexEv @ 1187 NONAME
- _ZNK18QMetaMethodBuilder6accessEv @ 1188 NONAME
- _ZNK18QMetaMethodBuilder6d_funcEv @ 1189 NONAME
- _ZNK18QMetaMethodBuilder9signatureEv @ 1190 NONAME
- _ZNK18QMetaObjectBuilder10enumeratorEi @ 1191 NONAME
- _ZNK18QMetaObjectBuilder10superClassEv @ 1192 NONAME
- _ZNK18QMetaObjectBuilder11constructorEi @ 1193 NONAME
- _ZNK18QMetaObjectBuilder11methodCountEv @ 1194 NONAME
- _ZNK18QMetaObjectBuilder12toMetaObjectEv @ 1195 NONAME
- _ZNK18QMetaObjectBuilder13classInfoNameEi @ 1196 NONAME
- _ZNK18QMetaObjectBuilder13propertyCountEv @ 1197 NONAME
- _ZNK18QMetaObjectBuilder14classInfoCountEv @ 1198 NONAME
- _ZNK18QMetaObjectBuilder14classInfoValueEi @ 1199 NONAME
- _ZNK18QMetaObjectBuilder15enumeratorCountEv @ 1200 NONAME
- _ZNK18QMetaObjectBuilder16constructorCountEv @ 1201 NONAME
- _ZNK18QMetaObjectBuilder17relatedMetaObjectEi @ 1202 NONAME
- _ZNK18QMetaObjectBuilder17toRelocatableDataEPb @ 1203 NONAME
- _ZNK18QMetaObjectBuilder22relatedMetaObjectCountEv @ 1204 NONAME
- _ZNK18QMetaObjectBuilder22staticMetacallFunctionEv @ 1205 NONAME
- _ZNK18QMetaObjectBuilder5flagsEv @ 1206 NONAME
- _ZNK18QMetaObjectBuilder6methodEi @ 1207 NONAME
- _ZNK18QMetaObjectBuilder8propertyEi @ 1208 NONAME
- _ZNK18QMetaObjectBuilder9classNameEv @ 1209 NONAME
- _ZNK18QMetaObjectBuilder9serializeER11QDataStream @ 1210 NONAME
- _ZNK19QDeclarativeAnchors10leftMarginEv @ 1211 NONAME
- _ZNK19QDeclarativeAnchors10metaObjectEv @ 1212 NONAME
- _ZNK19QDeclarativeAnchors11rightMarginEv @ 1213 NONAME
- _ZNK19QDeclarativeAnchors11usedAnchorsEv @ 1214 NONAME
- _ZNK19QDeclarativeAnchors12bottomMarginEv @ 1215 NONAME
- _ZNK19QDeclarativeAnchors14baselineOffsetEv @ 1216 NONAME
- _ZNK19QDeclarativeAnchors14verticalCenterEv @ 1217 NONAME
- _ZNK19QDeclarativeAnchors16horizontalCenterEv @ 1218 NONAME
- _ZNK19QDeclarativeAnchors20verticalCenterOffsetEv @ 1219 NONAME
- _ZNK19QDeclarativeAnchors22horizontalCenterOffsetEv @ 1220 NONAME
- _ZNK19QDeclarativeAnchors3topEv @ 1221 NONAME
- _ZNK19QDeclarativeAnchors4fillEv @ 1222 NONAME
- _ZNK19QDeclarativeAnchors4leftEv @ 1223 NONAME
- _ZNK19QDeclarativeAnchors5rightEv @ 1224 NONAME
- _ZNK19QDeclarativeAnchors6bottomEv @ 1225 NONAME
- _ZNK19QDeclarativeAnchors7marginsEv @ 1226 NONAME
- _ZNK19QDeclarativeAnchors8baselineEv @ 1227 NONAME
- _ZNK19QDeclarativeAnchors8centerInEv @ 1228 NONAME
- _ZNK19QDeclarativeAnchors9topMarginEv @ 1229 NONAME
- _ZNK19QDeclarativeBinding10expressionEv @ 1230 NONAME
- _ZNK19QDeclarativeBinding10metaObjectEv @ 1231 NONAME
- _ZNK19QDeclarativeBinding7enabledEv @ 1232 NONAME
- _ZNK19QDeclarativeBinding8propertyEv @ 1233 NONAME
- _ZNK19QDeclarativeContext10metaObjectEv @ 1234 NONAME
- _ZNK19QDeclarativeContext13contextObjectEv @ 1235 NONAME
- _ZNK19QDeclarativeContext13parentContextEv @ 1236 NONAME
- _ZNK19QDeclarativeContext15contextPropertyERK7QString @ 1237 NONAME
- _ZNK19QDeclarativeContext6engineEv @ 1238 NONAME
- _ZNK19QDeclarativeContext7baseUrlEv @ 1239 NONAME
- _ZNK19QDeclarativeContext7isValidEv @ 1240 NONAME
- _ZNK19QDeclarativeDomList14commaPositionsEv @ 1241 NONAME
- _ZNK19QDeclarativeDomList6lengthEv @ 1242 NONAME
- _ZNK19QDeclarativeDomList6valuesEv @ 1243 NONAME
- _ZNK19QDeclarativeDomList8positionEv @ 1244 NONAME
- _ZNK19QListModelInterface10metaObjectEv @ 1245 NONAME
- _ZNK20QDeclarativeBehavior10metaObjectEv @ 1246 NONAME
- _ZNK20QDeclarativeBehavior7enabledEv @ 1247 NONAME
- _ZNK20QDeclarativeDomValue13isValueSourceEv @ 1248 NONAME
- _ZNK20QDeclarativeDomValue13toValueSourceEv @ 1249 NONAME
- _ZNK20QDeclarativeDomValue18isValueInterceptorEv @ 1250 NONAME
- _ZNK20QDeclarativeDomValue18toValueInterceptorEv @ 1251 NONAME
- _ZNK20QDeclarativeDomValue4typeEv @ 1252 NONAME
- _ZNK20QDeclarativeDomValue6isListEv @ 1253 NONAME
- _ZNK20QDeclarativeDomValue6lengthEv @ 1254 NONAME
- _ZNK20QDeclarativeDomValue6toListEv @ 1255 NONAME
- _ZNK20QDeclarativeDomValue8isObjectEv @ 1256 NONAME
- _ZNK20QDeclarativeDomValue8positionEv @ 1257 NONAME
- _ZNK20QDeclarativeDomValue8toObjectEv @ 1258 NONAME
- _ZNK20QDeclarativeDomValue9isBindingEv @ 1259 NONAME
- _ZNK20QDeclarativeDomValue9isInvalidEv @ 1260 NONAME
- _ZNK20QDeclarativeDomValue9isLiteralEv @ 1261 NONAME
- _ZNK20QDeclarativeDomValue9toBindingEv @ 1262 NONAME
- _ZNK20QDeclarativeDomValue9toLiteralEv @ 1263 NONAME
- _ZNK20QDeclarativeProperty10isPropertyEv @ 1264 NONAME
- _ZNK20QDeclarativeProperty10isWritableEv @ 1265 NONAME
- _ZNK20QDeclarativeProperty12isDesignableEv @ 1266 NONAME
- _ZNK20QDeclarativeProperty12isResettableEv @ 1267 NONAME
- _ZNK20QDeclarativeProperty12propertyTypeEv @ 1268 NONAME
- _ZNK20QDeclarativeProperty15hasNotifySignalEv @ 1269 NONAME
- _ZNK20QDeclarativeProperty16isSignalPropertyEv @ 1270 NONAME
- _ZNK20QDeclarativeProperty16propertyTypeNameEv @ 1271 NONAME
- _ZNK20QDeclarativeProperty17needsNotifySignalEv @ 1272 NONAME
- _ZNK20QDeclarativeProperty19connectNotifySignalEP7QObjectPKc @ 1273 NONAME
- _ZNK20QDeclarativeProperty19connectNotifySignalEP7QObjecti @ 1274 NONAME
- _ZNK20QDeclarativeProperty20propertyTypeCategoryEv @ 1275 NONAME
- _ZNK20QDeclarativeProperty4nameEv @ 1276 NONAME
- _ZNK20QDeclarativeProperty4readEv @ 1277 NONAME
- _ZNK20QDeclarativeProperty4typeEv @ 1278 NONAME
- _ZNK20QDeclarativeProperty5indexEv @ 1279 NONAME
- _ZNK20QDeclarativeProperty5resetEv @ 1280 NONAME
- _ZNK20QDeclarativeProperty5writeERK8QVariant @ 1281 NONAME
- _ZNK20QDeclarativeProperty6methodEv @ 1282 NONAME
- _ZNK20QDeclarativeProperty6objectEv @ 1283 NONAME
- _ZNK20QDeclarativeProperty7isValidEv @ 1284 NONAME
- _ZNK20QDeclarativeProperty8propertyEv @ 1285 NONAME
- _ZNK20QDeclarativePropertyeqERKS_ @ 1286 NONAME
- _ZNK20QMetaPropertyBuilder10isEditableEv @ 1287 NONAME
- _ZNK20QMetaPropertyBuilder10isReadableEv @ 1288 NONAME
- _ZNK20QMetaPropertyBuilder10isWritableEv @ 1289 NONAME
- _ZNK20QMetaPropertyBuilder12hasStdCppSetEv @ 1290 NONAME
- _ZNK20QMetaPropertyBuilder12isDesignableEv @ 1291 NONAME
- _ZNK20QMetaPropertyBuilder12isEnumOrFlagEv @ 1292 NONAME
- _ZNK20QMetaPropertyBuilder12isResettableEv @ 1293 NONAME
- _ZNK20QMetaPropertyBuilder12isScriptableEv @ 1294 NONAME
- _ZNK20QMetaPropertyBuilder12notifySignalEv @ 1295 NONAME
- _ZNK20QMetaPropertyBuilder15hasNotifySignalEv @ 1296 NONAME
- _ZNK20QMetaPropertyBuilder4nameEv @ 1297 NONAME
- _ZNK20QMetaPropertyBuilder4typeEv @ 1298 NONAME
- _ZNK20QMetaPropertyBuilder6d_funcEv @ 1299 NONAME
- _ZNK20QMetaPropertyBuilder6isUserEv @ 1300 NONAME
- _ZNK20QMetaPropertyBuilder8isStoredEv @ 1301 NONAME
- _ZNK20QMetaPropertyBuilder9isDynamicEv @ 1302 NONAME
- _ZNK21QDeclarativeComponent10metaObjectEv @ 1303 NONAME
- _ZNK21QDeclarativeComponent11errorStringEv @ 1304 NONAME
- _ZNK21QDeclarativeComponent15creationContextEv @ 1305 NONAME
- _ZNK21QDeclarativeComponent3urlEv @ 1306 NONAME
- _ZNK21QDeclarativeComponent6errorsEv @ 1307 NONAME
- _ZNK21QDeclarativeComponent6isNullEv @ 1308 NONAME
- _ZNK21QDeclarativeComponent6statusEv @ 1309 NONAME
- _ZNK21QDeclarativeComponent7isErrorEv @ 1310 NONAME
- _ZNK21QDeclarativeComponent7isReadyEv @ 1311 NONAME
- _ZNK21QDeclarativeComponent8progressEv @ 1312 NONAME
- _ZNK21QDeclarativeComponent9isLoadingEv @ 1313 NONAME
- _ZNK21QDeclarativeDomImport3uriEv @ 1314 NONAME
- _ZNK21QDeclarativeDomImport4typeEv @ 1315 NONAME
- _ZNK21QDeclarativeDomImport7versionEv @ 1316 NONAME
- _ZNK21QDeclarativeDomImport9qualifierEv @ 1317 NONAME
- _ZNK21QDeclarativeDomObject10objectTypeEv @ 1318 NONAME
- _ZNK21QDeclarativeDomObject10propertiesEv @ 1319 NONAME
- _ZNK21QDeclarativeDomObject11isComponentEv @ 1320 NONAME
- _ZNK21QDeclarativeDomObject11toComponentEv @ 1321 NONAME
- _ZNK21QDeclarativeDomObject12isCustomTypeEv @ 1322 NONAME
- _ZNK21QDeclarativeDomObject14customTypeDataEv @ 1323 NONAME
- _ZNK21QDeclarativeDomObject15dynamicPropertyERK10QByteArray @ 1324 NONAME
- _ZNK21QDeclarativeDomObject15objectClassNameEv @ 1325 NONAME
- _ZNK21QDeclarativeDomObject17dynamicPropertiesEv @ 1326 NONAME
- _ZNK21QDeclarativeDomObject22objectTypeMajorVersionEv @ 1327 NONAME
- _ZNK21QDeclarativeDomObject22objectTypeMinorVersionEv @ 1328 NONAME
- _ZNK21QDeclarativeDomObject3urlEv @ 1329 NONAME
- _ZNK21QDeclarativeDomObject6lengthEv @ 1330 NONAME
- _ZNK21QDeclarativeDomObject7isValidEv @ 1331 NONAME
- _ZNK21QDeclarativeDomObject8objectIdEv @ 1332 NONAME
- _ZNK21QDeclarativeDomObject8positionEv @ 1333 NONAME
- _ZNK21QDeclarativeDomObject8propertyERK10QByteArray @ 1334 NONAME
- _ZNK21QDeclarativeListModel10metaObjectEv @ 1335 NONAME
- _ZNK21QDeclarativeListModel3getEi @ 1336 NONAME
- _ZNK21QDeclarativeListModel4dataEiRK5QListIiE @ 1337 NONAME
- _ZNK21QDeclarativeListModel4dataEii @ 1338 NONAME
- _ZNK21QDeclarativeListModel5countEv @ 1339 NONAME
- _ZNK21QDeclarativeListModel5rolesEv @ 1340 NONAME
- _ZNK21QDeclarativeListModel8toStringEi @ 1341 NONAME
- _ZNK21QDeclarativeRectangle10metaObjectEv @ 1342 NONAME
- _ZNK21QDeclarativeRectangle12boundingRectEv @ 1343 NONAME
- _ZNK21QDeclarativeRectangle5colorEv @ 1344 NONAME
- _ZNK21QDeclarativeRectangle6radiusEv @ 1345 NONAME
- _ZNK21QDeclarativeRectangle8gradientEv @ 1346 NONAME
- _ZNK21QDeclarativeScaleGrid10metaObjectEv @ 1347 NONAME
- _ZNK21QDeclarativeScaleGrid6isNullEv @ 1348 NONAME
- _ZNK21QDeclarativeValueType10metaObjectEv @ 1349 NONAME
- _ZNK22QDeclarativeDebugQuery10metaObjectEv @ 1350 NONAME
- _ZNK22QDeclarativeDebugQuery5stateEv @ 1351 NONAME
- _ZNK22QDeclarativeDebugQuery9isWaitingEv @ 1352 NONAME
- _ZNK22QDeclarativeDebugWatch10metaObjectEv @ 1353 NONAME
- _ZNK22QDeclarativeDebugWatch13objectDebugIdEv @ 1354 NONAME
- _ZNK22QDeclarativeDebugWatch5stateEv @ 1355 NONAME
- _ZNK22QDeclarativeDebugWatch7queryIdEv @ 1356 NONAME
- _ZNK22QDeclarativeExpression10expressionEv @ 1357 NONAME
- _ZNK22QDeclarativeExpression10lineNumberEv @ 1358 NONAME
- _ZNK22QDeclarativeExpression10metaObjectEv @ 1359 NONAME
- _ZNK22QDeclarativeExpression10sourceFileEv @ 1360 NONAME
- _ZNK22QDeclarativeExpression11scopeObjectEv @ 1361 NONAME
- _ZNK22QDeclarativeExpression20notifyOnValueChangedEv @ 1362 NONAME
- _ZNK22QDeclarativeExpression5errorEv @ 1363 NONAME
- _ZNK22QDeclarativeExpression6engineEv @ 1364 NONAME
- _ZNK22QDeclarativeExpression7contextEv @ 1365 NONAME
- _ZNK22QDeclarativeExpression8hasErrorEv @ 1366 NONAME
- _ZNK22QDeclarativeStateGroup10metaObjectEv @ 1367 NONAME
- _ZNK22QDeclarativeStateGroup5stateEv @ 1368 NONAME
- _ZNK22QDeclarativeStateGroup6statesEv @ 1369 NONAME
- _ZNK22QDeclarativeStateGroup9findStateERK7QString @ 1370 NONAME
- _ZNK22QDeclarativeTransition10metaObjectEv @ 1371 NONAME
- _ZNK22QDeclarativeTransition10reversibleEv @ 1372 NONAME
- _ZNK22QDeclarativeTransition7toStateEv @ 1373 NONAME
- _ZNK22QDeclarativeTransition9fromStateEv @ 1374 NONAME
- _ZNK23QDeclarativeDebugClient10metaObjectEv @ 1375 NONAME
- _ZNK23QDeclarativeDebugClient11isConnectedEv @ 1376 NONAME
- _ZNK23QDeclarativeDebugClient4nameEv @ 1377 NONAME
- _ZNK23QDeclarativeDebugClient9isEnabledEv @ 1378 NONAME
- _ZNK23QDeclarativeDomDocument10rootObjectEv @ 1379 NONAME
- _ZNK23QDeclarativeDomDocument6errorsEv @ 1380 NONAME
- _ZNK23QDeclarativeDomDocument7importsEv @ 1381 NONAME
- _ZNK23QDeclarativeDomProperty12propertyNameEv @ 1382 NONAME
- _ZNK23QDeclarativeDomProperty17isDefaultPropertyEv @ 1383 NONAME
- _ZNK23QDeclarativeDomProperty17propertyNamePartsEv @ 1384 NONAME
- _ZNK23QDeclarativeDomProperty5valueEv @ 1385 NONAME
- _ZNK23QDeclarativeDomProperty6lengthEv @ 1386 NONAME
- _ZNK23QDeclarativeDomProperty7isValidEv @ 1387 NONAME
- _ZNK23QDeclarativeDomProperty8positionEv @ 1388 NONAME
- _ZNK23QDeclarativeEngineDebug10metaObjectEv @ 1389 NONAME
- _ZNK23QDeclarativeItemPrivate14verticalCenterEv @ 1390 NONAME
- _ZNK23QDeclarativeItemPrivate16horizontalCenterEv @ 1391 NONAME
- _ZNK23QDeclarativeItemPrivate22computeTransformOriginEv @ 1392 NONAME
- _ZNK23QDeclarativeItemPrivate3topEv @ 1393 NONAME
- _ZNK23QDeclarativeItemPrivate4leftEv @ 1394 NONAME
- _ZNK23QDeclarativeItemPrivate5rightEv @ 1395 NONAME
- _ZNK23QDeclarativeItemPrivate5stateEv @ 1396 NONAME
- _ZNK23QDeclarativeItemPrivate5widthEv @ 1397 NONAME
- _ZNK23QDeclarativeItemPrivate6bottomEv @ 1398 NONAME
- _ZNK23QDeclarativeItemPrivate6heightEv @ 1399 NONAME
- _ZNK23QDeclarativeItemPrivate8baselineEv @ 1400 NONAME
- _ZNK23QDeclarativePixmapReply10metaObjectEv @ 1401 NONAME ABSENT
- _ZNK23QDeclarativePixmapReply11errorStringEv @ 1402 NONAME ABSENT
- _ZNK23QDeclarativePixmapReply11forcedWidthEv @ 1403 NONAME ABSENT
- _ZNK23QDeclarativePixmapReply12forcedHeightEv @ 1404 NONAME ABSENT
- _ZNK23QDeclarativePixmapReply12implicitSizeEv @ 1405 NONAME ABSENT
- _ZNK23QDeclarativePixmapReply3urlEv @ 1406 NONAME ABSENT
- _ZNK23QDeclarativePixmapReply6statusEv @ 1407 NONAME ABSENT
- _ZNK23QDeclarativePixmapReply9isLoadingEv @ 1408 NONAME ABSENT
- _ZNK23QDeclarativePropertyMap10metaObjectEv @ 1409 NONAME
- _ZNK23QDeclarativePropertyMap4keysEv @ 1410 NONAME
- _ZNK23QDeclarativePropertyMap4sizeEv @ 1411 NONAME
- _ZNK23QDeclarativePropertyMap5countEv @ 1412 NONAME
- _ZNK23QDeclarativePropertyMap5valueERK7QString @ 1413 NONAME
- _ZNK23QDeclarativePropertyMap7isEmptyEv @ 1414 NONAME
- _ZNK23QDeclarativePropertyMap8containsERK7QString @ 1415 NONAME
- _ZNK23QDeclarativePropertyMapixERK7QString @ 1416 NONAME
- _ZNK24QDeclarativeCustomParser11resolveTypeERK10QByteArray @ 1417 NONAME
- _ZNK24QDeclarativeCustomParser12evaluateEnumERK10QByteArray @ 1418 NONAME
- _ZNK24QDeclarativeDebugService10metaObjectEv @ 1419 NONAME
- _ZNK24QDeclarativeDebugService4nameEv @ 1420 NONAME
- _ZNK24QDeclarativeDebugService9isEnabledEv @ 1421 NONAME
- _ZNK24QDeclarativeDomComponent13componentRootEv @ 1422 NONAME
- _ZNK24QDeclarativeScriptString11scopeObjectEv @ 1423 NONAME
- _ZNK24QDeclarativeScriptString6scriptEv @ 1424 NONAME
- _ZNK24QDeclarativeScriptString7contextEv @ 1425 NONAME
- _ZNK25QDeclarativeListReference15listElementTypeEv @ 1426 NONAME
- _ZNK25QDeclarativeListReference2atEi @ 1427 NONAME
- _ZNK25QDeclarativeListReference5canAtEv @ 1428 NONAME
- _ZNK25QDeclarativeListReference5clearEv @ 1429 NONAME
- _ZNK25QDeclarativeListReference5countEv @ 1430 NONAME
- _ZNK25QDeclarativeListReference6appendEP7QObject @ 1431 NONAME
- _ZNK25QDeclarativeListReference6objectEv @ 1432 NONAME
- _ZNK25QDeclarativeListReference7isValidEv @ 1433 NONAME
- _ZNK25QDeclarativeListReference8canClearEv @ 1434 NONAME
- _ZNK25QDeclarativeListReference8canCountEv @ 1435 NONAME
- _ZNK25QDeclarativeListReference9canAppendEv @ 1436 NONAME
- _ZNK26QDeclarativeOpenMetaObject4nameEi @ 1437 NONAME
- _ZNK26QDeclarativeOpenMetaObject4typeEv @ 1438 NONAME
- _ZNK26QDeclarativeOpenMetaObject5countEv @ 1439 NONAME
- _ZNK26QDeclarativeOpenMetaObject5valueERK10QByteArray @ 1440 NONAME
- _ZNK26QDeclarativeOpenMetaObject5valueEi @ 1441 NONAME
- _ZNK26QDeclarativeOpenMetaObject6objectEv @ 1442 NONAME
- _ZNK26QDeclarativeOpenMetaObject6parentEv @ 1443 NONAME
- _ZNK26QDeclarativeStateOperation10metaObjectEv @ 1444 NONAME
- _ZNK27QDeclarativeAbstractBinding10expressionEv @ 1445 NONAME
- _ZNK27QDeclarativeDebugConnection10metaObjectEv @ 1446 NONAME
- _ZNK27QDeclarativeDebugConnection11isConnectedEv @ 1447 NONAME
- _ZNK27QDeclarativeDomValueBinding7bindingEv @ 1448 NONAME
- _ZNK27QDeclarativeDomValueLiteral7literalEv @ 1449 NONAME
- _ZNK27QDeclarativeExtensionPlugin10metaObjectEv @ 1450 NONAME
- _ZNK27QDeclarativeGridScaledImage10gridBottomEv @ 1451 NONAME
- _ZNK27QDeclarativeGridScaledImage7gridTopEv @ 1452 NONAME
- _ZNK27QDeclarativeGridScaledImage7isValidEv @ 1453 NONAME
- _ZNK27QDeclarativeGridScaledImage8gridLeftEv @ 1454 NONAME
- _ZNK27QDeclarativeGridScaledImage9gridRightEv @ 1455 NONAME
- _ZNK27QDeclarativeGridScaledImage9pixmapUrlEv @ 1456 NONAME
- _ZNK27QDeclarativePropertyPrivate11isValueTypeEv @ 1457 NONAME
- _ZNK27QDeclarativePropertyPrivate12propertyTypeEv @ 1458 NONAME
- _ZNK27QDeclarativePropertyPrivate20propertyTypeCategoryEv @ 1459 NONAME
- _ZNK28QDeclarativeCustomParserNode10propertiesEv @ 1460 NONAME
- _ZNK28QDeclarativeCustomParserNode4nameEv @ 1461 NONAME
- _ZNK28QDeclarativeCustomParserNode8locationEv @ 1462 NONAME
- _ZNK28QDeclarativeDebugObjectQuery10metaObjectEv @ 1463 NONAME
- _ZNK28QDeclarativeDebugObjectQuery6objectEv @ 1464 NONAME
- _ZNK29QDeclarativeDebugEnginesQuery10metaObjectEv @ 1465 NONAME
- _ZNK29QDeclarativeDebugEnginesQuery7enginesEv @ 1466 NONAME
- _ZNK30QDeclarativeDebugFileReference10lineNumberEv @ 1467 NONAME
- _ZNK30QDeclarativeDebugFileReference12columnNumberEv @ 1468 NONAME
- _ZNK30QDeclarativeDebugFileReference3urlEv @ 1469 NONAME
- _ZNK30QDeclarativeDebugPropertyWatch10metaObjectEv @ 1470 NONAME
- _ZNK30QDeclarativeDebugPropertyWatch4nameEv @ 1471 NONAME
- _ZNK30QDeclarativeDomDynamicProperty12defaultValueEv @ 1472 NONAME
- _ZNK30QDeclarativeDomDynamicProperty12propertyNameEv @ 1473 NONAME
- _ZNK30QDeclarativeDomDynamicProperty12propertyTypeEv @ 1474 NONAME
- _ZNK30QDeclarativeDomDynamicProperty16propertyTypeNameEv @ 1475 NONAME
- _ZNK30QDeclarativeDomDynamicProperty17isDefaultPropertyEv @ 1476 NONAME
- _ZNK30QDeclarativeDomDynamicProperty6lengthEv @ 1477 NONAME
- _ZNK30QDeclarativeDomDynamicProperty7isAliasEv @ 1478 NONAME
- _ZNK30QDeclarativeDomDynamicProperty7isValidEv @ 1479 NONAME
- _ZNK30QDeclarativeDomDynamicProperty8positionEv @ 1480 NONAME
- _ZNK30QDeclarativeOpenMetaObjectType12signalOffsetEv @ 1481 NONAME
- _ZNK30QDeclarativeOpenMetaObjectType14propertyOffsetEv @ 1482 NONAME
- _ZNK31QDeclarativeDomValueValueSource6objectEv @ 1483 NONAME
- _ZNK32QDeclarativeCustomParserProperty14assignedValuesEv @ 1484 NONAME
- _ZNK32QDeclarativeCustomParserProperty4nameEv @ 1485 NONAME
- _ZNK32QDeclarativeCustomParserProperty6isListEv @ 1486 NONAME
- _ZNK32QDeclarativeCustomParserProperty8locationEv @ 1487 NONAME
- _ZNK32QDeclarativeDebugEngineReference4nameEv @ 1488 NONAME
- _ZNK32QDeclarativeDebugEngineReference7debugIdEv @ 1489 NONAME
- _ZNK32QDeclarativeDebugExpressionQuery10expressionEv @ 1490 NONAME
- _ZNK32QDeclarativeDebugExpressionQuery10metaObjectEv @ 1491 NONAME
- _ZNK32QDeclarativeDebugExpressionQuery6resultEv @ 1492 NONAME
- _ZNK32QDeclarativeDebugObjectReference10propertiesEv @ 1493 NONAME
- _ZNK32QDeclarativeDebugObjectReference14contextDebugIdEv @ 1494 NONAME
- _ZNK32QDeclarativeDebugObjectReference4nameEv @ 1495 NONAME
- _ZNK32QDeclarativeDebugObjectReference6sourceEv @ 1496 NONAME
- _ZNK32QDeclarativeDebugObjectReference7debugIdEv @ 1497 NONAME
- _ZNK32QDeclarativeDebugObjectReference8childrenEv @ 1498 NONAME
- _ZNK32QDeclarativeDebugObjectReference8idStringEv @ 1499 NONAME
- _ZNK32QDeclarativeDebugObjectReference9classNameEv @ 1500 NONAME
- _ZNK33QDeclarativeDebugContextReference4nameEv @ 1501 NONAME
- _ZNK33QDeclarativeDebugContextReference7debugIdEv @ 1502 NONAME
- _ZNK33QDeclarativeDebugContextReference7objectsEv @ 1503 NONAME
- _ZNK33QDeclarativeDebugContextReference8contextsEv @ 1504 NONAME
- _ZNK33QDeclarativeDebugRootContextQuery10metaObjectEv @ 1505 NONAME
- _ZNK33QDeclarativeDebugRootContextQuery11rootContextEv @ 1506 NONAME
- _ZNK34QDeclarativeDebugPropertyReference13objectDebugIdEv @ 1507 NONAME
- _ZNK34QDeclarativeDebugPropertyReference13valueTypeNameEv @ 1508 NONAME
- _ZNK34QDeclarativeDebugPropertyReference15hasNotifySignalEv @ 1509 NONAME
- _ZNK34QDeclarativeDebugPropertyReference4nameEv @ 1510 NONAME
- _ZNK34QDeclarativeDebugPropertyReference5valueEv @ 1511 NONAME
- _ZNK34QDeclarativeDebugPropertyReference7bindingEv @ 1512 NONAME
- _ZNK36QDeclarativeDomValueValueInterceptor6objectEv @ 1513 NONAME
- _ZNK38QDeclarativeDebugObjectExpressionWatch10expressionEv @ 1514 NONAME
- _ZNK38QDeclarativeDebugObjectExpressionWatch10metaObjectEv @ 1515 NONAME
- _ZNK7QPacket7isEmptyEv @ 1516 NONAME
- _ZTI15QDeclarativePen @ 1517 NONAME
- _ZTI15QPacketAutoSend @ 1518 NONAME
- _ZTI15QPacketProtocol @ 1519 NONAME
- _ZTI16QDeclarativeItem @ 1520 NONAME
- _ZTI16QDeclarativeText @ 1521 NONAME
- _ZTI16QDeclarativeView @ 1522 NONAME
- _ZTI17QDeclarativeState @ 1523 NONAME
- _ZTI18QDeclarativeEngine @ 1524 NONAME
- _ZTI18QMetaObjectBuilder @ 1525 NONAME
- _ZTI19QDeclarativeAnchors @ 1526 NONAME
- _ZTI19QDeclarativeBinding @ 1527 NONAME
- _ZTI19QDeclarativeContext @ 1528 NONAME
- _ZTI19QListModelInterface @ 1529 NONAME
- _ZTI20QDeclarativeBehavior @ 1530 NONAME
- _ZTI21QDeclarativeComponent @ 1531 NONAME
- _ZTI21QDeclarativeListModel @ 1532 NONAME
- _ZTI21QDeclarativeRectangle @ 1533 NONAME
- _ZTI21QDeclarativeScaleGrid @ 1534 NONAME
- _ZTI21QDeclarativeValueType @ 1535 NONAME
- _ZTI22QDeclarativeDebugQuery @ 1536 NONAME
- _ZTI22QDeclarativeDebugWatch @ 1537 NONAME
- _ZTI22QDeclarativeExpression @ 1538 NONAME
- _ZTI22QDeclarativeStateGroup @ 1539 NONAME
- _ZTI22QDeclarativeTransition @ 1540 NONAME
- _ZTI23QDeclarativeDebugClient @ 1541 NONAME
- _ZTI23QDeclarativeEngineDebug @ 1542 NONAME
- _ZTI23QDeclarativeItemPrivate @ 1543 NONAME
- _ZTI23QDeclarativePixmapReply @ 1544 NONAME ABSENT
- _ZTI23QDeclarativePropertyMap @ 1545 NONAME
- _ZTI24QDeclarativeCustomParser @ 1546 NONAME
- _ZTI24QDeclarativeDebugService @ 1547 NONAME
- _ZTI24QDeclarativeParserStatus @ 1548 NONAME
- _ZTI25QDeclarativeImageProvider @ 1549 NONAME
- _ZTI26QDeclarativeDebuggerStatus @ 1550 NONAME
- _ZTI26QDeclarativeOpenMetaObject @ 1551 NONAME
- _ZTI26QDeclarativeStateOperation @ 1552 NONAME
- _ZTI27QDeclarativeAbstractBinding @ 1553 NONAME
- _ZTI27QDeclarativeDebugConnection @ 1554 NONAME
- _ZTI27QDeclarativeExtensionPlugin @ 1555 NONAME
- _ZTI28QDeclarativeDebugObjectQuery @ 1556 NONAME
- _ZTI29QDeclarativeDebugEnginesQuery @ 1557 NONAME
- _ZTI30QDeclarativeDebugPropertyWatch @ 1558 NONAME
- _ZTI30QDeclarativeExtensionInterface @ 1559 NONAME
- _ZTI30QDeclarativeOpenMetaObjectType @ 1560 NONAME
- _ZTI31QDeclarativePropertyValueSource @ 1561 NONAME
- _ZTI32QDeclarativeDebugExpressionQuery @ 1562 NONAME
- _ZTI33QDeclarativeDebugRootContextQuery @ 1563 NONAME
- _ZTI36QDeclarativePropertyValueInterceptor @ 1564 NONAME
- _ZTI38QDeclarativeDebugObjectExpressionWatch @ 1565 NONAME
- _ZTI39QDeclarativeNetworkAccessManagerFactory @ 1566 NONAME
- _ZTI7QPacket @ 1567 NONAME
- _ZTV15QDeclarativePen @ 1568 NONAME
- _ZTV15QPacketAutoSend @ 1569 NONAME
- _ZTV15QPacketProtocol @ 1570 NONAME
- _ZTV16QDeclarativeItem @ 1571 NONAME
- _ZTV16QDeclarativeText @ 1572 NONAME
- _ZTV16QDeclarativeView @ 1573 NONAME
- _ZTV17QDeclarativeState @ 1574 NONAME
- _ZTV18QDeclarativeEngine @ 1575 NONAME
- _ZTV18QMetaObjectBuilder @ 1576 NONAME
- _ZTV19QDeclarativeAnchors @ 1577 NONAME
- _ZTV19QDeclarativeBinding @ 1578 NONAME
- _ZTV19QDeclarativeContext @ 1579 NONAME
- _ZTV19QListModelInterface @ 1580 NONAME
- _ZTV20QDeclarativeBehavior @ 1581 NONAME
- _ZTV21QDeclarativeComponent @ 1582 NONAME
- _ZTV21QDeclarativeListModel @ 1583 NONAME
- _ZTV21QDeclarativeRectangle @ 1584 NONAME
- _ZTV21QDeclarativeScaleGrid @ 1585 NONAME
- _ZTV21QDeclarativeValueType @ 1586 NONAME
- _ZTV22QDeclarativeDebugQuery @ 1587 NONAME
- _ZTV22QDeclarativeDebugWatch @ 1588 NONAME
- _ZTV22QDeclarativeExpression @ 1589 NONAME
- _ZTV22QDeclarativeStateGroup @ 1590 NONAME
- _ZTV22QDeclarativeTransition @ 1591 NONAME
- _ZTV23QDeclarativeDebugClient @ 1592 NONAME
- _ZTV23QDeclarativeEngineDebug @ 1593 NONAME
- _ZTV23QDeclarativeItemPrivate @ 1594 NONAME
- _ZTV23QDeclarativePixmapReply @ 1595 NONAME ABSENT
- _ZTV23QDeclarativePropertyMap @ 1596 NONAME
- _ZTV24QDeclarativeCustomParser @ 1597 NONAME
- _ZTV24QDeclarativeDebugService @ 1598 NONAME
- _ZTV24QDeclarativeParserStatus @ 1599 NONAME
- _ZTV25QDeclarativeImageProvider @ 1600 NONAME
- _ZTV26QDeclarativeDebuggerStatus @ 1601 NONAME
- _ZTV26QDeclarativeOpenMetaObject @ 1602 NONAME
- _ZTV26QDeclarativeStateOperation @ 1603 NONAME
- _ZTV27QDeclarativeAbstractBinding @ 1604 NONAME
- _ZTV27QDeclarativeDebugConnection @ 1605 NONAME
- _ZTV27QDeclarativeExtensionPlugin @ 1606 NONAME
- _ZTV28QDeclarativeDebugObjectQuery @ 1607 NONAME
- _ZTV29QDeclarativeDebugEnginesQuery @ 1608 NONAME
- _ZTV30QDeclarativeDebugPropertyWatch @ 1609 NONAME
- _ZTV30QDeclarativeOpenMetaObjectType @ 1610 NONAME
- _ZTV31QDeclarativePropertyValueSource @ 1611 NONAME
- _ZTV32QDeclarativeDebugExpressionQuery @ 1612 NONAME
- _ZTV33QDeclarativeDebugRootContextQuery @ 1613 NONAME
- _ZTV36QDeclarativePropertyValueInterceptor @ 1614 NONAME
- _ZTV38QDeclarativeDebugObjectExpressionWatch @ 1615 NONAME
- _ZTV39QDeclarativeNetworkAccessManagerFactory @ 1616 NONAME
- _ZTV7QPacket @ 1617 NONAME
- _ZThn16_N16QDeclarativeItem10classBeginEv @ 1618 NONAME
- _ZThn16_N16QDeclarativeItem17componentCompleteEv @ 1619 NONAME
- _ZThn16_N16QDeclarativeItemD0Ev @ 1620 NONAME
- _ZThn16_N16QDeclarativeItemD1Ev @ 1621 NONAME
- _ZThn16_N16QDeclarativeText17componentCompleteEv @ 1622 NONAME
- _ZThn16_N16QDeclarativeTextD0Ev @ 1623 NONAME
- _ZThn16_N16QDeclarativeTextD1Ev @ 1624 NONAME
- _ZThn8_N16QDeclarativeItem10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 1625 NONAME
- _ZThn8_N16QDeclarativeItem10sceneEventEP6QEvent @ 1626 NONAME
- _ZThn8_N16QDeclarativeItem13keyPressEventEP9QKeyEvent @ 1627 NONAME
- _ZThn8_N16QDeclarativeItem15keyReleaseEventEP9QKeyEvent @ 1628 NONAME
- _ZThn8_N16QDeclarativeItem16inputMethodEventEP17QInputMethodEvent @ 1629 NONAME
- _ZThn8_N16QDeclarativeItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 1630 NONAME
- _ZThn8_N16QDeclarativeItemD0Ev @ 1631 NONAME
- _ZThn8_N16QDeclarativeItemD1Ev @ 1632 NONAME
- _ZThn8_N16QDeclarativeText15mousePressEventEP24QGraphicsSceneMouseEvent @ 1633 NONAME
- _ZThn8_N16QDeclarativeText17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 1634 NONAME
- _ZThn8_N16QDeclarativeText5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 1635 NONAME
- _ZThn8_N16QDeclarativeTextD0Ev @ 1636 NONAME
- _ZThn8_N16QDeclarativeTextD1Ev @ 1637 NONAME
- _ZThn8_N16QDeclarativeViewD0Ev @ 1638 NONAME
- _ZThn8_N16QDeclarativeViewD1Ev @ 1639 NONAME
- _ZThn8_N19QDeclarativeBinding10setEnabledEb6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 1640 NONAME
- _ZThn8_N19QDeclarativeBinding13propertyIndexEv @ 1641 NONAME
- _ZThn8_N19QDeclarativeBinding6updateE6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 1642 NONAME
- _ZThn8_N19QDeclarativeBindingD0Ev @ 1643 NONAME
- _ZThn8_N19QDeclarativeBindingD1Ev @ 1644 NONAME
- _ZThn8_N20QDeclarativeBehavior5writeERK8QVariant @ 1645 NONAME
- _ZThn8_N20QDeclarativeBehavior9setTargetERK20QDeclarativeProperty @ 1646 NONAME
- _ZThn8_N20QDeclarativeBehaviorD0Ev @ 1647 NONAME
- _ZThn8_N20QDeclarativeBehaviorD1Ev @ 1648 NONAME
- _ZThn8_N21QDeclarativeRectangle5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 1649 NONAME
- _ZThn8_N22QDeclarativeStateGroup10classBeginEv @ 1650 NONAME
- _ZThn8_N22QDeclarativeStateGroup17componentCompleteEv @ 1651 NONAME
- _ZThn8_N22QDeclarativeStateGroupD0Ev @ 1652 NONAME
- _ZThn8_N22QDeclarativeStateGroupD1Ev @ 1653 NONAME
- _ZThn8_N27QDeclarativeExtensionPlugin16initializeEngineEP18QDeclarativeEnginePKc @ 1654 NONAME
- _ZThn8_N27QDeclarativeExtensionPluginD0Ev @ 1655 NONAME
- _ZThn8_N27QDeclarativeExtensionPluginD1Ev @ 1656 NONAME
- _ZThn8_NK16QDeclarativeItem12boundingRectEv @ 1657 NONAME
- _ZThn8_NK16QDeclarativeItem16inputMethodQueryEN2Qt16InputMethodQueryE @ 1658 NONAME
- _ZThn8_NK16QDeclarativeText12boundingRectEv @ 1659 NONAME
- _ZThn8_NK19QDeclarativeBinding10expressionEv @ 1660 NONAME
- _ZThn8_NK21QDeclarativeRectangle12boundingRectEv @ 1661 NONAME
- _Zls6QDebugP16QDeclarativeItem @ 1662 NONAME
- _Zls6QDebugRK17QDeclarativeError @ 1663 NONAME
- _ZlsR11QDataStreamRKN29QDeclarativeEngineDebugServer22QDeclarativeObjectDataE @ 1664 NONAME
- _ZlsR11QDataStreamRKN29QDeclarativeEngineDebugServer26QDeclarativeObjectPropertyE @ 1665 NONAME
- _ZrsR11QDataStreamRN29QDeclarativeEngineDebugServer22QDeclarativeObjectDataE @ 1666 NONAME
- _ZrsR11QDataStreamRN29QDeclarativeEngineDebugServer26QDeclarativeObjectPropertyE @ 1667 NONAME
- _ZN18QDeclarativePixmap15connectFinishedEP7QObjectPKc @ 1668 NONAME
- _ZN18QDeclarativePixmap15connectFinishedEP7QObjecti @ 1669 NONAME
- _ZN18QDeclarativePixmap23connectDownloadProgressEP7QObjectPKc @ 1670 NONAME
- _ZN18QDeclarativePixmap23connectDownloadProgressEP7QObjecti @ 1671 NONAME
- _ZN18QDeclarativePixmap4loadEP18QDeclarativeEngineRK4QUrl @ 1672 NONAME
- _ZN18QDeclarativePixmap4loadEP18QDeclarativeEngineRK4QUrlRK5QSize @ 1673 NONAME
- _ZN18QDeclarativePixmap4loadEP18QDeclarativeEngineRK4QUrlRK5QSizeb @ 1674 NONAME
- _ZN18QDeclarativePixmap4loadEP18QDeclarativeEngineRK4QUrlb @ 1675 NONAME
- _ZN18QDeclarativePixmap5clearEP7QObject @ 1676 NONAME
- _ZN18QDeclarativePixmap5clearEv @ 1677 NONAME
- _ZN18QDeclarativePixmap9setPixmapERK7QPixmap @ 1678 NONAME
- _ZN18QDeclarativePixmapC1EP18QDeclarativeEngineRK4QUrl @ 1679 NONAME
- _ZN18QDeclarativePixmapC1EP18QDeclarativeEngineRK4QUrlRK5QSize @ 1680 NONAME
- _ZN18QDeclarativePixmapC1Ev @ 1681 NONAME
- _ZN18QDeclarativePixmapC2EP18QDeclarativeEngineRK4QUrl @ 1682 NONAME
- _ZN18QDeclarativePixmapC2EP18QDeclarativeEngineRK4QUrlRK5QSize @ 1683 NONAME
- _ZN18QDeclarativePixmapC2Ev @ 1684 NONAME
- _ZN18QDeclarativePixmapD1Ev @ 1685 NONAME
- _ZN18QDeclarativePixmapD2Ev @ 1686 NONAME
- _ZNK18QDeclarativePixmap11requestSizeEv @ 1687 NONAME
- _ZNK18QDeclarativePixmap12implicitSizeEv @ 1688 NONAME
- _ZNK18QDeclarativePixmap3urlEv @ 1689 NONAME
- _ZNK18QDeclarativePixmap4rectEv @ 1690 NONAME
- _ZNK18QDeclarativePixmap5errorEv @ 1691 NONAME
- _ZNK18QDeclarativePixmap5widthEv @ 1692 NONAME
- _ZNK18QDeclarativePixmap6heightEv @ 1693 NONAME
- _ZNK18QDeclarativePixmap6isNullEv @ 1694 NONAME
- _ZNK18QDeclarativePixmap6pixmapEv @ 1695 NONAME
- _ZNK18QDeclarativePixmap6statusEv @ 1696 NONAME
- _ZNK18QDeclarativePixmap7isErrorEv @ 1697 NONAME
- _ZNK18QDeclarativePixmap7isReadyEv @ 1698 NONAME
- _ZNK18QDeclarativePixmap9isLoadingEv @ 1699 NONAME
- _ZN20QDeclarativeBehavior23qtAnimationStateChangedEN18QAbstractAnimation5StateES1_ @ 1700 NONAME
- _ZN23QDeclarativeEngineDebug13setMethodBodyEiRK7QStringS2_ @ 1701 NONAME
- _ZN23QDeclarativeEngineDebug19setBindingForObjectEiRK7QStringRK8QVariantb @ 1702 NONAME
- _ZN25QDeclarativeImageProvider12requestImageERK7QStringP5QSizeRKS3_ @ 1703 NONAME
- _ZN25QDeclarativeImageProvider13requestPixmapERK7QStringP5QSizeRKS3_ @ 1704 NONAME
- _ZN25QDeclarativeImageProviderC1ENS_9ImageTypeE @ 1705 NONAME
- _ZN25QDeclarativeImageProviderC2ENS_9ImageTypeE @ 1706 NONAME
- _ZNK25QDeclarativeImageProvider9imageTypeEv @ 1707 NONAME
- _ZN23QDeclarativeEngineDebug21resetBindingForObjectEiRK7QString @ 1708 NONAME
- _ZN16QDeclarativeItem16forceActiveFocusEv @ 1709 NONAME
- _ZN16QDeclarativeItem18activeFocusChangedEb @ 1710 NONAME
- _ZNK16QDeclarativeItem14hasActiveFocusEv @ 1711 NONAME
- _ZNK16QDeclarativeView11rootContextEv @ 1712 NONAME
- _ZNK16QDeclarativeView6engineEv @ 1713 NONAME
- _ZNK18QDeclarativeEngine11rootContextEv @ 1714 NONAME
- _ZN19QDeclarativePrivate11qmlregisterENS_16RegistrationTypeEPv @ 1715 NONAME
- _ZNK26QDeclarativeOpenMetaObject8hasValueEi @ 1716 NONAME
+ _ZNK16QDeclarativeView11rootContextEv @ 1140 NONAME
+ _ZNK16QDeclarativeView6engineEv @ 1141 NONAME
+ _ZNK16QDeclarativeView6errorsEv @ 1142 NONAME
+ _ZNK16QDeclarativeView6sourceEv @ 1143 NONAME
+ _ZNK16QDeclarativeView6statusEv @ 1144 NONAME
+ _ZNK16QDeclarativeView8sizeHintEv @ 1145 NONAME
+ _ZNK16QMetaEnumBuilder3keyEi @ 1146 NONAME
+ _ZNK16QMetaEnumBuilder4nameEv @ 1147 NONAME
+ _ZNK16QMetaEnumBuilder5valueEi @ 1148 NONAME
+ _ZNK16QMetaEnumBuilder6d_funcEv @ 1149 NONAME
+ _ZNK16QMetaEnumBuilder6isFlagEv @ 1150 NONAME
+ _ZNK16QMetaEnumBuilder8keyCountEv @ 1151 NONAME
+ _ZNK17QDeclarativeError11descriptionEv @ 1152 NONAME
+ _ZNK17QDeclarativeError3urlEv @ 1153 NONAME
+ _ZNK17QDeclarativeError4lineEv @ 1154 NONAME
+ _ZNK17QDeclarativeError6columnEv @ 1155 NONAME
+ _ZNK17QDeclarativeError7isValidEv @ 1156 NONAME
+ _ZNK17QDeclarativeError8toStringEv @ 1157 NONAME
+ _ZNK17QDeclarativeState10metaObjectEv @ 1158 NONAME
+ _ZNK17QDeclarativeState10stateGroupEv @ 1159 NONAME
+ _ZNK17QDeclarativeState11isWhenKnownEv @ 1160 NONAME
+ _ZNK17QDeclarativeState11operationAtEi @ 1161 NONAME
+ _ZNK17QDeclarativeState14operationCountEv @ 1162 NONAME
+ _ZNK17QDeclarativeState4nameEv @ 1163 NONAME
+ _ZNK17QDeclarativeState4whenEv @ 1164 NONAME
+ _ZNK17QDeclarativeState7extendsEv @ 1165 NONAME
+ _ZNK17QDeclarativeState7isNamedEv @ 1166 NONAME
+ _ZNK18QDeclarativeEngine10metaObjectEv @ 1167 NONAME
+ _ZNK18QDeclarativeEngine11rootContextEv @ 1168 NONAME
+ _ZNK18QDeclarativeEngine13imageProviderERK7QString @ 1169 NONAME
+ _ZNK18QDeclarativeEngine14importPathListEv @ 1170 NONAME
+ _ZNK18QDeclarativeEngine14pluginPathListEv @ 1171 NONAME
+ _ZNK18QDeclarativeEngine18offlineStoragePathEv @ 1172 NONAME
+ _ZNK18QDeclarativeEngine20networkAccessManagerEv @ 1173 NONAME
+ _ZNK18QDeclarativeEngine27networkAccessManagerFactoryEv @ 1174 NONAME
+ _ZNK18QDeclarativeEngine29outputWarningsToStandardErrorEv @ 1175 NONAME
+ _ZNK18QDeclarativeEngine7baseUrlEv @ 1176 NONAME
+ _ZNK18QDeclarativeParser7Variant12asStringListEv @ 1177 NONAME
+ _ZNK18QDeclarativeParser7Variant12isStringListEv @ 1178 NONAME
+ _ZNK18QDeclarativeParser7Variant4typeEv @ 1179 NONAME
+ _ZNK18QDeclarativeParser7Variant5asASTEv @ 1180 NONAME
+ _ZNK18QDeclarativeParser7Variant8asNumberEv @ 1181 NONAME
+ _ZNK18QDeclarativeParser7Variant8asScriptEv @ 1182 NONAME
+ _ZNK18QDeclarativeParser7Variant8asStringEv @ 1183 NONAME
+ _ZNK18QDeclarativeParser7Variant9asBooleanEv @ 1184 NONAME
+ _ZNK18QDeclarativePixmap11requestSizeEv @ 1185 NONAME
+ _ZNK18QDeclarativePixmap12implicitSizeEv @ 1186 NONAME
+ _ZNK18QDeclarativePixmap3urlEv @ 1187 NONAME
+ _ZNK18QDeclarativePixmap4rectEv @ 1188 NONAME
+ _ZNK18QDeclarativePixmap5errorEv @ 1189 NONAME
+ _ZNK18QDeclarativePixmap5widthEv @ 1190 NONAME
+ _ZNK18QDeclarativePixmap6heightEv @ 1191 NONAME
+ _ZNK18QDeclarativePixmap6isNullEv @ 1192 NONAME
+ _ZNK18QDeclarativePixmap6pixmapEv @ 1193 NONAME
+ _ZNK18QDeclarativePixmap6statusEv @ 1194 NONAME
+ _ZNK18QDeclarativePixmap7isErrorEv @ 1195 NONAME
+ _ZNK18QDeclarativePixmap7isReadyEv @ 1196 NONAME
+ _ZNK18QDeclarativePixmap9isLoadingEv @ 1197 NONAME
+ _ZNK18QMetaMethodBuilder10attributesEv @ 1198 NONAME
+ _ZNK18QMetaMethodBuilder10methodTypeEv @ 1199 NONAME
+ _ZNK18QMetaMethodBuilder10returnTypeEv @ 1200 NONAME
+ _ZNK18QMetaMethodBuilder14parameterNamesEv @ 1201 NONAME
+ _ZNK18QMetaMethodBuilder3tagEv @ 1202 NONAME
+ _ZNK18QMetaMethodBuilder5indexEv @ 1203 NONAME
+ _ZNK18QMetaMethodBuilder6accessEv @ 1204 NONAME
+ _ZNK18QMetaMethodBuilder6d_funcEv @ 1205 NONAME
+ _ZNK18QMetaMethodBuilder9signatureEv @ 1206 NONAME
+ _ZNK18QMetaObjectBuilder10enumeratorEi @ 1207 NONAME
+ _ZNK18QMetaObjectBuilder10superClassEv @ 1208 NONAME
+ _ZNK18QMetaObjectBuilder11constructorEi @ 1209 NONAME
+ _ZNK18QMetaObjectBuilder11methodCountEv @ 1210 NONAME
+ _ZNK18QMetaObjectBuilder12toMetaObjectEv @ 1211 NONAME
+ _ZNK18QMetaObjectBuilder13classInfoNameEi @ 1212 NONAME
+ _ZNK18QMetaObjectBuilder13propertyCountEv @ 1213 NONAME
+ _ZNK18QMetaObjectBuilder14classInfoCountEv @ 1214 NONAME
+ _ZNK18QMetaObjectBuilder14classInfoValueEi @ 1215 NONAME
+ _ZNK18QMetaObjectBuilder15enumeratorCountEv @ 1216 NONAME
+ _ZNK18QMetaObjectBuilder16constructorCountEv @ 1217 NONAME
+ _ZNK18QMetaObjectBuilder17relatedMetaObjectEi @ 1218 NONAME
+ _ZNK18QMetaObjectBuilder17toRelocatableDataEPb @ 1219 NONAME
+ _ZNK18QMetaObjectBuilder22relatedMetaObjectCountEv @ 1220 NONAME
+ _ZNK18QMetaObjectBuilder22staticMetacallFunctionEv @ 1221 NONAME
+ _ZNK18QMetaObjectBuilder5flagsEv @ 1222 NONAME
+ _ZNK18QMetaObjectBuilder6methodEi @ 1223 NONAME
+ _ZNK18QMetaObjectBuilder8propertyEi @ 1224 NONAME
+ _ZNK18QMetaObjectBuilder9classNameEv @ 1225 NONAME
+ _ZNK18QMetaObjectBuilder9serializeER11QDataStream @ 1226 NONAME
+ _ZNK19QDeclarativeAnchors10leftMarginEv @ 1227 NONAME
+ _ZNK19QDeclarativeAnchors10metaObjectEv @ 1228 NONAME
+ _ZNK19QDeclarativeAnchors11rightMarginEv @ 1229 NONAME
+ _ZNK19QDeclarativeAnchors11usedAnchorsEv @ 1230 NONAME
+ _ZNK19QDeclarativeAnchors12bottomMarginEv @ 1231 NONAME
+ _ZNK19QDeclarativeAnchors14baselineOffsetEv @ 1232 NONAME
+ _ZNK19QDeclarativeAnchors14verticalCenterEv @ 1233 NONAME
+ _ZNK19QDeclarativeAnchors16horizontalCenterEv @ 1234 NONAME
+ _ZNK19QDeclarativeAnchors20verticalCenterOffsetEv @ 1235 NONAME
+ _ZNK19QDeclarativeAnchors22horizontalCenterOffsetEv @ 1236 NONAME
+ _ZNK19QDeclarativeAnchors3topEv @ 1237 NONAME
+ _ZNK19QDeclarativeAnchors4fillEv @ 1238 NONAME
+ _ZNK19QDeclarativeAnchors4leftEv @ 1239 NONAME
+ _ZNK19QDeclarativeAnchors5rightEv @ 1240 NONAME
+ _ZNK19QDeclarativeAnchors6bottomEv @ 1241 NONAME
+ _ZNK19QDeclarativeAnchors7marginsEv @ 1242 NONAME
+ _ZNK19QDeclarativeAnchors8baselineEv @ 1243 NONAME
+ _ZNK19QDeclarativeAnchors8centerInEv @ 1244 NONAME
+ _ZNK19QDeclarativeAnchors9topMarginEv @ 1245 NONAME
+ _ZNK19QDeclarativeBinding10expressionEv @ 1246 NONAME
+ _ZNK19QDeclarativeBinding10metaObjectEv @ 1247 NONAME
+ _ZNK19QDeclarativeBinding7enabledEv @ 1248 NONAME
+ _ZNK19QDeclarativeBinding8propertyEv @ 1249 NONAME
+ _ZNK19QDeclarativeContext10metaObjectEv @ 1250 NONAME
+ _ZNK19QDeclarativeContext13contextObjectEv @ 1251 NONAME
+ _ZNK19QDeclarativeContext13parentContextEv @ 1252 NONAME
+ _ZNK19QDeclarativeContext15contextPropertyERK7QString @ 1253 NONAME
+ _ZNK19QDeclarativeContext6engineEv @ 1254 NONAME
+ _ZNK19QDeclarativeContext7baseUrlEv @ 1255 NONAME
+ _ZNK19QDeclarativeContext7isValidEv @ 1256 NONAME
+ _ZNK19QDeclarativeDomList14commaPositionsEv @ 1257 NONAME
+ _ZNK19QDeclarativeDomList6lengthEv @ 1258 NONAME
+ _ZNK19QDeclarativeDomList6valuesEv @ 1259 NONAME
+ _ZNK19QDeclarativeDomList8positionEv @ 1260 NONAME
+ _ZNK19QListModelInterface10metaObjectEv @ 1261 NONAME
+ _ZNK20QDeclarativeBehavior10metaObjectEv @ 1262 NONAME
+ _ZNK20QDeclarativeBehavior7enabledEv @ 1263 NONAME
+ _ZNK20QDeclarativeDomValue13isValueSourceEv @ 1264 NONAME
+ _ZNK20QDeclarativeDomValue13toValueSourceEv @ 1265 NONAME
+ _ZNK20QDeclarativeDomValue18isValueInterceptorEv @ 1266 NONAME
+ _ZNK20QDeclarativeDomValue18toValueInterceptorEv @ 1267 NONAME
+ _ZNK20QDeclarativeDomValue4typeEv @ 1268 NONAME
+ _ZNK20QDeclarativeDomValue6isListEv @ 1269 NONAME
+ _ZNK20QDeclarativeDomValue6lengthEv @ 1270 NONAME
+ _ZNK20QDeclarativeDomValue6toListEv @ 1271 NONAME
+ _ZNK20QDeclarativeDomValue8isObjectEv @ 1272 NONAME
+ _ZNK20QDeclarativeDomValue8positionEv @ 1273 NONAME
+ _ZNK20QDeclarativeDomValue8toObjectEv @ 1274 NONAME
+ _ZNK20QDeclarativeDomValue9isBindingEv @ 1275 NONAME
+ _ZNK20QDeclarativeDomValue9isInvalidEv @ 1276 NONAME
+ _ZNK20QDeclarativeDomValue9isLiteralEv @ 1277 NONAME
+ _ZNK20QDeclarativeDomValue9toBindingEv @ 1278 NONAME
+ _ZNK20QDeclarativeDomValue9toLiteralEv @ 1279 NONAME
+ _ZNK20QDeclarativeProperty10isPropertyEv @ 1280 NONAME
+ _ZNK20QDeclarativeProperty10isWritableEv @ 1281 NONAME
+ _ZNK20QDeclarativeProperty12isDesignableEv @ 1282 NONAME
+ _ZNK20QDeclarativeProperty12isResettableEv @ 1283 NONAME
+ _ZNK20QDeclarativeProperty12propertyTypeEv @ 1284 NONAME
+ _ZNK20QDeclarativeProperty15hasNotifySignalEv @ 1285 NONAME
+ _ZNK20QDeclarativeProperty16isSignalPropertyEv @ 1286 NONAME
+ _ZNK20QDeclarativeProperty16propertyTypeNameEv @ 1287 NONAME
+ _ZNK20QDeclarativeProperty17needsNotifySignalEv @ 1288 NONAME
+ _ZNK20QDeclarativeProperty19connectNotifySignalEP7QObjectPKc @ 1289 NONAME
+ _ZNK20QDeclarativeProperty19connectNotifySignalEP7QObjecti @ 1290 NONAME
+ _ZNK20QDeclarativeProperty20propertyTypeCategoryEv @ 1291 NONAME
+ _ZNK20QDeclarativeProperty4nameEv @ 1292 NONAME
+ _ZNK20QDeclarativeProperty4readEv @ 1293 NONAME
+ _ZNK20QDeclarativeProperty4typeEv @ 1294 NONAME
+ _ZNK20QDeclarativeProperty5indexEv @ 1295 NONAME
+ _ZNK20QDeclarativeProperty5resetEv @ 1296 NONAME
+ _ZNK20QDeclarativeProperty5writeERK8QVariant @ 1297 NONAME
+ _ZNK20QDeclarativeProperty6methodEv @ 1298 NONAME
+ _ZNK20QDeclarativeProperty6objectEv @ 1299 NONAME
+ _ZNK20QDeclarativeProperty7isValidEv @ 1300 NONAME
+ _ZNK20QDeclarativeProperty8propertyEv @ 1301 NONAME
+ _ZNK20QDeclarativePropertyeqERKS_ @ 1302 NONAME
+ _ZNK20QMetaPropertyBuilder10isEditableEv @ 1303 NONAME
+ _ZNK20QMetaPropertyBuilder10isReadableEv @ 1304 NONAME
+ _ZNK20QMetaPropertyBuilder10isWritableEv @ 1305 NONAME
+ _ZNK20QMetaPropertyBuilder12hasStdCppSetEv @ 1306 NONAME
+ _ZNK20QMetaPropertyBuilder12isDesignableEv @ 1307 NONAME
+ _ZNK20QMetaPropertyBuilder12isEnumOrFlagEv @ 1308 NONAME
+ _ZNK20QMetaPropertyBuilder12isResettableEv @ 1309 NONAME
+ _ZNK20QMetaPropertyBuilder12isScriptableEv @ 1310 NONAME
+ _ZNK20QMetaPropertyBuilder12notifySignalEv @ 1311 NONAME
+ _ZNK20QMetaPropertyBuilder15hasNotifySignalEv @ 1312 NONAME
+ _ZNK20QMetaPropertyBuilder4nameEv @ 1313 NONAME
+ _ZNK20QMetaPropertyBuilder4typeEv @ 1314 NONAME
+ _ZNK20QMetaPropertyBuilder6d_funcEv @ 1315 NONAME
+ _ZNK20QMetaPropertyBuilder6isUserEv @ 1316 NONAME
+ _ZNK20QMetaPropertyBuilder8isStoredEv @ 1317 NONAME
+ _ZNK20QMetaPropertyBuilder9isDynamicEv @ 1318 NONAME
+ _ZNK21QDeclarativeComponent10metaObjectEv @ 1319 NONAME
+ _ZNK21QDeclarativeComponent11errorStringEv @ 1320 NONAME
+ _ZNK21QDeclarativeComponent15creationContextEv @ 1321 NONAME
+ _ZNK21QDeclarativeComponent3urlEv @ 1322 NONAME
+ _ZNK21QDeclarativeComponent6errorsEv @ 1323 NONAME
+ _ZNK21QDeclarativeComponent6isNullEv @ 1324 NONAME
+ _ZNK21QDeclarativeComponent6statusEv @ 1325 NONAME
+ _ZNK21QDeclarativeComponent7isErrorEv @ 1326 NONAME
+ _ZNK21QDeclarativeComponent7isReadyEv @ 1327 NONAME
+ _ZNK21QDeclarativeComponent8progressEv @ 1328 NONAME
+ _ZNK21QDeclarativeComponent9isLoadingEv @ 1329 NONAME
+ _ZNK21QDeclarativeDomImport3uriEv @ 1330 NONAME
+ _ZNK21QDeclarativeDomImport4typeEv @ 1331 NONAME
+ _ZNK21QDeclarativeDomImport7versionEv @ 1332 NONAME
+ _ZNK21QDeclarativeDomImport9qualifierEv @ 1333 NONAME
+ _ZNK21QDeclarativeDomObject10objectTypeEv @ 1334 NONAME
+ _ZNK21QDeclarativeDomObject10propertiesEv @ 1335 NONAME
+ _ZNK21QDeclarativeDomObject11isComponentEv @ 1336 NONAME
+ _ZNK21QDeclarativeDomObject11toComponentEv @ 1337 NONAME
+ _ZNK21QDeclarativeDomObject12isCustomTypeEv @ 1338 NONAME
+ _ZNK21QDeclarativeDomObject14customTypeDataEv @ 1339 NONAME
+ _ZNK21QDeclarativeDomObject15dynamicPropertyERK10QByteArray @ 1340 NONAME
+ _ZNK21QDeclarativeDomObject15objectClassNameEv @ 1341 NONAME
+ _ZNK21QDeclarativeDomObject17dynamicPropertiesEv @ 1342 NONAME
+ _ZNK21QDeclarativeDomObject22objectTypeMajorVersionEv @ 1343 NONAME
+ _ZNK21QDeclarativeDomObject22objectTypeMinorVersionEv @ 1344 NONAME
+ _ZNK21QDeclarativeDomObject3urlEv @ 1345 NONAME
+ _ZNK21QDeclarativeDomObject6lengthEv @ 1346 NONAME
+ _ZNK21QDeclarativeDomObject7isValidEv @ 1347 NONAME
+ _ZNK21QDeclarativeDomObject8objectIdEv @ 1348 NONAME
+ _ZNK21QDeclarativeDomObject8positionEv @ 1349 NONAME
+ _ZNK21QDeclarativeDomObject8propertyERK10QByteArray @ 1350 NONAME
+ _ZNK21QDeclarativeListModel10metaObjectEv @ 1351 NONAME
+ _ZNK21QDeclarativeListModel3getEi @ 1352 NONAME
+ _ZNK21QDeclarativeListModel4dataEiRK5QListIiE @ 1353 NONAME
+ _ZNK21QDeclarativeListModel4dataEii @ 1354 NONAME
+ _ZNK21QDeclarativeListModel5countEv @ 1355 NONAME
+ _ZNK21QDeclarativeListModel5rolesEv @ 1356 NONAME
+ _ZNK21QDeclarativeListModel8toStringEi @ 1357 NONAME
+ _ZNK21QDeclarativeRectangle10metaObjectEv @ 1358 NONAME
+ _ZNK21QDeclarativeRectangle12boundingRectEv @ 1359 NONAME
+ _ZNK21QDeclarativeRectangle5colorEv @ 1360 NONAME
+ _ZNK21QDeclarativeRectangle6radiusEv @ 1361 NONAME
+ _ZNK21QDeclarativeRectangle8gradientEv @ 1362 NONAME
+ _ZNK21QDeclarativeScaleGrid10metaObjectEv @ 1363 NONAME
+ _ZNK21QDeclarativeScaleGrid6isNullEv @ 1364 NONAME
+ _ZNK21QDeclarativeValueType10metaObjectEv @ 1365 NONAME
+ _ZNK22QDeclarativeDebugQuery10metaObjectEv @ 1366 NONAME
+ _ZNK22QDeclarativeDebugQuery5stateEv @ 1367 NONAME
+ _ZNK22QDeclarativeDebugQuery9isWaitingEv @ 1368 NONAME
+ _ZNK22QDeclarativeDebugWatch10metaObjectEv @ 1369 NONAME
+ _ZNK22QDeclarativeDebugWatch13objectDebugIdEv @ 1370 NONAME
+ _ZNK22QDeclarativeDebugWatch5stateEv @ 1371 NONAME
+ _ZNK22QDeclarativeDebugWatch7queryIdEv @ 1372 NONAME
+ _ZNK22QDeclarativeExpression10expressionEv @ 1373 NONAME
+ _ZNK22QDeclarativeExpression10lineNumberEv @ 1374 NONAME
+ _ZNK22QDeclarativeExpression10metaObjectEv @ 1375 NONAME
+ _ZNK22QDeclarativeExpression10sourceFileEv @ 1376 NONAME
+ _ZNK22QDeclarativeExpression11scopeObjectEv @ 1377 NONAME
+ _ZNK22QDeclarativeExpression20notifyOnValueChangedEv @ 1378 NONAME
+ _ZNK22QDeclarativeExpression5errorEv @ 1379 NONAME
+ _ZNK22QDeclarativeExpression6engineEv @ 1380 NONAME
+ _ZNK22QDeclarativeExpression7contextEv @ 1381 NONAME
+ _ZNK22QDeclarativeExpression8hasErrorEv @ 1382 NONAME
+ _ZNK22QDeclarativeStateGroup10metaObjectEv @ 1383 NONAME
+ _ZNK22QDeclarativeStateGroup5stateEv @ 1384 NONAME
+ _ZNK22QDeclarativeStateGroup6statesEv @ 1385 NONAME
+ _ZNK22QDeclarativeStateGroup9findStateERK7QString @ 1386 NONAME
+ _ZNK22QDeclarativeTransition10metaObjectEv @ 1387 NONAME
+ _ZNK22QDeclarativeTransition10reversibleEv @ 1388 NONAME
+ _ZNK22QDeclarativeTransition7toStateEv @ 1389 NONAME
+ _ZNK22QDeclarativeTransition9fromStateEv @ 1390 NONAME
+ _ZNK23QDeclarativeDebugClient10metaObjectEv @ 1391 NONAME
+ _ZNK23QDeclarativeDebugClient11isConnectedEv @ 1392 NONAME
+ _ZNK23QDeclarativeDebugClient4nameEv @ 1393 NONAME
+ _ZNK23QDeclarativeDebugClient9isEnabledEv @ 1394 NONAME
+ _ZNK23QDeclarativeDomDocument10rootObjectEv @ 1395 NONAME
+ _ZNK23QDeclarativeDomDocument6errorsEv @ 1396 NONAME
+ _ZNK23QDeclarativeDomDocument7importsEv @ 1397 NONAME
+ _ZNK23QDeclarativeDomProperty12propertyNameEv @ 1398 NONAME
+ _ZNK23QDeclarativeDomProperty17isDefaultPropertyEv @ 1399 NONAME
+ _ZNK23QDeclarativeDomProperty17propertyNamePartsEv @ 1400 NONAME
+ _ZNK23QDeclarativeDomProperty5valueEv @ 1401 NONAME
+ _ZNK23QDeclarativeDomProperty6lengthEv @ 1402 NONAME
+ _ZNK23QDeclarativeDomProperty7isValidEv @ 1403 NONAME
+ _ZNK23QDeclarativeDomProperty8positionEv @ 1404 NONAME
+ _ZNK23QDeclarativeEngineDebug10metaObjectEv @ 1405 NONAME
+ _ZNK23QDeclarativeItemPrivate14verticalCenterEv @ 1406 NONAME
+ _ZNK23QDeclarativeItemPrivate16horizontalCenterEv @ 1407 NONAME
+ _ZNK23QDeclarativeItemPrivate22computeTransformOriginEv @ 1408 NONAME
+ _ZNK23QDeclarativeItemPrivate3topEv @ 1409 NONAME
+ _ZNK23QDeclarativeItemPrivate4leftEv @ 1410 NONAME
+ _ZNK23QDeclarativeItemPrivate5rightEv @ 1411 NONAME
+ _ZNK23QDeclarativeItemPrivate5stateEv @ 1412 NONAME
+ _ZNK23QDeclarativeItemPrivate5widthEv @ 1413 NONAME
+ _ZNK23QDeclarativeItemPrivate6bottomEv @ 1414 NONAME
+ _ZNK23QDeclarativeItemPrivate6heightEv @ 1415 NONAME
+ _ZNK23QDeclarativeItemPrivate8baselineEv @ 1416 NONAME
+ _ZNK23QDeclarativePropertyMap10metaObjectEv @ 1417 NONAME
+ _ZNK23QDeclarativePropertyMap4keysEv @ 1418 NONAME
+ _ZNK23QDeclarativePropertyMap4sizeEv @ 1419 NONAME
+ _ZNK23QDeclarativePropertyMap5countEv @ 1420 NONAME
+ _ZNK23QDeclarativePropertyMap5valueERK7QString @ 1421 NONAME
+ _ZNK23QDeclarativePropertyMap7isEmptyEv @ 1422 NONAME
+ _ZNK23QDeclarativePropertyMap8containsERK7QString @ 1423 NONAME
+ _ZNK23QDeclarativePropertyMapixERK7QString @ 1424 NONAME
+ _ZNK24QDeclarativeCustomParser11resolveTypeERK10QByteArray @ 1425 NONAME
+ _ZNK24QDeclarativeCustomParser12evaluateEnumERK10QByteArray @ 1426 NONAME
+ _ZNK24QDeclarativeDebugService10metaObjectEv @ 1427 NONAME
+ _ZNK24QDeclarativeDebugService4nameEv @ 1428 NONAME
+ _ZNK24QDeclarativeDebugService9isEnabledEv @ 1429 NONAME
+ _ZNK24QDeclarativeDomComponent13componentRootEv @ 1430 NONAME
+ _ZNK24QDeclarativeScriptString11scopeObjectEv @ 1431 NONAME
+ _ZNK24QDeclarativeScriptString6scriptEv @ 1432 NONAME
+ _ZNK24QDeclarativeScriptString7contextEv @ 1433 NONAME
+ _ZNK25QDeclarativeImageProvider9imageTypeEv @ 1434 NONAME
+ _ZNK25QDeclarativeListReference15listElementTypeEv @ 1435 NONAME
+ _ZNK25QDeclarativeListReference2atEi @ 1436 NONAME
+ _ZNK25QDeclarativeListReference5canAtEv @ 1437 NONAME
+ _ZNK25QDeclarativeListReference5clearEv @ 1438 NONAME
+ _ZNK25QDeclarativeListReference5countEv @ 1439 NONAME
+ _ZNK25QDeclarativeListReference6appendEP7QObject @ 1440 NONAME
+ _ZNK25QDeclarativeListReference6objectEv @ 1441 NONAME
+ _ZNK25QDeclarativeListReference7isValidEv @ 1442 NONAME
+ _ZNK25QDeclarativeListReference8canClearEv @ 1443 NONAME
+ _ZNK25QDeclarativeListReference8canCountEv @ 1444 NONAME
+ _ZNK25QDeclarativeListReference9canAppendEv @ 1445 NONAME
+ _ZNK26QDeclarativeOpenMetaObject4nameEi @ 1446 NONAME
+ _ZNK26QDeclarativeOpenMetaObject4typeEv @ 1447 NONAME
+ _ZNK26QDeclarativeOpenMetaObject5countEv @ 1448 NONAME
+ _ZNK26QDeclarativeOpenMetaObject5valueERK10QByteArray @ 1449 NONAME
+ _ZNK26QDeclarativeOpenMetaObject5valueEi @ 1450 NONAME
+ _ZNK26QDeclarativeOpenMetaObject6objectEv @ 1451 NONAME
+ _ZNK26QDeclarativeOpenMetaObject6parentEv @ 1452 NONAME
+ _ZNK26QDeclarativeOpenMetaObject8hasValueEi @ 1453 NONAME
+ _ZNK26QDeclarativeStateOperation10metaObjectEv @ 1454 NONAME
+ _ZNK27QDeclarativeAbstractBinding10expressionEv @ 1455 NONAME
+ _ZNK27QDeclarativeDebugConnection10metaObjectEv @ 1456 NONAME
+ _ZNK27QDeclarativeDebugConnection11isConnectedEv @ 1457 NONAME
+ _ZNK27QDeclarativeDomValueBinding7bindingEv @ 1458 NONAME
+ _ZNK27QDeclarativeDomValueLiteral7literalEv @ 1459 NONAME
+ _ZNK27QDeclarativeExtensionPlugin10metaObjectEv @ 1460 NONAME
+ _ZNK27QDeclarativeGridScaledImage10gridBottomEv @ 1461 NONAME
+ _ZNK27QDeclarativeGridScaledImage7gridTopEv @ 1462 NONAME
+ _ZNK27QDeclarativeGridScaledImage7isValidEv @ 1463 NONAME
+ _ZNK27QDeclarativeGridScaledImage8gridLeftEv @ 1464 NONAME
+ _ZNK27QDeclarativeGridScaledImage9gridRightEv @ 1465 NONAME
+ _ZNK27QDeclarativeGridScaledImage9pixmapUrlEv @ 1466 NONAME
+ _ZNK27QDeclarativePropertyPrivate11isValueTypeEv @ 1467 NONAME
+ _ZNK27QDeclarativePropertyPrivate12propertyTypeEv @ 1468 NONAME
+ _ZNK27QDeclarativePropertyPrivate20propertyTypeCategoryEv @ 1469 NONAME
+ _ZNK28QDeclarativeCustomParserNode10propertiesEv @ 1470 NONAME
+ _ZNK28QDeclarativeCustomParserNode4nameEv @ 1471 NONAME
+ _ZNK28QDeclarativeCustomParserNode8locationEv @ 1472 NONAME
+ _ZNK28QDeclarativeDebugObjectQuery10metaObjectEv @ 1473 NONAME
+ _ZNK28QDeclarativeDebugObjectQuery6objectEv @ 1474 NONAME
+ _ZNK29QDeclarativeDebugEnginesQuery10metaObjectEv @ 1475 NONAME
+ _ZNK29QDeclarativeDebugEnginesQuery7enginesEv @ 1476 NONAME
+ _ZNK30QDeclarativeDebugFileReference10lineNumberEv @ 1477 NONAME
+ _ZNK30QDeclarativeDebugFileReference12columnNumberEv @ 1478 NONAME
+ _ZNK30QDeclarativeDebugFileReference3urlEv @ 1479 NONAME
+ _ZNK30QDeclarativeDebugPropertyWatch10metaObjectEv @ 1480 NONAME
+ _ZNK30QDeclarativeDebugPropertyWatch4nameEv @ 1481 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty12defaultValueEv @ 1482 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty12propertyNameEv @ 1483 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty12propertyTypeEv @ 1484 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty16propertyTypeNameEv @ 1485 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty17isDefaultPropertyEv @ 1486 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty6lengthEv @ 1487 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty7isAliasEv @ 1488 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty7isValidEv @ 1489 NONAME
+ _ZNK30QDeclarativeDomDynamicProperty8positionEv @ 1490 NONAME
+ _ZNK30QDeclarativeOpenMetaObjectType12signalOffsetEv @ 1491 NONAME
+ _ZNK30QDeclarativeOpenMetaObjectType14propertyOffsetEv @ 1492 NONAME
+ _ZNK31QDeclarativeDomValueValueSource6objectEv @ 1493 NONAME
+ _ZNK32QDeclarativeCustomParserProperty14assignedValuesEv @ 1494 NONAME
+ _ZNK32QDeclarativeCustomParserProperty4nameEv @ 1495 NONAME
+ _ZNK32QDeclarativeCustomParserProperty6isListEv @ 1496 NONAME
+ _ZNK32QDeclarativeCustomParserProperty8locationEv @ 1497 NONAME
+ _ZNK32QDeclarativeDebugEngineReference4nameEv @ 1498 NONAME
+ _ZNK32QDeclarativeDebugEngineReference7debugIdEv @ 1499 NONAME
+ _ZNK32QDeclarativeDebugExpressionQuery10expressionEv @ 1500 NONAME
+ _ZNK32QDeclarativeDebugExpressionQuery10metaObjectEv @ 1501 NONAME
+ _ZNK32QDeclarativeDebugExpressionQuery6resultEv @ 1502 NONAME
+ _ZNK32QDeclarativeDebugObjectReference10propertiesEv @ 1503 NONAME
+ _ZNK32QDeclarativeDebugObjectReference14contextDebugIdEv @ 1504 NONAME
+ _ZNK32QDeclarativeDebugObjectReference4nameEv @ 1505 NONAME
+ _ZNK32QDeclarativeDebugObjectReference6sourceEv @ 1506 NONAME
+ _ZNK32QDeclarativeDebugObjectReference7debugIdEv @ 1507 NONAME
+ _ZNK32QDeclarativeDebugObjectReference8childrenEv @ 1508 NONAME
+ _ZNK32QDeclarativeDebugObjectReference8idStringEv @ 1509 NONAME
+ _ZNK32QDeclarativeDebugObjectReference9classNameEv @ 1510 NONAME
+ _ZNK33QDeclarativeDebugContextReference4nameEv @ 1511 NONAME
+ _ZNK33QDeclarativeDebugContextReference7debugIdEv @ 1512 NONAME
+ _ZNK33QDeclarativeDebugContextReference7objectsEv @ 1513 NONAME
+ _ZNK33QDeclarativeDebugContextReference8contextsEv @ 1514 NONAME
+ _ZNK33QDeclarativeDebugRootContextQuery10metaObjectEv @ 1515 NONAME
+ _ZNK33QDeclarativeDebugRootContextQuery11rootContextEv @ 1516 NONAME
+ _ZNK34QDeclarativeDebugPropertyReference13objectDebugIdEv @ 1517 NONAME
+ _ZNK34QDeclarativeDebugPropertyReference13valueTypeNameEv @ 1518 NONAME
+ _ZNK34QDeclarativeDebugPropertyReference15hasNotifySignalEv @ 1519 NONAME
+ _ZNK34QDeclarativeDebugPropertyReference4nameEv @ 1520 NONAME
+ _ZNK34QDeclarativeDebugPropertyReference5valueEv @ 1521 NONAME
+ _ZNK34QDeclarativeDebugPropertyReference7bindingEv @ 1522 NONAME
+ _ZNK36QDeclarativeDomValueValueInterceptor6objectEv @ 1523 NONAME
+ _ZNK38QDeclarativeDebugObjectExpressionWatch10expressionEv @ 1524 NONAME
+ _ZNK38QDeclarativeDebugObjectExpressionWatch10metaObjectEv @ 1525 NONAME
+ _ZNK7QPacket7isEmptyEv @ 1526 NONAME
+ _ZTI15QDeclarativePen @ 1527 NONAME
+ _ZTI15QPacketAutoSend @ 1528 NONAME
+ _ZTI15QPacketProtocol @ 1529 NONAME
+ _ZTI16QDeclarativeItem @ 1530 NONAME
+ _ZTI16QDeclarativeText @ 1531 NONAME
+ _ZTI16QDeclarativeView @ 1532 NONAME
+ _ZTI17QDeclarativeState @ 1533 NONAME
+ _ZTI18QDeclarativeEngine @ 1534 NONAME
+ _ZTI18QMetaObjectBuilder @ 1535 NONAME
+ _ZTI19QDeclarativeAnchors @ 1536 NONAME
+ _ZTI19QDeclarativeBinding @ 1537 NONAME
+ _ZTI19QDeclarativeContext @ 1538 NONAME
+ _ZTI19QListModelInterface @ 1539 NONAME
+ _ZTI20QDeclarativeBehavior @ 1540 NONAME
+ _ZTI21QDeclarativeComponent @ 1541 NONAME
+ _ZTI21QDeclarativeListModel @ 1542 NONAME
+ _ZTI21QDeclarativeRectangle @ 1543 NONAME
+ _ZTI21QDeclarativeScaleGrid @ 1544 NONAME
+ _ZTI21QDeclarativeValueType @ 1545 NONAME
+ _ZTI22QDeclarativeDebugQuery @ 1546 NONAME
+ _ZTI22QDeclarativeDebugWatch @ 1547 NONAME
+ _ZTI22QDeclarativeExpression @ 1548 NONAME
+ _ZTI22QDeclarativeStateGroup @ 1549 NONAME
+ _ZTI22QDeclarativeTransition @ 1550 NONAME
+ _ZTI23QDeclarativeDebugClient @ 1551 NONAME
+ _ZTI23QDeclarativeEngineDebug @ 1552 NONAME
+ _ZTI23QDeclarativeItemPrivate @ 1553 NONAME
+ _ZTI23QDeclarativePropertyMap @ 1554 NONAME
+ _ZTI24QDeclarativeCustomParser @ 1555 NONAME
+ _ZTI24QDeclarativeDebugService @ 1556 NONAME
+ _ZTI24QDeclarativeParserStatus @ 1557 NONAME
+ _ZTI25QDeclarativeImageProvider @ 1558 NONAME
+ _ZTI26QDeclarativeDebuggerStatus @ 1559 NONAME
+ _ZTI26QDeclarativeOpenMetaObject @ 1560 NONAME
+ _ZTI26QDeclarativeStateOperation @ 1561 NONAME
+ _ZTI27QDeclarativeAbstractBinding @ 1562 NONAME
+ _ZTI27QDeclarativeDebugConnection @ 1563 NONAME
+ _ZTI27QDeclarativeExtensionPlugin @ 1564 NONAME
+ _ZTI28QDeclarativeDebugObjectQuery @ 1565 NONAME
+ _ZTI29QDeclarativeDebugEnginesQuery @ 1566 NONAME
+ _ZTI30QDeclarativeDebugPropertyWatch @ 1567 NONAME
+ _ZTI30QDeclarativeExtensionInterface @ 1568 NONAME
+ _ZTI30QDeclarativeOpenMetaObjectType @ 1569 NONAME
+ _ZTI31QDeclarativePropertyValueSource @ 1570 NONAME
+ _ZTI32QDeclarativeDebugExpressionQuery @ 1571 NONAME
+ _ZTI33QDeclarativeDebugRootContextQuery @ 1572 NONAME
+ _ZTI36QDeclarativePropertyValueInterceptor @ 1573 NONAME
+ _ZTI38QDeclarativeDebugObjectExpressionWatch @ 1574 NONAME
+ _ZTI39QDeclarativeNetworkAccessManagerFactory @ 1575 NONAME
+ _ZTI7QPacket @ 1576 NONAME
+ _ZTV15QDeclarativePen @ 1577 NONAME
+ _ZTV15QPacketAutoSend @ 1578 NONAME
+ _ZTV15QPacketProtocol @ 1579 NONAME
+ _ZTV16QDeclarativeItem @ 1580 NONAME
+ _ZTV16QDeclarativeText @ 1581 NONAME
+ _ZTV16QDeclarativeView @ 1582 NONAME
+ _ZTV17QDeclarativeState @ 1583 NONAME
+ _ZTV18QDeclarativeEngine @ 1584 NONAME
+ _ZTV18QMetaObjectBuilder @ 1585 NONAME
+ _ZTV19QDeclarativeAnchors @ 1586 NONAME
+ _ZTV19QDeclarativeBinding @ 1587 NONAME
+ _ZTV19QDeclarativeContext @ 1588 NONAME
+ _ZTV19QListModelInterface @ 1589 NONAME
+ _ZTV20QDeclarativeBehavior @ 1590 NONAME
+ _ZTV21QDeclarativeComponent @ 1591 NONAME
+ _ZTV21QDeclarativeListModel @ 1592 NONAME
+ _ZTV21QDeclarativeRectangle @ 1593 NONAME
+ _ZTV21QDeclarativeScaleGrid @ 1594 NONAME
+ _ZTV21QDeclarativeValueType @ 1595 NONAME
+ _ZTV22QDeclarativeDebugQuery @ 1596 NONAME
+ _ZTV22QDeclarativeDebugWatch @ 1597 NONAME
+ _ZTV22QDeclarativeExpression @ 1598 NONAME
+ _ZTV22QDeclarativeStateGroup @ 1599 NONAME
+ _ZTV22QDeclarativeTransition @ 1600 NONAME
+ _ZTV23QDeclarativeDebugClient @ 1601 NONAME
+ _ZTV23QDeclarativeEngineDebug @ 1602 NONAME
+ _ZTV23QDeclarativeItemPrivate @ 1603 NONAME
+ _ZTV23QDeclarativePropertyMap @ 1604 NONAME
+ _ZTV24QDeclarativeCustomParser @ 1605 NONAME
+ _ZTV24QDeclarativeDebugService @ 1606 NONAME
+ _ZTV24QDeclarativeParserStatus @ 1607 NONAME
+ _ZTV25QDeclarativeImageProvider @ 1608 NONAME
+ _ZTV26QDeclarativeDebuggerStatus @ 1609 NONAME
+ _ZTV26QDeclarativeOpenMetaObject @ 1610 NONAME
+ _ZTV26QDeclarativeStateOperation @ 1611 NONAME
+ _ZTV27QDeclarativeAbstractBinding @ 1612 NONAME
+ _ZTV27QDeclarativeDebugConnection @ 1613 NONAME
+ _ZTV27QDeclarativeExtensionPlugin @ 1614 NONAME
+ _ZTV28QDeclarativeDebugObjectQuery @ 1615 NONAME
+ _ZTV29QDeclarativeDebugEnginesQuery @ 1616 NONAME
+ _ZTV30QDeclarativeDebugPropertyWatch @ 1617 NONAME
+ _ZTV30QDeclarativeOpenMetaObjectType @ 1618 NONAME
+ _ZTV31QDeclarativePropertyValueSource @ 1619 NONAME
+ _ZTV32QDeclarativeDebugExpressionQuery @ 1620 NONAME
+ _ZTV33QDeclarativeDebugRootContextQuery @ 1621 NONAME
+ _ZTV36QDeclarativePropertyValueInterceptor @ 1622 NONAME
+ _ZTV38QDeclarativeDebugObjectExpressionWatch @ 1623 NONAME
+ _ZTV39QDeclarativeNetworkAccessManagerFactory @ 1624 NONAME
+ _ZTV7QPacket @ 1625 NONAME
+ _ZThn16_N16QDeclarativeItem10classBeginEv @ 1626 NONAME
+ _ZThn16_N16QDeclarativeItem17componentCompleteEv @ 1627 NONAME
+ _ZThn16_N16QDeclarativeItemD0Ev @ 1628 NONAME
+ _ZThn16_N16QDeclarativeItemD1Ev @ 1629 NONAME
+ _ZThn16_N16QDeclarativeText17componentCompleteEv @ 1630 NONAME
+ _ZThn16_N16QDeclarativeTextD0Ev @ 1631 NONAME
+ _ZThn16_N16QDeclarativeTextD1Ev @ 1632 NONAME
+ _ZThn8_N16QDeclarativeItem10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 1633 NONAME
+ _ZThn8_N16QDeclarativeItem10sceneEventEP6QEvent @ 1634 NONAME
+ _ZThn8_N16QDeclarativeItem13keyPressEventEP9QKeyEvent @ 1635 NONAME
+ _ZThn8_N16QDeclarativeItem15keyReleaseEventEP9QKeyEvent @ 1636 NONAME
+ _ZThn8_N16QDeclarativeItem16inputMethodEventEP17QInputMethodEvent @ 1637 NONAME
+ _ZThn8_N16QDeclarativeItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 1638 NONAME
+ _ZThn8_N16QDeclarativeItemD0Ev @ 1639 NONAME
+ _ZThn8_N16QDeclarativeItemD1Ev @ 1640 NONAME
+ _ZThn8_N16QDeclarativeText15mousePressEventEP24QGraphicsSceneMouseEvent @ 1641 NONAME
+ _ZThn8_N16QDeclarativeText17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 1642 NONAME
+ _ZThn8_N16QDeclarativeText5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 1643 NONAME
+ _ZThn8_N16QDeclarativeTextD0Ev @ 1644 NONAME
+ _ZThn8_N16QDeclarativeTextD1Ev @ 1645 NONAME
+ _ZThn8_N16QDeclarativeViewD0Ev @ 1646 NONAME
+ _ZThn8_N16QDeclarativeViewD1Ev @ 1647 NONAME
+ _ZThn8_N19QDeclarativeBinding10setEnabledEb6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 1648 NONAME
+ _ZThn8_N19QDeclarativeBinding13propertyIndexEv @ 1649 NONAME
+ _ZThn8_N19QDeclarativeBinding6updateE6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 1650 NONAME
+ _ZThn8_N19QDeclarativeBindingD0Ev @ 1651 NONAME
+ _ZThn8_N19QDeclarativeBindingD1Ev @ 1652 NONAME
+ _ZThn8_N20QDeclarativeBehavior5writeERK8QVariant @ 1653 NONAME
+ _ZThn8_N20QDeclarativeBehavior9setTargetERK20QDeclarativeProperty @ 1654 NONAME
+ _ZThn8_N20QDeclarativeBehaviorD0Ev @ 1655 NONAME
+ _ZThn8_N20QDeclarativeBehaviorD1Ev @ 1656 NONAME
+ _ZThn8_N21QDeclarativeRectangle5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 1657 NONAME
+ _ZThn8_N22QDeclarativeStateGroup10classBeginEv @ 1658 NONAME
+ _ZThn8_N22QDeclarativeStateGroup17componentCompleteEv @ 1659 NONAME
+ _ZThn8_N22QDeclarativeStateGroupD0Ev @ 1660 NONAME
+ _ZThn8_N22QDeclarativeStateGroupD1Ev @ 1661 NONAME
+ _ZThn8_N27QDeclarativeExtensionPlugin16initializeEngineEP18QDeclarativeEnginePKc @ 1662 NONAME
+ _ZThn8_N27QDeclarativeExtensionPluginD0Ev @ 1663 NONAME
+ _ZThn8_N27QDeclarativeExtensionPluginD1Ev @ 1664 NONAME
+ _ZThn8_NK16QDeclarativeItem12boundingRectEv @ 1665 NONAME
+ _ZThn8_NK16QDeclarativeItem16inputMethodQueryEN2Qt16InputMethodQueryE @ 1666 NONAME
+ _ZThn8_NK16QDeclarativeText12boundingRectEv @ 1667 NONAME
+ _ZThn8_NK19QDeclarativeBinding10expressionEv @ 1668 NONAME
+ _ZThn8_NK21QDeclarativeRectangle12boundingRectEv @ 1669 NONAME
+ _Zls6QDebugP16QDeclarativeItem @ 1670 NONAME
+ _Zls6QDebugRK17QDeclarativeError @ 1671 NONAME
+ _ZlsR11QDataStreamRKN29QDeclarativeEngineDebugServer22QDeclarativeObjectDataE @ 1672 NONAME
+ _ZlsR11QDataStreamRKN29QDeclarativeEngineDebugServer26QDeclarativeObjectPropertyE @ 1673 NONAME
+ _ZrsR11QDataStreamRN29QDeclarativeEngineDebugServer22QDeclarativeObjectDataE @ 1674 NONAME
+ _ZrsR11QDataStreamRN29QDeclarativeEngineDebugServer26QDeclarativeObjectPropertyE @ 1675 NONAME
+ _ZN23QDeclarativeEngineDebug10newObjectsEv @ 1676 NONAME
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index c4ad84825a..c6d9ddb8bc 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -5957,7 +5957,7 @@ EXPORTS
_ZN7QDialog16staticMetaObjectE @ 5956 NONAME DATA 16
_ZN7QDialog18setSizeGripEnabledEb @ 5957 NONAME
_ZN7QDialog19getStaticMetaObjectEv @ 5958 NONAME
- _ZN7QDialog23symbianAdjustedPositionEv @ 5959 NONAME
+ _ZN7QDialog19s60AdjustedPositionEv @ 5959 NONAME ABSENT
_ZN7QDialog4doneEi @ 5960 NONAME
_ZN7QDialog4execEv @ 5961 NONAME
_ZN7QDialog4openEv @ 5962 NONAME
@@ -11821,275 +11821,276 @@ EXPORTS
_ZN24QImagePixmapCleanupHooks13isImageCachedERK6QImage @ 11820 NONAME
_ZN24QImagePixmapCleanupHooks14isPixmapCachedERK7QPixmap @ 11821 NONAME
_Z14qt_draw_glyphsP8QPainterPKjPK7QPointFi @ 11822 NONAME
- _ZN10QZipReader5closeEv @ 11823 NONAME
- _ZN10QZipReader8FileInfoC1ERKS0_ @ 11824 NONAME
- _ZN10QZipReader8FileInfoC1Ev @ 11825 NONAME
- _ZN10QZipReader8FileInfoC2ERKS0_ @ 11826 NONAME
- _ZN10QZipReader8FileInfoC2Ev @ 11827 NONAME
- _ZN10QZipReader8FileInfoD1Ev @ 11828 NONAME
- _ZN10QZipReader8FileInfoD2Ev @ 11829 NONAME
- _ZN10QZipReader8FileInfoaSERKS0_ @ 11830 NONAME
- _ZN10QZipReaderC1EP9QIODevice @ 11831 NONAME
- _ZN10QZipReaderC1ERK7QString6QFlagsIN9QIODevice12OpenModeFlagEE @ 11832 NONAME
- _ZN10QZipReaderC2EP9QIODevice @ 11833 NONAME
- _ZN10QZipReaderC2ERK7QString6QFlagsIN9QIODevice12OpenModeFlagEE @ 11834 NONAME
- _ZN10QZipReaderD1Ev @ 11835 NONAME
- _ZN10QZipReaderD2Ev @ 11836 NONAME
- _ZN11QStaticText12setTextWidthEf @ 11837 NONAME
- _ZN11QStaticText13setTextFormatEN2Qt10TextFormatE @ 11838 NONAME
- _ZN11QStaticText18setPerformanceHintENS_15PerformanceHintE @ 11839 NONAME
- _ZN11QStaticText6detachEv @ 11840 NONAME
- _ZN11QStaticText7prepareERK10QTransformRK5QFont @ 11841 NONAME
- _ZN11QStaticText7setTextERK7QString @ 11842 NONAME
- _ZN11QStaticTextC1ERK7QString @ 11843 NONAME
- _ZN11QStaticTextC1ERKS_ @ 11844 NONAME
- _ZN11QStaticTextC1Ev @ 11845 NONAME
- _ZN11QStaticTextC2ERK7QString @ 11846 NONAME
- _ZN11QStaticTextC2ERKS_ @ 11847 NONAME
- _ZN11QStaticTextC2Ev @ 11848 NONAME
- _ZN11QStaticTextD1Ev @ 11849 NONAME
- _ZN11QStaticTextD2Ev @ 11850 NONAME
- _ZN11QStaticTextaSERKS_ @ 11851 NONAME
- _ZN12QKeySequence6assignERK7QStringNS_14SequenceFormatE @ 11852 NONAME
- _ZN12QKeySequenceC1ERK7QStringNS_14SequenceFormatE @ 11853 NONAME
- _ZN12QKeySequenceC2ERK7QStringNS_14SequenceFormatE @ 11854 NONAME
- _ZN12QLineControl5pasteEN10QClipboard4ModeE @ 11855 NONAME
- _ZN12QPixmapCache10allPixmapsEv @ 11856 NONAME
- _ZN12QPixmapCache20flushDetachedPixmapsEv @ 11857 NONAME
- _ZN12QPixmapCache9totalUsedEv @ 11858 NONAME
- _ZN12QTextControl5pasteEN10QClipboard4ModeE @ 11859 NONAME
- _ZN13QGraphicsItem16updateMicroFocusEv @ 11860 NONAME
- _ZN13QIconEngineV28iconNameEv @ 11861 NONAME
- _ZN13QTextDocument19clearUndoRedoStacksENS_6StacksE @ 11862 NONAME
- _ZN14QEglProperties13setDeviceTypeEi @ 11863 NONAME
- _ZN14QPaintEngineEx19drawPixmapFragmentsEPKN8QPainter14PixmapFragmentEiRK7QPixmap6QFlagsINS0_18PixmapFragmentHintEE @ 11864 NONAME
- _ZN14QWidgetPrivate6renderEP12QPaintDeviceRK6QPointRK7QRegion6QFlagsIN7QWidget10RenderFlagEEb @ 11865 NONAME
- _ZN14QWindowSurface23setPartialUpdateSupportEb @ 11866 NONAME
- _ZN15QGraphicsObject12widthChangedEv @ 11867 NONAME
- _ZN15QGraphicsObject13heightChangedEv @ 11868 NONAME
- _ZN15QGraphicsObject15childrenChangedEv @ 11869 NONAME
- _ZN15QGraphicsObject16updateMicroFocusEv @ 11870 NONAME
- _ZN15QGraphicsWidget13layoutChangedEv @ 11871 NONAME
- _ZN15QGraphicsWidget15geometryChangedEv @ 11872 NONAME
- _ZN15QGraphicsWidget21setAutoFillBackgroundEb @ 11873 NONAME
- _ZN15QSplitterHandle11resizeEventEP12QResizeEvent @ 11874 NONAME
- _ZN16QFileSystemModel15directoryLoadedERK7QString @ 11875 NONAME
- _ZN16QPainterReplayer15processCommandsERK12QPaintBufferP8QPainterii @ 11876 NONAME
- _ZN18QTextureGlyphCache8populateEP11QFontEngineiPKjPK11QFixedPoint @ 11877 NONAME
- _ZN19QApplicationPrivate15getPixmapCursorEN2Qt11CursorShapeE @ 11878 NONAME
- _ZN20QGraphicsItemPrivate10resetWidthEv @ 11879 NONAME
- _ZN20QGraphicsItemPrivate11children_atEP24QDeclarativeListPropertyI15QGraphicsObjectEi @ 11880 NONAME
- _ZN20QGraphicsItemPrivate11resetHeightEv @ 11881 NONAME
- _ZN20QGraphicsItemPrivate12childrenListEv @ 11882 NONAME
- _ZN20QGraphicsItemPrivate14children_countEP24QDeclarativeListPropertyI15QGraphicsObjectE @ 11883 NONAME
- _ZN20QGraphicsItemPrivate15children_appendEP24QDeclarativeListPropertyI15QGraphicsObjectEPS1_ @ 11884 NONAME
- _ZN20QGraphicsItemPrivate24prependGraphicsTransformEP18QGraphicsTransform @ 11885 NONAME
- _ZN20QGraphicsItemPrivate30updatePaintedViewBoundingRectsEb @ 11886 NONAME
- _ZN20QGraphicsItemPrivate8setWidthEf @ 11887 NONAME
- _ZN20QGraphicsItemPrivate9setHeightEf @ 11888 NONAME
- _ZN20QGraphicsViewPrivate10centerViewEN13QGraphicsView14ViewportAnchorE @ 11889 NONAME
- _ZN20QGraphicsViewPrivate10updateRectERK5QRect @ 11890 NONAME
- _ZN20QGraphicsViewPrivate12updateRegionERK6QRectFRK10QTransform @ 11891 NONAME
- _ZN20QGraphicsViewPrivate12updateScrollEv @ 11892 NONAME
- _ZN20QGraphicsViewPrivate13setUpdateClipEP13QGraphicsItem @ 11893 NONAME
- _ZN20QGraphicsViewPrivate15storeMouseEventEP11QMouseEvent @ 11894 NONAME
- _ZN20QGraphicsViewPrivate18storeDragDropEventEPK27QGraphicsSceneDragDropEvent @ 11895 NONAME
- _ZN20QGraphicsViewPrivate19translateTouchEventEPS_P11QTouchEvent @ 11896 NONAME
- _ZN20QGraphicsViewPrivate20_q_setViewportCursorERK7QCursor @ 11897 NONAME
- _ZN20QGraphicsViewPrivate20replayLastMouseEventEv @ 11898 NONAME
- _ZN20QGraphicsViewPrivate21freeStyleOptionsArrayEP24QStyleOptionGraphicsItem @ 11899 NONAME
- _ZN20QGraphicsViewPrivate21mouseMoveEventHandlerEP11QMouseEvent @ 11900 NONAME
- _ZN20QGraphicsViewPrivate21processPendingUpdatesEv @ 11901 NONAME
- _ZN20QGraphicsViewPrivate21updateLastCenterPointEv @ 11902 NONAME
- _ZN20QGraphicsViewPrivate22_q_unsetViewportCursorEv @ 11903 NONAME
- _ZN20QGraphicsViewPrivate22allocStyleOptionsArrayEi @ 11904 NONAME
- _ZN20QGraphicsViewPrivate22recalculateContentSizeEv @ 11905 NONAME
- _ZN20QGraphicsViewPrivate26populateSceneDragDropEventEP27QGraphicsSceneDragDropEventP10QDropEvent @ 11906 NONAME
- _ZN20QGraphicsViewPrivate28updateInputMethodSensitivityEv @ 11907 NONAME
- _ZN20QGraphicsViewPrivateC1Ev @ 11908 NONAME
- _ZN20QGraphicsViewPrivateC2Ev @ 11909 NONAME
- _ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 11910 NONAME
- _ZN23QImageTextureGlyphCache17createTextureDataEii @ 11911 NONAME
- _ZN23QImageTextureGlyphCache17resizeTextureDataEii @ 11912 NONAME
- _ZN26QAbstractScrollAreaPrivate14layoutChildrenEv @ 11913 NONAME
- _ZN26QAbstractScrollAreaPrivate16replaceScrollBarEP10QScrollBarN2Qt11OrientationE @ 11914 NONAME
- _ZN26QAbstractScrollAreaPrivate23_q_showOrHideScrollBarsEv @ 11915 NONAME
- _ZN26QAbstractScrollAreaPrivate4initEv @ 11916 NONAME
- _ZN26QAbstractScrollAreaPrivate9_q_hslideEi @ 11917 NONAME
- _ZN26QAbstractScrollAreaPrivate9_q_vslideEi @ 11918 NONAME
- _ZN26QAbstractScrollAreaPrivateC1Ev @ 11919 NONAME
- _ZN26QAbstractScrollAreaPrivateC2Ev @ 11920 NONAME
- _ZN4QEgl10extensionsEv @ 11921 NONAME
- _ZN4QEgl11errorStringEi @ 11922 NONAME
- _ZN4QEgl12chooseConfigEPK14QEglPropertiesNS_16PixelFormatMatchE @ 11923 NONAME
- _ZN4QEgl12hasExtensionEPKc @ 11924 NONAME
- _ZN4QEgl12nativePixmapEP7QPixmap @ 11925 NONAME
- _ZN4QEgl12nativeWindowEP7QWidget @ 11926 NONAME
- _ZN4QEgl13createSurfaceEP12QPaintDeviceiPK14QEglProperties @ 11927 NONAME
- _ZN4QEgl13defaultConfigEiNS_3APIE6QFlagsINS_12ConfigOptionEE @ 11928 NONAME
- _ZN4QEgl13nativeDisplayEv @ 11929 NONAME
- _ZN4QEgl14dumpAllConfigsEv @ 11930 NONAME
- _ZN4QEgl17eglCreateImageKHREiiiiPKi @ 11931 NONAME
- _ZN4QEgl18eglDestroyImageKHREii @ 11932 NONAME
- _ZN4QEgl7displayEv @ 11933 NONAME
- _ZN6QColor12isValidColorERK7QString @ 11934 NONAME
- _ZN6QColor18setColorFromStringERK7QString @ 11935 NONAME
- _ZN6QLabel12setSelectionEii @ 11936 NONAME
- _ZN7QPixmap16convertFromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 11937 NONAME
- _ZN7QWizard11pageRemovedEi @ 11938 NONAME
- _ZN7QWizard13setSideWidgetEP7QWidget @ 11939 NONAME
- _ZN7QWizard9pageAddedEi @ 11940 NONAME
- _ZN8QPainter14PixmapFragment6createERK7QPointFRK6QRectFffff @ 11941 NONAME
- _ZN8QPainter14drawStaticTextERK7QPointFRK11QStaticText @ 11942 NONAME
- _ZN8QPainter19drawPixmapFragmentsEPKNS_14PixmapFragmentEiRK7QPixmap6QFlagsINS_18PixmapFragmentHintEE @ 11943 NONAME
- _ZN8QToolBar17visibilityChangedEb @ 11944 NONAME
- _ZN9QLineEdit18setPlaceholderTextERK7QString @ 11945 NONAME
- _ZNK10QZipReader10extractAllERK7QString @ 11946 NONAME
- _ZNK10QZipReader10isReadableEv @ 11947 NONAME
- _ZNK10QZipReader11entryInfoAtEi @ 11948 NONAME
- _ZNK10QZipReader12fileInfoListEv @ 11949 NONAME
- _ZNK10QZipReader5countEv @ 11950 NONAME
- _ZNK10QZipReader6deviceEv @ 11951 NONAME
- _ZNK10QZipReader6existsEv @ 11952 NONAME
- _ZNK10QZipReader6statusEv @ 11953 NONAME
- _ZNK10QZipReader8FileInfo7isValidEv @ 11954 NONAME
- _ZNK10QZipReader8fileDataERK7QString @ 11955 NONAME
- _ZNK11QEglContext12configAttribEi @ 11956 NONAME
- _ZNK11QStaticText10textFormatEv @ 11957 NONAME
- _ZNK11QStaticText15performanceHintEv @ 11958 NONAME
- _ZNK11QStaticText4sizeEv @ 11959 NONAME
- _ZNK11QStaticText4textEv @ 11960 NONAME
- _ZNK11QStaticText9textWidthEv @ 11961 NONAME
- _ZNK11QStaticTexteqERKS_ @ 11962 NONAME
- _ZNK11QStaticTextneERKS_ @ 11963 NONAME
- _ZNK11QTextCursor15positionInBlockEv @ 11964 NONAME
- _ZNK12QPaintBuffer13frameEndIndexEi @ 11965 NONAME
- _ZNK12QPaintBuffer15frameStartIndexEi @ 11966 NONAME
- _ZNK12QPaintBuffer15processCommandsEP8QPainterii @ 11967 NONAME
- _ZNK12QPaintBuffer18commandDescriptionEi @ 11968 NONAME
- _ZNK13QIntValidator5fixupER7QString @ 11969 NONAME
- _ZNK14QPlainTextEdit8anchorAtERK6QPoint @ 11970 NONAME
- _ZNK14QWindowSurface23hasPartialUpdateSupportEv @ 11971 NONAME
- _ZNK15QGraphicsWidget18autoFillBackgroundEv @ 11972 NONAME
- _ZNK19QItemSelectionRange7isEmptyEv @ 11973 NONAME
- _ZNK20QGraphicsItemPrivate5widthEv @ 11974 NONAME
- _ZNK20QGraphicsItemPrivate6heightEv @ 11975 NONAME
- _ZNK20QGraphicsViewPrivate10mapToSceneERK6QRectF @ 11976 NONAME
- _ZNK20QGraphicsViewPrivate10mapToSceneERK7QPointF @ 11977 NONAME
- _ZNK20QGraphicsViewPrivate13mapToViewRectEPK13QGraphicsItemRK6QRectF @ 11978 NONAME
- _ZNK20QGraphicsViewPrivate14mapRectToSceneERK5QRect @ 11979 NONAME
- _ZNK20QGraphicsViewPrivate14verticalScrollEv @ 11980 NONAME
- _ZNK20QGraphicsViewPrivate15mapToViewRegionEPK13QGraphicsItemRK6QRectF @ 11981 NONAME
- _ZNK20QGraphicsViewPrivate16horizontalScrollEv @ 11982 NONAME
- _ZNK20QGraphicsViewPrivate16mapRectFromSceneERK6QRectF @ 11983 NONAME
- _ZNK20QGraphicsViewPrivate16rubberBandRegionEPK7QWidgetRK5QRect @ 11984 NONAME
- _ZNK20QGraphicsViewPrivate9findItemsERK7QRegionPbRK10QTransform @ 11985 NONAME
- _ZNK23QImageTextureGlyphCache11glyphMarginEv @ 11986 NONAME
- _ZNK26QAbstractScrollAreaPrivate14contentsOffsetEv @ 11987 NONAME
- _ZNK5QIcon4nameEv @ 11988 NONAME
- _ZNK6QImage13bitPlaneCountEv @ 11989 NONAME
- _ZNK6QImage13constScanLineEi @ 11990 NONAME
- _ZNK6QImage9constBitsEv @ 11991 NONAME
- _ZNK6QLabel12selectedTextEv @ 11992 NONAME
- _ZNK6QLabel14selectionStartEv @ 11993 NONAME
- _ZNK6QLabel15hasSelectedTextEv @ 11994 NONAME
- _ZNK7QBezier11getSubRangeEff @ 11995 NONAME
- _ZNK7QBezier12addToPolygonEP9QPolygonFf @ 11996 NONAME
- _ZNK7QBezier5mapByERK10QTransform @ 11997 NONAME
- _ZNK7QBezier9toPolygonEf @ 11998 NONAME
- _ZNK7QWizard10sideWidgetEv @ 11999 NONAME
- _ZNK9QLineEdit15placeholderTextEv @ 12000 NONAME
- _ZNK9QTextLine17horizontalAdvanceEv @ 12001 NONAME
- _ZTI20QGraphicsViewPrivate @ 12002 NONAME
- _ZTI23QImageTextureGlyphCache @ 12003 NONAME
- _ZTI26QAbstractScrollAreaPrivate @ 12004 NONAME
- _ZTV20QGraphicsViewPrivate @ 12005 NONAME
- _ZTV23QImageTextureGlyphCache @ 12006 NONAME
- _ZTV26QAbstractScrollAreaPrivate @ 12007 NONAME
- _ZN11QTextCursor20setVerticalMovementXEi @ 12008 NONAME
- _ZN11QTextCursor23setKeepPositionOnInsertEb @ 12009 NONAME
- _ZN19QApplicationPrivate23runtime_graphics_systemE @ 12010 NONAME DATA 1
- _ZNK11QTextCursor17verticalMovementXEv @ 12011 NONAME
- _ZNK11QTextCursor20keepPositionOnInsertEv @ 12012 NONAME
- _ZNK12QFontMetrics5widthERK7QStringii @ 12013 NONAME
- _ZN11QStaticText13setTextOptionERK11QTextOption @ 12014 NONAME
- _ZNK10QTextBlock13textDirectionEv @ 12015 NONAME
+ _ZN10QImageData14convertInPlaceEN6QImage6FormatE6QFlagsIN2Qt19ImageConversionFlagEE @ 11823 NONAME
+ _ZN10QZipReader5closeEv @ 11824 NONAME
+ _ZN10QZipReader8FileInfoC1ERKS0_ @ 11825 NONAME
+ _ZN10QZipReader8FileInfoC1Ev @ 11826 NONAME
+ _ZN10QZipReader8FileInfoC2ERKS0_ @ 11827 NONAME
+ _ZN10QZipReader8FileInfoC2Ev @ 11828 NONAME
+ _ZN10QZipReader8FileInfoD1Ev @ 11829 NONAME
+ _ZN10QZipReader8FileInfoD2Ev @ 11830 NONAME
+ _ZN10QZipReader8FileInfoaSERKS0_ @ 11831 NONAME
+ _ZN10QZipReaderC1EP9QIODevice @ 11832 NONAME
+ _ZN10QZipReaderC1ERK7QString6QFlagsIN9QIODevice12OpenModeFlagEE @ 11833 NONAME
+ _ZN10QZipReaderC2EP9QIODevice @ 11834 NONAME
+ _ZN10QZipReaderC2ERK7QString6QFlagsIN9QIODevice12OpenModeFlagEE @ 11835 NONAME
+ _ZN10QZipReaderD1Ev @ 11836 NONAME
+ _ZN10QZipReaderD2Ev @ 11837 NONAME
+ _ZN11QEglContext21swapBuffersRegion2NOKEiPK7QRegion @ 11838 NONAME
+ _ZN11QPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 11839 NONAME
+ _ZN11QStaticText12setTextWidthEf @ 11840 NONAME
+ _ZN11QStaticText13setTextFormatEN2Qt10TextFormatE @ 11841 NONAME
+ _ZN11QStaticText13setTextOptionERK11QTextOption @ 11842 NONAME
+ _ZN11QStaticText18setPerformanceHintENS_15PerformanceHintE @ 11843 NONAME
+ _ZN11QStaticText6detachEv @ 11844 NONAME
+ _ZN11QStaticText7prepareERK10QTransformRK5QFont @ 11845 NONAME
+ _ZN11QStaticText7setTextERK7QString @ 11846 NONAME
+ _ZN11QStaticTextC1ERK7QString @ 11847 NONAME
+ _ZN11QStaticTextC1ERKS_ @ 11848 NONAME
+ _ZN11QStaticTextC1Ev @ 11849 NONAME
+ _ZN11QStaticTextC2ERK7QString @ 11850 NONAME
+ _ZN11QStaticTextC2ERKS_ @ 11851 NONAME
+ _ZN11QStaticTextC2Ev @ 11852 NONAME
+ _ZN11QStaticTextD1Ev @ 11853 NONAME
+ _ZN11QStaticTextD2Ev @ 11854 NONAME
+ _ZN11QStaticTextaSERKS_ @ 11855 NONAME
+ _ZN11QTextCursor20setVerticalMovementXEi @ 11856 NONAME
+ _ZN11QTextCursor23setKeepPositionOnInsertEb @ 11857 NONAME
+ _ZN12QKeySequence6assignERK7QStringNS_14SequenceFormatE @ 11858 NONAME
+ _ZN12QKeySequenceC1ERK7QStringNS_14SequenceFormatE @ 11859 NONAME
+ _ZN12QKeySequenceC2ERK7QStringNS_14SequenceFormatE @ 11860 NONAME
+ _ZN12QLineControl5pasteEN10QClipboard4ModeE @ 11861 NONAME
+ _ZN12QPixmapCache10allPixmapsEv @ 11862 NONAME
+ _ZN12QPixmapCache20flushDetachedPixmapsEv @ 11863 NONAME
+ _ZN12QPixmapCache9totalUsedEv @ 11864 NONAME
+ _ZN12QTextControl5pasteEN10QClipboard4ModeE @ 11865 NONAME
+ _ZN13QGraphicsItem16updateMicroFocusEv @ 11866 NONAME
+ _ZN13QIconEngineV28iconNameEv @ 11867 NONAME
+ _ZN13QS60MainAppUi11HandleErrorEiRK14SExtendedErrorR6TDes16S4_ @ 11868 NONAME
+ _ZN13QS60MainAppUi13PrepareToExitEv @ 11869 NONAME
+ _ZN13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 11870 NONAME
+ _ZN13QS60MainAppUi15ProcessCommandLEi @ 11871 NONAME
+ _ZN13QS60MainAppUi18HandleSystemEventLERK8TWsEvent @ 11872 NONAME
+ _ZN13QS60MainAppUi19Reserved_MtsmObjectEv @ 11873 NONAME
+ _ZN13QS60MainAppUi21Reserved_MtsmPositionEv @ 11874 NONAME
+ _ZN13QS60MainAppUi22HandleForegroundEventLEi @ 11875 NONAME
+ _ZN13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 11876 NONAME
+ _ZN13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 11877 NONAME
+ _ZN13QS60MainAppUi26HandleScreenDeviceChangedLEv @ 11878 NONAME
+ _ZN13QS60MainAppUi31HandleApplicationSpecificEventLEiRK8TWsEvent @ 11879 NONAME
+ _ZN13QS60MainAppUi4ExitEv @ 11880 NONAME
+ _ZN13QS60MainAppUi9SetFadedLEi @ 11881 NONAME
+ _ZN13QTextDocument19clearUndoRedoStacksENS_6StacksE @ 11882 NONAME
+ _ZN14QEglProperties13setDeviceTypeEi @ 11883 NONAME
+ _ZN14QGraphicsScale13xScaleChangedEv @ 11884 NONAME
+ _ZN14QGraphicsScale13yScaleChangedEv @ 11885 NONAME
+ _ZN14QGraphicsScale13zScaleChangedEv @ 11886 NONAME
+ _ZN14QPaintEngineEx19drawPixmapFragmentsEPKN8QPainter14PixmapFragmentEiRK7QPixmap6QFlagsINS0_18PixmapFragmentHintEE @ 11887 NONAME
+ _ZN14QWidgetPrivate6renderEP12QPaintDeviceRK6QPointRK7QRegion6QFlagsIN7QWidget10RenderFlagEEb @ 11888 NONAME
+ _ZN14QWindowSurface23setPartialUpdateSupportEb @ 11889 NONAME
+ _ZN15QGraphicsObject12widthChangedEv @ 11890 NONAME
+ _ZN15QGraphicsObject13heightChangedEv @ 11891 NONAME
+ _ZN15QGraphicsObject15childrenChangedEv @ 11892 NONAME
+ _ZN15QGraphicsObject16updateMicroFocusEv @ 11893 NONAME
+ _ZN15QGraphicsSystem16createPixmapDataEP11QPixmapData @ 11894 NONAME
+ _ZN15QGraphicsWidget13layoutChangedEv @ 11895 NONAME
+ _ZN15QGraphicsWidget15geometryChangedEv @ 11896 NONAME
+ _ZN15QGraphicsWidget21setAutoFillBackgroundEb @ 11897 NONAME
+ _ZN15QSplitterHandle11resizeEventEP12QResizeEvent @ 11898 NONAME
+ _ZN16QFileSystemModel15directoryLoadedERK7QString @ 11899 NONAME
+ _ZN16QPainterReplayer15processCommandsERK12QPaintBufferP8QPainterii @ 11900 NONAME
+ _ZN16QS60MainDocument9OpenFileLERP10CFileStoreR5RFile @ 11901 NONAME
+ _ZN16QS60MainDocument9OpenFileLEiRK7TDesC16R3RFs @ 11902 NONAME
+ _ZN17QRasterPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 11903 NONAME
+ _ZN17QRasterPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 11904 NONAME
+ _ZN17QRasterPixmapData4copyEPK11QPixmapDataRK5QRect @ 11905 NONAME
+ _ZN17QRasterPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 11906 NONAME
+ _ZN18QRuntimePixmapData12readBackInfoEv @ 11907 NONAME
+ _ZN18QRuntimePixmapData12toNativeTypeEN11QPixmapData10NativeTypeE @ 11908 NONAME
+ _ZN18QRuntimePixmapData14fromNativeTypeEPvN11QPixmapData10NativeTypeE @ 11909 NONAME
+ _ZN18QRuntimePixmapData15setAlphaChannelERK7QPixmap @ 11910 NONAME
+ _ZN18QRuntimePixmapData4copyEPK11QPixmapDataRK5QRect @ 11911 NONAME
+ _ZN18QRuntimePixmapData4fillERK6QColor @ 11912 NONAME
+ _ZN18QRuntimePixmapData6bufferEv @ 11913 NONAME
+ _ZN18QRuntimePixmapData6resizeEii @ 11914 NONAME
+ _ZN18QRuntimePixmapData6scrollEiiRK5QRect @ 11915 NONAME
+ _ZN18QRuntimePixmapData7setMaskERK7QBitmap @ 11916 NONAME
+ _ZN18QRuntimePixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 11917 NONAME
+ _ZN18QRuntimePixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 11918 NONAME
+ _ZN18QRuntimePixmapData9fromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 11919 NONAME
+ _ZN18QRuntimePixmapDataC1EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 11920 NONAME
+ _ZN18QRuntimePixmapDataC2EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 11921 NONAME
+ _ZN18QRuntimePixmapDataD0Ev @ 11922 NONAME
+ _ZN18QRuntimePixmapDataD1Ev @ 11923 NONAME
+ _ZN18QRuntimePixmapDataD2Ev @ 11924 NONAME
+ _ZN18QTextureGlyphCache8populateEP11QFontEngineiPKjPK11QFixedPoint @ 11925 NONAME
+ _ZN19QApplicationPrivate14_q_aboutToQuitEv @ 11926 NONAME
+ _ZN19QApplicationPrivate15getPixmapCursorEN2Qt11CursorShapeE @ 11927 NONAME
+ _ZN19QApplicationPrivate23runtime_graphics_systemE @ 11928 NONAME DATA 1
+ _ZN19QS60MainApplication13NewAppServerLERP13CApaAppServer @ 11929 NONAME
+ _ZN19QS60MainApplication16PreDocConstructLEv @ 11930 NONAME
+ _ZN20QGraphicsItemPrivate10resetWidthEv @ 11931 NONAME
+ _ZN20QGraphicsItemPrivate11children_atEP24QDeclarativeListPropertyI15QGraphicsObjectEi @ 11932 NONAME
+ _ZN20QGraphicsItemPrivate11resetHeightEv @ 11933 NONAME
+ _ZN20QGraphicsItemPrivate12childrenListEv @ 11934 NONAME
+ _ZN20QGraphicsItemPrivate14children_countEP24QDeclarativeListPropertyI15QGraphicsObjectE @ 11935 NONAME
+ _ZN20QGraphicsItemPrivate15children_appendEP24QDeclarativeListPropertyI15QGraphicsObjectEPS1_ @ 11936 NONAME
+ _ZN20QGraphicsItemPrivate20focusScopeItemChangeEb @ 11937 NONAME
+ _ZN20QGraphicsItemPrivate24prependGraphicsTransformEP18QGraphicsTransform @ 11938 NONAME
+ _ZN20QGraphicsItemPrivate30updatePaintedViewBoundingRectsEb @ 11939 NONAME
+ _ZN20QGraphicsItemPrivate8setWidthEf @ 11940 NONAME
+ _ZN20QGraphicsItemPrivate9setHeightEf @ 11941 NONAME
+ _ZN20QGraphicsViewPrivate10centerViewEN13QGraphicsView14ViewportAnchorE @ 11942 NONAME
+ _ZN20QGraphicsViewPrivate10updateRectERK5QRect @ 11943 NONAME
+ _ZN20QGraphicsViewPrivate12updateRegionERK6QRectFRK10QTransform @ 11944 NONAME
+ _ZN20QGraphicsViewPrivate12updateScrollEv @ 11945 NONAME
+ _ZN20QGraphicsViewPrivate13setUpdateClipEP13QGraphicsItem @ 11946 NONAME
+ _ZN20QGraphicsViewPrivate15storeMouseEventEP11QMouseEvent @ 11947 NONAME
+ _ZN20QGraphicsViewPrivate18storeDragDropEventEPK27QGraphicsSceneDragDropEvent @ 11948 NONAME
+ _ZN20QGraphicsViewPrivate19translateTouchEventEPS_P11QTouchEvent @ 11949 NONAME
+ _ZN20QGraphicsViewPrivate20_q_setViewportCursorERK7QCursor @ 11950 NONAME
+ _ZN20QGraphicsViewPrivate20replayLastMouseEventEv @ 11951 NONAME
+ _ZN20QGraphicsViewPrivate21freeStyleOptionsArrayEP24QStyleOptionGraphicsItem @ 11952 NONAME
+ _ZN20QGraphicsViewPrivate21mouseMoveEventHandlerEP11QMouseEvent @ 11953 NONAME
+ _ZN20QGraphicsViewPrivate21processPendingUpdatesEv @ 11954 NONAME
+ _ZN20QGraphicsViewPrivate21updateLastCenterPointEv @ 11955 NONAME
+ _ZN20QGraphicsViewPrivate22_q_unsetViewportCursorEv @ 11956 NONAME
+ _ZN20QGraphicsViewPrivate22allocStyleOptionsArrayEi @ 11957 NONAME
+ _ZN20QGraphicsViewPrivate22recalculateContentSizeEv @ 11958 NONAME
+ _ZN20QGraphicsViewPrivate26populateSceneDragDropEventEP27QGraphicsSceneDragDropEventP10QDropEvent @ 11959 NONAME
+ _ZN20QGraphicsViewPrivate28updateInputMethodSensitivityEv @ 11960 NONAME
+ _ZN20QGraphicsViewPrivateC1Ev @ 11961 NONAME
+ _ZN20QGraphicsViewPrivateC2Ev @ 11962 NONAME
+ _ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 11963 NONAME
+ _ZN23QImageTextureGlyphCache17createTextureDataEii @ 11964 NONAME
+ _ZN23QImageTextureGlyphCache17resizeTextureDataEii @ 11965 NONAME
+ _ZN26QAbstractScrollAreaPrivate14layoutChildrenEv @ 11966 NONAME
+ _ZN26QAbstractScrollAreaPrivate16replaceScrollBarEP10QScrollBarN2Qt11OrientationE @ 11967 NONAME
+ _ZN26QAbstractScrollAreaPrivate23_q_showOrHideScrollBarsEv @ 11968 NONAME
+ _ZN26QAbstractScrollAreaPrivate4initEv @ 11969 NONAME
+ _ZN26QAbstractScrollAreaPrivate9_q_hslideEi @ 11970 NONAME
+ _ZN26QAbstractScrollAreaPrivate9_q_vslideEi @ 11971 NONAME
+ _ZN26QAbstractScrollAreaPrivateC1Ev @ 11972 NONAME
+ _ZN26QAbstractScrollAreaPrivateC2Ev @ 11973 NONAME
+ _ZN4QEgl10extensionsEv @ 11974 NONAME
+ _ZN4QEgl11errorStringEi @ 11975 NONAME
+ _ZN4QEgl12chooseConfigEPK14QEglPropertiesNS_16PixelFormatMatchE @ 11976 NONAME
+ _ZN4QEgl12hasExtensionEPKc @ 11977 NONAME
+ _ZN4QEgl12nativePixmapEP7QPixmap @ 11978 NONAME
+ _ZN4QEgl12nativeWindowEP7QWidget @ 11979 NONAME
+ _ZN4QEgl13createSurfaceEP12QPaintDeviceiPK14QEglProperties @ 11980 NONAME
+ _ZN4QEgl13defaultConfigEiNS_3APIE6QFlagsINS_12ConfigOptionEE @ 11981 NONAME
+ _ZN4QEgl13nativeDisplayEv @ 11982 NONAME
+ _ZN4QEgl14dumpAllConfigsEv @ 11983 NONAME
+ _ZN4QEgl17eglCreateImageKHREiiiiPKi @ 11984 NONAME
+ _ZN4QEgl18eglDestroyImageKHREii @ 11985 NONAME
+ _ZN4QEgl24eglSwapBuffersRegion2NOKEiiiPKi @ 11986 NONAME
+ _ZN4QEgl7displayEv @ 11987 NONAME
+ _ZN6QColor12isValidColorERK7QString @ 11988 NONAME
+ _ZN6QColor18setColorFromStringERK7QString @ 11989 NONAME
+ _ZN6QLabel12setSelectionEii @ 11990 NONAME
+ _ZN7QDialog23symbianAdjustedPositionEv @ 11991 NONAME
+ _ZN7QPixmap15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 11992 NONAME
+ _ZN7QPixmap16convertFromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 11993 NONAME
+ _ZN7QWizard11pageRemovedEi @ 11994 NONAME
+ _ZN7QWizard13setSideWidgetEP7QWidget @ 11995 NONAME
+ _ZN7QWizard9pageAddedEi @ 11996 NONAME
+ _ZN8QPainter14PixmapFragment6createERK7QPointFRK6QRectFffff @ 11997 NONAME
+ _ZN8QPainter14drawStaticTextERK7QPointFRK11QStaticText @ 11998 NONAME
+ _ZN8QPainter19drawPixmapFragmentsEPKNS_14PixmapFragmentEiRK7QPixmap6QFlagsINS_18PixmapFragmentHintEE @ 11999 NONAME
+ _ZN8QToolBar17visibilityChangedEb @ 12000 NONAME
+ _ZN9QLineEdit18setPlaceholderTextERK7QString @ 12001 NONAME
+ _ZNK10QTextBlock13textDirectionEv @ 12002 NONAME
+ _ZNK10QZipReader10extractAllERK7QString @ 12003 NONAME
+ _ZNK10QZipReader10isReadableEv @ 12004 NONAME
+ _ZNK10QZipReader11entryInfoAtEi @ 12005 NONAME
+ _ZNK10QZipReader12fileInfoListEv @ 12006 NONAME
+ _ZNK10QZipReader5countEv @ 12007 NONAME
+ _ZNK10QZipReader6deviceEv @ 12008 NONAME
+ _ZNK10QZipReader6existsEv @ 12009 NONAME
+ _ZNK10QZipReader6statusEv @ 12010 NONAME
+ _ZNK10QZipReader8FileInfo7isValidEv @ 12011 NONAME
+ _ZNK10QZipReader8fileDataERK7QString @ 12012 NONAME
+ _ZNK11QEglContext12configAttribEi @ 12013 NONAME
+ _ZNK11QPixmapData7toImageERK5QRect @ 12014 NONAME
+ _ZNK11QStaticText10textFormatEv @ 12015 NONAME
_ZNK11QStaticText10textOptionEv @ 12016 NONAME
- _ZNK11QTextEngine13isRightToLeftEv @ 12017 NONAME
- _ZNK14QWidgetPrivate22childAtRecursiveHelperERK6QPointbb @ 12018 NONAME
- _ZN10QImageData14convertInPlaceEN6QImage6FormatE6QFlagsIN2Qt19ImageConversionFlagEE @ 12019 NONAME
- _ZN17QRasterPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 12020 NONAME
- _ZN17QRasterPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12021 NONAME
- _ZN15QGraphicsSystem16createPixmapDataEP11QPixmapData @ 12022 NONAME
- _ZN17QRasterPixmapData4copyEPK11QPixmapDataRK5QRect @ 12023 NONAME
- _ZNK11QPixmapData7toImageERK5QRect @ 12024 NONAME
- _ZNK17QRasterPixmapData7toImageERK5QRect @ 12025 NONAME
- _ZTV15QGraphicsSystem @ 12026 NONAME
- _ZN11QPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12027 NONAME
- _ZN17QRasterPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12028 NONAME
- _ZN18QRuntimePixmapData12readBackInfoEv @ 12029 NONAME
- _ZN18QRuntimePixmapData12toNativeTypeEN11QPixmapData10NativeTypeE @ 12030 NONAME
- _ZN18QRuntimePixmapData14fromNativeTypeEPvN11QPixmapData10NativeTypeE @ 12031 NONAME
- _ZN18QRuntimePixmapData15setAlphaChannelERK7QPixmap @ 12032 NONAME
- _ZN18QRuntimePixmapData4copyEPK11QPixmapDataRK5QRect @ 12033 NONAME
- _ZN18QRuntimePixmapData4fillERK6QColor @ 12034 NONAME
- _ZN18QRuntimePixmapData6bufferEv @ 12035 NONAME
- _ZN18QRuntimePixmapData6resizeEii @ 12036 NONAME
- _ZN18QRuntimePixmapData6scrollEiiRK5QRect @ 12037 NONAME
- _ZN18QRuntimePixmapData7setMaskERK7QBitmap @ 12038 NONAME
- _ZN18QRuntimePixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12039 NONAME
- _ZN18QRuntimePixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12040 NONAME
- _ZN18QRuntimePixmapData9fromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 12041 NONAME
- _ZN18QRuntimePixmapDataC1EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 12042 NONAME
- _ZN18QRuntimePixmapDataC2EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 12043 NONAME
- _ZN18QRuntimePixmapDataD0Ev @ 12044 NONAME
- _ZN18QRuntimePixmapDataD1Ev @ 12045 NONAME
- _ZN18QRuntimePixmapDataD2Ev @ 12046 NONAME
- _ZN7QPixmap15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12047 NONAME
- _ZNK18QRuntimePixmapData11memoryUsageEv @ 12048 NONAME ABSENT
- _ZNK18QRuntimePixmapData11paintEngineEv @ 12049 NONAME
- _ZNK18QRuntimePixmapData11runtimeDataEv @ 12050 NONAME
- _ZNK18QRuntimePixmapData11transformedERK10QTransformN2Qt18TransformationModeE @ 12051 NONAME
- _ZNK18QRuntimePixmapData12alphaChannelEv @ 12052 NONAME
- _ZNK18QRuntimePixmapData15hasAlphaChannelEv @ 12053 NONAME
- _ZNK18QRuntimePixmapData26createCompatiblePixmapDataEv @ 12054 NONAME
- _ZNK18QRuntimePixmapData4maskEv @ 12055 NONAME
- _ZNK18QRuntimePixmapData6metricEN12QPaintDevice17PaintDeviceMetricE @ 12056 NONAME
- _ZNK18QRuntimePixmapData7toImageEv @ 12057 NONAME
- _ZTI18QRuntimePixmapData @ 12058 NONAME
- _ZTV18QRuntimePixmapData @ 12059 NONAME
- _ZN11QEglContext21swapBuffersRegion2NOKEiPK7QRegion @ 12060 NONAME
- _ZN4QEgl24eglSwapBuffersRegion2NOKEiiiPKi @ 12061 NONAME
- _ZN13QS60MainAppUi11HandleErrorEiRK14SExtendedErrorR6TDes16S4_ @ 12062 NONAME
- _ZN13QS60MainAppUi13PrepareToExitEv @ 12063 NONAME
- _ZN13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12064 NONAME
- _ZN13QS60MainAppUi15ProcessCommandLEi @ 12065 NONAME
- _ZN13QS60MainAppUi18HandleSystemEventLERK8TWsEvent @ 12066 NONAME
- _ZN13QS60MainAppUi19Reserved_MtsmObjectEv @ 12067 NONAME
- _ZN13QS60MainAppUi21Reserved_MtsmPositionEv @ 12068 NONAME
- _ZN13QS60MainAppUi22HandleForegroundEventLEi @ 12069 NONAME
- _ZN13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12070 NONAME
- _ZN13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12071 NONAME
- _ZN13QS60MainAppUi26HandleScreenDeviceChangedLEv @ 12072 NONAME
- _ZN13QS60MainAppUi31HandleApplicationSpecificEventLEiRK8TWsEvent @ 12073 NONAME
- _ZN13QS60MainAppUi4ExitEv @ 12074 NONAME
- _ZN13QS60MainAppUi9SetFadedLEi @ 12075 NONAME
- _ZN16QS60MainDocument9OpenFileLERP10CFileStoreR5RFile @ 12076 NONAME
- _ZN16QS60MainDocument9OpenFileLEiRK7TDesC16R3RFs @ 12077 NONAME
- _ZN19QS60MainApplication13NewAppServerLERP13CApaAppServer @ 12078 NONAME
- _ZN19QS60MainApplication16PreDocConstructLEv @ 12079 NONAME
- _ZNK13QS60MainAppUi15ApplicationRectEv @ 12080 NONAME
- _ZNK19QS60MainApplication13OpenIniFileLCER3RFs @ 12081 NONAME
- _ZThn100_N13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12082 NONAME
- _ZThn24_N13QS60MainAppUi15ProcessCommandLEi @ 12083 NONAME
- _ZThn40_N13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12084 NONAME
- _ZThn92_N13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12085 NONAME
- _ZN18QTapAndHoldGesture10setTimeoutEi @ 12086 NONAME
- _ZN18QTapAndHoldGesture7timeoutEv @ 12087 NONAME
- _ZN20QGraphicsItemPrivate20focusScopeItemChangeEb @ 12088 NONAME
- _ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectFb @ 12089 NONAME
- _ZN14QGraphicsScale13xScaleChangedEv @ 12090 NONAME
- _ZN14QGraphicsScale13yScaleChangedEv @ 12091 NONAME
- _ZN14QGraphicsScale13zScaleChangedEv @ 12092 NONAME
- _ZN19QApplicationPrivate14_q_aboutToQuitEv @ 12093 NONAME
+ _ZNK11QStaticText15performanceHintEv @ 12017 NONAME
+ _ZNK11QStaticText4sizeEv @ 12018 NONAME
+ _ZNK11QStaticText4textEv @ 12019 NONAME
+ _ZNK11QStaticText9textWidthEv @ 12020 NONAME
+ _ZNK11QStaticTexteqERKS_ @ 12021 NONAME
+ _ZNK11QStaticTextneERKS_ @ 12022 NONAME
+ _ZNK11QTextCursor15positionInBlockEv @ 12023 NONAME
+ _ZNK11QTextCursor17verticalMovementXEv @ 12024 NONAME
+ _ZNK11QTextCursor20keepPositionOnInsertEv @ 12025 NONAME
+ _ZNK11QTextEngine13isRightToLeftEv @ 12026 NONAME
+ _ZNK12QFontMetrics5widthERK7QStringii @ 12027 NONAME
+ _ZNK12QPaintBuffer13frameEndIndexEi @ 12028 NONAME
+ _ZNK12QPaintBuffer15frameStartIndexEi @ 12029 NONAME
+ _ZNK12QPaintBuffer15processCommandsEP8QPainterii @ 12030 NONAME
+ _ZNK12QPaintBuffer18commandDescriptionEi @ 12031 NONAME
+ _ZNK13QIntValidator5fixupER7QString @ 12032 NONAME
+ _ZNK13QS60MainAppUi15ApplicationRectEv @ 12033 NONAME
+ _ZNK14QPlainTextEdit8anchorAtERK6QPoint @ 12034 NONAME
+ _ZNK14QWidgetPrivate22childAtRecursiveHelperERK6QPointbb @ 12035 NONAME
+ _ZNK14QWindowSurface23hasPartialUpdateSupportEv @ 12036 NONAME
+ _ZNK15QGraphicsWidget18autoFillBackgroundEv @ 12037 NONAME
+ _ZNK17QRasterPixmapData7toImageERK5QRect @ 12038 NONAME
+ _ZNK18QRuntimePixmapData11paintEngineEv @ 12039 NONAME
+ _ZNK18QRuntimePixmapData11runtimeDataEv @ 12040 NONAME
+ _ZNK18QRuntimePixmapData11transformedERK10QTransformN2Qt18TransformationModeE @ 12041 NONAME
+ _ZNK18QRuntimePixmapData12alphaChannelEv @ 12042 NONAME
+ _ZNK18QRuntimePixmapData15hasAlphaChannelEv @ 12043 NONAME
+ _ZNK18QRuntimePixmapData26createCompatiblePixmapDataEv @ 12044 NONAME
+ _ZNK18QRuntimePixmapData4maskEv @ 12045 NONAME
+ _ZNK18QRuntimePixmapData6metricEN12QPaintDevice17PaintDeviceMetricE @ 12046 NONAME
+ _ZNK18QRuntimePixmapData7toImageEv @ 12047 NONAME
+ _ZNK19QItemSelectionRange7isEmptyEv @ 12048 NONAME
+ _ZNK19QS60MainApplication13OpenIniFileLCER3RFs @ 12049 NONAME
+ _ZNK20QGraphicsItemPrivate5widthEv @ 12050 NONAME
+ _ZNK20QGraphicsItemPrivate6heightEv @ 12051 NONAME
+ _ZNK20QGraphicsViewPrivate10mapToSceneERK6QRectF @ 12052 NONAME
+ _ZNK20QGraphicsViewPrivate10mapToSceneERK7QPointF @ 12053 NONAME
+ _ZNK20QGraphicsViewPrivate13mapToViewRectEPK13QGraphicsItemRK6QRectF @ 12054 NONAME
+ _ZNK20QGraphicsViewPrivate14mapRectToSceneERK5QRect @ 12055 NONAME
+ _ZNK20QGraphicsViewPrivate14verticalScrollEv @ 12056 NONAME
+ _ZNK20QGraphicsViewPrivate15mapToViewRegionEPK13QGraphicsItemRK6QRectF @ 12057 NONAME
+ _ZNK20QGraphicsViewPrivate16horizontalScrollEv @ 12058 NONAME
+ _ZNK20QGraphicsViewPrivate16mapRectFromSceneERK6QRectF @ 12059 NONAME
+ _ZNK20QGraphicsViewPrivate16rubberBandRegionEPK7QWidgetRK5QRect @ 12060 NONAME
+ _ZNK20QGraphicsViewPrivate9findItemsERK7QRegionPbRK10QTransform @ 12061 NONAME
+ _ZNK23QImageTextureGlyphCache11glyphMarginEv @ 12062 NONAME
+ _ZNK26QAbstractScrollAreaPrivate14contentsOffsetEv @ 12063 NONAME
+ _ZNK5QIcon4nameEv @ 12064 NONAME
+ _ZNK6QImage13bitPlaneCountEv @ 12065 NONAME
+ _ZNK6QImage13constScanLineEi @ 12066 NONAME
+ _ZNK6QImage9constBitsEv @ 12067 NONAME
+ _ZNK6QLabel12selectedTextEv @ 12068 NONAME
+ _ZNK6QLabel14selectionStartEv @ 12069 NONAME
+ _ZNK6QLabel15hasSelectedTextEv @ 12070 NONAME
+ _ZNK7QBezier11getSubRangeEff @ 12071 NONAME
+ _ZNK7QBezier12addToPolygonEP9QPolygonFf @ 12072 NONAME
+ _ZNK7QBezier5mapByERK10QTransform @ 12073 NONAME
+ _ZNK7QBezier9toPolygonEf @ 12074 NONAME
+ _ZNK7QWizard10sideWidgetEv @ 12075 NONAME
+ _ZNK9QLineEdit15placeholderTextEv @ 12076 NONAME
+ _ZNK9QTextLine17horizontalAdvanceEv @ 12077 NONAME
+ _ZTI18QRuntimePixmapData @ 12078 NONAME
+ _ZTI20QGraphicsViewPrivate @ 12079 NONAME
+ _ZTI23QImageTextureGlyphCache @ 12080 NONAME
+ _ZTI26QAbstractScrollAreaPrivate @ 12081 NONAME
+ _ZTV15QGraphicsSystem @ 12082 NONAME
+ _ZTV18QRuntimePixmapData @ 12083 NONAME
+ _ZTV20QGraphicsViewPrivate @ 12084 NONAME
+ _ZTV23QImageTextureGlyphCache @ 12085 NONAME
+ _ZTV26QAbstractScrollAreaPrivate @ 12086 NONAME
+ _ZThn100_N13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12087 NONAME
+ _ZThn24_N13QS60MainAppUi15ProcessCommandLEi @ 12088 NONAME
+ _ZThn40_N13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12089 NONAME
+ _ZThn92_N13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12090 NONAME
+ _ZN11QFontEngine16lastRightBearingERK12QGlyphLayoutb @ 12091 NONAME
+ _ZN18QTapAndHoldGesture10setTimeoutEi @ 12092 NONAME
+ _ZN18QTapAndHoldGesture7timeoutEv @ 12093 NONAME
+ _ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectFb @ 12094 NONAME
diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def
index 6b34a1929c..f13fab3e02 100644
--- a/src/s60installs/eabi/QtNetworku.def
+++ b/src/s60installs/eabi/QtNetworku.def
@@ -1009,164 +1009,163 @@ EXPORTS
_ZN13QBearerEngineD0Ev @ 1008 NONAME
_ZN13QBearerEngineD1Ev @ 1009 NONAME
_ZN13QBearerEngineD2Ev @ 1010 NONAME
- _ZN15QNetworkRequest11setPriorityENS_8PriorityE @ 1011 NONAME
- _ZN15QNetworkSession11qt_metacallEN11QMetaObject4CallEiPPv @ 1012 NONAME
- _ZN15QNetworkSession11qt_metacastEPKc @ 1013 NONAME
- _ZN15QNetworkSession12stateChangedENS_5StateE @ 1014 NONAME
- _ZN15QNetworkSession13connectNotifyEPKc @ 1015 NONAME
- _ZN15QNetworkSession13waitForOpenedEi @ 1016 NONAME
- _ZN15QNetworkSession16disconnectNotifyEPKc @ 1017 NONAME
- _ZN15QNetworkSession16staticMetaObjectE @ 1018 NONAME DATA 16
- _ZN15QNetworkSession18setSessionPropertyERK7QStringRK8QVariant @ 1019 NONAME
- _ZN15QNetworkSession19getStaticMetaObjectEv @ 1020 NONAME
- _ZN15QNetworkSession25newConfigurationActivatedEv @ 1021 NONAME
- _ZN15QNetworkSession29preferredConfigurationChangedERK21QNetworkConfigurationb @ 1022 NONAME
- _ZN15QNetworkSession4openEv @ 1023 NONAME
- _ZN15QNetworkSession4stopEv @ 1024 NONAME
- _ZN15QNetworkSession5closeEv @ 1025 NONAME
- _ZN15QNetworkSession5errorENS_12SessionErrorE @ 1026 NONAME
- _ZN15QNetworkSession6acceptEv @ 1027 NONAME
- _ZN15QNetworkSession6closedEv @ 1028 NONAME
- _ZN15QNetworkSession6ignoreEv @ 1029 NONAME
- _ZN15QNetworkSession6openedEv @ 1030 NONAME
- _ZN15QNetworkSession6rejectEv @ 1031 NONAME
- _ZN15QNetworkSession7migrateEv @ 1032 NONAME
- _ZN15QNetworkSessionC1ERK21QNetworkConfigurationP7QObject @ 1033 NONAME
- _ZN15QNetworkSessionC2ERK21QNetworkConfigurationP7QObject @ 1034 NONAME
- _ZN15QNetworkSessionD0Ev @ 1035 NONAME
- _ZN15QNetworkSessionD1Ev @ 1036 NONAME
- _ZN15QNetworkSessionD2Ev @ 1037 NONAME
- _ZN19QBearerEnginePlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 1038 NONAME
- _ZN19QBearerEnginePlugin11qt_metacastEPKc @ 1039 NONAME
- _ZN19QBearerEnginePlugin16staticMetaObjectE @ 1040 NONAME DATA 16
- _ZN19QBearerEnginePlugin19getStaticMetaObjectEv @ 1041 NONAME
- _ZN19QBearerEnginePluginC2EP7QObject @ 1042 NONAME
- _ZN19QBearerEnginePluginD0Ev @ 1043 NONAME
- _ZN19QBearerEnginePluginD1Ev @ 1044 NONAME
- _ZN19QBearerEnginePluginD2Ev @ 1045 NONAME
- _ZN21QNetworkAccessManager16setConfigurationERK21QNetworkConfiguration @ 1046 NONAME
- _ZN21QNetworkAccessManager17sendCustomRequestERK15QNetworkRequestRK10QByteArrayP9QIODevice @ 1047 NONAME
- _ZN21QNetworkAccessManager20setNetworkAccessibleENS_20NetworkAccessibilityE @ 1048 NONAME
- _ZN21QNetworkAccessManager23networkSessionConnectedEv @ 1049 NONAME
- _ZN21QNetworkAccessManager24networkAccessibleChangedENS_20NetworkAccessibilityE @ 1050 NONAME
- _ZN21QNetworkConfigurationC1ERKS_ @ 1051 NONAME
- _ZN21QNetworkConfigurationC1Ev @ 1052 NONAME
- _ZN21QNetworkConfigurationC2ERKS_ @ 1053 NONAME
- _ZN21QNetworkConfigurationC2Ev @ 1054 NONAME
- _ZN21QNetworkConfigurationD1Ev @ 1055 NONAME
- _ZN21QNetworkConfigurationD2Ev @ 1056 NONAME
- _ZN21QNetworkConfigurationaSERKS_ @ 1057 NONAME
- _ZN22QNetworkSessionPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1058 NONAME
- _ZN22QNetworkSessionPrivate11qt_metacastEPKc @ 1059 NONAME
- _ZN22QNetworkSessionPrivate12stateChangedEN15QNetworkSession5StateE @ 1060 NONAME
- _ZN22QNetworkSessionPrivate16staticMetaObjectE @ 1061 NONAME DATA 16
- _ZN22QNetworkSessionPrivate19getStaticMetaObjectEv @ 1062 NONAME
- _ZN22QNetworkSessionPrivate25newConfigurationActivatedEv @ 1063 NONAME
- _ZN22QNetworkSessionPrivate25quitPendingWaitsForOpenedEv @ 1064 NONAME
- _ZN22QNetworkSessionPrivate29preferredConfigurationChangedERK21QNetworkConfigurationb @ 1065 NONAME
- _ZN22QNetworkSessionPrivate5errorEN15QNetworkSession12SessionErrorE @ 1066 NONAME
- _ZN22QNetworkSessionPrivate6closedEv @ 1067 NONAME
- _ZN28QNetworkConfigurationManager11qt_metacallEN11QMetaObject4CallEiPPv @ 1068 NONAME
- _ZN28QNetworkConfigurationManager11qt_metacastEPKc @ 1069 NONAME
- _ZN28QNetworkConfigurationManager15updateCompletedEv @ 1070 NONAME
- _ZN28QNetworkConfigurationManager16staticMetaObjectE @ 1071 NONAME DATA 16
- _ZN28QNetworkConfigurationManager18configurationAddedERK21QNetworkConfiguration @ 1072 NONAME
- _ZN28QNetworkConfigurationManager18onlineStateChangedEb @ 1073 NONAME
- _ZN28QNetworkConfigurationManager19getStaticMetaObjectEv @ 1074 NONAME
- _ZN28QNetworkConfigurationManager20configurationChangedERK21QNetworkConfiguration @ 1075 NONAME
- _ZN28QNetworkConfigurationManager20configurationRemovedERK21QNetworkConfiguration @ 1076 NONAME
- _ZN28QNetworkConfigurationManager20updateConfigurationsEv @ 1077 NONAME
- _ZN28QNetworkConfigurationManagerC1EP7QObject @ 1078 NONAME
- _ZN28QNetworkConfigurationManagerC2EP7QObject @ 1079 NONAME
- _ZN28QNetworkConfigurationManagerD0Ev @ 1080 NONAME
- _ZN28QNetworkConfigurationManagerD1Ev @ 1081 NONAME
- _ZN28QNetworkConfigurationManagerD2Ev @ 1082 NONAME
- _ZN35QNetworkConfigurationManagerPrivate11pollEnginesEv @ 1083 NONAME
- _ZN35QNetworkConfigurationManagerPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1084 NONAME
- _ZN35QNetworkConfigurationManagerPrivate11qt_metacastEPKc @ 1085 NONAME
- _ZN35QNetworkConfigurationManagerPrivate12capabilitiesEv @ 1086 NONAME
- _ZN35QNetworkConfigurationManagerPrivate12startPollingEv @ 1087 NONAME
- _ZN35QNetworkConfigurationManagerPrivate13enablePollingEv @ 1088 NONAME
- _ZN35QNetworkConfigurationManagerPrivate14disablePollingEv @ 1089 NONAME
- _ZN35QNetworkConfigurationManagerPrivate16staticMetaObjectE @ 1090 NONAME DATA 16
- _ZN35QNetworkConfigurationManagerPrivate17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1091 NONAME
- _ZN35QNetworkConfigurationManagerPrivate18configurationAddedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1092 NONAME
- _ZN35QNetworkConfigurationManagerPrivate18configurationAddedERK21QNetworkConfiguration @ 1093 NONAME
- _ZN35QNetworkConfigurationManagerPrivate18onlineStateChangedEb @ 1094 NONAME
- _ZN35QNetworkConfigurationManagerPrivate19getStaticMetaObjectEv @ 1095 NONAME
- _ZN35QNetworkConfigurationManagerPrivate20configurationChangedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1096 NONAME
- _ZN35QNetworkConfigurationManagerPrivate20configurationChangedERK21QNetworkConfiguration @ 1097 NONAME
- _ZN35QNetworkConfigurationManagerPrivate20configurationRemovedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1098 NONAME
- _ZN35QNetworkConfigurationManagerPrivate20configurationRemovedERK21QNetworkConfiguration @ 1099 NONAME
- _ZN35QNetworkConfigurationManagerPrivate20defaultConfigurationEv @ 1100 NONAME
- _ZN35QNetworkConfigurationManagerPrivate20updateConfigurationsEv @ 1101 NONAME
- _ZN35QNetworkConfigurationManagerPrivate27configurationFromIdentifierERK7QString @ 1102 NONAME
- _ZN35QNetworkConfigurationManagerPrivate27configurationUpdateCompleteEv @ 1103 NONAME
- _ZN35QNetworkConfigurationManagerPrivate31performAsyncConfigurationUpdateEv @ 1104 NONAME
- _ZN35QNetworkConfigurationManagerPrivate5abortEv @ 1105 NONAME
- _ZN35QNetworkConfigurationManagerPrivate7enginesEv @ 1106 NONAME
- _ZN35QNetworkConfigurationManagerPrivate8isOnlineEv @ 1107 NONAME
- _ZN35QNetworkConfigurationManagerPrivateC1Ev @ 1108 NONAME
- _ZN35QNetworkConfigurationManagerPrivateC2Ev @ 1109 NONAME
- _ZN35QNetworkConfigurationManagerPrivateD0Ev @ 1110 NONAME
- _ZN35QNetworkConfigurationManagerPrivateD1Ev @ 1111 NONAME
- _ZN35QNetworkConfigurationManagerPrivateD2Ev @ 1112 NONAME
- _ZNK13QBearerEngine10metaObjectEv @ 1113 NONAME
- _ZNK13QBearerEngine15requiresPollingEv @ 1114 NONAME
- _ZNK13QBearerEngine19configurationsInUseEv @ 1115 NONAME
- _ZNK13QNetworkReply14rawHeaderPairsEv @ 1116 NONAME
- _ZNK15QNetworkRequest8priorityEv @ 1117 NONAME
- _ZNK15QNetworkSession10activeTimeEv @ 1118 NONAME
- _ZNK15QNetworkSession10metaObjectEv @ 1119 NONAME
- _ZNK15QNetworkSession11errorStringEv @ 1120 NONAME
- _ZNK15QNetworkSession12bytesWrittenEv @ 1121 NONAME
- _ZNK15QNetworkSession13bytesReceivedEv @ 1122 NONAME
- _ZNK15QNetworkSession13configurationEv @ 1123 NONAME
- _ZNK15QNetworkSession15sessionPropertyERK7QString @ 1124 NONAME
- _ZNK15QNetworkSession5errorEv @ 1125 NONAME
- _ZNK15QNetworkSession5stateEv @ 1126 NONAME
- _ZNK15QNetworkSession6isOpenEv @ 1127 NONAME
- _ZNK15QNetworkSession9interfaceEv @ 1128 NONAME
- _ZNK19QBearerEnginePlugin10metaObjectEv @ 1129 NONAME
- _ZNK21QNetworkAccessManager13configurationEv @ 1130 NONAME
- _ZNK21QNetworkAccessManager17networkAccessibleEv @ 1131 NONAME
- _ZNK21QNetworkAccessManager19activeConfigurationEv @ 1132 NONAME
- _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME ABSENT
- _ZNK21QNetworkConfiguration10identifierEv @ 1134 NONAME
- _ZNK21QNetworkConfiguration18isRoamingAvailableEv @ 1135 NONAME
- _ZNK21QNetworkConfiguration4nameEv @ 1136 NONAME
- _ZNK21QNetworkConfiguration4typeEv @ 1137 NONAME
- _ZNK21QNetworkConfiguration5stateEv @ 1138 NONAME
- _ZNK21QNetworkConfiguration7isValidEv @ 1139 NONAME
- _ZNK21QNetworkConfiguration7purposeEv @ 1140 NONAME
- _ZNK21QNetworkConfiguration8childrenEv @ 1141 NONAME
- _ZNK21QNetworkConfigurationeqERKS_ @ 1142 NONAME
- _ZNK22QNetworkSessionPrivate10metaObjectEv @ 1143 NONAME
- _ZNK28QNetworkConfigurationManager10metaObjectEv @ 1144 NONAME
- _ZNK28QNetworkConfigurationManager12capabilitiesEv @ 1145 NONAME
- _ZNK28QNetworkConfigurationManager17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1146 NONAME
- _ZNK28QNetworkConfigurationManager20defaultConfigurationEv @ 1147 NONAME
- _ZNK28QNetworkConfigurationManager27configurationFromIdentifierERK7QString @ 1148 NONAME
- _ZNK28QNetworkConfigurationManager8isOnlineEv @ 1149 NONAME
- _ZNK35QNetworkConfigurationManagerPrivate10metaObjectEv @ 1150 NONAME
- _ZTI13QBearerEngine @ 1151 NONAME
- _ZTI15QNetworkSession @ 1152 NONAME
- _ZTI19QBearerEnginePlugin @ 1153 NONAME
- _ZTI22QNetworkSessionPrivate @ 1154 NONAME
- _ZTI28QNetworkConfigurationManager @ 1155 NONAME
- _ZTI29QBearerEngineFactoryInterface @ 1156 NONAME
- _ZTI35QNetworkConfigurationManagerPrivate @ 1157 NONAME
- _ZTV13QBearerEngine @ 1158 NONAME
- _ZTV15QNetworkSession @ 1159 NONAME
- _ZTV19QBearerEnginePlugin @ 1160 NONAME
- _ZTV22QNetworkSessionPrivate @ 1161 NONAME
- _ZTV28QNetworkConfigurationManager @ 1162 NONAME
- _ZTV35QNetworkConfigurationManagerPrivate @ 1163 NONAME
- _ZThn8_N19QBearerEnginePluginD0Ev @ 1164 NONAME
- _ZThn8_N19QBearerEnginePluginD1Ev @ 1165 NONAME
- _ZN14QAuthenticator9setOptionERK7QStringRK8QVariant @ 1166 NONAME
- _ZNK14QAuthenticator6optionERK7QString @ 1167 NONAME
- _ZNK14QAuthenticator7optionsEv @ 1168 NONAME
- _ZNK21QNetworkConfiguration10bearerTypeEv @ 1169 NONAME
- _ZNK21QNetworkConfiguration14bearerTypeNameEv @ 1170 NONAME
+ _ZN14QAuthenticator9setOptionERK7QStringRK8QVariant @ 1011 NONAME
+ _ZN15QNetworkRequest11setPriorityENS_8PriorityE @ 1012 NONAME
+ _ZN15QNetworkSession11qt_metacallEN11QMetaObject4CallEiPPv @ 1013 NONAME
+ _ZN15QNetworkSession11qt_metacastEPKc @ 1014 NONAME
+ _ZN15QNetworkSession12stateChangedENS_5StateE @ 1015 NONAME
+ _ZN15QNetworkSession13connectNotifyEPKc @ 1016 NONAME
+ _ZN15QNetworkSession13waitForOpenedEi @ 1017 NONAME
+ _ZN15QNetworkSession16disconnectNotifyEPKc @ 1018 NONAME
+ _ZN15QNetworkSession16staticMetaObjectE @ 1019 NONAME DATA 16
+ _ZN15QNetworkSession18setSessionPropertyERK7QStringRK8QVariant @ 1020 NONAME
+ _ZN15QNetworkSession19getStaticMetaObjectEv @ 1021 NONAME
+ _ZN15QNetworkSession25newConfigurationActivatedEv @ 1022 NONAME
+ _ZN15QNetworkSession29preferredConfigurationChangedERK21QNetworkConfigurationb @ 1023 NONAME
+ _ZN15QNetworkSession4openEv @ 1024 NONAME
+ _ZN15QNetworkSession4stopEv @ 1025 NONAME
+ _ZN15QNetworkSession5closeEv @ 1026 NONAME
+ _ZN15QNetworkSession5errorENS_12SessionErrorE @ 1027 NONAME
+ _ZN15QNetworkSession6acceptEv @ 1028 NONAME
+ _ZN15QNetworkSession6closedEv @ 1029 NONAME
+ _ZN15QNetworkSession6ignoreEv @ 1030 NONAME
+ _ZN15QNetworkSession6openedEv @ 1031 NONAME
+ _ZN15QNetworkSession6rejectEv @ 1032 NONAME
+ _ZN15QNetworkSession7migrateEv @ 1033 NONAME
+ _ZN15QNetworkSessionC1ERK21QNetworkConfigurationP7QObject @ 1034 NONAME
+ _ZN15QNetworkSessionC2ERK21QNetworkConfigurationP7QObject @ 1035 NONAME
+ _ZN15QNetworkSessionD0Ev @ 1036 NONAME
+ _ZN15QNetworkSessionD1Ev @ 1037 NONAME
+ _ZN15QNetworkSessionD2Ev @ 1038 NONAME
+ _ZN19QBearerEnginePlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 1039 NONAME
+ _ZN19QBearerEnginePlugin11qt_metacastEPKc @ 1040 NONAME
+ _ZN19QBearerEnginePlugin16staticMetaObjectE @ 1041 NONAME DATA 16
+ _ZN19QBearerEnginePlugin19getStaticMetaObjectEv @ 1042 NONAME
+ _ZN19QBearerEnginePluginC2EP7QObject @ 1043 NONAME
+ _ZN19QBearerEnginePluginD0Ev @ 1044 NONAME
+ _ZN19QBearerEnginePluginD1Ev @ 1045 NONAME
+ _ZN19QBearerEnginePluginD2Ev @ 1046 NONAME
+ _ZN21QNetworkAccessManager16setConfigurationERK21QNetworkConfiguration @ 1047 NONAME
+ _ZN21QNetworkAccessManager17sendCustomRequestERK15QNetworkRequestRK10QByteArrayP9QIODevice @ 1048 NONAME
+ _ZN21QNetworkAccessManager20setNetworkAccessibleENS_20NetworkAccessibilityE @ 1049 NONAME
+ _ZN21QNetworkAccessManager23networkSessionConnectedEv @ 1050 NONAME
+ _ZN21QNetworkAccessManager24networkAccessibleChangedENS_20NetworkAccessibilityE @ 1051 NONAME
+ _ZN21QNetworkConfigurationC1ERKS_ @ 1052 NONAME
+ _ZN21QNetworkConfigurationC1Ev @ 1053 NONAME
+ _ZN21QNetworkConfigurationC2ERKS_ @ 1054 NONAME
+ _ZN21QNetworkConfigurationC2Ev @ 1055 NONAME
+ _ZN21QNetworkConfigurationD1Ev @ 1056 NONAME
+ _ZN21QNetworkConfigurationD2Ev @ 1057 NONAME
+ _ZN21QNetworkConfigurationaSERKS_ @ 1058 NONAME
+ _ZN22QNetworkSessionPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1059 NONAME
+ _ZN22QNetworkSessionPrivate11qt_metacastEPKc @ 1060 NONAME
+ _ZN22QNetworkSessionPrivate12stateChangedEN15QNetworkSession5StateE @ 1061 NONAME
+ _ZN22QNetworkSessionPrivate16staticMetaObjectE @ 1062 NONAME DATA 16
+ _ZN22QNetworkSessionPrivate19getStaticMetaObjectEv @ 1063 NONAME
+ _ZN22QNetworkSessionPrivate25newConfigurationActivatedEv @ 1064 NONAME
+ _ZN22QNetworkSessionPrivate25quitPendingWaitsForOpenedEv @ 1065 NONAME
+ _ZN22QNetworkSessionPrivate29preferredConfigurationChangedERK21QNetworkConfigurationb @ 1066 NONAME
+ _ZN22QNetworkSessionPrivate5errorEN15QNetworkSession12SessionErrorE @ 1067 NONAME
+ _ZN22QNetworkSessionPrivate6closedEv @ 1068 NONAME
+ _ZN28QNetworkConfigurationManager11qt_metacallEN11QMetaObject4CallEiPPv @ 1069 NONAME
+ _ZN28QNetworkConfigurationManager11qt_metacastEPKc @ 1070 NONAME
+ _ZN28QNetworkConfigurationManager15updateCompletedEv @ 1071 NONAME
+ _ZN28QNetworkConfigurationManager16staticMetaObjectE @ 1072 NONAME DATA 16
+ _ZN28QNetworkConfigurationManager18configurationAddedERK21QNetworkConfiguration @ 1073 NONAME
+ _ZN28QNetworkConfigurationManager18onlineStateChangedEb @ 1074 NONAME
+ _ZN28QNetworkConfigurationManager19getStaticMetaObjectEv @ 1075 NONAME
+ _ZN28QNetworkConfigurationManager20configurationChangedERK21QNetworkConfiguration @ 1076 NONAME
+ _ZN28QNetworkConfigurationManager20configurationRemovedERK21QNetworkConfiguration @ 1077 NONAME
+ _ZN28QNetworkConfigurationManager20updateConfigurationsEv @ 1078 NONAME
+ _ZN28QNetworkConfigurationManagerC1EP7QObject @ 1079 NONAME
+ _ZN28QNetworkConfigurationManagerC2EP7QObject @ 1080 NONAME
+ _ZN28QNetworkConfigurationManagerD0Ev @ 1081 NONAME
+ _ZN28QNetworkConfigurationManagerD1Ev @ 1082 NONAME
+ _ZN28QNetworkConfigurationManagerD2Ev @ 1083 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate11pollEnginesEv @ 1084 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1085 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate11qt_metacastEPKc @ 1086 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate12capabilitiesEv @ 1087 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate12startPollingEv @ 1088 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate13enablePollingEv @ 1089 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate14disablePollingEv @ 1090 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate16staticMetaObjectE @ 1091 NONAME DATA 16
+ _ZN35QNetworkConfigurationManagerPrivate17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1092 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate18configurationAddedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1093 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate18configurationAddedERK21QNetworkConfiguration @ 1094 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate18onlineStateChangedEb @ 1095 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate19getStaticMetaObjectEv @ 1096 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate20configurationChangedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1097 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate20configurationChangedERK21QNetworkConfiguration @ 1098 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate20configurationRemovedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1099 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate20configurationRemovedERK21QNetworkConfiguration @ 1100 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate20defaultConfigurationEv @ 1101 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate20updateConfigurationsEv @ 1102 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate27configurationFromIdentifierERK7QString @ 1103 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate27configurationUpdateCompleteEv @ 1104 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate31performAsyncConfigurationUpdateEv @ 1105 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate5abortEv @ 1106 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate7enginesEv @ 1107 NONAME
+ _ZN35QNetworkConfigurationManagerPrivate8isOnlineEv @ 1108 NONAME
+ _ZN35QNetworkConfigurationManagerPrivateC1Ev @ 1109 NONAME
+ _ZN35QNetworkConfigurationManagerPrivateC2Ev @ 1110 NONAME
+ _ZN35QNetworkConfigurationManagerPrivateD0Ev @ 1111 NONAME
+ _ZN35QNetworkConfigurationManagerPrivateD1Ev @ 1112 NONAME
+ _ZN35QNetworkConfigurationManagerPrivateD2Ev @ 1113 NONAME
+ _ZNK13QBearerEngine10metaObjectEv @ 1114 NONAME
+ _ZNK13QBearerEngine15requiresPollingEv @ 1115 NONAME
+ _ZNK13QBearerEngine19configurationsInUseEv @ 1116 NONAME
+ _ZNK13QNetworkReply14rawHeaderPairsEv @ 1117 NONAME
+ _ZNK14QAuthenticator6optionERK7QString @ 1118 NONAME
+ _ZNK14QAuthenticator7optionsEv @ 1119 NONAME
+ _ZNK15QNetworkRequest8priorityEv @ 1120 NONAME
+ _ZNK15QNetworkSession10activeTimeEv @ 1121 NONAME
+ _ZNK15QNetworkSession10metaObjectEv @ 1122 NONAME
+ _ZNK15QNetworkSession11errorStringEv @ 1123 NONAME
+ _ZNK15QNetworkSession12bytesWrittenEv @ 1124 NONAME
+ _ZNK15QNetworkSession13bytesReceivedEv @ 1125 NONAME
+ _ZNK15QNetworkSession13configurationEv @ 1126 NONAME
+ _ZNK15QNetworkSession15sessionPropertyERK7QString @ 1127 NONAME
+ _ZNK15QNetworkSession5errorEv @ 1128 NONAME
+ _ZNK15QNetworkSession5stateEv @ 1129 NONAME
+ _ZNK15QNetworkSession6isOpenEv @ 1130 NONAME
+ _ZNK15QNetworkSession9interfaceEv @ 1131 NONAME
+ _ZNK19QBearerEnginePlugin10metaObjectEv @ 1132 NONAME
+ _ZNK21QNetworkAccessManager13configurationEv @ 1133 NONAME
+ _ZNK21QNetworkAccessManager17networkAccessibleEv @ 1134 NONAME
+ _ZNK21QNetworkAccessManager19activeConfigurationEv @ 1135 NONAME
+ _ZNK21QNetworkConfiguration10bearerTypeEv @ 1136 NONAME
+ _ZNK21QNetworkConfiguration10identifierEv @ 1137 NONAME
+ _ZNK21QNetworkConfiguration14bearerTypeNameEv @ 1138 NONAME
+ _ZNK21QNetworkConfiguration18isRoamingAvailableEv @ 1139 NONAME
+ _ZNK21QNetworkConfiguration4nameEv @ 1140 NONAME
+ _ZNK21QNetworkConfiguration4typeEv @ 1141 NONAME
+ _ZNK21QNetworkConfiguration5stateEv @ 1142 NONAME
+ _ZNK21QNetworkConfiguration7isValidEv @ 1143 NONAME
+ _ZNK21QNetworkConfiguration7purposeEv @ 1144 NONAME
+ _ZNK21QNetworkConfiguration8childrenEv @ 1145 NONAME
+ _ZNK21QNetworkConfigurationeqERKS_ @ 1146 NONAME
+ _ZNK22QNetworkSessionPrivate10metaObjectEv @ 1147 NONAME
+ _ZNK28QNetworkConfigurationManager10metaObjectEv @ 1148 NONAME
+ _ZNK28QNetworkConfigurationManager12capabilitiesEv @ 1149 NONAME
+ _ZNK28QNetworkConfigurationManager17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1150 NONAME
+ _ZNK28QNetworkConfigurationManager20defaultConfigurationEv @ 1151 NONAME
+ _ZNK28QNetworkConfigurationManager27configurationFromIdentifierERK7QString @ 1152 NONAME
+ _ZNK28QNetworkConfigurationManager8isOnlineEv @ 1153 NONAME
+ _ZNK35QNetworkConfigurationManagerPrivate10metaObjectEv @ 1154 NONAME
+ _ZTI13QBearerEngine @ 1155 NONAME
+ _ZTI15QNetworkSession @ 1156 NONAME
+ _ZTI19QBearerEnginePlugin @ 1157 NONAME
+ _ZTI22QNetworkSessionPrivate @ 1158 NONAME
+ _ZTI28QNetworkConfigurationManager @ 1159 NONAME
+ _ZTI29QBearerEngineFactoryInterface @ 1160 NONAME
+ _ZTI35QNetworkConfigurationManagerPrivate @ 1161 NONAME
+ _ZTV13QBearerEngine @ 1162 NONAME
+ _ZTV15QNetworkSession @ 1163 NONAME
+ _ZTV19QBearerEnginePlugin @ 1164 NONAME
+ _ZTV22QNetworkSessionPrivate @ 1165 NONAME
+ _ZTV28QNetworkConfigurationManager @ 1166 NONAME
+ _ZTV35QNetworkConfigurationManagerPrivate @ 1167 NONAME
+ _ZThn8_N19QBearerEnginePluginD0Ev @ 1168 NONAME
+ _ZThn8_N19QBearerEnginePluginD1Ev @ 1169 NONAME
diff --git a/src/s60installs/eabi/QtOpenVGu.def b/src/s60installs/eabi/QtOpenVGu.def
index 15fda9abc6..99942b8e20 100644
--- a/src/s60installs/eabi/QtOpenVGu.def
+++ b/src/s60installs/eabi/QtOpenVGu.def
@@ -201,4 +201,8 @@ EXPORTS
_ZN14QVGPaintEngine16drawCachedGlyphsEiPKjRK5QFontP11QFontEngineRK7QPointFPK11QFixedPoint @ 200 NONAME
_ZN14QVGPaintEngine18drawStaticTextItemEP15QStaticTextItem @ 201 NONAME
_ZN14QVGPaintEngine19drawPixmapFragmentsEPKN8QPainter14PixmapFragmentEiRK7QPixmap6QFlagsINS0_18PixmapFragmentHintEE @ 202 NONAME
+ _ZN13QVGPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 203 NONAME
+ _ZN13QVGPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 204 NONAME
+ _ZN13QVGPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 205 NONAME
+ _ZN13QVGPixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 206 NONAME
diff --git a/src/s60installs/eabi/QtScriptu.def b/src/s60installs/eabi/QtScriptu.def
index 288b3abe89..b26f9c7293 100644
--- a/src/s60installs/eabi/QtScriptu.def
+++ b/src/s60installs/eabi/QtScriptu.def
@@ -394,51 +394,51 @@ EXPORTS
_ZTI23QScriptDeclarativeClass @ 393 NONAME
_ZTV23QScriptDeclarativeClass @ 394 NONAME
_ZNK23QScriptDeclarativeClass9isQObjectEv @ 395 NONAME
- _ZN23QScriptDeclarativeClass13functionValueERK12QScriptValueRKPv @ 396 NONAME
- _ZN23QScriptDeclarativeClass13propertyValueERK12QScriptValueRKPv @ 397 NONAME
- _ZN23QScriptDeclarativeClass14newObjectValueEP13QScriptEnginePS_PNS_6ObjectE @ 398 NONAME
- _ZN23QScriptDeclarativeClass15setSupportsCallEb @ 399 NONAME
- _ZN23QScriptDeclarativeClass4callEPNS_6ObjectEP14QScriptContext @ 400 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEngineRK12QScriptValue @ 401 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEngineRK7QString @ 402 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEngineb @ 403 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEngined @ 404 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEnginef @ 405 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEnginei @ 406 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEnginej @ 407 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextRK12QScriptValue @ 408 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextRK7QString @ 409 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextb @ 410 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextd @ 411 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextf @ 412 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContexti @ 413 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextj @ 414 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1ERKS0_ @ 415 NONAME
- _ZN23QScriptDeclarativeClass5ValueC1Ev @ 416 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEngineRK12QScriptValue @ 417 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEngineRK7QString @ 418 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEngineb @ 419 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEngined @ 420 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEnginef @ 421 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEnginei @ 422 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEnginej @ 423 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextRK12QScriptValue @ 424 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextRK7QString @ 425 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextb @ 426 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextd @ 427 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextf @ 428 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContexti @ 429 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextj @ 430 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2ERKS0_ @ 431 NONAME
- _ZN23QScriptDeclarativeClass5ValueC2Ev @ 432 NONAME
- _ZN23QScriptDeclarativeClass5ValueD1Ev @ 433 NONAME
- _ZN23QScriptDeclarativeClass5ValueD2Ev @ 434 NONAME
- _ZNK23QScriptDeclarativeClass12supportsCallEv @ 435 NONAME
- _ZNK23QScriptDeclarativeClass5Value13toScriptValueEP13QScriptEngine @ 436 NONAME
- _ZN13QScriptEngine26reportAdditionalMemoryCostEi @ 437 NONAME
+ _ZN13QScriptEngine26reportAdditionalMemoryCostEi @ 396 NONAME
+ _ZN23QScriptDeclarativeClass13functionValueERK12QScriptValueRKPv @ 397 NONAME
+ _ZN23QScriptDeclarativeClass13propertyValueERK12QScriptValueRKPv @ 398 NONAME
+ _ZN23QScriptDeclarativeClass14newObjectValueEP13QScriptEnginePS_PNS_6ObjectE @ 399 NONAME
+ _ZN23QScriptDeclarativeClass15setSupportsCallEb @ 400 NONAME
+ _ZN23QScriptDeclarativeClass20newStaticScopeObjectEP13QScriptEngine @ 401 NONAME
+ _ZN23QScriptDeclarativeClass20newStaticScopeObjectEP13QScriptEngineiPK7QStringPK12QScriptValuePK6QFlagsINS5_12PropertyFlagEE @ 402 NONAME
+ _ZN23QScriptDeclarativeClass4callEPNS_6ObjectEP14QScriptContext @ 403 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEngineRK12QScriptValue @ 404 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEngineRK7QString @ 405 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEngineb @ 406 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEngined @ 407 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEnginef @ 408 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEnginei @ 409 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP13QScriptEnginej @ 410 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextRK12QScriptValue @ 411 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextRK7QString @ 412 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextb @ 413 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextd @ 414 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextf @ 415 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContexti @ 416 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1EP14QScriptContextj @ 417 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1ERKS0_ @ 418 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC1Ev @ 419 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEngineRK12QScriptValue @ 420 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEngineRK7QString @ 421 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEngineb @ 422 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEngined @ 423 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEnginef @ 424 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEnginei @ 425 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP13QScriptEnginej @ 426 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextRK12QScriptValue @ 427 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextRK7QString @ 428 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextb @ 429 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextd @ 430 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextf @ 431 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContexti @ 432 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2EP14QScriptContextj @ 433 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2ERKS0_ @ 434 NONAME
+ _ZN23QScriptDeclarativeClass5ValueC2Ev @ 435 NONAME
+ _ZN23QScriptDeclarativeClass5ValueD1Ev @ 436 NONAME
+ _ZN23QScriptDeclarativeClass5ValueD2Ev @ 437 NONAME
_ZN23QScriptDeclarativeClass7compareEPNS_6ObjectES1_ @ 438 NONAME
_ZN25QScriptEngineAgentPrivate11atStatementERKN5QTJSC17DebuggerCallFrameEii @ 439 NONAME
_ZN25QScriptEngineAgentPrivate18didReachBreakpointERKN5QTJSC17DebuggerCallFrameEii @ 440 NONAME
- _ZN23QScriptDeclarativeClass20newStaticScopeObjectEP13QScriptEngine @ 441 NONAME
- _ZN23QScriptDeclarativeClass20newStaticScopeObjectEP13QScriptEngineiPK7QStringPK12QScriptValuePK6QFlagsINS5_12PropertyFlagEE @ 442 NONAME
+ _ZNK23QScriptDeclarativeClass12supportsCallEv @ 441 NONAME
+ _ZNK23QScriptDeclarativeClass5Value13toScriptValueEP13QScriptEngine @ 442 NONAME
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index 8560214380..07aced4372 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -782,6 +782,8 @@ static JSC::JSValue JSC_HOST_CALL functionQsTranslate(JSC::ExecState*, JSC::JSOb
static JSC::JSValue JSC_HOST_CALL functionQsTranslateNoOp(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
static JSC::JSValue JSC_HOST_CALL functionQsTr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
static JSC::JSValue JSC_HOST_CALL functionQsTrNoOp(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
+static JSC::JSValue JSC_HOST_CALL functionQsTrId(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
+static JSC::JSValue JSC_HOST_CALL functionQsTrIdNoOp(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
JSC::JSValue JSC_HOST_CALL functionQsTranslate(JSC::ExecState *exec, JSC::JSObject*, JSC::JSValue, const JSC::ArgList &args)
{
@@ -892,6 +894,28 @@ JSC::JSValue JSC_HOST_CALL functionQsTrNoOp(JSC::ExecState *, JSC::JSObject*, JS
return args.at(0);
}
+JSC::JSValue JSC_HOST_CALL functionQsTrId(JSC::ExecState *exec, JSC::JSObject*, JSC::JSValue, const JSC::ArgList &args)
+{
+ if (args.size() < 1)
+ return JSC::throwError(exec, JSC::GeneralError, "qsTrId() requires at least one argument");
+ if (!args.at(0).isString())
+ return JSC::throwError(exec, JSC::TypeError, "qsTrId(): first argument (id) must be a string");
+ if ((args.size() > 1) && !args.at(1).isNumber())
+ return JSC::throwError(exec, JSC::TypeError, "qsTrId(): second argument (n) must be a number");
+ JSC::UString id = args.at(0).toString(exec);
+ int n = -1;
+ if (args.size() > 1)
+ n = args.at(1).toInt32(exec);
+ return JSC::jsString(exec, qtTrId(QScript::convertToLatin1(id).constData(), n));
+}
+
+JSC::JSValue JSC_HOST_CALL functionQsTrIdNoOp(JSC::ExecState *, JSC::JSObject*, JSC::JSValue, const JSC::ArgList &args)
+{
+ if (args.size() < 1)
+ return JSC::jsUndefined();
+ return args.at(0);
+}
+
static JSC::JSValue JSC_HOST_CALL stringProtoFuncArg(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
JSC::JSValue JSC_HOST_CALL stringProtoFuncArg(JSC::ExecState *exec, JSC::JSObject*, JSC::JSValue thisObject, const JSC::ArgList &args)
@@ -2602,8 +2626,7 @@ QScriptValue QScriptEngine::evaluate(const QString &program, const QString &file
}
/*!
- \internal
- \since 4.6
+ \since 4.7
Evaluates the given \a program and returns the result of the
evaluation.
@@ -3435,6 +3458,8 @@ void QScriptEngine::registerCustomType(int type, MarshalFunction mf,
\row \o QT_TR_NOOP() \o QT_TR_NOOP()
\row \o qsTranslate() \o QCoreApplication::translate()
\row \o QT_TRANSLATE_NOOP() \o QT_TRANSLATE_NOOP()
+ \row \o qsTrId() (since 4.7) \o qtTrId()
+ \row \o QT_TRID_NOOP() (since 4.7) \o QT_TRID_NOOP()
\endtable
\sa {Internationalization with Qt}
@@ -3453,6 +3478,8 @@ void QScriptEngine::installTranslatorFunctions(const QScriptValue &object)
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 2, JSC::Identifier(exec, "QT_TRANSLATE_NOOP"), QScript::functionQsTranslateNoOp));
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 3, JSC::Identifier(exec, "qsTr"), QScript::functionQsTr));
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "QT_TR_NOOP"), QScript::functionQsTrNoOp));
+ JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "qsTrId"), QScript::functionQsTrId));
+ JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "QT_TRID_NOOP"), QScript::functionQsTrIdNoOp));
glob->stringPrototype()->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "arg"), QScript::stringProtoFuncArg));
}
diff --git a/src/script/api/qscriptprogram.cpp b/src/script/api/qscriptprogram.cpp
index 02beba49cc..3857b7524d 100644
--- a/src/script/api/qscriptprogram.cpp
+++ b/src/script/api/qscriptprogram.cpp
@@ -32,9 +32,7 @@
QT_BEGIN_NAMESPACE
/*!
- \internal
-
- \since 4.6
+ \since 4.7
\class QScriptProgram
\brief The QScriptProgram class encapsulates a Qt Script program.
diff --git a/src/script/script.pro b/src/script/script.pro
index 55217e0024..4ee86d7bb1 100644
--- a/src/script/script.pro
+++ b/src/script/script.pro
@@ -79,7 +79,10 @@ INCLUDEPATH += $$PWD
include(script.pri)
-symbian:TARGET.UID3=0x2001B2E1
+symbian {
+ TARGET.UID3=0x2001B2E1
+ LIBS += -lhal
+}
# WebKit doesn't compile in C++0x mode
*-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x
diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp
index 9a35ac55b9..66dabfa076 100644
--- a/src/sql/drivers/odbc/qsql_odbc.cpp
+++ b/src/sql/drivers/odbc/qsql_odbc.cpp
@@ -2106,7 +2106,7 @@ void QODBCDriverPrivate::checkSqlServer()
serverType = QString::fromUtf8((const char *)serverString.constData(), t);
#endif
isFreeTDSDriver = serverType.contains(QLatin1String("tdsodbc"), Qt::CaseInsensitive);
- unicode = isFreeTDSDriver == false;
+ unicode = unicode && !isFreeTDSDriver;
}
}
diff --git a/src/sql/drivers/psql/qsql_psql.pri b/src/sql/drivers/psql/qsql_psql.pri
index 97db4beb59..6da3540104 100644
--- a/src/sql/drivers/psql/qsql_psql.pri
+++ b/src/sql/drivers/psql/qsql_psql.pri
@@ -2,12 +2,9 @@ HEADERS += $$PWD/qsql_psql.h
SOURCES += $$PWD/qsql_psql.cpp
unix|win32-g++* {
- !static:!isEmpty(QT_LFLAGS_PSQL) {
- !contains(QT_CONFIG, system-zlib): QT_LFLAGS_PSQL -= -lz
- LIBS *= $$QT_LFLAGS_PSQL
- QMAKE_CXXFLAGS *= $$QT_CFLAGS_PSQL
- }
+ LIBS *= $$QT_LFLAGS_PSQL
!contains(LIBS, .*pq.*):LIBS += -lpq
+ QMAKE_CXXFLAGS *= $$QT_CFLAGS_PSQL
} else {
!contains(LIBS, .*pq.*):LIBS += -llibpq -lws2_32 -ladvapi32
}
diff --git a/src/sql/drivers/tds/qsql_tds.pri b/src/sql/drivers/tds/qsql_tds.pri
index 037f793533..521c06b799 100644
--- a/src/sql/drivers/tds/qsql_tds.pri
+++ b/src/sql/drivers/tds/qsql_tds.pri
@@ -1,8 +1,8 @@
HEADERS += $$PWD/qsql_tds.h
SOURCES += $$PWD/qsql_tds.cpp
-unix|win32-g++: {
- !isEmpty(QT_LFLAGS_TDS):!static:LIBS *= $$QT_LFLAGS_TDS
+unix|win32-g++*: {
+ LIBS *= $$QT_LFLAGS_TDS
!contains(LIBS, .*sybdb.*):LIBS += -lsybdb
QMAKE_CXXFLAGS *= $$QT_CFLAGS_TDS
} else:win32-borland {
diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp
index d54544042a..bf19a88ac8 100644
--- a/src/svg/qsvghandler.cpp
+++ b/src/svg/qsvghandler.cpp
@@ -74,7 +74,7 @@ QT_BEGIN_NAMESPACE
static const char *qt_inherit_text = "inherit";
#define QT_INHERIT QLatin1String(qt_inherit_text)
-Q_DECL_IMPORT double qstrtod(const char *s00, char const **se, bool *ok);
+Q_CORE_EXPORT double qstrtod(const char *s00, char const **se, bool *ok);
// ======== duplicated from qcolor_p
diff --git a/src/testlib/qbenchmarkmeasurement_p.h b/src/testlib/qbenchmarkmeasurement_p.h
index 932852c090..20a3bc115c 100644
--- a/src/testlib/qbenchmarkmeasurement_p.h
+++ b/src/testlib/qbenchmarkmeasurement_p.h
@@ -53,7 +53,7 @@
// We mean it.
//
-#include <QtCore/qdatetime.h>
+#include <QtCore/qelapsedtimer.h>
#include "3rdparty/cycle_p.h"
#include "qbenchmark.h"
@@ -87,7 +87,7 @@ public:
bool needsWarmupIteration();
QTest::QBenchmarkMetric metricType();
private:
- QTime time;
+ QElapsedTimer time;
};
#ifdef HAVE_TICK_COUNTER // defined in 3rdparty/cycle_p.h
diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro
index a74c9c19a5..ba844ea074 100644
--- a/src/tools/bootstrap/bootstrap.pro
+++ b/src/tools/bootstrap/bootstrap.pro
@@ -87,7 +87,8 @@ unix:SOURCES += ../../corelib/io/qfsfileengine_unix.cpp \
../../corelib/io/qfsfileengine_iterator_unix.cpp
win32:SOURCES += ../../corelib/io/qfsfileengine_win.cpp \
- ../../corelib/io/qfsfileengine_iterator_win.cpp
+ ../../corelib/io/qfsfileengine_iterator_win.cpp \
+ ../../corelib/plugin/qsystemlibrary.cpp \
macx: {
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #enables weak linking for 10.4 (exported)
diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp
index 1f6e58f795..0e3167db47 100644
--- a/src/tools/rcc/rcc.cpp
+++ b/src/tools/rcc/rcc.cpp
@@ -544,8 +544,11 @@ bool RCCResourceLibrary::addFile(const QString &alias, const RCCFileInfo &file)
const QString filename = nodes.at(nodes.size()-1);
RCCFileInfo *s = new RCCFileInfo(file);
s->m_parent = parent;
- if (parent->m_children.contains(filename))
- qWarning("potential duplicate alias detected: '%s'", qPrintable(filename));
+ if (parent->m_children.contains(filename)) {
+ foreach (const QString &fileName, m_fileNames)
+ qWarning("%s: Warning: potential duplicate alias detected: '%s'",
+ qPrintable(fileName), qPrintable(filename));
+ }
parent->m_children.insertMulti(filename, s);
return true;
}
diff --git a/src/tools/uic/cpp/cppextractimages.cpp b/src/tools/uic/cpp/cppextractimages.cpp
index 52c1b9dc33..5809724d68 100644
--- a/src/tools/uic/cpp/cppextractimages.cpp
+++ b/src/tools/uic/cpp/cppextractimages.cpp
@@ -76,14 +76,14 @@ void ExtractImages::acceptUI(DomUI *node)
if (m_option.qrcOutputFile.size()) {
f.setFileName(m_option.qrcOutputFile);
if (!f.open(QIODevice::WriteOnly | QFile::Text)) {
- fprintf(stderr, "Could not create resource file\n");
+ fprintf(stderr, "%s: Error: Could not create resource file\n", qPrintable(m_option.messagePrefix()));
return;
}
QFileInfo fi(m_option.qrcOutputFile);
QDir dir = fi.absoluteDir();
if (!dir.exists(QLatin1String("images")) && !dir.mkdir(QLatin1String("images"))) {
- fprintf(stderr, "Could not create image dir\n");
+ fprintf(stderr, "%s: Error: Could not create image dir\n", qPrintable(m_option.messagePrefix()));
return;
}
dir.cd(QLatin1String("images"));
@@ -126,7 +126,9 @@ void ExtractImages::acceptImage(DomImage *image)
if (isXPM_GZ)
openMode |= QIODevice::Text;
if (!f.open(openMode)) {
- fprintf(stderr, "Could not create image file %s: %s", qPrintable(fname), qPrintable(f.errorString()));
+ fprintf(stderr, "%s: Error: Could not create image file %s: %s",
+ qPrintable(m_option.messagePrefix()),
+ qPrintable(fname), qPrintable(f.errorString()));
return;
}
diff --git a/src/tools/uic/cpp/cppwriteincludes.cpp b/src/tools/uic/cpp/cppwriteincludes.cpp
index 4e0ee4a6a6..7b9d03ab6c 100644
--- a/src/tools/uic/cpp/cppwriteincludes.cpp
+++ b/src/tools/uic/cpp/cppwriteincludes.cpp
@@ -126,8 +126,9 @@ void WriteIncludes::acceptUI(DomUI *node)
if (m_uic->hasExternalPixmap() && m_uic->pixmapFunction() == QLatin1String("qPixmapFromMimeSource")) {
#ifdef QT_NO_QT3_SUPPORT
- qWarning("Warning: The form file has external pixmaps or qPixmapFromMimeSource() set as a pixmap function. "
- "This requires Qt 3 support, which is disabled. The resulting code will not compile.");
+ qWarning("%s: Warning: The form file has external pixmaps or qPixmapFromMimeSource() set as a pixmap function. "
+ "This requires Qt 3 support, which is disabled. The resulting code will not compile.",
+ qPrintable(m_uic->option().messagePrefix()));
#endif
add(QLatin1String("Q3MimeSourceFactory"));
}
@@ -212,8 +213,9 @@ void WriteIncludes::insertIncludeForClass(const QString &className, QString head
header = lowerClassName;
header += QLatin1String(".h");
if (warnHeaderGeneration) {
- qWarning("Warning: generated header '%s' for class '%s'.", qPrintable(header),
- qPrintable(className));
+ qWarning("%s: Warning: generated header '%s' for class '%s'.",
+ qPrintable(m_uic->option().messagePrefix()),
+ qPrintable(header), qPrintable(className));
}
diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp
index dc1d181ca0..b06eb7a27e 100644
--- a/src/tools/uic/cpp/cppwriteinitialization.cpp
+++ b/src/tools/uic/cpp/cppwriteinitialization.cpp
@@ -155,7 +155,7 @@ namespace {
if (const DomResourceIcon *dri = p->elementIconSet()) {
if (!isIconFormat44(dri)) {
if (dri->text().isEmpty()) {
- const QString msg = QString::fromUtf8("%1: An invalid icon property '%2' was encountered.").arg(fileName).arg(p->attributeName());
+ const QString msg = QString::fromUtf8("%1: Warning: An invalid icon property '%2' was encountered.").arg(fileName).arg(p->attributeName());
qWarning("%s", qPrintable(msg));
return false;
}
@@ -165,7 +165,7 @@ namespace {
case DomProperty::Pixmap:
if (const DomResourcePixmap *drp = p->elementPixmap())
if (drp->text().isEmpty()) {
- const QString msg = QString::fromUtf8("%1: An invalid pixmap property '%2' was encountered.").arg(fileName).arg(p->attributeName());
+ const QString msg = QString::fromUtf8("%1: Warning: An invalid pixmap property '%2' was encountered.").arg(fileName).arg(p->attributeName());
qWarning("%s", qPrintable(msg));
return false;
}
@@ -539,10 +539,14 @@ void WriteInitialization::acceptUI(DomUI *node)
const Buddy &b = m_buddies.at(i);
if (!m_registeredWidgets.contains(b.objName)) {
- fprintf(stderr, "'%s' isn't a valid widget\n", b.objName.toLatin1().data());
+ fprintf(stderr, "%s: Warning: Buddy assignment: '%s' is not a valid widget.\n",
+ qPrintable(m_option.messagePrefix()),
+ b.objName.toLatin1().data());
continue;
} else if (!m_registeredWidgets.contains(b.buddy)) {
- fprintf(stderr, "'%s' isn't a valid widget\n", b.buddy.toLatin1().data());
+ fprintf(stderr, "%s: Warning: Buddy assignment: '%s' is not a valid widget.\n",
+ qPrintable(m_option.messagePrefix()),
+ b.buddy.toLatin1().data());
continue;
}
@@ -867,7 +871,9 @@ void WriteInitialization::acceptWidget(DomWidget *node)
const QString name = zOrder.at(i);
if (!m_registeredWidgets.contains(name)) {
- fprintf(stderr, "'%s' isn't a valid widget\n", name.toLatin1().data());
+ fprintf(stderr, "%s: Warning: Z-order assignment: '%s' is not a valid widget.\n",
+ qPrintable(m_option.messagePrefix()),
+ name.toLatin1().data());
continue;
}
@@ -895,7 +901,9 @@ void WriteInitialization::addButtonGroup(const DomWidget *buttonNode, const QStr
DomButtonGroup *newGroup = new DomButtonGroup;
newGroup->setAttributeName(attributeName);
group = newGroup;
- fprintf(stderr, "Warning: Creating button group `%s'\n", attributeName.toLatin1().data());
+ fprintf(stderr, "%s: Warning: Creating button group `%s'\n",
+ qPrintable(m_option.messagePrefix()),
+ attributeName.toLatin1().data());
}
const QString groupName = m_driver->findOrInsertButtonGroup(group);
// Create on demand
@@ -1163,7 +1171,9 @@ void WriteInitialization::acceptActionRef(DomActionRef *node)
return;
}
} else if (!(m_driver->actionByName(actionName) || isSeparator)) {
- fprintf(stderr, "Warning: action `%s' not declared\n", actionName.toLatin1().data());
+ fprintf(stderr, "%s: Warning: action `%s' not declared\n",
+ qPrintable(m_option.messagePrefix()),
+ actionName.toLatin1().data());
return;
}
@@ -1853,7 +1863,9 @@ void WriteInitialization::acceptTabStops(DomTabStops *tabStops)
const QString name = l.at(i);
if (!m_registeredWidgets.contains(name)) {
- fprintf(stderr, "'%s' isn't a valid widget\n", name.toLatin1().data());
+ fprintf(stderr, "%s: Warning: Tab-stop assignment: '%s' is not a valid widget.\n",
+ qPrintable(m_option.messagePrefix()),
+ name.toLatin1().data());
continue;
}
@@ -2083,7 +2095,8 @@ QString WriteInitialization::pixCall(const DomProperty *p) const
s = p->elementPixmap()->text();
break;
default:
- qWarning() << "Warning: Unknown icon format encountered. The ui-file was generated with a too-recent version of Designer.";
+ qWarning("%s: Warning: Unknown icon format encountered. The ui-file was generated with a too-recent version of Designer.",
+ qPrintable(m_option.messagePrefix()));
return QLatin1String("QIcon()");
break;
}
@@ -2573,7 +2586,7 @@ void WriteInitialization::initializeQ3SqlDataTable(DomWidget *w)
}
if (table.isEmpty() || connection.isEmpty()) {
- fprintf(stderr, "invalid database connection\n");
+ fprintf(stderr, "%s: Warning: Invalid database connection\n", qPrintable(m_option.messagePrefix()));
return;
}
@@ -2613,7 +2626,7 @@ void WriteInitialization::initializeQ3SqlDataBrowser(DomWidget *w)
}
if (table.isEmpty() || connection.isEmpty()) {
- fprintf(stderr, "invalid database connection\n");
+ fprintf(stderr, "%s: Warning: Invalid database connection\n", qPrintable(m_option.messagePrefix()));
return;
}
diff --git a/src/tools/uic/driver.cpp b/src/tools/uic/driver.cpp
index 676388f7d0..65d63e0d34 100644
--- a/src/tools/uic/driver.cpp
+++ b/src/tools/uic/driver.cpp
@@ -178,7 +178,10 @@ QString Driver::unique(const QString &instanceName, const QString &className)
}
if (alreadyUsed && className.size()) {
- fprintf(stderr, "Warning: name %s is already used\n", qPrintable(instanceName));
+ fprintf(stderr, "%s: Warning: The name '%s' (%s) is already in use, defaulting to '%s'.\n",
+ qPrintable(m_option.messagePrefix()),
+ qPrintable(instanceName), qPrintable(className),
+ qPrintable(name));
}
m_nameRepository.insert(name, true);
diff --git a/src/tools/uic/option.h b/src/tools/uic/option.h
index 8556728d8c..011a8f82d5 100644
--- a/src/tools/uic/option.h
+++ b/src/tools/uic/option.h
@@ -43,6 +43,7 @@
#define OPTION_H
#include <QtCore/QString>
+#include <QtCore/QDir>
QT_BEGIN_NAMESPACE
@@ -91,6 +92,13 @@ struct Option
generator(CppGenerator),
prefix(QLatin1String("Ui_"))
{ indent.fill(QLatin1Char(' '), 4); }
+
+ QString messagePrefix() const
+ {
+ return inputFile.isEmpty() ?
+ QString(QLatin1String("stdin")) :
+ QDir::toNativeSeparators(inputFile);
+ }
};
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/parser/createTokenLookup.sh b/src/xmlpatterns/parser/createTokenLookup.sh
index 01af6cae0f..e11a3ba3e4 100755
--- a/src/xmlpatterns/parser/createTokenLookup.sh
+++ b/src/xmlpatterns/parser/createTokenLookup.sh
@@ -71,16 +71,16 @@ license=`cat <<EOF
** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
** package.
**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at http://qt.nokia.com/contact.
+**
+**
+**
+**
+**
+**
+**
+**
** \\$QT_END_LICENSE\\$
**
****************************************************************************/
diff --git a/tests/arthur/common/paintcommands.cpp b/tests/arthur/common/paintcommands.cpp
index 70d419efcf..c4f09a4cf9 100644
--- a/tests/arthur/common/paintcommands.cpp
+++ b/tests/arthur/common/paintcommands.cpp
@@ -713,7 +713,7 @@ void PaintCommands::runCommands()
QPainter pt(&pm);
pt.fillRect(0, 0, 10, 10, QColor::fromRgba(0xffdfdfdf));
pt.fillRect(10, 10, 10, 10, QColor::fromRgba(0xffdfdfdf));
-
+ pt.end();
m_painter->drawTiledPixmap(0, 0, width, height, pm);
} else {
m_painter->fillRect(0, 0, width, height, Qt::white);
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml b/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml
index 804559c2e3..d41add39bd 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml
@@ -11,7 +11,7 @@ Rectangle {
width: 100
height: 100
Behavior on x {
- NumberAnimation {}
+ NumberAnimation { duration: 500 }
}
}
}
diff --git a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
index 5028ba10e6..dca5205399 100644
--- a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
+++ b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
@@ -480,7 +480,7 @@ void tst_qdeclarativedom::loadDynamicProperty()
DP_TEST(0, a, QVariant::Int, 25, 14, "int");
DP_TEST(1, b, QVariant::Bool, 44, 15, "bool");
- DP_TEST(2, c, QVariant::Double, 64, 17, "double");
+ DP_TEST(2, c, QMetaType::QReal, 64, 17, "double");
DP_TEST(3, d, QMetaType::QReal, 86, 15, "real");
DP_TEST(4, e, QVariant::String, 106, 17, "string");
DP_TEST(5, f, QVariant::Url, 128, 14, "url");
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml b/tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml
new file mode 100644
index 0000000000..6d23e5f76c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml
@@ -0,0 +1,14 @@
+import Qt 4.7
+
+QtObject {
+ id: root
+ property bool test: false
+
+ Component.onCompleted: {
+ try {
+ root.deleteLater()
+ } catch(e) {
+ test = true;
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/in.qml b/tests/auto/declarative/qdeclarativeecmascript/data/in.qml
new file mode 100644
index 0000000000..0b5b0badfa
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/in.qml
@@ -0,0 +1,7 @@
+import Qt 4.7
+
+Item {
+ id: root
+ property bool test1: "x" in root
+ property bool test2: !("foo" in root)
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml
new file mode 100644
index 0000000000..d5d3329330
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml
@@ -0,0 +1,9 @@
+import Qt.test 1.0
+import Qt 4.7
+
+MyQmlObject {
+ id: root
+ Component.onCompleted: {
+ root.myinvokable(root);
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml
new file mode 100644
index 0000000000..29d7d012c4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import Qt 4.7
+
+MyQmlObject {
+ id: root
+ property bool test: false
+ Component.onCompleted: {
+ test = (root.returnme() == root)
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml b/tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml
new file mode 100644
index 0000000000..024d82e04f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml
@@ -0,0 +1,19 @@
+import Qt.test 1.0
+import Qt 4.7
+
+MyQmlObject {
+ id: root
+
+ property bool readOk: false;
+ property bool writeOk: false
+
+ Component.onCompleted: {
+ readOk = (root.nonscriptable == undefined);
+
+ try {
+ root.nonscriptable = 10
+ } catch (e) {
+ writeOk = true;
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
index 37d6dbd8bb..220318d586 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
@@ -92,9 +92,10 @@ class MyQmlObject : public QObject
Q_PROPERTY(QDeclarativeListProperty<QObject> objectListProperty READ objectListProperty CONSTANT)
Q_PROPERTY(int resettableProperty READ resettableProperty WRITE setResettableProperty RESET resetProperty)
Q_PROPERTY(QRegExp regExp READ regExp WRITE setRegExp)
+ Q_PROPERTY(int nonscriptable READ nonscriptable WRITE setNonscriptable SCRIPTABLE false);
public:
- MyQmlObject(): m_methodCalled(false), m_methodIntCalled(false), m_object(0), m_value(0), m_resetProperty(13) {}
+ MyQmlObject(): myinvokableObject(0), m_methodCalled(false), m_methodIntCalled(false), m_object(0), m_value(0), m_resetProperty(13) {}
enum MyEnum { EnumValue1 = 0, EnumValue2 = 1 };
enum MyEnum2 { EnumValue3 = 2, EnumValue4 = 3 };
@@ -144,6 +145,13 @@ public:
void setRegExp(const QRegExp &regExp) { m_regExp = regExp; }
int console() const { return 11; }
+
+ int nonscriptable() const { return 0; }
+ void setNonscriptable(int) {}
+
+ MyQmlObject *myinvokableObject;
+ Q_INVOKABLE MyQmlObject *returnme() { return this; }
+
signals:
void basicSignal();
void argumentSignal(int a, QString b, qreal c);
@@ -157,6 +165,7 @@ public slots:
void methodNoArgs() { m_methodCalled = true; }
void method(int a) { if(a == 163) m_methodIntCalled = true; }
void setString(const QString &s) { m_string = s; }
+ void myinvokable(MyQmlObject *o) { myinvokableObject = o; }
private:
friend class tst_qdeclarativeecmascript;
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index a6d2dac7c6..33bf7ea589 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -157,10 +157,15 @@ private slots:
void qtbug_10696();
void qtbug_11606();
void qtbug_11600();
+ void nonscriptable();
+ void deleteLater();
+ void in();
void include();
void callQtInvokables();
+ void invokableObjectArg();
+ void invokableObjectRet();
private:
QDeclarativeEngine engine;
};
@@ -1730,6 +1735,31 @@ void tst_qdeclarativeecmascript::callQtInvokables()
QCOMPARE(o.actuals().at(0), QVariant(9));
}
+// QTBUG-13047 (check that you can pass registered object types as args)
+void tst_qdeclarativeecmascript::invokableObjectArg()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("invokableObjectArg.qml"));
+
+ QObject *o = component.create();
+ QVERIFY(o);
+ MyQmlObject *qmlobject = qobject_cast<MyQmlObject *>(o);
+ QVERIFY(qmlobject);
+ QCOMPARE(qmlobject->myinvokableObject, qmlobject);
+
+ delete o;
+}
+
+// QTBUG-13047 (check that you can return registered object types from methods)
+void tst_qdeclarativeecmascript::invokableObjectRet()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("invokableObjectRet.qml"));
+
+ QObject *o = component.create();
+ QVERIFY(o);
+ QCOMPARE(o->property("test").toBool(), true);
+ delete o;
+}
+
// QTBUG-5675
void tst_qdeclarativeecmascript::listToVariant()
{
@@ -2530,6 +2560,36 @@ void tst_qdeclarativeecmascript::qtbug_11600()
delete o;
}
+// Reading and writing non-scriptable properties should fail
+void tst_qdeclarativeecmascript::nonscriptable()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("nonscriptable.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+ QCOMPARE(o->property("readOk").toBool(), true);
+ QCOMPARE(o->property("writeOk").toBool(), true);
+ delete o;
+}
+
+// deleteLater() should not be callable from QML
+void tst_qdeclarativeecmascript::deleteLater()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("deleteLater.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+ QCOMPARE(o->property("test").toBool(), true);
+ delete o;
+}
+
+void tst_qdeclarativeecmascript::in()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("in.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+ QCOMPARE(o->property("test1").toBool(), true);
+ QCOMPARE(o->property("test2").toBool(), true);
+ delete o;
+}
QTEST_MAIN(tst_qdeclarativeecmascript)
diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
index 1a28b7148b..d4d8bf6e80 100644
--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
@@ -590,7 +590,7 @@ void tst_QDeclarativeGridView::currentIndex()
QCOMPARE(gridview->currentIndex(), 35);
QCOMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 35));
QCOMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y());
- QCOMPARE(gridview->contentY(), 399.0);
+ QCOMPARE(gridview->contentY(), 400.0);
gridview->moveCurrentIndexRight();
QCOMPARE(gridview->currentIndex(), 36);
@@ -629,7 +629,7 @@ void tst_QDeclarativeGridView::currentIndex()
gridview->moveCurrentIndexLeft();
QCOMPARE(gridview->currentIndex(), model.count()-1);
- QTRY_COMPARE(gridview->contentY(), 879.0);
+ QTRY_COMPARE(gridview->contentY(), 880.0);
gridview->moveCurrentIndexRight();
QCOMPARE(gridview->currentIndex(), 0);
@@ -655,6 +655,15 @@ void tst_QDeclarativeGridView::currentIndex()
gridview->setFlow(QDeclarativeGridView::TopToBottom);
+ qApp->setActiveWindow(canvas);
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(canvas);
+#endif
+ QTRY_VERIFY(canvas->hasFocus());
+ QTRY_VERIFY(canvas->scene()->hasFocus());
+ qApp->processEvents();
+
QTest::keyClick(canvas, Qt::Key_Right);
QCOMPARE(gridview->currentIndex(), 5);
diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
index 8cfb487973..26861279dd 100644
--- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
+++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
@@ -52,7 +52,9 @@
#include <private/qdeclarativeloader_p.h>
#include <QtDeclarative/qdeclarativecontext.h>
#include <QtDeclarative/qdeclarativeexpression.h>
+#include <QtTest/QSignalSpy>
+#include "../../../shared/util.h"
#include "../shared/testhttpserver.h"
#ifdef Q_OS_SYMBIAN
@@ -63,18 +65,7 @@
#define SERVER_PORT 14451
#define SERVER_ADDR "http://127.0.0.1:14451"
-#define TRY_WAIT(expr) \
- do { \
- for (int ii = 0; ii < 60; ++ii) { \
- if ((expr)) break; \
- QTest::qWait(50); \
- } \
- QVERIFY((expr)); \
- } while (false)
-
-
class tst_qdeclarativeimage : public QObject
-
{
Q_OBJECT
public:
@@ -91,6 +82,7 @@ private slots:
void svg();
void big();
void tiling_QTBUG_6716();
+ void noLoading();
private:
template<typename T>
@@ -173,18 +165,18 @@ void tst_qdeclarativeimage::imageSource()
QVERIFY(obj->asynchronous() == true);
if (remote || async)
- TRY_WAIT(obj->status() == QDeclarativeImage::Loading);
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Loading);
QCOMPARE(obj->source(), remote ? source : QUrl(source));
if (error.isEmpty()) {
- TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Ready);
QCOMPARE(obj->width(), qreal(width));
QCOMPARE(obj->height(), qreal(height));
QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
QCOMPARE(obj->progress(), 1.0);
} else {
- TRY_WAIT(obj->status() == QDeclarativeImage::Error);
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Error);
}
delete obj;
@@ -355,6 +347,54 @@ void tst_qdeclarativeimage::tiling_QTBUG_6716()
}
}
+void tst_qdeclarativeimage::noLoading()
+{
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ server.serveDirectory(SRCDIR "/data");
+ server.addRedirect("oldcolors.png", SERVER_ADDR "/colors.png");
+
+ QString componentStr = "import Qt 4.7\nImage { source: srcImage }";
+ QDeclarativeContext *ctxt = engine.rootContext();
+ ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/heart.png"));
+ QDeclarativeComponent component(&engine);
+ component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
+ QVERIFY(obj != 0);
+ QVERIFY(obj->status() == QDeclarativeImage::Ready);
+
+ QSignalSpy sourceSpy(obj, SIGNAL(sourceChanged(const QUrl &)));
+ QSignalSpy progressSpy(obj, SIGNAL(progressChanged(qreal)));
+ QSignalSpy statusSpy(obj, SIGNAL(statusChanged(QDeclarativeImageBase::Status)));
+
+ // Loading local file
+ ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/colors.png"));
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Ready);
+ QTRY_VERIFY(obj->progress() == 1.0);
+ QTRY_COMPARE(sourceSpy.count(), 1);
+ QTRY_COMPARE(progressSpy.count(), 0);
+ QTRY_COMPARE(statusSpy.count(), 0);
+
+ // Loading remote file
+ ctxt->setContextProperty("srcImage", QString(SERVER_ADDR) + "/oldcolors.png");
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Loading);
+ QTRY_VERIFY(obj->progress() == 0.0);
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Ready);
+ QTRY_VERIFY(obj->progress() == 1.0);
+ QTRY_COMPARE(sourceSpy.count(), 2);
+ QTRY_COMPARE(progressSpy.count(), 2);
+ QTRY_COMPARE(statusSpy.count(), 2);
+
+ // Loading remote file again - should not go through 'Loading' state.
+ ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/colors.png"));
+ ctxt->setContextProperty("srcImage", QString(SERVER_ADDR) + "/oldcolors.png");
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Ready);
+ QTRY_VERIFY(obj->progress() == 1.0);
+ QTRY_COMPARE(sourceSpy.count(), 4);
+ QTRY_COMPARE(progressSpy.count(), 2);
+ QTRY_COMPARE(statusSpy.count(), 2);
+}
+
/*
Find an item with the specified objectName. If index is supplied then the
item must also evaluate the {index} expression equal to index
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro b/tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro
index bdb6423657..3bf0ea13e5 100644
--- a/tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro
+++ b/tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro
@@ -8,11 +8,7 @@ SOURCES += tst_qdeclarativeimageprovider.cpp
# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
# LIBS += -lgcov
-symbian: {
- importFiles.sources = data
- importFiles.path = .
- DEPLOYMENT = importFiles
-} else {
+!symbian: {
DEFINES += SRCDIR=\\\"$$PWD\\\"
}
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
index 6d5a3578ef..d0afc8a688 100644
--- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
+++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
@@ -389,6 +389,7 @@ void tst_qdeclarativeimageprovider::threadTest()
}
provider->ok = true;
provider->cond.wakeAll();
+ QTest::qWait(250);
foreach(QDeclarativeImage *img, images) {
TRY_WAIT(img->status() == QDeclarativeImage::Ready);
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/DontDoubleCallClassBeginItem.qml b/tests/auto/declarative/qdeclarativelanguage/data/DontDoubleCallClassBeginItem.qml
new file mode 100644
index 0000000000..1f8eac8a3b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/DontDoubleCallClassBeginItem.qml
@@ -0,0 +1,4 @@
+import Test 1.0
+
+MyParserStatus {
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml b/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml
new file mode 100644
index 0000000000..59afe58cc3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml
@@ -0,0 +1,14 @@
+import Qt 4.7
+
+QtObject {
+ id: root
+
+ property bool test: false
+ property alias myalias: root.objectName
+ signal go
+ onGo: test = true
+
+ Component.onCompleted: {
+ root.go();
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml b/tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml
new file mode 100644
index 0000000000..df048cca4e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml
@@ -0,0 +1,5 @@
+import Qt 4.7
+
+Item {
+ property QtObject object: DontDoubleCallClassBeginItem {}
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.errors.txt
new file mode 100644
index 0000000000..93652a7042
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.errors.txt
@@ -0,0 +1 @@
+5:23:Invalid alias location
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.qml
new file mode 100644
index 0000000000..2a09648d57
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ id: root
+ property alias a: root.nonScriptable
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt
index 6e11786e1e..53e752b641 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt
@@ -1,2 +1,2 @@
-4:5:Unable to create type NestedErrorsType
+4:5:Type NestedErrorsType unavailable
4:8:Invalid property assignment: number expected
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.errors.txt
new file mode 100644
index 0000000000..cdfa4b2ef2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.errors.txt
@@ -0,0 +1 @@
+4:5:Cannot assign to non-existent property "nonScriptable"
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.qml
new file mode 100644
index 0000000000..bd59bc80f9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.qml
@@ -0,0 +1,5 @@
+import Test 1.0
+
+MyQmlObject {
+ nonScriptable: 11
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml b/tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml
new file mode 100644
index 0000000000..e7aaf16f0e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml
@@ -0,0 +1,13 @@
+import Qt 4.7
+
+QtObject {
+ property int notifyCount: 0
+
+ property variant foo
+ onFooChanged: notifyCount++
+
+ Component.onCompleted: {
+ foo = 1;
+ foo = 1;
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
index 5d87404723..20cd9760cc 100644
--- a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
@@ -50,6 +50,7 @@ void registerTypes()
qmlRegisterType<MyDotPropertyObject>("Test",1,0,"MyDotPropertyObject");
qmlRegisterType<MyNamespace::MyNamespacedType>("Test",1,0,"MyNamespacedType");
qmlRegisterType<MyNamespace::MySecondNamespacedType>("Test",1,0,"MySecondNamespacedType");
+ qmlRegisterType<MyParserStatus>("Test",1,0,"MyParserStatus");
qmlRegisterType<MyGroupedObject>();
qmlRegisterCustomType<MyCustomParserType>("Test", 1, 0, "MyCustomParserType", new MyCustomParserTypeParser);
diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.h b/tests/auto/declarative/qdeclarativelanguage/testtypes.h
index acbe2198b2..ac55baea26 100644
--- a/tests/auto/declarative/qdeclarativelanguage/testtypes.h
+++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.h
@@ -112,6 +112,7 @@ class MyQmlObject : public QObject, public MyInterface
Q_PROPERTY(MyCustomVariantType customType READ customType WRITE setCustomType)
Q_PROPERTY(MyQmlObject *qmlobjectProperty READ qmlobject WRITE setQmlobject)
Q_PROPERTY(int propertyWithNotify READ propertyWithNotify WRITE setPropertyWithNotify NOTIFY oddlyNamedNotifySignal)
+ Q_PROPERTY(int nonScriptable READ nonScriptable WRITE setNonScriptable SCRIPTABLE false);
Q_INTERFACES(MyInterface)
public:
@@ -150,6 +151,9 @@ public:
int propertyWithNotify() const { return m_propertyWithNotify; }
void setPropertyWithNotify(int i) { m_propertyWithNotify = i; emit oddlyNamedNotifySignal(); }
+
+ int nonScriptable() const { return 0; }
+ void setNonScriptable(int) {}
public slots:
void basicSlot() { qWarning("MyQmlObject::basicSlot"); }
void basicSlotWithArgs(int v) { qWarning("MyQmlObject::basicSlotWithArgs(%d)", v); }
@@ -170,7 +174,6 @@ private:
QML_DECLARE_TYPE(MyQmlObject)
QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES)
-
class MyGroupedObject : public QObject
{
Q_OBJECT
@@ -576,6 +579,22 @@ public:
void setCustomData(QObject *, const QByteArray &) {}
};
+class MyParserStatus : public QObject, public QDeclarativeParserStatus
+{
+ Q_OBJECT
+public:
+ MyParserStatus() : m_cbc(0), m_ccc(0) {}
+
+ int classBeginCount() const { return m_cbc; }
+ int componentCompleteCount() const { return m_ccc; }
+
+ virtual void classBegin() { m_cbc++; }
+ virtual void componentComplete() { m_ccc++; }
+private:
+ int m_cbc;
+ int m_ccc;
+};
+
void registerTypes();
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
index fcdf9263cd..1825991804 100644
--- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
@@ -118,6 +118,7 @@ private slots:
void valueTypes();
void cppnamespace();
void aliasProperties();
+ void aliasPropertiesAndSignals();
void componentCompositeType();
void i18n();
void i18n_data();
@@ -126,6 +127,7 @@ private slots:
void scriptString();
void defaultPropertyListOrder();
void declaredPropertyValues();
+ void dontDoubleCallClassBegin();
void basicRemote_data();
void basicRemote();
@@ -141,8 +143,8 @@ private slots:
void importsOrder();
void qmlAttachedPropertiesObjectMethod();
-
void customOnProperty();
+ void variantNotify();
// regression tests for crashes
void crash1();
@@ -342,6 +344,7 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("invalidAlias.4") << "invalidAlias.4.qml" << "invalidAlias.4.errors.txt" << false;
QTest::newRow("invalidAlias.5") << "invalidAlias.5.qml" << "invalidAlias.5.errors.txt" << false;
QTest::newRow("invalidAlias.6") << "invalidAlias.6.qml" << "invalidAlias.6.errors.txt" << false;
+ QTest::newRow("invalidAlias.7") << "invalidAlias.7.qml" << "invalidAlias.7.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.1") << "invalidAttachedProperty.1.qml" << "invalidAttachedProperty.1.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.2") << "invalidAttachedProperty.2.qml" << "invalidAttachedProperty.2.errors.txt" << false;
@@ -372,6 +375,7 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("assignToNamespace") << "assignToNamespace.qml" << "assignToNamespace.errors.txt" << false;
QTest::newRow("invalidOn") << "invalidOn.qml" << "invalidOn.errors.txt" << false;
QTest::newRow("invalidProperty") << "invalidProperty.qml" << "invalidProperty.errors.txt" << false;
+ QTest::newRow("nonScriptableProperty") << "nonScriptableProperty.qml" << "nonScriptableProperty.errors.txt" << false;
}
@@ -1048,6 +1052,17 @@ void tst_qdeclarativelanguage::aliasProperties()
}
}
+// QTBUG-13374 Test that alias properties and signals can coexist
+void tst_qdeclarativelanguage::aliasPropertiesAndSignals()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasPropertiesAndSignals.qml"));
+ VERIFY_ERRORS(0);
+ QObject *o = component.create();
+ QVERIFY(o);
+ QCOMPARE(o->property("test").toBool(), true);
+ delete o;
+}
+
// Test that the root element in a composite type can be a Component
void tst_qdeclarativelanguage::componentCompositeType()
{
@@ -1192,6 +1207,20 @@ void tst_qdeclarativelanguage::declaredPropertyValues()
VERIFY_ERRORS(0);
}
+void tst_qdeclarativelanguage::dontDoubleCallClassBegin()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("dontDoubleCallClassBegin.qml"));
+ QObject *o = component.create();
+ QVERIFY(o);
+
+ MyParserStatus *o2 = qobject_cast<MyParserStatus *>(qvariant_cast<QObject *>(o->property("object")));
+ QVERIFY(o2);
+ QCOMPARE(o2->classBeginCount(), 1);
+ QCOMPARE(o2->componentCompleteCount(), 1);
+
+ delete o;
+}
+
// Check that first child of qml is of given type. Empty type insists on error.
void tst_qdeclarativelanguage::testType(const QString& qml, const QString& type, const QString& expectederror)
{
@@ -1668,6 +1697,20 @@ void tst_qdeclarativelanguage::customOnProperty()
delete object;
}
+// QTBUG-12601
+void tst_qdeclarativelanguage::variantNotify()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("variantNotify.qml"));
+
+ VERIFY_ERRORS(0);
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("notifyCount").toInt(), 1);
+
+ delete object;
+}
+
void tst_qdeclarativelanguage::initTestCase()
{
registerTypes();
diff --git a/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml b/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml
index 66728d6876..9ea5953324 100644
--- a/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml
+++ b/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml
@@ -13,17 +13,17 @@ Rectangle {
objectName: "itemModel"
Rectangle {
objectName: "item1"
- height: view.height; width: view.width; color: "#FFFEF0"
+ height: ListView.view.height; width: view.width; color: "#FFFEF0"
Text { objectName: "text1"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
}
Rectangle {
objectName: "item2"
- height: view.height; width: view.width; color: "#F0FFF7"
+ height: ListView.view.height; width: view.width; color: "#F0FFF7"
Text { objectName: "text2"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
}
Rectangle {
objectName: "item3"
- height: view.height; width: view.width; color: "#F4F0FF"
+ height: ListView.view.height; width: view.width; color: "#F4F0FF"
Text { objectName: "text3"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
}
}
diff --git a/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml b/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml
index 3b2db5e05a..d5d3365c9a 100644
--- a/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml
+++ b/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml
@@ -4,6 +4,12 @@ Rectangle {
width: 240
height: 320
color: "#ffffff"
+
+ property real hr: list.visibleArea.heightRatio
+ function heightRatio() {
+ return list.visibleArea.heightRatio
+ }
+
function checkProperties() {
testObject.error = false;
if (list.model != testModel) {
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index 9c24e036c1..e4b59a711a 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -98,6 +98,7 @@ private slots:
void manualHighlight();
void QTBUG_11105();
void footer();
+ void resizeView();
private:
template <class T> void items();
@@ -223,6 +224,13 @@ public:
emit itemsRemoved(index, 1);
}
+ void removeItems(int index, int count) {
+ int c = count;
+ while (c--)
+ list.removeAt(index);
+ emit itemsRemoved(index, count);
+ }
+
void moveItem(int from, int to) {
list.move(from, to);
emit itemsMoved(from, to, 1);
@@ -289,6 +297,13 @@ public:
emit endRemoveRows();
}
+ void removeItems(int index, int count) {
+ emit beginRemoveRows(QModelIndex(), index, index+count-1);
+ while (count--)
+ list.removeAt(index);
+ emit endRemoveRows();
+ }
+
void moveItem(int from, int to) {
emit beginMoveRows(QModelIndex(), from, from, QModelIndex(), to);
list.move(from, to);
@@ -519,7 +534,7 @@ void tst_QDeclarativeListView::removed(bool animated)
QDeclarativeView *canvas = createView();
T model;
- for (int i = 0; i < 30; i++)
+ for (int i = 0; i < 50; i++)
model.addItem("Item" + QString::number(i), "");
QDeclarativeContext *ctxt = canvas->rootContext();
@@ -642,6 +657,21 @@ void tst_QDeclarativeListView::removed(bool animated)
QTRY_COMPARE(listview->currentIndex(), 7);
QTRY_VERIFY(listview->currentItem() == oldCurrent);
+ listview->setContentY(80);
+ QTest::qWait(300);
+
+ model.removeItems(1, 17);
+ QTest::qWait(300);
+
+ // Confirm items positioned correctly
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
+ for (int i = 0; i < model.count() && i < itemCount-1; ++i) {
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i+2);
+ if (!item) qWarning() << "Item" << i+2 << "not found";
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(),80+i*20.0);
+ }
+
delete canvas;
}
@@ -979,7 +1009,7 @@ void tst_QDeclarativeListView::currentIndex()
// current item should be 20th item at startup
// and current item should be in view
QCOMPARE(listview->currentIndex(), 20);
- QCOMPARE(listview->contentY(), 99.0);
+ QCOMPARE(listview->contentY(), 100.0);
QCOMPARE(listview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 20));
QCOMPARE(listview->highlightItem()->y(), listview->currentItem()->y());
@@ -1002,7 +1032,7 @@ void tst_QDeclarativeListView::currentIndex()
listview->decrementCurrentIndex();
QCOMPARE(listview->currentIndex(), model.count()-1);
- QTRY_COMPARE(listview->contentY(), 279.0);
+ QTRY_COMPARE(listview->contentY(), 280.0);
listview->incrementCurrentIndex();
QCOMPARE(listview->currentIndex(), 0);
@@ -1066,6 +1096,7 @@ void tst_QDeclarativeListView::itemList()
QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "item1");
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), 0.0);
+ QCOMPARE(item->height(), listview->height());
QDeclarativeText *text = findItem<QDeclarativeText>(contentItem, "text1");
QTRY_VERIFY(text);
@@ -1590,6 +1621,48 @@ void tst_QDeclarativeListView::footer()
QTRY_COMPARE(footer->y(), 0.0);
}
+void tst_QDeclarativeListView::resizeView()
+{
+ QDeclarativeView *canvas = createView();
+
+ TestModel model;
+ for (int i = 0; i < 40; i++)
+ model.addItem("Item" + QString::number(i), "");
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ TestObject *testObject = new TestObject;
+ ctxt->setContextProperty("testObject", testObject);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
+ qApp->processEvents();
+
+ QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
+ QTRY_VERIFY(listview != 0);
+
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
+
+ // Confirm items positioned correctly
+ int itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
+ for (int i = 0; i < model.count() && i < itemCount; ++i) {
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
+ if (!item) qWarning() << "Item" << i << "not found";
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.);
+ }
+
+ QVariant heightRatio;
+ QMetaObject::invokeMethod(canvas->rootObject(), "heightRatio", Q_RETURN_ARG(QVariant, heightRatio));
+ QCOMPARE(heightRatio.toReal(), 0.4);
+
+ listview->setHeight(200);
+
+ QMetaObject::invokeMethod(canvas->rootObject(), "heightRatio", Q_RETURN_ARG(QVariant, heightRatio));
+ QCOMPARE(heightRatio.toReal(), 0.25);
+}
+
void tst_QDeclarativeListView::qListModelInterface_items()
{
items<TestModel>();
diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
index b0b7a3b629..3baf8481d0 100644
--- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
+++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
@@ -146,7 +146,7 @@ void tst_QDeclarativeLoader::component()
void tst_QDeclarativeLoader::invalidUrl()
{
- QTest::ignoreMessage(QtWarningMsg, QString("<Unknown File>: File error for URL " + QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString()).toUtf8().constData());
+ QTest::ignoreMessage(QtWarningMsg, QString(QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ": File not found").toUtf8().constData());
QDeclarativeComponent component(&engine);
component.setData(QByteArray("import Qt 4.7\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE(""));
@@ -508,7 +508,7 @@ void tst_QDeclarativeLoader::failNetworkRequest()
QVERIFY(server.isValid());
server.serveDirectory(SRCDIR "/data");
- QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: Network error for URL http://127.0.0.1:14450/IDontExist.qml");
+ QTest::ignoreMessage(QtWarningMsg, "http://127.0.0.1:14450/IDontExist.qml: File not found");
QDeclarativeComponent component(&engine);
component.setData(QByteArray("import Qt 4.7\nLoader { property int did_load: 123; source: \"http://127.0.0.1:14450/IDontExist.qml\"; onLoaded: did_load=456 }"), QUrl::fromLocalFile("http://127.0.0.1:14450/dummy.qml"));
diff --git a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
index e2ccfd200d..74d2f0a619 100644
--- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
+++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
@@ -367,9 +367,11 @@ void tst_QDeclarativePathView::dataModel()
QCOMPARE(item->y(), 10.0);
model.insertItem(4, "orange", "10");
+ QTest::qWait(100);
- int itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
- QCOMPARE(itemCount, 10);
+ QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 10);
+
+ QVERIFY(pathview->currentIndex() == 0);
QDeclarativeText *text = findItem<QDeclarativeText>(pathview, "myText", 4);
QVERIFY(text);
@@ -384,26 +386,27 @@ void tst_QDeclarativePathView::dataModel()
QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties");
QVERIFY(testObject->error() == false);
- itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
- QCOMPARE(itemCount, 5);
+ QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
QDeclarativeRectangle *testItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", 4);
QVERIFY(testItem != 0);
testItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", 5);
QVERIFY(testItem == 0);
+ pathview->setCurrentIndex(1);
+
model.insertItem(2, "pink", "2");
+ QTest::qWait(100);
- itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
- QCOMPARE(itemCount, 5);
+ QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
+ QVERIFY(pathview->currentIndex() == 1);
text = findItem<QDeclarativeText>(pathview, "myText", 2);
QVERIFY(text);
QCOMPARE(text->text(), model.name(2));
model.removeItem(3);
- itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
- QCOMPARE(itemCount, 5);
+ QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
text = findItem<QDeclarativeText>(pathview, "myText", 3);
QVERIFY(text);
QCOMPARE(text->text(), model.name(3));
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
index 6b3622495e..b20d8ec023 100644
--- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
+++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
@@ -42,6 +42,7 @@
#include <QtTest/QtTest>
#include <private/qdeclarativepixmapcache_p.h>
#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativeimageprovider.h>
#include <QNetworkReply>
#include "testhttpserver.h"
#include "../../../shared/util.h"
@@ -72,6 +73,7 @@ private slots:
void parallel_data();
void massive();
void cancelcrash();
+ void shrinkcache();
private:
QDeclarativeEngine engine;
@@ -326,6 +328,31 @@ void tst_qdeclarativepixmapcache::cancelcrash()
}
}
+class MyPixmapProvider : public QDeclarativeImageProvider
+{
+public:
+ MyPixmapProvider()
+ : QDeclarativeImageProvider(Pixmap) {}
+
+ virtual QPixmap requestPixmap(const QString &d, QSize *, const QSize &) {
+ QPixmap pix(800, 600);
+ pix.fill(Qt::red);
+ return pix;
+ }
+};
+
+// QTBUG-13345
+void tst_qdeclarativepixmapcache::shrinkcache()
+{
+ QDeclarativeEngine engine;
+ engine.addImageProvider(QLatin1String("mypixmaps"), new MyPixmapProvider);
+
+ for (int ii = 0; ii < 4000; ++ii) {
+ QUrl url("image://mypixmaps/" + QString::number(ii));
+ QDeclarativePixmap p(&engine, url);
+ }
+}
+
QTEST_MAIN(tst_qdeclarativepixmapcache)
#include "tst_qdeclarativepixmapcache.moc"
diff --git a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
index 658f381fb4..f683d98a80 100644
--- a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
+++ b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
@@ -608,6 +608,17 @@ void tst_qdeclarativetext::style()
QCOMPARE((int)textObject->style(), (int)styles.at(i));
QCOMPARE(textObject->styleColor(), QColor("white"));
}
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello World\" }";
+ QDeclarativeComponent textComponent(&engine);
+ textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
+
+ QRectF brPre = textObject->boundingRect();
+ textObject->setStyle(QDeclarativeText::Outline);
+ QRectF brPost = textObject->boundingRect();
+
+ QVERIFY(brPre.width() < brPost.width());
+ QVERIFY(brPre.height() < brPost.height());
}
void tst_qdeclarativetext::color()
diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
index 56a3121b08..84f423073d 100644
--- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
+++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
@@ -777,7 +777,7 @@ void tst_qdeclarativetextedit::delegateLoading_data()
// import installed
QTest::newRow("pass") << "cursorHttpTestPass.qml" << "";
- QTest::newRow("fail1") << "cursorHttpTestFail1.qml" << "<Unknown File>: Network error for URL http://localhost:42332/FailItem.qml ";
+ QTest::newRow("fail1") << "cursorHttpTestFail1.qml" << "http://localhost:42332/FailItem.qml: Remote host closed the connection ";
QTest::newRow("fail2") << "cursorHttpTestFail2.qml" << "http://localhost:42332/ErrItem.qml:4:5: Fungus is not a type ";
}
diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml
new file mode 100644
index 0000000000..c5e945adb9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml
@@ -0,0 +1,19 @@
+import Qt 4.7
+
+ListView {
+ width: 100
+ height: 100
+ anchors.fill: parent
+ model: VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+ model: myModel
+ delegate: Component {
+ Rectangle {
+ height: 25
+ width: 100
+ Text { objectName: "display"; text: display }
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
index e0f32ea828..95ef4fcd59 100644
--- a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
@@ -83,6 +83,8 @@ public:
private slots:
void rootIndex();
+ void updateLayout();
+ void childChanged();
void objectListModel();
private:
@@ -155,6 +157,100 @@ void tst_qdeclarativevisualdatamodel::rootIndex()
delete obj;
}
+void tst_qdeclarativevisualdatamodel::updateLayout()
+{
+ QDeclarativeView view;
+
+ QStandardItemModel model;
+ initStandardTreeModel(&model);
+
+ view.rootContext()->setContextProperty("myModel", &model);
+
+ view.setSource(QUrl::fromLocalFile(SRCDIR "/data/datalist.qml"));
+
+ QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject());
+ QVERIFY(listview != 0);
+
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QVERIFY(contentItem != 0);
+
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "display", 0);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 1 Item"));
+ name = findItem<QDeclarativeText>(contentItem, "display", 1);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 2 Item"));
+ name = findItem<QDeclarativeText>(contentItem, "display", 2);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 3 Item"));
+
+ model.invisibleRootItem()->sortChildren(0, Qt::DescendingOrder);
+
+ name = findItem<QDeclarativeText>(contentItem, "display", 0);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 3 Item"));
+ name = findItem<QDeclarativeText>(contentItem, "display", 1);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 2 Item"));
+ name = findItem<QDeclarativeText>(contentItem, "display", 2);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 1 Item"));
+}
+
+void tst_qdeclarativevisualdatamodel::childChanged()
+{
+ QDeclarativeView view;
+
+ QStandardItemModel model;
+ initStandardTreeModel(&model);
+
+ view.rootContext()->setContextProperty("myModel", &model);
+
+ view.setSource(QUrl::fromLocalFile(SRCDIR "/data/datalist.qml"));
+
+ QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject());
+ QVERIFY(listview != 0);
+
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QVERIFY(contentItem != 0);
+
+ QDeclarativeVisualDataModel *vdm = listview->findChild<QDeclarativeVisualDataModel*>("visualModel");
+ vdm->setRootIndex(QVariant::fromValue(model.indexFromItem(model.item(1,0))));
+
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "display", 0);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 2 Child Item"));
+
+ model.item(1,0)->child(0,0)->setText("Row 2 updated child");
+
+ name = findItem<QDeclarativeText>(contentItem, "display", 0);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 2 updated child"));
+
+ model.item(1,0)->appendRow(new QStandardItem(QLatin1String("Row 2 Child Item 2")));
+ QTest::qWait(300);
+
+ name = findItem<QDeclarativeText>(contentItem, "display", 1);
+ QVERIFY(name != 0);
+ QCOMPARE(name->text(), QString("Row 2 Child Item 2"));
+
+ model.item(1,0)->takeRow(1);
+ name = findItem<QDeclarativeText>(contentItem, "display", 1);
+ QVERIFY(name == 0);
+
+ vdm->setRootIndex(QVariant::fromValue(QModelIndex()));
+ QTest::qWait(300);
+ name = findItem<QDeclarativeText>(contentItem, "display", 0);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 1 Item"));
+ name = findItem<QDeclarativeText>(contentItem, "display", 1);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 2 Item"));
+ name = findItem<QDeclarativeText>(contentItem, "display", 2);
+ QVERIFY(name);
+ QCOMPARE(name->text(), QString("Row 3 Item"));
+}
+
void tst_qdeclarativevisualdatamodel::objectListModel()
{
QDeclarativeView view;
diff --git a/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
index 8ba9d45d24..0f6d5315fa 100644
--- a/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
+++ b/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
@@ -558,7 +558,7 @@ void tst_QMetaObjectBuilder::property()
QVERIFY(prop1.isWritable());
QVERIFY(!prop1.isResettable());
QVERIFY(!prop1.isDesignable());
- QVERIFY(!prop1.isScriptable());
+ QVERIFY(prop1.isScriptable());
QVERIFY(!prop1.isStored());
QVERIFY(!prop1.isEditable());
QVERIFY(!prop1.isUser());
@@ -577,7 +577,7 @@ void tst_QMetaObjectBuilder::property()
QVERIFY(prop2.isWritable());
QVERIFY(!prop2.isResettable());
QVERIFY(!prop2.isDesignable());
- QVERIFY(!prop2.isScriptable());
+ QVERIFY(prop2.isScriptable());
QVERIFY(!prop2.isStored());
QVERIFY(!prop2.isEditable());
QVERIFY(!prop2.isUser());
@@ -599,7 +599,7 @@ void tst_QMetaObjectBuilder::property()
prop1.setWritable(false);
prop1.setResettable(true);
prop1.setDesignable(true);
- prop1.setScriptable(true);
+ prop1.setScriptable(false);
prop1.setStored(true);
prop1.setEditable(true);
prop1.setUser(true);
@@ -614,7 +614,7 @@ void tst_QMetaObjectBuilder::property()
QVERIFY(!prop1.isWritable());
QVERIFY(prop1.isResettable());
QVERIFY(prop1.isDesignable());
- QVERIFY(prop1.isScriptable());
+ QVERIFY(!prop1.isScriptable());
QVERIFY(prop1.isStored());
QVERIFY(prop1.isEditable());
QVERIFY(prop1.isUser());
@@ -627,7 +627,7 @@ void tst_QMetaObjectBuilder::property()
QCOMPARE(prop2.type(), QByteArray("int"));
QVERIFY(!prop2.isResettable());
QVERIFY(!prop2.isDesignable());
- QVERIFY(!prop2.isScriptable());
+ QVERIFY(prop2.isScriptable());
QVERIFY(!prop2.isStored());
QVERIFY(!prop2.isEditable());
QVERIFY(!prop2.isUser());
@@ -643,7 +643,7 @@ void tst_QMetaObjectBuilder::property()
QCOMPARE(prop2.type(), QByteArray("int"));
QVERIFY(!prop2.isResettable());
QVERIFY(!prop2.isDesignable());
- QVERIFY(!prop2.isScriptable());
+ QVERIFY(prop2.isScriptable());
QVERIFY(!prop2.isStored());
QVERIFY(!prop2.isEditable());
QVERIFY(!prop2.isUser());
diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png
new file mode 100644
index 0000000000..16adc514df
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml
new file mode 100644
index 0000000000..0cc98ce8c3
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml
@@ -0,0 +1,447 @@
+import Qt.VisualTest 4.7
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 32
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 48
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 64
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 80
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 96
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 112
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 128
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 144
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 160
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 176
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 192
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 208
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 224
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 240
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 256
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 272
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 288
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 304
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 320
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 336
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 352
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 368
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 384
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 400
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 416
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 432
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 448
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 464
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 480
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 496
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 220; y: 270
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 512
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 528
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 544
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 560
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 576
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 271
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 220; y: 271
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 592
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+ Frame {
+ msec: 608
+ hash: "96e8e81d61bffe02b8f41f47a4a7e8fc"
+ }
+ Frame {
+ msec: 624
+ hash: "75881a2779bd7d7f683f87c4a7393769"
+ }
+ Frame {
+ msec: 640
+ hash: "2ef628328d2a6393095e78db80b0513f"
+ }
+ Frame {
+ msec: 656
+ hash: "390926f2c2c27dfa10c9b393ee466ce6"
+ }
+ Frame {
+ msec: 672
+ hash: "ea07d93e7d8a53f56cff19d9d3b282a4"
+ }
+ Frame {
+ msec: 688
+ hash: "8aa6be919b1ef4b7e102a319a453707e"
+ }
+ Frame {
+ msec: 704
+ hash: "6ebc518fb53ffe42fca20b9f16a21b36"
+ }
+ Frame {
+ msec: 720
+ hash: "ee7a93b157e24e22efa84604e7e44fe6"
+ }
+ Frame {
+ msec: 736
+ hash: "de3bf8f67e51b036db4976fd3b4b6c3c"
+ }
+ Frame {
+ msec: 752
+ hash: "648be4298ebe3bbc7e5c4a4c9c46f193"
+ }
+ Frame {
+ msec: 768
+ hash: "1ccf3b73e22a4b98ce1df098af9466f2"
+ }
+ Frame {
+ msec: 784
+ hash: "73a2fb047728b2b8e613f0fb8dfe429d"
+ }
+ Frame {
+ msec: 800
+ hash: "bbb4cabec4b98ea8ca94dff91a0d8c99"
+ }
+ Frame {
+ msec: 816
+ hash: "3337e86bd9fcfbce939389928fb1fb72"
+ }
+ Frame {
+ msec: 832
+ hash: "cb4a2a330e8470c61de9e9b6d2dc4597"
+ }
+ Frame {
+ msec: 848
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 864
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 880
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 896
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 912
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 928
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 944
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 960
+ image: "qtbug13398.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 992
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1008
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1024
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1040
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1056
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1072
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1088
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1104
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1120
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1136
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1152
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1168
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1184
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1200
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1216
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1232
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 220; y: 271
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1248
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1264
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1280
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1296
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1312
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1328
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 220; y: 271
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1344
+ hash: "e09a359578935b988ac1cc8c40b25547"
+ }
+ Frame {
+ msec: 1360
+ hash: "697a4fd182ff90cd557f224174bad43a"
+ }
+ Frame {
+ msec: 1376
+ hash: "99e5ca9a77df1acfed628f31b9050179"
+ }
+ Frame {
+ msec: 1392
+ hash: "1f0dc00d3e3536b40a6becf775b31cee"
+ }
+ Frame {
+ msec: 1408
+ hash: "5b81ddd35d74be222bc8a40d2573884b"
+ }
+ Frame {
+ msec: 1424
+ hash: "4e236f5de69048e87add0e4380f2c3e6"
+ }
+ Frame {
+ msec: 1440
+ hash: "a901c9c0c77e03d98a2b95267cca8514"
+ }
+ Frame {
+ msec: 1456
+ hash: "78bbdf6781c2968c67982ffdb747dbbe"
+ }
+ Frame {
+ msec: 1472
+ hash: "a245ca593649f60980be982eb8fda57e"
+ }
+ Frame {
+ msec: 1488
+ hash: "c27fddc147749da24eaeb92aeaf61738"
+ }
+ Frame {
+ msec: 1504
+ hash: "b9674af46b618dc1eedabd4f18253b11"
+ }
+ Frame {
+ msec: 1520
+ hash: "8ae3c0cc0888fd0a607bc5b537a9ce0a"
+ }
+ Frame {
+ msec: 1536
+ hash: "f1981bd3fb08233622a4078e2f717011"
+ }
+ Frame {
+ msec: 1552
+ hash: "4dce834c9e3988fe535391fedc942add"
+ }
+ Frame {
+ msec: 1568
+ hash: "ca7356dee61e156d04b0b46ea033498e"
+ }
+ Frame {
+ msec: 1584
+ hash: "97499f6e04cbe690bc12458aef4b66a5"
+ }
+ Frame {
+ msec: 1600
+ hash: "2452007928bf86b9c42e666c7a7afc89"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml b/tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml
new file mode 100644
index 0000000000..8f388bc85a
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml
@@ -0,0 +1,68 @@
+import Qt 4.7
+
+Item {
+ width: 300
+ height: 400
+
+ Rectangle {
+ id: root
+ color: "darkkhaki"
+
+ x: 50
+ y: 50
+
+ width: 200
+ height: 300
+
+ Rectangle {
+ id: statusbar
+ color: "chocolate"
+
+ height: 30
+
+ anchors.top: root.top
+ anchors.left: root.left
+ anchors.right: root.right
+ }
+
+ Rectangle {
+ id: titlebar
+ color: "crimson"
+
+ height: 60
+
+ anchors.top: statusbar.bottom
+ anchors.left: root.left
+ anchors.right: root.right
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ root.state = root.state ? "" : "fullscreen";
+ }
+ }
+
+ states: [
+ State {
+ name: "fullscreen"
+ AnchorChanges {
+ target: statusbar
+ anchors.top: undefined
+ anchors.bottom: titlebar.top
+ }
+ AnchorChanges {
+ target: titlebar
+ anchors.top: undefined
+ anchors.bottom: root.top
+ }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ AnchorAnimation { }
+ }
+ ]
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png
new file mode 100644
index 0000000000..bf02e1a121
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.1.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.1.png
new file mode 100644
index 0000000000..ae71dc808d
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.png
new file mode 100644
index 0000000000..6f631b0782
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml
new file mode 100644
index 0000000000..31249736c9
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml
@@ -0,0 +1,795 @@
+import Qt.VisualTest 4.7
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "2c6600b50a18c415032fa95fe5089da6"
+ }
+ Frame {
+ msec: 32
+ hash: "aefd5a2570cc0252be102644ec1e49e3"
+ }
+ Frame {
+ msec: 48
+ hash: "6183d0554a8b812bee02719dc4df21d1"
+ }
+ Frame {
+ msec: 64
+ hash: "e1b3a94d033626338de0e04dba7b6df9"
+ }
+ Frame {
+ msec: 80
+ hash: "7d1a5a265fb20ac4d741d76ab7b3a41f"
+ }
+ Frame {
+ msec: 96
+ hash: "0ce7d2acda3e5ccb7b2364e2a7b409a4"
+ }
+ Frame {
+ msec: 112
+ hash: "21f3a66ee80fcb2dd4dce0d1666aa4dd"
+ }
+ Frame {
+ msec: 128
+ hash: "ea5b81ff2805210111cb388ab9be0d8f"
+ }
+ Frame {
+ msec: 144
+ hash: "a8a54a3c524dcf6777b71d99ae2d50bd"
+ }
+ Frame {
+ msec: 160
+ hash: "6b658c468af8a88e4a282d57fdcbc3b0"
+ }
+ Frame {
+ msec: 176
+ hash: "986121c9d928cc9ceb912a975f75760a"
+ }
+ Frame {
+ msec: 192
+ hash: "4bf3593d0edc4347cf77670a48ba4440"
+ }
+ Frame {
+ msec: 208
+ hash: "ea00f25295fb019f949930fb7109ceb4"
+ }
+ Frame {
+ msec: 224
+ hash: "ad6cc7563e2720c405842317d0ce731a"
+ }
+ Frame {
+ msec: 240
+ hash: "8a03a1207cdb5bd92f5227b25a7b638e"
+ }
+ Frame {
+ msec: 256
+ hash: "f355321aa47d18e8b6dde503565d0e97"
+ }
+ Frame {
+ msec: 272
+ hash: "e18f671cac8e68948f32a468bf2630cf"
+ }
+ Frame {
+ msec: 288
+ hash: "264bca92fba53f25439d240afef62880"
+ }
+ Frame {
+ msec: 304
+ hash: "a1a226c73fb97d5302ce683f901ee5c4"
+ }
+ Frame {
+ msec: 320
+ hash: "05578552476372fc58e463e84a147ddd"
+ }
+ Frame {
+ msec: 336
+ hash: "0a3e0a651f9eb3e6a44a55a6786e60ff"
+ }
+ Frame {
+ msec: 352
+ hash: "4ca362f079f96a01360ee8062fbb8238"
+ }
+ Frame {
+ msec: 368
+ hash: "ba512c117d97ce16ff92d03ce2b08056"
+ }
+ Frame {
+ msec: 384
+ hash: "8688355f0f97afe000d02f71c841d5dc"
+ }
+ Frame {
+ msec: 400
+ hash: "a2ea6ad008da95a67d3bc70e11e3811d"
+ }
+ Frame {
+ msec: 416
+ hash: "83bc9c444ab8618438dc2b8b14716f7b"
+ }
+ Frame {
+ msec: 432
+ hash: "fafbba34fc8f9d33b559e6fcd0c5f1c6"
+ }
+ Frame {
+ msec: 448
+ hash: "92d245951b759f74182602a7a337cb0f"
+ }
+ Frame {
+ msec: 464
+ hash: "e0634d25088a6855df8d86d84fe37cd7"
+ }
+ Frame {
+ msec: 480
+ hash: "7f4d05f4c3b1a365732e448f2c751740"
+ }
+ Frame {
+ msec: 496
+ hash: "fcd6f55929f753f77b1617c0984b8690"
+ }
+ Frame {
+ msec: 512
+ hash: "7e88f100a7012d739cd3c97c4e7f4b45"
+ }
+ Frame {
+ msec: 528
+ hash: "8f9d029b3850ee2f11cdf6630d100682"
+ }
+ Frame {
+ msec: 544
+ hash: "b915f712b24f187ee759b3337fb0df7a"
+ }
+ Frame {
+ msec: 560
+ hash: "eae400a0c72d38156f7ae0f16ab9ee66"
+ }
+ Frame {
+ msec: 576
+ hash: "e913a1e317cca355b06a393f44cc0243"
+ }
+ Frame {
+ msec: 592
+ hash: "abf075ea63a6f5cce43c38e20dbcdbb2"
+ }
+ Frame {
+ msec: 608
+ hash: "a6e85caa1eb933343a4605bc434e2841"
+ }
+ Frame {
+ msec: 624
+ hash: "8e33e2582dd127d3f04017bf493b0ac6"
+ }
+ Frame {
+ msec: 640
+ hash: "959e4062262bcc759abfc7b0bf3e10b6"
+ }
+ Frame {
+ msec: 656
+ hash: "9529e2241df0d90ea640fdb3752b0837"
+ }
+ Frame {
+ msec: 672
+ hash: "5595b64495996ce66b5f6892e9457456"
+ }
+ Frame {
+ msec: 688
+ hash: "532259c3577553622093eba907ae82d3"
+ }
+ Frame {
+ msec: 704
+ hash: "85c4332100b6f5256702b594c83f4eff"
+ }
+ Frame {
+ msec: 720
+ hash: "b96292d85b12fa8e68c5de3deb29b980"
+ }
+ Frame {
+ msec: 736
+ hash: "64febec9c8b58e2b93249f19c57b7aba"
+ }
+ Frame {
+ msec: 752
+ hash: "88e588af29131cf942e02b1080e564e5"
+ }
+ Frame {
+ msec: 768
+ hash: "07f911478be2f36d0c1b9cb878f4fe47"
+ }
+ Frame {
+ msec: 784
+ hash: "8ffbf2381efefcbca413f6e3455018fb"
+ }
+ Frame {
+ msec: 800
+ hash: "6e456af680e40799d3f38bdde29a85f9"
+ }
+ Frame {
+ msec: 816
+ hash: "48a8dbc64d7823164c992f55b270115d"
+ }
+ Frame {
+ msec: 832
+ hash: "a6d28eb1d0aafd387e35ca7b362bec53"
+ }
+ Frame {
+ msec: 848
+ hash: "2e9f2b2ebf1b24f01fc986ded320d7c9"
+ }
+ Frame {
+ msec: 864
+ hash: "d0cafd9be3263193c207c39eeb051bb8"
+ }
+ Frame {
+ msec: 880
+ hash: "8dee1a5365fa3ccd7036c8afa6a805cc"
+ }
+ Frame {
+ msec: 896
+ hash: "42f893afb80633f0ffb82f1725bb097f"
+ }
+ Frame {
+ msec: 912
+ hash: "f466a404940abcd4c8f3180696da1a29"
+ }
+ Frame {
+ msec: 928
+ hash: "e5746e33b3eb155a354bc5900b7593ee"
+ }
+ Frame {
+ msec: 944
+ hash: "a1c2eb7048356f4ebc803d9d5439db24"
+ }
+ Frame {
+ msec: 960
+ image: "smoothedfollow.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "338aec0e679a8f2e79f6a5503dfbd6c3"
+ }
+ Frame {
+ msec: 992
+ hash: "59321f1eb26c379e9e2a37b6890d922d"
+ }
+ Frame {
+ msec: 1008
+ hash: "f37a821b9cf9f67fd011c6790a2757f0"
+ }
+ Frame {
+ msec: 1024
+ hash: "c3f1b8722c616ecd55d8496e76a9bf06"
+ }
+ Frame {
+ msec: 1040
+ hash: "ca6aff9addda2e3ac51e5e2013393365"
+ }
+ Frame {
+ msec: 1056
+ hash: "17d1aa7821ce8169a3100a3cd3a0df2b"
+ }
+ Frame {
+ msec: 1072
+ hash: "d85dd272f35868d6832316e862db4ec1"
+ }
+ Frame {
+ msec: 1088
+ hash: "8bce5bdadfa974655dc7e020ad43edeb"
+ }
+ Frame {
+ msec: 1104
+ hash: "b97f71587a5187d5175e5d9f1409c00a"
+ }
+ Frame {
+ msec: 1120
+ hash: "53d438e601c25aebfd2ecb0064cdf5cc"
+ }
+ Frame {
+ msec: 1136
+ hash: "18c43dd35b3e0d8f9ab5c8de3e48886a"
+ }
+ Frame {
+ msec: 1152
+ hash: "e4ab585684d083de118b7862ef5cbd63"
+ }
+ Frame {
+ msec: 1168
+ hash: "48ab046a2e2ca1a1225574b94925482e"
+ }
+ Frame {
+ msec: 1184
+ hash: "c4bd06a5c329ef6975a60453f588bce7"
+ }
+ Frame {
+ msec: 1200
+ hash: "864393a984dce3e9dd2daec56ddb3fe7"
+ }
+ Frame {
+ msec: 1216
+ hash: "fcdf4cfcd8a6d8667868ba9633475fe0"
+ }
+ Frame {
+ msec: 1232
+ hash: "5ac2b96158045c9b9eb35f1cbabe5b1f"
+ }
+ Frame {
+ msec: 1248
+ hash: "83c409e5d3e6fe9e953d9ce14d731b3b"
+ }
+ Frame {
+ msec: 1264
+ hash: "01805526b04e17b89238e7b929be48dd"
+ }
+ Frame {
+ msec: 1280
+ hash: "4708345219b3732f9aaf8b40645f65d2"
+ }
+ Frame {
+ msec: 1296
+ hash: "12716f84b6f648df2cbe08cfea58764c"
+ }
+ Frame {
+ msec: 1312
+ hash: "6cce1e6354bd338f364bcca84a5fd081"
+ }
+ Frame {
+ msec: 1328
+ hash: "c5da6f6b00402e0de00490792b963cdf"
+ }
+ Frame {
+ msec: 1344
+ hash: "0eacadf69c0818e818abaf3aaf823aff"
+ }
+ Frame {
+ msec: 1360
+ hash: "c68cd79bf0d329a3c672896b9ce2044d"
+ }
+ Frame {
+ msec: 1376
+ hash: "26786f921ddddd9d2f975e1193943d2d"
+ }
+ Frame {
+ msec: 1392
+ hash: "68c7c1779bb19ee5cd9370b5c06f4ce7"
+ }
+ Frame {
+ msec: 1408
+ hash: "5e87c3e00ef7fab01c17d9e89c661aab"
+ }
+ Frame {
+ msec: 1424
+ hash: "0b459122be303c38d3564dd7fea53fc1"
+ }
+ Frame {
+ msec: 1440
+ hash: "3b13101a45b470fd04fa02f34548984b"
+ }
+ Frame {
+ msec: 1456
+ hash: "6308fa1ed015bb698251af0d1b9be084"
+ }
+ Frame {
+ msec: 1472
+ hash: "f219427d8fdf826f33351ba64db55d33"
+ }
+ Frame {
+ msec: 1488
+ hash: "0c9ad8c5224d3cdefb8ac793cac3ca79"
+ }
+ Frame {
+ msec: 1504
+ hash: "38438307162bceef76afb043c82b6a82"
+ }
+ Frame {
+ msec: 1520
+ hash: "78b367e6bab0463fe08f5e634cfbced2"
+ }
+ Frame {
+ msec: 1536
+ hash: "81e56f9d3bb9b360a07dc85697a59340"
+ }
+ Frame {
+ msec: 1552
+ hash: "cef4fdb8c12485d3590e598090312297"
+ }
+ Frame {
+ msec: 1568
+ hash: "8ea0c90a100c583558f92843030543cc"
+ }
+ Frame {
+ msec: 1584
+ hash: "0037f0f17a50bdfe3bf0de810ff837f1"
+ }
+ Frame {
+ msec: 1600
+ hash: "2b060ac0dfa045b916d3fd5ff6f84bfb"
+ }
+ Frame {
+ msec: 1616
+ hash: "b20705dcc6176efd83cff6927991ff0a"
+ }
+ Frame {
+ msec: 1632
+ hash: "0af69e490bdc54f27d3e50c1fdfd12a8"
+ }
+ Frame {
+ msec: 1648
+ hash: "8e4cceadc01de5b51082889efabcbb7e"
+ }
+ Frame {
+ msec: 1664
+ hash: "b64958786a7007686fb1734783d553f5"
+ }
+ Frame {
+ msec: 1680
+ hash: "e0b9d98bb3a596fd235d58b6a761a0e0"
+ }
+ Frame {
+ msec: 1696
+ hash: "1a5d7dc4dfd3ee86a36978d4effd299c"
+ }
+ Frame {
+ msec: 1712
+ hash: "4946561f008635599651bf24b9aa0594"
+ }
+ Frame {
+ msec: 1728
+ hash: "8427d33046af64c6e63939238c101e86"
+ }
+ Frame {
+ msec: 1744
+ hash: "cdcfab5cea86c33f276c3613d76067c4"
+ }
+ Frame {
+ msec: 1760
+ hash: "966005d62bd69b53d77459e5ab65116c"
+ }
+ Frame {
+ msec: 1776
+ hash: "8a3c4ff083a973325c4ab09e09027ef6"
+ }
+ Frame {
+ msec: 1792
+ hash: "737ffd6f52fa3d812ecaf835a30495af"
+ }
+ Frame {
+ msec: 1808
+ hash: "6731007c97ba3ba60e73ab50803868e5"
+ }
+ Frame {
+ msec: 1824
+ hash: "caa4ea08c5c330e77a7445cc1adf1666"
+ }
+ Frame {
+ msec: 1840
+ hash: "73778bfbae55a81557a128acb4a197c8"
+ }
+ Frame {
+ msec: 1856
+ hash: "7d8609f1336ddf4e25b505e54142114e"
+ }
+ Frame {
+ msec: 1872
+ hash: "d8b4514d2bd77dbe67e27d400dc1a2f3"
+ }
+ Frame {
+ msec: 1888
+ hash: "ac3e7040f1e9fc680f52f46d25eb3faa"
+ }
+ Frame {
+ msec: 1904
+ hash: "509c21774f0fca9dde0657133a1cc363"
+ }
+ Frame {
+ msec: 1920
+ image: "smoothedfollow.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "545bcb0c362a083ee698a5c8cd225014"
+ }
+ Frame {
+ msec: 1952
+ hash: "77370c9b2880c55fecf07457dd0d455b"
+ }
+ Frame {
+ msec: 1968
+ hash: "6c44209f31f5f010f1b3e05490468821"
+ }
+ Frame {
+ msec: 1984
+ hash: "2dffac0c44e52f2984525d3d3700e6ed"
+ }
+ Frame {
+ msec: 2000
+ hash: "d70f2db1b166b2de3bef74bc4bf94a80"
+ }
+ Frame {
+ msec: 2016
+ hash: "50e4f6a82f498066fc9b6588762f59f9"
+ }
+ Frame {
+ msec: 2032
+ hash: "956a7d7db9aef1b7abefac1a69622f02"
+ }
+ Frame {
+ msec: 2048
+ hash: "13f19d5baefb6c8c9f71c16163663a27"
+ }
+ Frame {
+ msec: 2064
+ hash: "076ff84405ddb29a12ed30d27cee558b"
+ }
+ Frame {
+ msec: 2080
+ hash: "6af0261639f809da8f7e4831559596d3"
+ }
+ Frame {
+ msec: 2096
+ hash: "a0500b18e99bfe3a48d52cc62b4a946b"
+ }
+ Frame {
+ msec: 2112
+ hash: "bb0ea576c9136fb70720d4540731d2ca"
+ }
+ Frame {
+ msec: 2128
+ hash: "d9b12ad9bf54d7db0ef1b36297a6dd6c"
+ }
+ Frame {
+ msec: 2144
+ hash: "2de77e082872f072a849ba9ea93e3aec"
+ }
+ Frame {
+ msec: 2160
+ hash: "69e186c3e8e6b2c75da2ca87043129da"
+ }
+ Frame {
+ msec: 2176
+ hash: "0c2f23b0cbedb45a68f0cbe6132b4820"
+ }
+ Frame {
+ msec: 2192
+ hash: "533bad00e5624611ea8a15d5fa98f0f2"
+ }
+ Frame {
+ msec: 2208
+ hash: "d9c60bc821205aa4ea38d846e5b00f3a"
+ }
+ Frame {
+ msec: 2224
+ hash: "d4de041edf15c6b6806d7f5992146711"
+ }
+ Frame {
+ msec: 2240
+ hash: "100145df5271efaaee1d619bd50b69fc"
+ }
+ Frame {
+ msec: 2256
+ hash: "22905b794fee24f3a25e4944d5505e96"
+ }
+ Frame {
+ msec: 2272
+ hash: "aeed7adea08fe6e8b60310082cf87b6c"
+ }
+ Frame {
+ msec: 2288
+ hash: "82bf8d40b6ed8aae9d6172eae76d1859"
+ }
+ Frame {
+ msec: 2304
+ hash: "b1881778936744db3df0898638e4b0df"
+ }
+ Frame {
+ msec: 2320
+ hash: "87195016996f8786a8a2430c54f13494"
+ }
+ Frame {
+ msec: 2336
+ hash: "56f99b14320662b90eb10e77845bba30"
+ }
+ Frame {
+ msec: 2352
+ hash: "69a84022d8d2b3cdb1d7eae6ce5ccef2"
+ }
+ Frame {
+ msec: 2368
+ hash: "578ca8c66da6aa64392b253ab6cccbc0"
+ }
+ Frame {
+ msec: 2384
+ hash: "4c2058e4708001f82f3bcb8110d6a54f"
+ }
+ Frame {
+ msec: 2400
+ hash: "a838be752168bc6feb3151327147bb23"
+ }
+ Frame {
+ msec: 2416
+ hash: "bf6cde06f0ee814cd4a23f3d43e7d270"
+ }
+ Frame {
+ msec: 2432
+ hash: "9162ec43bc84261c0eb9ea2425da0b8a"
+ }
+ Frame {
+ msec: 2448
+ hash: "7be19df0ee54f9bb31ebee2d786addc8"
+ }
+ Frame {
+ msec: 2464
+ hash: "542a4c004f5b1b8efa7588b27cc2ba43"
+ }
+ Frame {
+ msec: 2480
+ hash: "f9e2edd343be212a9679f1e2ad0e73b3"
+ }
+ Frame {
+ msec: 2496
+ hash: "b6d4e9169fc4446cdbd3a36f485b943b"
+ }
+ Frame {
+ msec: 2512
+ hash: "0d3b7a652a94162b71e88ed213559af4"
+ }
+ Frame {
+ msec: 2528
+ hash: "9d4a2383a4d43ac94ff0a344f217b22d"
+ }
+ Frame {
+ msec: 2544
+ hash: "719d402379c40de5cd6d4c8fa92f5472"
+ }
+ Frame {
+ msec: 2560
+ hash: "78fb55f5b9c2033a91e41100229e4465"
+ }
+ Frame {
+ msec: 2576
+ hash: "0a9ec91eee6c7c770ce2e414fa881229"
+ }
+ Frame {
+ msec: 2592
+ hash: "5d9f81f1becf486a09f086e15a64d1f0"
+ }
+ Frame {
+ msec: 2608
+ hash: "0f5e18af1eac31e6993ea2df51a143f0"
+ }
+ Frame {
+ msec: 2624
+ hash: "08a292373756b06c3a624b8f3bf06236"
+ }
+ Frame {
+ msec: 2640
+ hash: "f3c8101429753ce8f0ee094fe0db98ac"
+ }
+ Frame {
+ msec: 2656
+ hash: "1603ad220d68ae0a2f613687533c2ebc"
+ }
+ Frame {
+ msec: 2672
+ hash: "e2b8049d18fd36fff0180bd4bc199732"
+ }
+ Frame {
+ msec: 2688
+ hash: "d1bfeadaa9046ec5013734938a8f4af1"
+ }
+ Frame {
+ msec: 2704
+ hash: "3cb3a0e9dc73e76101288395ffeb2b7b"
+ }
+ Frame {
+ msec: 2720
+ hash: "104a10e6bd48dacfedf5c98cf641ae93"
+ }
+ Frame {
+ msec: 2736
+ hash: "f04a2985e7c203dd6fce46b60fcb23fc"
+ }
+ Frame {
+ msec: 2752
+ hash: "30cb747f4604c208d7dc697d5fe2af6b"
+ }
+ Frame {
+ msec: 2768
+ hash: "b9eca6ee8fe29351cadeb9a2caf36fa6"
+ }
+ Frame {
+ msec: 2784
+ hash: "7bc56e712d713a00a684e07cf3d09907"
+ }
+ Frame {
+ msec: 2800
+ hash: "0d7a5e2ff588b71e77abb72723c763b2"
+ }
+ Frame {
+ msec: 2816
+ hash: "0d961843e54cbe5ba76c11bcd634bc39"
+ }
+ Frame {
+ msec: 2832
+ hash: "6328b52965a002944c501d9888928caa"
+ }
+ Frame {
+ msec: 2848
+ hash: "63e668a7688167b604b641929843d0cf"
+ }
+ Frame {
+ msec: 2864
+ hash: "7f5e71332268be68de9dcb25f173d2e0"
+ }
+ Frame {
+ msec: 2880
+ image: "smoothedfollow.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "dc6e83fcc5a403913a94c498f1571098"
+ }
+ Frame {
+ msec: 2912
+ hash: "8deb275bd08df9b3abdcf3e2796a0601"
+ }
+ Frame {
+ msec: 2928
+ hash: "6c08a25a442b97a8cb359792b6a01641"
+ }
+ Frame {
+ msec: 2944
+ hash: "5f7ccd5706c77f0b0ddced41ed6352d8"
+ }
+ Frame {
+ msec: 2960
+ hash: "6668d1936524f0fdc490720a962a3698"
+ }
+ Frame {
+ msec: 2976
+ hash: "e36f901fb4b8ad754592642a7575e4ee"
+ }
+ Frame {
+ msec: 2992
+ hash: "7453182980e458d827f3ff83aa3f2c88"
+ }
+ Frame {
+ msec: 3008
+ hash: "0e15d75b2a7f2e4a39906093b930d6a8"
+ }
+ Frame {
+ msec: 3024
+ hash: "822ccc6c629eabf38fd5ac56abb638f5"
+ }
+ Frame {
+ msec: 3040
+ hash: "331ef5b3e3dd5642f8532d337fd22def"
+ }
+ Frame {
+ msec: 3056
+ hash: "3c29aae83f28239f31125ef02f523d02"
+ }
+ Frame {
+ msec: 3072
+ hash: "56ed674bf2d345861eb235a4239078e2"
+ }
+ Frame {
+ msec: 3088
+ hash: "5412b9ad01a6780b67bc59b80a274cd5"
+ }
+ Frame {
+ msec: 3104
+ hash: "a6f9ae09a7386f06a84c251083660dd6"
+ }
+ Frame {
+ msec: 3120
+ hash: "83f07277c9bec7419dd6a4d40d8accf7"
+ }
+ Frame {
+ msec: 3136
+ hash: "e6cb74961dfef68a32f255176e0ebff3"
+ }
+ Frame {
+ msec: 3152
+ hash: "9e6c3ac0190beaf30754155a5d64b81c"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml
index 0df727bdb3..63dba47305 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml
@@ -1,15 +1,15 @@
import Qt 4.7
Rectangle {
- width: 800; height: 240; color: "gray"
+ width: 800; height: 720; color: "gray"
Rectangle {
id: rect
width: 50; height: 20; y: 30; color: "black"
SequentialAnimation on x {
loops: Animation.Infinite
- NumberAnimation { from: 50; to: 700; duration: 2000 }
- NumberAnimation { from: 700; to: 50; duration: 2000 }
+ NumberAnimation { from: 50; to: 700; duration: 1000 }
+ NumberAnimation { from: 700; to: 50; duration: 1000 }
}
}
@@ -25,16 +25,104 @@ Rectangle {
Rectangle {
width: 50; height: 20; x: rect.x; y: 120; color: "green"
- Behavior on x { SmoothedAnimation { reversingMode: SmoothedAnimation.Sync } }
+ Behavior on x { SmoothedAnimation { velocity: 200; reversingMode: SmoothedAnimation.Sync } }
}
Rectangle {
width: 50; height: 20; x: rect.x; y: 150; color: "purple"
- Behavior on x { SmoothedAnimation { maximumEasingTime: 200 } }
+ Behavior on x { SmoothedAnimation { velocity: 200; maximumEasingTime: 100 } }
}
Rectangle {
width: 50; height: 20; x: rect.x; y: 180; color: "blue"
- Behavior on x { SmoothedAnimation { duration: 300 } }
+ Behavior on x { SmoothedAnimation { velocity: -1; duration: 300 } }
+ }
+
+ //rect2 has jerky movement, but the rects following it should be smooth
+ Rectangle {
+ id: rect2
+ property int dir: 1
+ width: 50; height: 20; x:50; y: 240; color: "black"
+ function advance(){
+ if(x >= 700)
+ dir = -1;
+ if(x <= 50)
+ dir = 1;
+ x += 130.0 * dir;
+ }
+ }
+ Timer{
+ interval: 200
+ running: true
+ repeat: true
+ onTriggered: rect2.advance();
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect2.x; y: 270; color: "red"
+ Behavior on x { SmoothedAnimation { velocity: 400 } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect2.x; y: 300; color: "yellow"
+ Behavior on x { SmoothedAnimation { velocity: 300; reversingMode: SmoothedAnimation.Immediate } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect2.x; y: 330; color: "green"
+ Behavior on x { SmoothedAnimation { velocity: 200; reversingMode: SmoothedAnimation.Sync } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect2.x; y: 360; color: "purple"
+ Behavior on x { SmoothedAnimation { velocity: 200; maximumEasingTime: 100 } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect2.x; y: 390; color: "blue"
+ Behavior on x { SmoothedAnimation { velocity: -1; duration: 300 } }
+ }
+
+ //rect3 just jumps , but the rects following it should be smooth
+ Rectangle {
+ id: rect3
+ width: 50; height: 20; x:50; y: 480; color: "black"
+ function advance(){
+ if(x == 50)
+ x = 700;
+ else
+ x = 50;
+ }
+ }
+ Timer{
+ interval: 1000
+ running: true
+ repeat: true
+ onTriggered: rect3.advance();
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect3.x; y: 510; color: "red"
+ Behavior on x { SmoothedAnimation { velocity: 400 } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect3.x; y: 540; color: "yellow"
+ Behavior on x { SmoothedAnimation { velocity: 300; reversingMode: SmoothedAnimation.Immediate } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect3.x; y: 570; color: "green"
+ Behavior on x { SmoothedAnimation { velocity: 200; reversingMode: SmoothedAnimation.Sync } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect3.x; y: 600; color: "purple"
+ Behavior on x { SmoothedAnimation { velocity: 200; maximumEasingTime: 100 } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; x: rect3.x; y: 630; color: "blue"
+ Behavior on x { SmoothedAnimation { velocity: -1; duration: 300 } }
}
}
diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index a9685205ed..ddc3939b67 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -395,7 +395,12 @@ void tst_Gestures::customGesture()
{
GestureWidget widget;
widget.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+ widget.show();
+ QTest::qWaitForWindowShown(&widget);
+
CustomEvent event;
+ event.hotSpot = widget.mapToGlobal(QPoint(5,5));
+ event.hasHotSpot = true;
sendCustomGesture(&event, &widget);
static const int TotalGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialStartedThreshold + 1;
diff --git a/tests/auto/headers/tst_headers.cpp b/tests/auto/headers/tst_headers.cpp
index 06c70f983e..7ccf058f39 100644
--- a/tests/auto/headers/tst_headers.cpp
+++ b/tests/auto/headers/tst_headers.cpp
@@ -213,7 +213,8 @@ void tst_Headers::licenseCheck()
return;
if (content.first().contains("generated")) {
- content.takeFirst();
+ // don't scan generated files
+ return;
}
if (sourceFile.endsWith("/tests/auto/linguist/lupdate/testdata/good/merge_ordering/foo.cpp")
diff --git a/tests/auto/linguist/lconvert/data/test-refs.po b/tests/auto/linguist/lconvert/data/test-refs.po
new file mode 100644
index 0000000000..e149a38e36
--- /dev/null
+++ b/tests/auto/linguist/lconvert/data/test-refs.po
@@ -0,0 +1,23 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Language: de_DE\n"
+
+#: themer/kdmlabel.cpp:285
+#, no-c-format
+msgctxt "date format"
+msgid "%a %d %B"
+msgstr "%a %d %B"
+
+#: foo.bar.baz
+#, no-c-format
+msgid "full java class name"
+msgstr ""
+
+#: foo.car:123 monks:here file/gar.c:17:19 no:monks:here
+#, no-c-format
+msgid "some excessive locations"
+msgstr ""
diff --git a/tests/auto/linguist/lconvert/data/test20.ts b/tests/auto/linguist/lconvert/data/test20.ts
index f042edf145..0e38b4b46f 100644
--- a/tests/auto/linguist/lconvert/data/test20.ts
+++ b/tests/auto/linguist/lconvert/data/test20.ts
@@ -158,5 +158,14 @@
<comment>comment with | and ~ and so~</comment>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>just something obsolete</source>
+ <translation type="obsolete">translated obsoletion</translation>
+ </message>
+ <message>
+ <source>something else obsolete</source>
+ <comment>comment with | and ~ and so~</comment>
+ <translation type="obsolete">another translated obsoletion</translation>
+ </message>
</context>
</TS>
diff --git a/tests/auto/linguist/lconvert/tst_lconvert.cpp b/tests/auto/linguist/lconvert/tst_lconvert.cpp
index 998f5884ce..a3c29d8819 100644
--- a/tests/auto/linguist/lconvert/tst_lconvert.cpp
+++ b/tests/auto/linguist/lconvert/tst_lconvert.cpp
@@ -317,6 +317,8 @@ void tst_lconvert::roundtrips_data()
QTest::newRow("po-xliff-po (plural-2)") << "plural-2.po" << poXlfPo << noArgs;
QTest::newRow("po-xliff-po (plural-3)") << "plural-3.po" << poXlfPo << noArgs;
+ QTest::newRow("po-ts-po (references)") << "test-refs.po" << poTsPo << noArgs;
+
QTest::newRow("ts20-ts11-ts20 (utf8)") << "codec-utf8.ts" << tsTs11Ts << noArgs;
QTest::newRow("ts20-ts11-ts20 (cp1252)") << "codec-cp1252.ts" << tsTs11Ts << noArgs;
QTest::newRow("ts20-ts11-ts20 (dual-encoding)") << "dual-encoding.ts" << tsTs11Ts << noArgs;
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs/main.js b/tests/auto/linguist/lupdate/testdata/good/parsejs/main.js
new file mode 100644
index 0000000000..9f61cea8f0
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/main.js
@@ -0,0 +1,91 @@
+qsTr("One");
+qsTranslate("FooContext", "Two");
+
+var greeting_strings = [
+ QT_TR_NOOP("Hello"),
+ QT_TRANSLATE_NOOP("FooContext", "Goodbye")
+];
+
+qsTr("One", "not the same one");
+
+//: My first comment.
+qsTr("See comment");
+
+//: My second comment.
+qsTranslate("BarContext", "See other comment");
+
+//: My third comment
+//: spans two lines.
+qsTr("The comment explains it all");
+
+//: My fourth comment
+//: spans a whopping
+//: three lines.
+qsTranslate("BazContext", "It should be clear by now");
+
+/*: C-style comment. */
+qsTr("I love C++");
+
+/*: Another C-style comment. */
+qsTranslate("FooContext", "I really love C++");
+
+/*: C-style comment, followed by */
+/*: another one. */
+qsTr("Qt is the best");
+
+/*: Another C-style comment, followed by */
+/*: yet another one. */
+qsTranslate("BarContext", "Qt is the very best");
+
+// This comment doesn't have any effect.
+qsTr("The comment had no effect");
+
+// This comment doesn't have any effect either.
+qsTranslate("BazContext", "The comment had no effect, really");
+
+/* This C-style comment doesn't have any effect. */
+qsTr("No comment to your comment");
+
+/* This C-style comment doesn't have any effect either. */
+qsTranslate("FooContext", "I refuse to comment on that");
+
+//= id_foo
+qsTr("This string has an identifier");
+
+//= id_bar
+qsTranslate("BarContext", "This string also has an identifier");
+
+//~ loc-blank False
+qsTr("This string has meta-data");
+
+//~ loc-layout_id foo_dialog
+qsTranslate("BazContext", "This string also has meta-data");
+
+// This comment is to be ignored.
+//: This is a comment for the translator.
+//= id_baz
+//~ foo 123
+//~ magic-stuff This means something special.
+qsTr("This string has a lot of information");
+
+// This comment is also to be ignored.
+//: This is another comment for the translator.
+//= id_babar
+//~ foo-bar Important stuff
+//~ needle-in-haystack Found
+//~ overflow True
+qsTranslate("FooContext", "This string has even more information");
+
+qsTr("This string has disambiguation", "Disambiguation");
+
+qsTranslate("BarContext", "This string also has disambiguation", "Another disambiguation");
+
+qsTr("This string contains plurals", "", 10);
+
+qsTrId("qtn_foo_bar");
+
+var more_greeting_strings = [ QT_TRID_NOOP("qtn_needle"), QT_TRID_NOOP("qtn_haystack") ];
+
+//: qsTrId() with comment, meta-data and plurals.
+//~ well-tested True
+qsTrId("qtn_bar_baz", 10);
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro
new file mode 100644
index 0000000000..d549039c4b
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro
@@ -0,0 +1,3 @@
+SOURCES += main.js
+
+TRANSLATIONS = project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result
new file mode 100644
index 0000000000..d03c7135e8
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name></name>
+ <message id="qtn_foo_bar">
+ <location filename="main.js" line="85"/>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="qtn_needle">
+ <location filename="main.js" line="87"/>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="qtn_haystack">
+ <location filename="main.js" line="87"/>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="qtn_bar_baz" numerus="yes">
+ <location filename="main.js" line="91"/>
+ <source></source>
+ <extracomment>qsTrId() with comment, meta-data and plurals.</extracomment>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ <extra-well-tested>True</extra-well-tested>
+ </message>
+</context>
+<context>
+ <name>BarContext</name>
+ <message>
+ <location filename="main.js" line="15"/>
+ <source>See other comment</source>
+ <extracomment>My second comment.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="38"/>
+ <source>Qt is the very best</source>
+ <extracomment>Another C-style comment, followed by yet another one.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_bar">
+ <location filename="main.js" line="56"/>
+ <source>This string also has an identifier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="81"/>
+ <source>This string also has disambiguation</source>
+ <comment>Another disambiguation</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>BazContext</name>
+ <message>
+ <location filename="main.js" line="24"/>
+ <source>It should be clear by now</source>
+ <extracomment>My fourth comment spans a whopping three lines.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="44"/>
+ <source>The comment had no effect, really</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="62"/>
+ <source>This string also has meta-data</source>
+ <translation type="unfinished"></translation>
+ <extra-loc-layout_id>foo_dialog</extra-loc-layout_id>
+ </message>
+</context>
+<context>
+ <name>FooContext</name>
+ <message>
+ <location filename="main.js" line="2"/>
+ <source>Two</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="6"/>
+ <source>Goodbye</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="30"/>
+ <source>I really love C++</source>
+ <extracomment>Another C-style comment.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="50"/>
+ <source>I refuse to comment on that</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_babar">
+ <location filename="main.js" line="77"/>
+ <source>This string has even more information</source>
+ <extracomment>This is another comment for the translator.</extracomment>
+ <translation type="unfinished"></translation>
+ <extra-needle-in-haystack>Found</extra-needle-in-haystack>
+ <extra-overflow>True</extra-overflow>
+ <extra-foo-bar>Important stuff</extra-foo-bar>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="main.js" line="1"/>
+ <source>One</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="5"/>
+ <source>Hello</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="9"/>
+ <source>One</source>
+ <comment>not the same one</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="12"/>
+ <source>See comment</source>
+ <extracomment>My first comment.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="19"/>
+ <source>The comment explains it all</source>
+ <extracomment>My third comment spans two lines.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="27"/>
+ <source>I love C++</source>
+ <extracomment>C-style comment.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="34"/>
+ <source>Qt is the best</source>
+ <extracomment>C-style comment, followed by another one.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="41"/>
+ <source>The comment had no effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="47"/>
+ <source>No comment to your comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_foo">
+ <location filename="main.js" line="53"/>
+ <source>This string has an identifier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="59"/>
+ <source>This string has meta-data</source>
+ <translation type="unfinished"></translation>
+ <extra-loc-blank>False</extra-loc-blank>
+ </message>
+ <message id="id_baz">
+ <location filename="main.js" line="69"/>
+ <source>This string has a lot of information</source>
+ <extracomment>This is a comment for the translator.</extracomment>
+ <translation type="unfinished"></translation>
+ <extra-foo>123</extra-foo>
+ <extra-magic-stuff>This means something special.</extra-magic-stuff>
+ </message>
+ <message>
+ <location filename="main.js" line="79"/>
+ <source>This string has disambiguation</source>
+ <comment>Disambiguation</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="main.js" line="83"/>
+ <source>This string contains plurals</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt
new file mode 100644
index 0000000000..d6c977fa77
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt
@@ -0,0 +1,29 @@
+.*/lupdate/testdata/good/parsejs2/main.js:3: qsTranslate\(\) requires at least two arguments.
+.*/lupdate/testdata/good/parsejs2/main.js:4: qsTranslate\(\) requires at least two arguments.
+.*/lupdate/testdata/good/parsejs2/main.js:5: qsTranslate\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:6: qsTranslate\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:7: qsTranslate\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:9: QT_TRANSLATE_NOOP\(\) requires at least two arguments.
+.*/lupdate/testdata/good/parsejs2/main.js:10: QT_TRANSLATE_NOOP\(\) requires at least two arguments.
+.*/lupdate/testdata/good/parsejs2/main.js:11: QT_TRANSLATE_NOOP\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:12: QT_TRANSLATE_NOOP\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:13: QT_TRANSLATE_NOOP\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:15: qsTr\(\) requires at least one argument.
+.*/lupdate/testdata/good/parsejs2/main.js:16: qsTr\(\): text to translate must be a literal string.
+.*/lupdate/testdata/good/parsejs2/main.js:18: QT_TR_NOOP\(\) requires at least one argument.
+.*/lupdate/testdata/good/parsejs2/main.js:19: QT_TR_NOOP\(\): text to translate must be a literal string.
+.*/lupdate/testdata/good/parsejs2/main.js:21: qsTrId\(\) requires at least one argument.
+.*/lupdate/testdata/good/parsejs2/main.js:22: qsTrId\(\): identifier must be a literal string.
+.*/lupdate/testdata/good/parsejs2/main.js:24: QT_TRID_NOOP\(\) requires at least one argument.
+.*/lupdate/testdata/good/parsejs2/main.js:25: QT_TRID_NOOP\(\): identifier must be a literal string.
+.*/lupdate/testdata/good/parsejs2/main.js:27: Unexpected character in meta string
+.*/lupdate/testdata/good/parsejs2/main.js:28: Unexpected character in meta string
+.*/lupdate/testdata/good/parsejs2/main.js:29: Unterminated meta string
+.*/lupdate/testdata/good/parsejs2/main.js:30: Unterminated meta string
+.*/lupdate/testdata/good/parsejs2/main.js:33: //% cannot be used with qsTranslate\(\). Ignoring
+.*/lupdate/testdata/good/parsejs2/main.js:35: //% cannot be used with QT_TRANSLATE_NOOP\(\). Ignoring
+.*/lupdate/testdata/good/parsejs2/main.js:37: //% cannot be used with qsTr\(\). Ignoring
+.*/lupdate/testdata/good/parsejs2/main.js:39: //% cannot be used with QT_TR_NOOP\(\). Ignoring
+.*/lupdate/testdata/good/parsejs2/main.js:42: Discarding unconsumed meta data
+.*/lupdate/testdata/good/parsejs2/main.js:44: Discarding unconsumed meta data
+.*/lupdate/testdata/good/parsejs2/main.js:46: Discarding unconsumed meta data
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js b/tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js
new file mode 100644
index 0000000000..ea02957725
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js
@@ -0,0 +1,56 @@
+// This script exercises lupdate errors and warnings.
+
+qsTranslate();
+qsTranslate(10);
+qsTranslate(10, 20);
+qsTranslate("10", 20);
+qsTranslate(10, "20");
+
+QT_TRANSLATE_NOOP();
+QT_TRANSLATE_NOOP(10);
+QT_TRANSLATE_NOOP(10, 20);
+QT_TRANSLATE_NOOP("10", 20);
+QT_TRANSLATE_NOOP(10, "20");
+
+qsTr();
+qsTr(10);
+
+QT_TR_NOOP();
+QT_TR_NOOP(10);
+
+qsTrId();
+qsTrId(10);
+
+QT_TRID_NOOP();
+QT_TRID_NOOP(10);
+
+//% This is wrong
+//% "This is not wrong" This is wrong
+//% "I forgot to close the meta string
+//% "Being evil \
+
+//% "Should cause a warning"
+qsTranslate("FooContext", "Hello");
+//% "Should cause a warning"
+QT_TRANSLATE_NOOP("FooContext", "World");
+//% "Should cause a warning"
+qsTr("Hello");
+//% "Should cause a warning"
+QT_TR_NOOP("World");
+
+//: This comment will be discarded.
+Math.sin(1);
+//= id_foobar
+Math.cos(2);
+//~ underflow False
+Math.tan(3);
+
+/*
+Not tested for now, because these should perhaps not cause
+translation entries to be generated at all; see QTBUG-11843.
+
+//= qtn_foo
+qsTrId("qtn_foo");
+//= qtn_bar
+QT_TRID_NOOP("qtn_bar");
+*/
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro
new file mode 100644
index 0000000000..d549039c4b
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro
@@ -0,0 +1,3 @@
+SOURCES += main.js
+
+TRANSLATIONS = project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result
new file mode 100644
index 0000000000..bfa1b3d615
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>FooContext</name>
+ <message>
+ <location filename="main.js" line="33"/>
+ <source>Hello</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="35"/>
+ <source>World</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="main.js" line="37"/>
+ <source>Hello</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.js" line="39"/>
+ <source>World</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml b/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml
new file mode 100644
index 0000000000..172bd65ee6
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml
@@ -0,0 +1,97 @@
+import Qt 4.7
+
+QtObject {
+ function translate() {
+ qsTr("One");
+ qsTranslate("FooContext", "Two");
+
+ var greeting_strings = [
+ QT_TR_NOOP("Hello"),
+ QT_TRANSLATE_NOOP("FooContext", "Goodbye")
+ ];
+
+ qsTr("One", "not the same one");
+
+ //: My first comment.
+ qsTr("See comment");
+
+ //: My second comment.
+ qsTranslate("BarContext", "See other comment");
+
+ //: My third comment
+ //: spans two lines.
+ qsTr("The comment explains it all");
+
+ //: My fourth comment
+ //: spans a whopping
+ //: three lines.
+ qsTranslate("BazContext", "It should be clear by now");
+
+ /*: C-style comment. */
+ qsTr("I love C++");
+
+ /*: Another C-style comment. */
+ qsTranslate("FooContext", "I really love C++");
+
+ /*: C-style comment, followed by */
+ /*: another one. */
+ qsTr("Qt is the best");
+
+ /*: Another C-style comment, followed by */
+ /*: yet another one. */
+ qsTranslate("BarContext", "Qt is the very best");
+
+ // This comment doesn't have any effect.
+ qsTr("The comment had no effect");
+
+ // This comment doesn't have any effect either.
+ qsTranslate("BazContext", "The comment had no effect, really");
+
+ /* This C-style comment doesn't have any effect. */
+ qsTr("No comment to your comment");
+
+ /* This C-style comment doesn't have any effect either. */
+ qsTranslate("FooContext", "I refuse to comment on that");
+
+ //= id_foo
+ qsTr("This string has an identifier");
+
+ //= id_bar
+ qsTranslate("BarContext", "This string also has an identifier");
+
+ //~ loc-blank False
+ qsTr("This string has meta-data");
+
+ //~ loc-layout_id foo_dialog
+ qsTranslate("BazContext", "This string also has meta-data");
+
+ // This comment is to be ignored.
+ //: This is a comment for the translator.
+ //= id_baz
+ //~ foo 123
+ //~ magic-stuff This means something special.
+ qsTr("This string has a lot of information");
+
+ // This comment is also to be ignored.
+ //: This is another comment for the translator.
+ //= id_babar
+ //~ foo-bar Important stuff
+ //~ needle-in-haystack Found
+ //~ overflow True
+ qsTranslate("FooContext", "This string has even more information");
+
+ qsTr("This string has disambiguation", "Disambiguation");
+
+ qsTranslate("BarContext", "This string also has disambiguation", "Another disambiguation");
+
+ qsTr("This string contains plurals", "", 10);
+
+ qsTrId("qtn_foo_bar");
+
+ var more_greeting_strings = [ QT_TRID_NOOP("qtn_needle"), QT_TRID_NOOP("qtn_haystack") ];
+
+ //: qsTrId() with comment, meta-data and plurals.
+ //~ well-tested True
+ qsTrId("qtn_bar_baz", 10);
+ }
+}
diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro
new file mode 100644
index 0000000000..1040e22276
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro
@@ -0,0 +1,3 @@
+SOURCES += main.qml
+
+TRANSLATIONS = project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result
new file mode 100644
index 0000000000..7dac8cb5f1
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name></name>
+ <message id="qtn_foo_bar">
+ <location filename="main.qml" line="89"/>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="qtn_needle">
+ <location filename="main.qml" line="91"/>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="qtn_haystack">
+ <location filename="main.qml" line="91"/>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="qtn_bar_baz" numerus="yes">
+ <location filename="main.qml" line="95"/>
+ <source></source>
+ <extracomment>qsTrId() with comment, meta-data and plurals.</extracomment>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ <extra-well-tested>True</extra-well-tested>
+ </message>
+</context>
+<context>
+ <name>BarContext</name>
+ <message>
+ <location filename="main.qml" line="19"/>
+ <source>See other comment</source>
+ <extracomment>My second comment.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="42"/>
+ <source>Qt is the very best</source>
+ <extracomment>Another C-style comment, followed by yet another one.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_bar">
+ <location filename="main.qml" line="60"/>
+ <source>This string also has an identifier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="85"/>
+ <source>This string also has disambiguation</source>
+ <comment>Another disambiguation</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>BazContext</name>
+ <message>
+ <location filename="main.qml" line="28"/>
+ <source>It should be clear by now</source>
+ <extracomment>My fourth comment spans a whopping three lines.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="48"/>
+ <source>The comment had no effect, really</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="66"/>
+ <source>This string also has meta-data</source>
+ <translation type="unfinished"></translation>
+ <extra-loc-layout_id>foo_dialog</extra-loc-layout_id>
+ </message>
+</context>
+<context>
+ <name>FooContext</name>
+ <message>
+ <location filename="main.qml" line="6"/>
+ <source>Two</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="10"/>
+ <source>Goodbye</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="34"/>
+ <source>I really love C++</source>
+ <extracomment>Another C-style comment.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="54"/>
+ <source>I refuse to comment on that</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_babar">
+ <location filename="main.qml" line="81"/>
+ <source>This string has even more information</source>
+ <extracomment>This is another comment for the translator.</extracomment>
+ <translation type="unfinished"></translation>
+ <extra-needle-in-haystack>Found</extra-needle-in-haystack>
+ <extra-overflow>True</extra-overflow>
+ <extra-foo-bar>Important stuff</extra-foo-bar>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="main.qml" line="5"/>
+ <source>One</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="9"/>
+ <source>Hello</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="13"/>
+ <source>One</source>
+ <comment>not the same one</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="16"/>
+ <source>See comment</source>
+ <extracomment>My first comment.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="23"/>
+ <source>The comment explains it all</source>
+ <extracomment>My third comment spans two lines.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="31"/>
+ <source>I love C++</source>
+ <extracomment>C-style comment.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="38"/>
+ <source>Qt is the best</source>
+ <extracomment>C-style comment, followed by another one.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="45"/>
+ <source>The comment had no effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="51"/>
+ <source>No comment to your comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_foo">
+ <location filename="main.qml" line="57"/>
+ <source>This string has an identifier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.qml" line="63"/>
+ <source>This string has meta-data</source>
+ <translation type="unfinished"></translation>
+ <extra-loc-blank>False</extra-loc-blank>
+ </message>
+ <message id="id_baz">
+ <location filename="main.qml" line="73"/>
+ <source>This string has a lot of information</source>
+ <extracomment>This is a comment for the translator.</extracomment>
+ <translation type="unfinished"></translation>
+ <extra-foo>123</extra-foo>
+ <extra-magic-stuff>This means something special.</extra-magic-stuff>
+ </message>
+ <message>
+ <location filename="main.qml" line="83"/>
+ <source>This string has disambiguation</source>
+ <comment>Disambiguation</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="main.qml" line="87"/>
+ <source>This string contains plurals</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp b/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp
index 6f158f0795..dbcccc93c5 100644
--- a/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp
+++ b/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp
@@ -1208,6 +1208,7 @@ void tst_QAbstractItemModel::testMoveToGrandParent()
QSignalSpy beforeSpy(m_model, SIGNAL(rowsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
QSignalSpy afterSpy(m_model, SIGNAL(rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
+ QPersistentModelIndex persistentSource = sourceIndex;
ModelMoveCommand *moveCommand = new ModelMoveCommand(m_model, this);
moveCommand->setAncestorRowNumbers(QList<int>() << 5);
@@ -1228,7 +1229,7 @@ void tst_QAbstractItemModel::testMoveToGrandParent()
QCOMPARE(beforeSignal.at(4).toInt(), destRow);
QCOMPARE(afterSignal.size(), 5);
- QCOMPARE(afterSignal.at(0).value<QModelIndex>(), sourceIndex);
+ QCOMPARE(afterSignal.at(0).value<QModelIndex>(), static_cast<QModelIndex>(persistentSource));
QCOMPARE(afterSignal.at(1).toInt(), startRow);
QCOMPARE(afterSignal.at(2).toInt(), endRow);
QCOMPARE(afterSignal.at(3).value<QModelIndex>(), QModelIndex());
@@ -1351,6 +1352,7 @@ void tst_QAbstractItemModel::testMoveToSibling()
QSignalSpy beforeSpy(m_model, SIGNAL(rowsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
QSignalSpy afterSpy(m_model, SIGNAL(rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
+ QPersistentModelIndex persistentDest = destIndex;
ModelMoveCommand *moveCommand = new ModelMoveCommand(m_model, this);
moveCommand->setNumCols(4);
@@ -1374,7 +1376,7 @@ void tst_QAbstractItemModel::testMoveToSibling()
QCOMPARE(afterSignal.at(0).value<QModelIndex>(), sourceIndex);
QCOMPARE(afterSignal.at(1).toInt(), startRow);
QCOMPARE(afterSignal.at(2).toInt(), endRow);
- QCOMPARE(afterSignal.at(3).value<QModelIndex>(), destIndex);
+ QCOMPARE(afterSignal.at(3).value<QModelIndex>(), static_cast<QModelIndex>(persistentDest));
QCOMPARE(afterSignal.at(4).toInt(), destRow);
for (int i = 0; i < indexList.size(); i++)
diff --git a/tests/auto/qdbusthreading/tst_qdbusthreading.cpp b/tests/auto/qdbusthreading/tst_qdbusthreading.cpp
index 94771a8773..9d96ad86cd 100644
--- a/tests/auto/qdbusthreading/tst_qdbusthreading.cpp
+++ b/tests/auto/qdbusthreading/tst_qdbusthreading.cpp
@@ -70,7 +70,12 @@ public:
QSemaphore sem1, sem2;
volatile bool success;
QEventLoop *loop;
- const char *functionSpy;
+ enum FunctionSpy {
+ NoMethod = 0,
+ Adaptor_method,
+ Object_method
+ } functionSpy;
+
QThread *threadSpy;
int signalSpy;
@@ -127,7 +132,7 @@ public:
public Q_SLOTS:
void method()
{
- tst_QDBusThreading::self()->functionSpy = Q_FUNC_INFO;
+ tst_QDBusThreading::self()->functionSpy = tst_QDBusThreading::Adaptor_method;
tst_QDBusThreading::self()->threadSpy = QThread::currentThread();
emit signal();
}
@@ -155,7 +160,7 @@ public:
public Q_SLOTS:
void method()
{
- tst_QDBusThreading::self()->functionSpy = Q_FUNC_INFO;
+ tst_QDBusThreading::self()->functionSpy = tst_QDBusThreading::Object_method;
tst_QDBusThreading::self()->threadSpy = QThread::currentThread();
emit signal();
deleteLater();
@@ -198,7 +203,7 @@ void Thread::run()
static const char myConnectionName[] = "connection";
tst_QDBusThreading::tst_QDBusThreading()
- : loop(0), functionSpy(0), threadSpy(0)
+ : loop(0), functionSpy(NoMethod), threadSpy(0)
{
_self = this;
QCoreApplication::instance()->thread()->setObjectName("Main thread");
@@ -420,22 +425,22 @@ void tst_QDBusThreading::registerObjectInOtherThread()
QTest::qWait(100);
QCOMPARE(signalSpy, 0);
- functionSpy = 0;
+ functionSpy = NoMethod;
threadSpy = 0;
QDBusReply<void> reply = iface.call("method");
QVERIFY(reply.isValid());
- QCOMPARE(functionSpy, "void Object::method()");
+ QCOMPARE(functionSpy, Object_method);
QCOMPARE(threadSpy, th);
QTest::qWait(100);
QCOMPARE(signalSpy, 1);
sem2.acquire(); // the object is gone
- functionSpy = 0;
+ functionSpy = NoMethod;
threadSpy = 0;
reply = iface.call("method");
QVERIFY(!reply.isValid());
- QCOMPARE(functionSpy, (const char*)0);
+ QCOMPARE(functionSpy, NoMethod);
QCOMPARE(threadSpy, (QThread*)0);
}
@@ -468,36 +473,36 @@ void tst_QDBusThreading::registerAdaptorInOtherThread()
connect(&adaptor, SIGNAL(signal()), SLOT(signalSpySlot()));
QCOMPARE(signalSpy, 0);
- functionSpy = 0;
+ functionSpy = NoMethod;
threadSpy = 0;
QDBusReply<void> reply = adaptor.call("method");
QVERIFY(reply.isValid());
- QCOMPARE(functionSpy, "void Adaptor::method()");
+ QCOMPARE(functionSpy, Adaptor_method);
QCOMPARE(threadSpy, th);
QTest::qWait(100);
QCOMPARE(signalSpy, 1);
- functionSpy = 0;
+ functionSpy = NoMethod;
threadSpy = 0;
reply = object.call("method");
QVERIFY(reply.isValid());
- QCOMPARE(functionSpy, "void Object::method()");
+ QCOMPARE(functionSpy, Object_method);
QCOMPARE(threadSpy, th);
QTest::qWait(100);
QCOMPARE(signalSpy, 1);
sem2.acquire(); // the object is gone
- functionSpy = 0;
+ functionSpy = NoMethod;
threadSpy = 0;
reply = adaptor.call("method");
QVERIFY(!reply.isValid());
- QCOMPARE(functionSpy, (const char*)0);
+ QCOMPARE(functionSpy, NoMethod);
QCOMPARE(threadSpy, (QThread*)0);
reply = object.call("method");
QVERIFY(!reply.isValid());
- QCOMPARE(functionSpy, (const char*)0);
+ QCOMPARE(functionSpy, NoMethod);
QCOMPARE(threadSpy, (QThread*)0);
}
diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp
index c8c835f737..fb83a5a9e9 100644
--- a/tests/auto/qdir/tst_qdir.cpp
+++ b/tests/auto/qdir/tst_qdir.cpp
@@ -167,6 +167,8 @@ private slots:
void longFileName();
void updateFileLists();
+
+ void detachingOperations();
};
// Testing get/set functions
@@ -1541,6 +1543,103 @@ void tst_QDir::updateFileLists()
QCOMPARE(dir.entryList(), QStringList() << "sub-dir1" << "sub-dir2" << "file1.txt");
}
+void tst_QDir::detachingOperations()
+{
+ QString const defaultPath(".");
+ QStringList const defaultNameFilters = QStringList("*");
+ QDir::SortFlags const defaultSorting = QDir::Name | QDir::IgnoreCase;
+ QDir::Filters const defaultFilter = QDir::AllEntries;
+
+ QString const path1("..");
+ QString const path2("./foo");
+ QStringList const nameFilters = QStringList(QString("*.txt"));
+ QDir::SortFlags const sorting = QDir::Name | QDir::DirsLast | QDir::Reversed;
+ QDir::Filters const filter = QDir::Writable;
+
+ QDir dir1;
+
+ QCOMPARE(dir1.path(), defaultPath);
+ QCOMPARE(dir1.filter(), defaultFilter);
+ QCOMPARE(dir1.nameFilters(), defaultNameFilters);
+ QCOMPARE(dir1.sorting(), defaultSorting);
+
+ dir1.setPath(path1);
+ QCOMPARE(dir1.path(), path1);
+ QCOMPARE(dir1.filter(), defaultFilter);
+ QCOMPARE(dir1.nameFilters(), defaultNameFilters);
+ QCOMPARE(dir1.sorting(), defaultSorting);
+
+ dir1.setFilter(filter);
+ QCOMPARE(dir1.path(), path1);
+ QCOMPARE(dir1.filter(), filter);
+ QCOMPARE(dir1.nameFilters(), defaultNameFilters);
+ QCOMPARE(dir1.sorting(), defaultSorting);
+
+ dir1.setNameFilters(nameFilters);
+ QCOMPARE(dir1.path(), path1);
+ QCOMPARE(dir1.filter(), filter);
+ QCOMPARE(dir1.nameFilters(), nameFilters);
+ QCOMPARE(dir1.sorting(), defaultSorting);
+
+ dir1.setSorting(sorting);
+ QCOMPARE(dir1.path(), path1);
+ QCOMPARE(dir1.filter(), filter);
+ QCOMPARE(dir1.nameFilters(), nameFilters);
+ QCOMPARE(dir1.sorting(), sorting);
+
+ dir1.setPath(path2);
+ QCOMPARE(dir1.path(), path2);
+ QCOMPARE(dir1.filter(), filter);
+ QCOMPARE(dir1.nameFilters(), nameFilters);
+ QCOMPARE(dir1.sorting(), sorting);
+
+ {
+ QDir dir2(dir1);
+ QCOMPARE(dir2.path(), path2);
+ QCOMPARE(dir2.filter(), filter);
+ QCOMPARE(dir2.nameFilters(), nameFilters);
+ QCOMPARE(dir2.sorting(), sorting);
+ }
+
+ {
+ QDir dir2;
+ QCOMPARE(dir2.path(), defaultPath);
+ QCOMPARE(dir2.filter(), defaultFilter);
+ QCOMPARE(dir2.nameFilters(), defaultNameFilters);
+ QCOMPARE(dir2.sorting(), defaultSorting);
+
+ dir2 = dir1;
+ QCOMPARE(dir2.path(), path2);
+ QCOMPARE(dir2.filter(), filter);
+ QCOMPARE(dir2.nameFilters(), nameFilters);
+ QCOMPARE(dir2.sorting(), sorting);
+
+ dir2 = path1;
+ QCOMPARE(dir2.path(), path1);
+ QCOMPARE(dir2.filter(), filter);
+ QCOMPARE(dir2.nameFilters(), nameFilters);
+ QCOMPARE(dir2.sorting(), sorting);
+ }
+
+ dir1.refresh();
+ QCOMPARE(dir1.path(), path2);
+ QCOMPARE(dir1.filter(), filter);
+ QCOMPARE(dir1.nameFilters(), nameFilters);
+ QCOMPARE(dir1.sorting(), sorting);
+
+ QString const currentPath = QDir::currentPath();
+ QVERIFY(dir1.cd(currentPath));
+ QCOMPARE(dir1.path(), currentPath);
+ QCOMPARE(dir1.filter(), filter);
+ QCOMPARE(dir1.nameFilters(), nameFilters);
+ QCOMPARE(dir1.sorting(), sorting);
+
+ QVERIFY(dir1.cdUp());
+ QCOMPARE(dir1.filter(), filter);
+ QCOMPARE(dir1.nameFilters(), nameFilters);
+ QCOMPARE(dir1.sorting(), sorting);
+}
+
QTEST_MAIN(tst_QDir)
#include "tst_qdir.moc"
diff --git a/tests/auto/qeasingcurve/tst_qeasingcurve.cpp b/tests/auto/qeasingcurve/tst_qeasingcurve.cpp
index 124f900ff1..2411ab69fb 100644
--- a/tests/auto/qeasingcurve/tst_qeasingcurve.cpp
+++ b/tests/auto/qeasingcurve/tst_qeasingcurve.cpp
@@ -153,19 +153,19 @@ void tst_QEasingCurve::propertyDefaults()
QEasingCurve curve(QEasingCurve::InElastic);
QCOMPARE(curve.period(), 0.3);
QCOMPARE(curve.amplitude(), 1.0);
- QCOMPARE(curve.overshoot(), qreal(1.70158f));
+ QCOMPARE(curve.overshoot(), qreal(1.70158));
curve.setType(QEasingCurve::InBounce);
QCOMPARE(curve.period(), 0.3);
QCOMPARE(curve.amplitude(), 1.0);
- QCOMPARE(curve.overshoot(), qreal(1.70158f));
+ QCOMPARE(curve.overshoot(), qreal(1.70158));
curve.setType(QEasingCurve::Linear);
QCOMPARE(curve.period(), 0.3);
QCOMPARE(curve.amplitude(), 1.0);
- QCOMPARE(curve.overshoot(), qreal(1.70158f));
+ QCOMPARE(curve.overshoot(), qreal(1.70158));
curve.setType(QEasingCurve::InElastic);
QCOMPARE(curve.period(), 0.3);
QCOMPARE(curve.amplitude(), 1.0);
- QCOMPARE(curve.overshoot(), qreal(1.70158f));
+ QCOMPARE(curve.overshoot(), qreal(1.70158));
curve.setPeriod(0.4);
curve.setAmplitude(0.6);
curve.setOvershoot(1.0);
@@ -490,7 +490,7 @@ void tst_QEasingCurve::operators()
// operator==
curve.setType(QEasingCurve::InBack);
curve2 = curve;
- curve2.setOvershoot(qreal(1.70158f));
+ curve2.setOvershoot(qreal(1.70158));
QCOMPARE(curve.overshoot(), curve2.overshoot());
QVERIFY(curve2 == curve);
@@ -505,6 +505,15 @@ void tst_QEasingCurve::operators()
curve2.setType(QEasingCurve::InBack);
QCOMPARE(curve.overshoot(), curve2.overshoot());
QVERIFY(curve2 == curve);
+
+ QEasingCurve curve3;
+ QEasingCurve curve4;
+ curve4.setAmplitude(curve4.amplitude());
+ QEasingCurve curve5;
+ curve5.setAmplitude(0.12345);
+ QVERIFY(curve3 == curve4); // default value and not assigned
+ QVERIFY(curve3 != curve5); // unassinged and other value
+ QVERIFY(curve4 != curve5);
}
class tst_QEasingProperties : public QObject
@@ -527,7 +536,7 @@ void tst_QEasingCurve::properties()
tst_QEasingProperties obj;
QEasingCurve inOutBack(QEasingCurve::InOutBack);
- qreal overshoot = 1.5f;
+ qreal overshoot = 1.5;
inOutBack.setOvershoot(overshoot);
qreal amplitude = inOutBack.amplitude();
qreal period = inOutBack.period();
diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp
index 93b1891d6e..208110a9d4 100644
--- a/tests/auto/qfileinfo/tst_qfileinfo.cpp
+++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp
@@ -172,6 +172,8 @@ private slots:
void equalOperator() const;
void equalOperatorWithDifferentSlashes() const;
void notEqualOperator() const;
+
+ void detachingOperations();
};
tst_QFileInfo::tst_QFileInfo()
@@ -228,13 +230,13 @@ void tst_QFileInfo::copy()
QFileInfo info2(info);
QFileInfoPrivate *privateInfo = getPrivate(info);
QFileInfoPrivate *privateInfo2 = getPrivate(info2);
- QCOMPARE(privateInfo->data, privateInfo2->data);
+ QCOMPARE(privateInfo, privateInfo2);
//operator =
QFileInfo info3 = info;
QFileInfoPrivate *privateInfo3 = getPrivate(info3);
- QCOMPARE(privateInfo->data, privateInfo3->data);
- QCOMPARE(privateInfo2->data, privateInfo3->data);
+ QCOMPARE(privateInfo, privateInfo3);
+ QCOMPARE(privateInfo2, privateInfo3);
//refreshing info3 will detach it
QFile file(info.absoluteFilePath());
@@ -256,9 +258,10 @@ void tst_QFileInfo::copy()
QTest::qWait(5000);
#endif
info3.refresh();
- QVERIFY(privateInfo->data != privateInfo3->data);
- QVERIFY(privateInfo2->data != privateInfo3->data);
- QCOMPARE(privateInfo->data, privateInfo2->data);
+ privateInfo3 = getPrivate(info3);
+ QVERIFY(privateInfo != privateInfo3);
+ QVERIFY(privateInfo2 != privateInfo3);
+ QCOMPARE(privateInfo, privateInfo2);
}
void tst_QFileInfo::isFile_data()
@@ -1182,8 +1185,8 @@ void tst_QFileInfo::isLocalFs()
QFileInfo info(path);
QFileInfoPrivate *privateInfo = getPrivate(info);
- QVERIFY(privateInfo->data->fileEngine);
- QCOMPARE(bool(privateInfo->data->fileEngine->fileFlags(QAbstractFileEngine::LocalDiskFlag)
+ QVERIFY(privateInfo->fileEngine);
+ QCOMPARE(bool(privateInfo->fileEngine->fileFlags(QAbstractFileEngine::LocalDiskFlag)
& QAbstractFileEngine::LocalDiskFlag), isLocalFs);
}
@@ -1376,5 +1379,51 @@ void tst_QFileInfo::notEqualOperator() const
QVERIFY(QFileInfo() != QFileInfo());
}
+void tst_QFileInfo::detachingOperations()
+{
+ QFileInfo info1;
+ QVERIFY(info1.caching());
+ info1.setCaching(false);
+
+ {
+ QFileInfo info2 = info1;
+
+ QVERIFY(!info1.caching());
+ QVERIFY(!info2.caching());
+
+ info2.setCaching(true);
+ QVERIFY(info2.caching());
+
+ info1.setFile("foo");
+ QVERIFY(!info1.caching());
+ }
+
+ {
+ QFile file("foo");
+ info1.setFile(file);
+ QVERIFY(!info1.caching());
+ }
+
+ info1.setFile(QDir(), "foo");
+ QVERIFY(!info1.caching());
+
+ {
+ QFileInfo info3;
+ QVERIFY(info3.caching());
+
+ info3 = info1;
+ QVERIFY(!info3.caching());
+ }
+
+ info1.refresh();
+ QVERIFY(!info1.caching());
+
+ QVERIFY(info1.makeAbsolute());
+ QVERIFY(!info1.caching());
+
+ info1.detach();
+ QVERIFY(!info1.caching());
+}
+
QTEST_MAIN(tst_QFileInfo)
#include "tst_qfileinfo.moc"
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 3634ce990a..4476084562 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -4578,7 +4578,7 @@ void tst_QGraphicsItem::itemChange()
QCOMPARE(tester.changes.at(tester.changes.size() - 1), QGraphicsItem::ItemFlagsHaveChanged);
QVariant expectedFlags = qVariantFromValue<quint32>(QGraphicsItem::GraphicsItemFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges));
QCOMPARE(tester.values.at(tester.values.size() - 2), expectedFlags);
- QCOMPARE(tester.values.at(tester.values.size() - 1), qVariantFromValue<quint32>(QGraphicsItem::ItemIsSelectable));
+ QCOMPARE(tester.values.at(tester.values.size() - 1), qVariantFromValue<quint32>((quint32)QGraphicsItem::ItemIsSelectable));
}
{
// ItemSelectedChange
diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
index e5628d18fd..ddc4f7309f 100644
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -172,6 +172,12 @@ private slots:
void itemChangeEvents();
void itemSendGeometryPosChangesDeactivated();
+ void fontPropagatesResolveToChildren();
+ void fontPropagatesResolveToGrandChildren();
+ void fontPropagatesResolveInParentChange();
+ void fontPropagatesResolveViaNonWidget();
+ void fontPropagatesResolveFromScene();
+
// Task fixes
void task236127_bspTreeIndexFails();
void task243004_setStyleCrash();
@@ -622,6 +628,192 @@ void tst_QGraphicsWidget::font()
QCOMPARE(widget.font().family(), font.family());
}
+void tst_QGraphicsWidget::fontPropagatesResolveToChildren()
+{
+ QGraphicsWidget *root = new QGraphicsWidget();
+ QGraphicsWidget *child1 = new QGraphicsWidget(root);
+
+ QGraphicsScene scene;
+ scene.addItem(root);
+
+ QFont font;
+ font.setItalic(true);
+ root->setFont(font);
+
+ QGraphicsWidget *child2 = new QGraphicsWidget(root);
+ QGraphicsWidget *child3 = new QGraphicsWidget();
+ child3->setParentItem(root);
+
+ QGraphicsView view;
+ view.setScene(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QCOMPARE(font.resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(root->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(child1->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(child2->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(child3->font().resolve(), uint(QFont::StyleResolved));
+}
+
+void tst_QGraphicsWidget::fontPropagatesResolveToGrandChildren()
+{
+ QGraphicsWidget *root = new QGraphicsWidget();
+ QGraphicsWidget *child1 = new QGraphicsWidget(root);
+ QGraphicsWidget *grandChild1 = new QGraphicsWidget(child1);
+
+ QGraphicsScene scene;
+ scene.addItem(root);
+
+ QFont font;
+ font.setItalic(true);
+ root->setFont(font);
+
+ QGraphicsWidget *child2 = new QGraphicsWidget(root);
+ QGraphicsWidget *grandChild2 = new QGraphicsWidget(child2);
+ QGraphicsWidget *grandChild3 = new QGraphicsWidget(child2);
+
+ QGraphicsWidget *child3 = new QGraphicsWidget();
+ QGraphicsWidget *grandChild4 = new QGraphicsWidget(child3);
+ QGraphicsWidget *grandChild5 = new QGraphicsWidget(child3);
+ child3->setParentItem(root);
+ grandChild5->setParentItem(child3);
+
+ QGraphicsView view;
+ view.setScene(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QCOMPARE(font.resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild2->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild3->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild4->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild5->font().resolve(), uint(QFont::StyleResolved));
+}
+
+void tst_QGraphicsWidget::fontPropagatesResolveViaNonWidget()
+{
+ QGraphicsWidget *root = new QGraphicsWidget();
+ QGraphicsPixmapItem *child1 = new QGraphicsPixmapItem(root);
+ QGraphicsWidget *grandChild1 = new QGraphicsWidget(child1);
+
+ QGraphicsScene scene;
+ scene.addItem(root);
+
+ QFont font;
+ font.setItalic(true);
+ root->setFont(font);
+
+ QGraphicsPixmapItem *child2 = new QGraphicsPixmapItem(root);
+ QGraphicsWidget *grandChild2 = new QGraphicsWidget(child2);
+ QGraphicsWidget *grandChild3 = new QGraphicsWidget(child2);
+
+ QGraphicsPixmapItem *child3 = new QGraphicsPixmapItem();
+ QGraphicsWidget *grandChild4 = new QGraphicsWidget(child3);
+ QGraphicsWidget *grandChild5 = new QGraphicsWidget(child3);
+ child3->setParentItem(root);
+ grandChild5->setParentItem(child3);
+
+ QGraphicsView view;
+ view.setScene(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QCOMPARE(font.resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild2->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild3->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild4->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild5->font().resolve(), uint(QFont::StyleResolved));
+}
+
+void tst_QGraphicsWidget::fontPropagatesResolveFromScene()
+{
+ QGraphicsWidget *root = new QGraphicsWidget();
+ QGraphicsWidget *child1 = new QGraphicsWidget(root);
+ QGraphicsWidget *grandChild1 = new QGraphicsWidget(child1);
+
+ QGraphicsScene scene;
+ scene.addItem(root);
+
+ QFont font;
+ font.setItalic(true);
+ scene.setFont(font);
+
+ QGraphicsWidget *child2 = new QGraphicsWidget(root);
+ QGraphicsWidget *grandChild2 = new QGraphicsWidget(child2);
+ QGraphicsWidget *grandChild3 = new QGraphicsWidget(child2);
+
+ QGraphicsWidget *child3 = new QGraphicsWidget();
+ QGraphicsWidget *grandChild4 = new QGraphicsWidget(child3);
+ QGraphicsWidget *grandChild5 = new QGraphicsWidget(child3);
+ child3->setParentItem(root);
+ grandChild5->setParentItem(child3);
+
+ QGraphicsView view;
+ view.setScene(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QCOMPARE(font.resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(root->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(child1->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(child2->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(child3->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild2->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild3->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild4->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild5->font().resolve(), uint(QFont::StyleResolved));
+}
+
+void tst_QGraphicsWidget::fontPropagatesResolveInParentChange()
+{
+ QGraphicsWidget *root = new QGraphicsWidget();
+
+ QGraphicsWidget *child1 = new QGraphicsWidget(root);
+ QGraphicsWidget *grandChild1 = new QGraphicsWidget(child1);
+
+ QGraphicsWidget *child2 = new QGraphicsWidget(root);
+ QGraphicsWidget *grandChild2 = new QGraphicsWidget(child2);
+
+ QGraphicsScene scene;
+ scene.addItem(root);
+
+ QFont italicFont;
+ italicFont.setItalic(true);
+ child1->setFont(italicFont);
+
+ QFont boldFont;
+ boldFont.setBold(true);
+ child2->setFont(boldFont);
+
+ QVERIFY(grandChild1->font().italic());
+ QVERIFY(!grandChild1->font().bold());
+ QVERIFY(!grandChild2->font().italic());
+ QVERIFY(grandChild2->font().bold());
+
+ QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild2->font().resolve(), uint(QFont::WeightResolved));
+
+ grandChild2->setParentItem(child1);
+
+ QGraphicsView view;
+ view.setScene(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QVERIFY(grandChild1->font().italic());
+ QVERIFY(!grandChild1->font().bold());
+ QVERIFY(grandChild2->font().italic());
+ QVERIFY(!grandChild2->font().bold());
+
+ QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+ QCOMPARE(grandChild2->font().resolve(), uint(QFont::StyleResolved));
+
+}
+
void tst_QGraphicsWidget::fontPropagation()
{
QGraphicsWidget *root = new QGraphicsWidget;
@@ -728,11 +920,12 @@ void tst_QGraphicsWidget::fontPropagationWidgetItemWidget()
widget->setFont(font);
QCOMPARE(widget2->font().pointSize(), 43);
- QCOMPARE(widget2->font().resolve(), QFont().resolve());
+ QCOMPARE(widget2->font().resolve(), uint(QFont::SizeResolved));
widget->setFont(QFont());
QCOMPARE(widget2->font().pointSize(), qApp->font().pointSize());
+ QCOMPARE(widget2->font().resolve(), QFont().resolve());
}
void tst_QGraphicsWidget::fontPropagationSceneChange()
diff --git a/tests/auto/qimage/tst_qimage.cpp b/tests/auto/qimage/tst_qimage.cpp
index 49514dc743..b4469416c5 100644
--- a/tests/auto/qimage/tst_qimage.cpp
+++ b/tests/auto/qimage/tst_qimage.cpp
@@ -156,14 +156,14 @@ void tst_QImage::create()
{
bool cr = true;
#if !defined(Q_WS_QWS) && !defined(Q_OS_WINCE)
- try {
+ QT_TRY {
#endif
//QImage image(7000000, 7000000, 8, 256, QImage::IgnoreEndian);
QImage image(7000000, 7000000, QImage::Format_Indexed8);
image.setColorCount(256);
cr = !image.isNull();
#if !defined(Q_WS_QWS) && !defined(Q_OS_WINCE)
- } catch (...) {
+ } QT_CATCH (...) {
}
#endif
QVERIFY( !cr );
@@ -1451,11 +1451,6 @@ static inline int rand8()
return int(256. * (qrand() / (RAND_MAX + 1.0)));
}
-static inline bool compare(int a, int b, int tolerance)
-{
- return qAbs(a - b) <= tolerance;
-}
-
// compares img.scale against the bilinear filtering used by QPainter
void tst_QImage::smoothScale3()
{
@@ -1483,6 +1478,7 @@ void tst_QImage::smoothScale3()
p.scale(scales[i], scales[i]);
p.drawImage(0, 0, img);
p.end();
+ int err = 0;
for (int y = 0; y < a.height(); ++y) {
for (int x = 0; x < a.width(); ++x) {
@@ -1490,11 +1486,15 @@ void tst_QImage::smoothScale3()
QRgb cb = b.pixel(x, y);
// tolerate a little bit of rounding errors
- QVERIFY(compare(qRed(ca), qRed(cb), 3));
- QVERIFY(compare(qGreen(ca), qGreen(cb), 3));
- QVERIFY(compare(qBlue(ca), qBlue(cb), 3));
+ bool r = true;
+ r &= qAbs(qRed(ca) - qRed(cb)) <= 18;
+ r &= qAbs(qGreen(ca) - qGreen(cb)) <= 18;
+ r &= qAbs(qBlue(ca) - qBlue(cb)) <= 18;
+ if (!r)
+ err++;
}
}
+ QCOMPARE(err, 0);
}
}
diff --git a/tests/auto/qinputcontext/qinputcontext.pro b/tests/auto/qinputcontext/qinputcontext.pro
index b3ea8c276e..ec6831e5cf 100644
--- a/tests/auto/qinputcontext/qinputcontext.pro
+++ b/tests/auto/qinputcontext/qinputcontext.pro
@@ -1,2 +1,6 @@
load(qttest_p4)
SOURCES += tst_qinputcontext.cpp
+
+symbian {
+ LIBS += -lws32 -lcone
+}
diff --git a/tests/auto/qinputcontext/tst_qinputcontext.cpp b/tests/auto/qinputcontext/tst_qinputcontext.cpp
index 644b463667..d077bc1678 100644
--- a/tests/auto/qinputcontext/tst_qinputcontext.cpp
+++ b/tests/auto/qinputcontext/tst_qinputcontext.cpp
@@ -48,17 +48,27 @@
#include <qlayout.h>
#include <qradiobutton.h>
#include <qwindowsstyle.h>
+#include <qdesktopwidget.h>
+#include <qpushbutton.h>
+
+#ifdef Q_OS_SYMBIAN
+#include <private/qt_s60_p.h>
+#include <private/qcoefepinputcontext_p.h>
+
+#include <w32std.h>
+#include <coecntrl.h>
+#endif
class tst_QInputContext : public QObject
{
Q_OBJECT
public:
- tst_QInputContext() {}
+ tst_QInputContext() : m_phoneIsQwerty(false) {}
virtual ~tst_QInputContext() {}
public slots:
- void initTestCase() {}
+ void initTestCase();
void cleanupTestCase() {}
void init() {}
void cleanup() {}
@@ -69,8 +79,178 @@ private slots:
void closeSoftwareInputPanel();
void selections();
void focusProxy();
+ void symbianTestCoeFepInputContext_data();
+ void symbianTestCoeFepInputContext();
+ void symbianTestCoeFepAutoCommit_data();
+ void symbianTestCoeFepAutoCommit();
+
+private:
+ bool m_phoneIsQwerty;
+};
+
+#ifdef Q_OS_SYMBIAN
+class KeyEvent : public TWsEvent
+{
+public:
+ KeyEvent(QWidget *w, TInt type, TInt scanCode, TUint code, TUint modifiers, TInt repeats) {
+ iHandle = w->effectiveWinId()->DrawableWindow()->WindowGroupId();
+ iType = type;
+ SetTimeNow();
+ TKeyEvent *keyEvent = reinterpret_cast<TKeyEvent *>(iEventData);
+ keyEvent->iScanCode = scanCode;
+ keyEvent->iCode = code;
+ keyEvent->iModifiers = modifiers;
+ keyEvent->iRepeats = repeats;
+ }
+};
+
+class FepReplayEvent
+{
+public:
+ enum Type {
+ Pause,
+ Key,
+ CompleteKey
+ };
+
+ FepReplayEvent(int msecsToPause)
+ : m_type(Pause)
+ , m_msecsToPause(msecsToPause)
+ {
+ }
+
+ FepReplayEvent(TInt keyType, TInt scanCode, TUint code, TUint modifiers, TInt repeats)
+ : m_type(Key)
+ , m_keyType(keyType)
+ , m_scanCode(scanCode)
+ , m_code(code)
+ , m_modifiers(modifiers)
+ , m_repeats(repeats)
+ {
+ }
+
+ FepReplayEvent(TInt scanCode, TUint code, TUint modifiers, TInt repeats)
+ : m_type(CompleteKey)
+ , m_scanCode(scanCode)
+ , m_code(code)
+ , m_modifiers(modifiers)
+ , m_repeats(repeats)
+ {
+ }
+
+ void sendEvent(QWidget *w, TInt type, TInt scanCode, TUint code, TUint modifiers, TInt repeats)
+ {
+ KeyEvent event(w, type, scanCode, code, modifiers, repeats);
+ S60->wsSession().SendEventToWindowGroup(w->effectiveWinId()->DrawableWindow()->WindowGroupId(), event);
+ }
+
+ void pause(int msecs)
+ {
+ // Don't use qWait here. The polling nature of that function screws up the test.
+ QTimer timer;
+ QEventLoop loop;
+ QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.setSingleShot(true);
+ timer.start(msecs);
+ loop.exec();
+ }
+
+ // For some reason, the test fails if using processEvents instead of an event loop
+ // with a zero timer to quit it, so use the timer.
+#define KEY_WAIT 0
+
+ void replay(QWidget *w)
+ {
+ if (m_type == Pause) {
+ pause(m_msecsToPause);
+ } else if (m_type == Key) {
+ sendEvent(w, m_keyType, m_scanCode, m_code, m_modifiers, m_repeats);
+ if (m_keyType != EEventKeyDown)
+ // EEventKeyDown events should have no pause before the EEventKey event.
+ pause(KEY_WAIT);
+ } else if (m_type == CompleteKey) {
+ sendEvent(w, EEventKeyDown, m_scanCode, 0, m_modifiers, m_repeats);
+ // EEventKeyDown events should have no pause before the EEventKey event.
+ sendEvent(w, EEventKey, m_scanCode, m_code, m_modifiers, m_repeats);
+ pause(KEY_WAIT);
+ sendEvent(w, EEventKeyUp, m_scanCode, 0, m_modifiers, m_repeats);
+ pause(KEY_WAIT);
+ }
+ }
+
+private:
+ Type m_type;
+ int m_msecsToPause;
+ TInt m_keyType;
+ TInt m_scanCode;
+ TUint m_code;
+ TUint m_modifiers;
+ TInt m_repeats;
};
+Q_DECLARE_METATYPE(QList<FepReplayEvent>)
+Q_DECLARE_METATYPE(Qt::InputMethodHints)
+Q_DECLARE_METATYPE(QLineEdit::EchoMode);
+
+#endif // Q_OS_SYMBIAN
+
+void tst_QInputContext::initTestCase()
+{
+#ifdef Q_OS_SYMBIAN
+ // Sanity test. Checks FEP for:
+ // - T9 mode is default (it will attempt to fix this)
+ // - Language is English (it cannot fix this; bail out if not correct)
+ QWidget w;
+ QLayout *layout = new QVBoxLayout;
+ w.setLayout(layout);
+ QLineEdit *lineedit = new QLineEdit;
+ layout->addWidget(lineedit);
+ lineedit->setFocus();
+#ifdef QT_KEYPAD_NAVIGATION
+ lineedit->setEditFocus(true);
+#endif
+ w.show();
+
+ QDesktopWidget desktop;
+ QRect screenSize = desktop.screenGeometry(&w);
+ if (screenSize.width() > screenSize.height()) {
+ // Crude way of finding out we are running on a qwerty phone.
+ m_phoneIsQwerty = true;
+ return;
+ }
+
+ for (int iterations = 0; iterations < 16; iterations++) {
+ QTest::qWait(500);
+
+ QList<FepReplayEvent> keyEvents;
+
+ keyEvents << FepReplayEvent('9', '9', 0, 0);
+ keyEvents << FepReplayEvent('6', '6', 0, 0);
+ keyEvents << FepReplayEvent('8', '8', 0, 0);
+ keyEvents << FepReplayEvent(EStdKeyRightArrow, EKeyRightArrow, 0, 0);
+
+ foreach(FepReplayEvent event, keyEvents) {
+ event.replay(lineedit);
+ }
+
+ QApplication::processEvents();
+
+ if (lineedit->text().endsWith("you", Qt::CaseInsensitive)) {
+ // Success!
+ return;
+ }
+
+ // Try changing modes.
+ // After 8 iterations, try to press the mode switch twice before typing.
+ for (int c = 0; c <= iterations / 8; c++) {
+ FepReplayEvent(EStdKeyHash, '#', 0, 0).replay(lineedit);
+ }
+ }
+
+ QFAIL("FEP sanity test failed. Either the phone is not set to English, or the test was unable to enable T9");
+#endif
+}
+
void tst_QInputContext::maximumTextLength()
{
QLineEdit le;
@@ -271,7 +451,6 @@ void tst_QInputContext::focusProxy()
QInputContext *gic = qApp->inputContext();
QVERIFY(gic);
- qDebug() << gic->focusWidget() << &proxy;
QCOMPARE(gic->focusWidget(), &proxy);
// then change the focus proxy and check that input context is valid
@@ -285,5 +464,622 @@ void tst_QInputContext::focusProxy()
QCOMPARE(gic->focusWidget(), &proxy);
}
+void tst_QInputContext::symbianTestCoeFepInputContext_data()
+{
+#ifdef Q_OS_SYMBIAN
+ QTest::addColumn<bool> ("inputMethodEnabled");
+ QTest::addColumn<Qt::InputMethodHints> ("inputMethodHints");
+ QTest::addColumn<int> ("maxLength"); // Zero for no limit
+ QTest::addColumn<QLineEdit::EchoMode> ("echoMode");
+ QTest::addColumn<QList<FepReplayEvent> > ("keyEvents");
+ QTest::addColumn<QString> ("finalString");
+ QTest::addColumn<QString> ("preeditString");
+ QList<FepReplayEvent> events;
+
+ events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+ events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+ events << FepReplayEvent('5', '5', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('6', '6', 0, 0);
+ events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+ events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+ events << FepReplayEvent('1', '1', 0, 0);
+ events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+ events << FepReplayEvent('2', '2', 0, 0);
+ events << FepReplayEvent('1', '1', 0, 0);
+ QTest::newRow("Numbers (no FEP)")
+ << false
+ << Qt::InputMethodHints(Qt::ImhNone)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("521")
+ << QString("");
+ QTest::newRow("Numbers and password mode (no FEP)")
+ << false
+ << Qt::InputMethodHints(Qt::ImhNone)
+ << 0
+ << QLineEdit::Password
+ << events
+ << QString("521")
+ << QString("");
+ QTest::newRow("Numbers")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("521")
+ << QString("");
+ QTest::newRow("Numbers max length (no FEP)")
+ << false
+ << Qt::InputMethodHints(Qt::ImhNone)
+ << 2
+ << QLineEdit::Normal
+ << events
+ << QString("21")
+ << QString("");
+ QTest::newRow("Numbers max length")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 2
+ << QLineEdit::Normal
+ << events
+ << QString("21")
+ << QString("");
+ events.clear();
+
+ events << FepReplayEvent(EEventKeyDown, '5', 0, 0, 0);
+ events << FepReplayEvent(EEventKey, '5', '5', 0, 0);
+ events << FepReplayEvent(EEventKey, '5', '5', 0, 1);
+ events << FepReplayEvent(EEventKey, '5', '5', 0, 1);
+ events << FepReplayEvent(EEventKeyUp, '5', 0, 0, 0);
+ QTest::newRow("Numbers and autorepeat (no FEP)")
+ << false
+ << Qt::InputMethodHints(Qt::ImhNone)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("555")
+ << QString("");
+ events.clear();
+
+ events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+ events << FepReplayEvent('2', '2', 0, 0);
+ events << FepReplayEvent('3', '3', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('5', '5', 0, 0);
+ events << FepReplayEvent('5', '5', 0, 0);
+ events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+ QTest::newRow("Multitap")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("Adh")
+ << QString("");
+ QTest::newRow("Multitap with no auto uppercase")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhNoAutoUppercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("adh")
+ << QString("");
+ QTest::newRow("Multitap with uppercase")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferUppercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("ADH")
+ << QString("");
+ QTest::newRow("Multitap with lowercase")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("adh")
+ << QString("");
+ QTest::newRow("Multitap with forced uppercase")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhUppercaseOnly)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("ADH")
+ << QString("");
+ QTest::newRow("Multitap with forced lowercase")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhLowercaseOnly)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("adh")
+ << QString("");
+ events.clear();
+
+ events << FepReplayEvent(EStdKeyHash, '#', 0, 0);
+ events << FepReplayEvent('2', '2', 0, 0);
+ events << FepReplayEvent('2', '2', 0, 0);
+ events << FepReplayEvent('3', '3', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('5', '5', 0, 0);
+ events << FepReplayEvent('5', '5', 0, 0);
+ events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+ QTest::newRow("Multitap with mode switch")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("bdh")
+ << QString("");
+ events.clear();
+
+ events << FepReplayEvent('7', '7', 0, 0);
+ events << FepReplayEvent('7', '7', 0, 0);
+ events << FepReplayEvent('8', '8', 0, 0);
+ events << FepReplayEvent('9', '9', 0, 0);
+ events << FepReplayEvent('9', '9', 0, 0);
+ QTest::newRow("Multitap with unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("Qt")
+ << QString("x");
+ events << FepReplayEvent(2000);
+ QTest::newRow("Multitap with committed text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("Qtx")
+ << QString("");
+ events.clear();
+
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ // Simulate holding down hash key.
+ events << FepReplayEvent(EEventKeyDown, EStdKeyHash, 0, 0, 0);
+ events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 0);
+ events << FepReplayEvent(500);
+ events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+ events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+ events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+ events << FepReplayEvent(EEventKeyUp, EStdKeyHash, 0, 0, 0);
+ events << FepReplayEvent('7', '7', 0, 0);
+ events << FepReplayEvent('7', '7', 0, 0);
+ events << FepReplayEvent('8', '8', 0, 0);
+ // QTBUG-9867: Switch back as well to make sure we don't get extra symbols
+ events << FepReplayEvent(EEventKeyDown, EStdKeyHash, 0, 0, 0);
+ events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 0);
+ events << FepReplayEvent(500);
+ events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+ events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+ events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+ events << FepReplayEvent(EEventKeyUp, EStdKeyHash, 0, 0, 0);
+ events << FepReplayEvent('9', '9', 0, 0);
+ events << FepReplayEvent('6', '6', 0, 0);
+ events << FepReplayEvent('8', '8', 0, 0);
+ events << FepReplayEvent(2000);
+ events << FepReplayEvent(EStdKeyDevice3, EKeyDevice3, 0, 0); // Select key
+ QTest::newRow("Multitap and numbers")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("H778wmt")
+ << QString("");
+ QTest::newRow("T9 and numbers")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("hi778you")
+ << QString("");
+ events.clear();
+
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent(EStdKeyDevice3, EKeyDevice3, 0, 0); // Select key
+ QTest::newRow("T9")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("hi")
+ << QString("");
+ QTest::newRow("T9 with uppercase")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferUppercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("HI")
+ << QString("");
+ QTest::newRow("T9 with forced lowercase")
+ << true
+ << Qt::InputMethodHints(Qt::ImhLowercaseOnly)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("hi")
+ << QString("");
+ QTest::newRow("T9 with forced uppercase")
+ << true
+ << Qt::InputMethodHints(Qt::ImhUppercaseOnly)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("HI")
+ << QString("");
+ QTest::newRow("T9 with maxlength")
+ << true
+ << Qt::InputMethodHints(Qt::ImhLowercaseOnly)
+ << 1
+ << QLineEdit::Normal
+ << events
+ << QString("i")
+ << QString("");
+ events.clear();
+
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent(EStdKeyLeftArrow, EKeyLeftArrow, 0, 0);
+ events << FepReplayEvent(EStdKeyLeftArrow, EKeyLeftArrow, 0, 0);
+ events << FepReplayEvent('9', '9', 0, 0);
+ events << FepReplayEvent('6', '6', 0, 0);
+ events << FepReplayEvent('8', '8', 0, 0);
+ events << FepReplayEvent('0', '0', 0, 0);
+ events << FepReplayEvent(EStdKeyRightArrow, EKeyRightArrow, 0, 0);
+ events << FepReplayEvent(EStdKeyRightArrow, EKeyRightArrow, 0, 0);
+ events << FepReplayEvent('8', '8', 0, 0);
+ events << FepReplayEvent('8', '8', 0, 0);
+ QTest::newRow("T9 with movement and unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("you hi")
+ << QString("tv");
+ QTest::newRow("T9 with movement, password and unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Password
+ << events
+ << QString("wmt h")
+ << QString("u");
+ QTest::newRow("T9 with movement, maxlength, password and unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 2
+ << QLineEdit::Password
+ << events
+ << QString("wh")
+ << QString("");
+ QTest::newRow("T9 with movement, maxlength and unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 2
+ << QLineEdit::Normal
+ << events
+ << QString("hi")
+ << QString("");
+ QTest::newRow("Multitap with movement and unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("wmt h")
+ << QString("u");
+ QTest::newRow("Multitap with movement, maxlength and unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+ << 2
+ << QLineEdit::Normal
+ << events
+ << QString("wh")
+ << QString("");
+ QTest::newRow("Numbers with movement")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("96804488")
+ << QString("");
+ QTest::newRow("Numbers with movement and maxlength")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 2
+ << QLineEdit::Normal
+ << events
+ << QString("44")
+ << QString("");
+ QTest::newRow("Numbers with movement, password and unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 0
+ << QLineEdit::Password
+ << events
+ << QString("9680448")
+ << QString("8");
+ QTest::newRow("Numbers with movement, maxlength, password and unfinished text")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 2
+ << QLineEdit::Password
+ << events
+ << QString("44")
+ << QString("");
+ events << FepReplayEvent(EStdKeyRightArrow, EKeyRightArrow, 0, 0);
+ QTest::newRow("T9 with movement")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("you htvi")
+ << QString("");
+ QTest::newRow("T9 with movement and password")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Password
+ << events
+ << QString("wmt hu")
+ << QString("");
+ QTest::newRow("T9 with movement, maxlength and password")
+ << true
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << 2
+ << QLineEdit::Password
+ << events
+ << QString("wh")
+ << QString("");
+ QTest::newRow("Multitap with movement")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("wmt hu")
+ << QString("");
+ QTest::newRow("Multitap with movement and maxlength")
+ << true
+ << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+ << 2
+ << QLineEdit::Normal
+ << events
+ << QString("wh")
+ << QString("");
+ QTest::newRow("Numbers with movement and password")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 0
+ << QLineEdit::Password
+ << events
+ << QString("96804488")
+ << QString("");
+ QTest::newRow("Numbers with movement, maxlength and password")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 2
+ << QLineEdit::Password
+ << events
+ << QString("44")
+ << QString("");
+ events.clear();
+
+ // Test that the symbol key successfully does nothing when in number-only mode.
+ events << FepReplayEvent(EEventKeyDown, EStdKeyLeftFunc, 0, 0, 0);
+ events << FepReplayEvent(EEventKeyUp, EStdKeyLeftFunc, 0, 0, 0);
+ QTest::newRow("Dead symbols key")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 0
+ << QLineEdit::Normal
+ << events
+ << QString("")
+ << QString("");
+ QTest::newRow("Dead symbols key and password")
+ << true
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << 0
+ << QLineEdit::Password
+ << events
+ << QString("")
+ << QString("");
+ events.clear();
+#endif
+}
+
+void tst_QInputContext::symbianTestCoeFepInputContext()
+{
+#ifndef Q_OS_SYMBIAN
+ QSKIP("This is a Symbian-only test", SkipAll);
+#else
+ QCoeFepInputContext *ic = qobject_cast<QCoeFepInputContext *>(qApp->inputContext());
+ if (!ic) {
+ QSKIP("coefep is not the active input context; skipping test", SkipAll);
+ }
+
+ QFETCH(bool, inputMethodEnabled);
+ QFETCH(Qt::InputMethodHints, inputMethodHints);
+ QFETCH(int, maxLength);
+ QFETCH(QLineEdit::EchoMode, echoMode);
+ QFETCH(QList<FepReplayEvent>, keyEvents);
+ QFETCH(QString, finalString);
+ QFETCH(QString, preeditString);
+
+ if (inputMethodEnabled && m_phoneIsQwerty) {
+ QSKIP("Skipping advanced input method tests on QWERTY phones", SkipSingle);
+ }
+
+ QWidget w;
+ QLayout *layout = new QVBoxLayout;
+ w.setLayout(layout);
+ QLineEdit *lineedit = new QLineEdit;
+ layout->addWidget(lineedit);
+ lineedit->setFocus();
+#ifdef QT_KEYPAD_NAVIGATION
+ lineedit->setEditFocus(true);
+#endif
+ w.show();
+
+ lineedit->setAttribute(Qt::WA_InputMethodEnabled, inputMethodEnabled);
+ lineedit->setInputMethodHints(inputMethodHints);
+ if (maxLength > 0)
+ lineedit->setMaxLength(maxLength);
+ lineedit->setEchoMode(echoMode);
+
+ QTest::qWait(200);
+
+ foreach(FepReplayEvent event, keyEvents) {
+ event.replay(lineedit);
+ }
+
+ QApplication::processEvents();
+
+ QCOMPARE(lineedit->text(), finalString);
+ QCOMPARE(ic->m_preeditString, preeditString);
+#endif
+}
+
+void tst_QInputContext::symbianTestCoeFepAutoCommit_data()
+{
+#ifdef Q_OS_SYMBIAN
+ QTest::addColumn<Qt::InputMethodHints> ("inputMethodHints");
+ QTest::addColumn<QLineEdit::EchoMode> ("echoMode");
+ QTest::addColumn<QList<FepReplayEvent> > ("keyEvents");
+ QTest::addColumn<QString> ("finalString");
+
+ QList<FepReplayEvent> events;
+
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('4', '4', 0, 0);
+ events << FepReplayEvent('0', '0', 0, 0);
+ events << FepReplayEvent('9', '9', 0, 0);
+ events << FepReplayEvent('6', '6', 0, 0);
+ events << FepReplayEvent('8', '8', 0, 0);
+ QTest::newRow("Numbers")
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << QLineEdit::Normal
+ << events
+ << QString("440968");
+ QTest::newRow("Numbers and password")
+ << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+ << QLineEdit::Password
+ << events
+ << QString("440968");
+ QTest::newRow("Multitap")
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase | Qt::ImhNoPredictiveText)
+ << QLineEdit::Normal
+ << events
+ << QString("h wmt");
+ QTest::newRow("T9")
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << QLineEdit::Normal
+ << events
+ << QString("hi you");
+ QTest::newRow("Multitap with password")
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase | Qt::ImhNoPredictiveText)
+ << QLineEdit::Password
+ << events
+ << QString("h wmt");
+ QTest::newRow("T9 with password")
+ << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+ << QLineEdit::Password
+ << events
+ << QString("h wmt");
+#endif
+}
+
+void tst_QInputContext::symbianTestCoeFepAutoCommit()
+{
+#ifndef Q_OS_SYMBIAN
+ QSKIP("This is a Symbian-only test", SkipAll);
+#else
+ QCoeFepInputContext *ic = qobject_cast<QCoeFepInputContext *>(qApp->inputContext());
+ if (!ic) {
+ QSKIP("coefep is not the active input context; skipping test", SkipAll);
+ }
+
+ QFETCH(Qt::InputMethodHints, inputMethodHints);
+ QFETCH(QLineEdit::EchoMode, echoMode);
+ QFETCH(QList<FepReplayEvent>, keyEvents);
+ QFETCH(QString, finalString);
+
+ if (m_phoneIsQwerty) {
+ QSKIP("Skipping advanced input method tests on QWERTY phones", SkipSingle);
+ }
+
+ QWidget w;
+ QLayout *layout = new QVBoxLayout;
+ w.setLayout(layout);
+ QLineEdit *lineedit = new QLineEdit;
+ layout->addWidget(lineedit);
+ lineedit->setFocus();
+#ifdef QT_KEYPAD_NAVIGATION
+ lineedit->setEditFocus(true);
+#endif
+ QPushButton *pushButton = new QPushButton("Done");
+ layout->addWidget(pushButton);
+ QAction softkey("Done", &w);
+ softkey.setSoftKeyRole(QAction::PositiveSoftKey);
+ w.addAction(&softkey);
+ w.show();
+
+ lineedit->setInputMethodHints(inputMethodHints);
+ lineedit->setEchoMode(echoMode);
+
+ QTest::qWait(200);
+ foreach(FepReplayEvent event, keyEvents) {
+ event.replay(lineedit);
+ }
+ QApplication::processEvents();
+
+ QTest::mouseClick(pushButton, Qt::LeftButton);
+
+ QCOMPARE(lineedit->text(), finalString);
+ QVERIFY(ic->m_preeditString.isEmpty());
+
+#ifdef Q_WS_S60
+ lineedit->inputContext()->reset();
+ lineedit->clear();
+ lineedit->setFocus();
+#ifdef QT_KEYPAD_NAVIGATION
+ lineedit->setEditFocus(true);
+#endif
+
+ QTest::qWait(200);
+ foreach(FepReplayEvent event, keyEvents) {
+ event.replay(lineedit);
+ }
+ QApplication::processEvents();
+
+ FepReplayEvent(EStdKeyDevice0, EKeyDevice0, 0, 0).replay(lineedit); // Left softkey
+
+ QCOMPARE(lineedit->text(), finalString);
+ QVERIFY(ic->m_preeditString.isEmpty());
+
+#endif // Q_WS_S60
+#endif // Q_OS_SYMBIAN
+}
+
QTEST_MAIN(tst_QInputContext)
#include "tst_qinputcontext.moc"
diff --git a/tests/auto/qkeysequence/tst_qkeysequence.cpp b/tests/auto/qkeysequence/tst_qkeysequence.cpp
index 1faae6abee..60f022fc46 100644
--- a/tests/auto/qkeysequence/tst_qkeysequence.cpp
+++ b/tests/auto/qkeysequence/tst_qkeysequence.cpp
@@ -532,20 +532,20 @@ void tst_QKeySequence::translated_data()
QTest::addColumn<QString>("transKey");
QTest::addColumn<QString>("compKey");
- QTest::newRow("Shift++") << QString(tr("Shift++")) << QString("Umschalt++");
- QTest::newRow("Ctrl++") << QString(tr("Ctrl++")) << QString("Strg++");
- QTest::newRow("Alt++") << QString(tr("Alt++")) << QString("Alt++");
- QTest::newRow("Meta++") << QString(tr("Meta++")) << QString("Meta++");
-
- QTest::newRow("Shift+,, Shift++") << QString(tr("Shift+,, Shift++")) << QString("Umschalt+,, Umschalt++");
- QTest::newRow("Shift+,, Ctrl++") << QString(tr("Shift+,, Ctrl++")) << QString("Umschalt+,, Strg++");
- QTest::newRow("Shift+,, Alt++") << QString(tr("Shift+,, Alt++")) << QString("Umschalt+,, Alt++");
- QTest::newRow("Shift+,, Meta++") << QString(tr("Shift+,, Meta++")) << QString("Umschalt+,, Meta++");
-
- QTest::newRow("Ctrl+,, Shift++") << QString(tr("Ctrl+,, Shift++")) << QString("Strg+,, Umschalt++");
- QTest::newRow("Ctrl+,, Ctrl++") << QString(tr("Ctrl+,, Ctrl++")) << QString("Strg+,, Strg++");
- QTest::newRow("Ctrl+,, Alt++") << QString(tr("Ctrl+,, Alt++")) << QString("Strg+,, Alt++");
- QTest::newRow("Ctrl+,, Meta++") << QString(tr("Ctrl+,, Meta++")) << QString("Strg+,, Meta++");
+ QTest::newRow("Shift++") << tr("Shift++") << QString("Umschalt++");
+ QTest::newRow("Ctrl++") << tr("Ctrl++") << QString("Strg++");
+ QTest::newRow("Alt++") << tr("Alt++") << QString("Alt++");
+ QTest::newRow("Meta++") << tr("Meta++") << QString("Meta++");
+
+ QTest::newRow("Shift+,, Shift++") << tr("Shift+,, Shift++") << QString("Umschalt+,, Umschalt++");
+ QTest::newRow("Shift+,, Ctrl++") << tr("Shift+,, Ctrl++") << QString("Umschalt+,, Strg++");
+ QTest::newRow("Shift+,, Alt++") << tr("Shift+,, Alt++") << QString("Umschalt+,, Alt++");
+ QTest::newRow("Shift+,, Meta++") << tr("Shift+,, Meta++") << QString("Umschalt+,, Meta++");
+
+ QTest::newRow("Ctrl+,, Shift++") << tr("Ctrl+,, Shift++") << QString("Strg+,, Umschalt++");
+ QTest::newRow("Ctrl+,, Ctrl++") << tr("Ctrl+,, Ctrl++") << QString("Strg+,, Strg++");
+ QTest::newRow("Ctrl+,, Alt++") << tr("Ctrl+,, Alt++") << QString("Strg+,, Alt++");
+ QTest::newRow("Ctrl+,, Meta++") << tr("Ctrl+,, Meta++") << QString("Strg+,, Meta++");
qApp->removeTranslator(ourTranslator);
qApp->removeTranslator(qtTranslator);
diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp
index 717b32df5a..bfa940626a 100644
--- a/tests/auto/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp
@@ -275,6 +275,7 @@ private slots:
#endif
void taskQTBUG_7395_readOnlyShortcut();
void QTBUG697_paletteCurrentColorGroup();
+ void QTBUG13520_textNotVisible();
#ifdef QT3_SUPPORT
void validateAndSet_data();
@@ -3034,6 +3035,8 @@ public:
};
State state;
+
+ friend class tst_QLineEdit;
};
Q_DECLARE_METATYPE(LineEdit::State);
@@ -3741,5 +3744,21 @@ void tst_QLineEdit::QTBUG697_paletteCurrentColorGroup()
QCOMPARE(img.pixel(10, le.height()/2), QColor(Qt::red).rgb());
}
+void tst_QLineEdit::QTBUG13520_textNotVisible()
+{
+ LineEdit le;
+ le.setAlignment( Qt::AlignRight | Qt::AlignVCenter);
+ le.show();
+ QTest::qWaitForWindowShown(&le);
+ le.setText("01-ST16-01SIL-MPL001wfgsdfgsdgsdfgsdfgsdfgsdfgsdfg");
+ le.setCursorPosition(0);
+ QTest::qWait(100); //just make sure we get he lineedit correcly painted
+
+ QVERIFY(le.cursorRect().center().x() < le.width() / 2);
+
+
+}
+
+
QTEST_MAIN(tst_QLineEdit)
#include "tst_qlineedit.moc"
diff --git a/tests/auto/qmake/qmake.pro b/tests/auto/qmake/qmake.pro
index 8cae6bec56..d0faa872b8 100644
--- a/tests/auto/qmake/qmake.pro
+++ b/tests/auto/qmake/qmake.pro
@@ -1,6 +1,7 @@
load(qttest_p4)
HEADERS += testcompiler.h
SOURCES += tst_qmake.cpp testcompiler.cpp
+QT -= gui
cross_compile: DEFINES += QMAKE_CROSS_COMPILED
diff --git a/tests/auto/qmake/testdata/substitutes/test.pro b/tests/auto/qmake/testdata/substitutes/test.pro
index ddad93f697..26b02722e8 100644
--- a/tests/auto/qmake/testdata/substitutes/test.pro
+++ b/tests/auto/qmake/testdata/substitutes/test.pro
@@ -1 +1,5 @@
-QMAKE_SUBSTITUTES += test.in sub/test2.in
+QMAKE_SUBSTITUTES += test.in sub/test2.in indirect
+
+indirect.input = $$PWD/test3.txt
+indirect.output = $$OUT_PWD/sub/indirect_test.txt
+
diff --git a/tests/auto/qmake/testdata/substitutes/test3.txt b/tests/auto/qmake/testdata/substitutes/test3.txt
new file mode 100644
index 0000000000..ce01362503
--- /dev/null
+++ b/tests/auto/qmake/testdata/substitutes/test3.txt
@@ -0,0 +1 @@
+hello
diff --git a/tests/auto/qmake/tst_qmake.cpp b/tests/auto/qmake/tst_qmake.cpp
index 060fa0127b..1d3e128cb0 100644
--- a/tests/auto/qmake/tst_qmake.cpp
+++ b/tests/auto/qmake/tst_qmake.cpp
@@ -99,7 +99,8 @@ private:
tst_qmake::tst_qmake()
{
- QString cmd = QString("qmake \"QT_VERSION=%1\"").arg(QT_VERSION);
+ QString binpath = QLibraryInfo::location(QLibraryInfo::BinariesPath);
+ QString cmd = QString("%2/qmake \"QT_VERSION=%1\"").arg(QT_VERSION).arg(binpath);
#ifdef Q_CC_MSVC
test_compiler.setBaseCommands( "nmake", cmd );
#elif defined(Q_CC_MINGW)
@@ -484,12 +485,14 @@ void tst_qmake::substitutes()
QVERIFY( test_compiler.qmake( workDir, "test" ));
QVERIFY( test_compiler.exists( workDir, "test", Plain, "" ));
QVERIFY( test_compiler.exists( workDir, "sub/test2", Plain, "" ));
+ QVERIFY( test_compiler.exists( workDir, "sub/indirect_test.txt", Plain, "" ));
QVERIFY( test_compiler.makeDistClean( workDir ));
QString buildDir = base_path + "/testdata/substitutes_build";
QVERIFY( test_compiler.qmake( workDir, "test", buildDir ));
QVERIFY( test_compiler.exists( buildDir, "test", Plain, "" ));
QVERIFY( test_compiler.exists( buildDir, "sub/test2", Plain, "" ));
+ QVERIFY( test_compiler.exists( buildDir, "sub/indirect_test.txt", Plain, "" ));
QVERIFY( test_compiler.makeDistClean( buildDir ));
}
diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index 01d77838e0..306b5f84b1 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -289,6 +289,8 @@ private Q_SLOTS:
void symbianOpenCDataUrlCrash();
+ void qtbug12908compressedHttpReply();
+
// NOTE: This test must be last!
void parentingRepliesToTheApp();
};
@@ -4274,6 +4276,30 @@ void tst_QNetworkReply::symbianOpenCDataUrlCrash()
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(598));
}
+// TODO:
+// Prepare a gzip that has one chunk that expands to the size mentioned in the bugreport.
+// Then have a custom HTTP server that waits after this chunk so the returning gets
+// triggered.
+void tst_QNetworkReply::qtbug12908compressedHttpReply()
+{
+ QString header("HTTP/1.0 200 OK\r\nContent-Encoding: gzip\r\nContent-Length: 63\r\n\r\n");
+
+ // dd if=/dev/zero of=qtbug-12908 bs=16384 count=1 && gzip qtbug-12908 && base64 -w 0 qtbug-12908.gz
+ QString encodedFile("H4sICDdDaUwAA3F0YnVnLTEyOTA4AO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAIC3AYbSVKsAQAAA");
+ QByteArray decodedFile = QByteArray::fromBase64(encodedFile.toAscii());
+
+ MiniHttpServer server(header.toAscii() + decodedFile);
+ server.doClose = true;
+
+ QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort())));
+ QNetworkReplyPtr reply = manager.get(request);
+
+ connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ QTestEventLoop::instance().enterLoop(10);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+}
// NOTE: This test must be last testcase in tst_qnetworkreply!
diff --git a/tests/auto/qpen/tst_qpen.cpp b/tests/auto/qpen/tst_qpen.cpp
index 149f462ab8..b0c2cad734 100644
--- a/tests/auto/qpen/tst_qpen.cpp
+++ b/tests/auto/qpen/tst_qpen.cpp
@@ -213,6 +213,5 @@ void tst_QPen::stream()
QCOMPARE(pen, cmp);
}
-
QTEST_APPLESS_MAIN(tst_QPen)
#include "tst_qpen.moc"
diff --git a/tests/auto/qscriptengine/idtranslatable.js b/tests/auto/qscriptengine/idtranslatable.js
new file mode 100644
index 0000000000..554ca88d41
--- /dev/null
+++ b/tests/auto/qscriptengine/idtranslatable.js
@@ -0,0 +1,5 @@
+qsTrId("qtn_foo_bar");
+
+var more_greeting_strings = [ QT_TRID_NOOP("qtn_needle"), QT_TRID_NOOP("qtn_haystack") ];
+
+qsTrId("qtn_bar_baz", 10);
diff --git a/tests/auto/qscriptengine/qscriptengine.qrc b/tests/auto/qscriptengine/qscriptengine.qrc
index b87f9856e6..fa55a5b5b1 100644
--- a/tests/auto/qscriptengine/qscriptengine.qrc
+++ b/tests/auto/qscriptengine/qscriptengine.qrc
@@ -1,5 +1,6 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>translations/translatable_la.qm</file>
+ <file>translations/idtranslatable_la.qm</file>
</qresource>
</RCC>
diff --git a/tests/auto/qscriptengine/translations/idtranslatable_la.qm b/tests/auto/qscriptengine/translations/idtranslatable_la.qm
new file mode 100644
index 0000000000..c8c0b72acb
--- /dev/null
+++ b/tests/auto/qscriptengine/translations/idtranslatable_la.qm
Binary files differ
diff --git a/tests/auto/qscriptengine/translations/idtranslatable_la.ts b/tests/auto/qscriptengine/translations/idtranslatable_la.ts
new file mode 100644
index 0000000000..b6d7053024
--- /dev/null
+++ b/tests/auto/qscriptengine/translations/idtranslatable_la.ts
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="nb_NO">
+<context>
+ <name></name>
+ <message id="qtn_foo_bar">
+ <location filename="idtranslatable.js" line="1"/>
+ <source></source>
+ <translation>First string</translation>
+ </message>
+ <message id="qtn_needle">
+ <location filename="idtranslatable.js" line="3"/>
+ <source></source>
+ <translation>Second string</translation>
+ </message>
+ <message id="qtn_haystack">
+ <location filename="idtranslatable.js" line="3"/>
+ <source></source>
+ <translation>Third string</translation>
+ </message>
+ <message id="qtn_bar_baz" numerus="yes">
+ <location filename="idtranslatable.js" line="5"/>
+ <source></source>
+ <translation>
+ <numerusform>Fourth string</numerusform>
+ <numerusform>%n fooish bar(s) found</numerusform>
+ </translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index 7a732ccc58..f96aea6de4 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -162,6 +162,7 @@ private slots:
void translateWithInvalidArgs();
void translationContext_data();
void translationContext();
+ void translateScriptIdBased();
void functionScopes();
void nativeFunctionScopes();
void evaluateProgram();
@@ -173,6 +174,10 @@ private slots:
void reentrency();
void newFixedStaticScopeObject();
void newGrowingStaticScopeObject();
+ void dateRoundtripJSQtJS();
+ void dateRoundtripQtJSQt();
+ void dateConversionJSQt();
+ void dateConversionQtJS();
};
tst_QScriptEngine::tst_QScriptEngine()
@@ -4386,6 +4391,8 @@ void tst_QScriptEngine::installTranslatorFunctions()
QVERIFY(!global.property("QT_TRANSLATE_NOOP").isValid());
QVERIFY(!global.property("qsTr").isValid());
QVERIFY(!global.property("QT_TR_NOOP").isValid());
+ QVERIFY(!global.property("qsTrId").isValid());
+ QVERIFY(!global.property("QT_TRID_NOOP").isValid());
QVERIFY(!globalOrig.property("String").property("prototype").property("arg").isValid());
eng.installTranslatorFunctions();
@@ -4393,6 +4400,8 @@ void tst_QScriptEngine::installTranslatorFunctions()
QVERIFY(global.property("QT_TRANSLATE_NOOP").isFunction());
QVERIFY(global.property("qsTr").isFunction());
QVERIFY(global.property("QT_TR_NOOP").isFunction());
+ QVERIFY(global.property("qsTrId").isFunction());
+ QVERIFY(global.property("QT_TRID_NOOP").isFunction());
QVERIFY(globalOrig.property("String").property("prototype").property("arg").isFunction());
if (useCustomGlobalObject) {
@@ -4400,6 +4409,8 @@ void tst_QScriptEngine::installTranslatorFunctions()
QVERIFY(!globalOrig.property("QT_TRANSLATE_NOOP").isValid());
QVERIFY(!globalOrig.property("qsTr").isValid());
QVERIFY(!globalOrig.property("QT_TR_NOOP").isValid());
+ QVERIFY(!globalOrig.property("qsTrId").isValid());
+ QVERIFY(!globalOrig.property("QT_TRID_NOOP").isValid());
}
{
@@ -4427,6 +4438,17 @@ void tst_QScriptEngine::installTranslatorFunctions()
QVERIFY(ret.isString());
QCOMPARE(ret.toString(), QString::fromLatin1("foobar"));
}
+
+ {
+ QScriptValue ret = eng.evaluate("qsTrId('foo')");
+ QVERIFY(ret.isString());
+ QCOMPARE(ret.toString(), QString::fromLatin1("foo"));
+ }
+ {
+ QScriptValue ret = eng.evaluate("QT_TRID_NOOP('foo')");
+ QVERIFY(ret.isString());
+ QCOMPARE(ret.toString(), QString::fromLatin1("foo"));
+ }
}
static QScriptValue callQsTr(QScriptContext *ctx, QScriptEngine *eng)
@@ -4537,6 +4559,10 @@ void tst_QScriptEngine::translateWithInvalidArgs_data()
QTest::newRow("qsTranslate('foo', 'bar', 'baz', 123)") << "qsTranslate('foo', 'bar', 'baz', 123)" << "Error: qsTranslate(): fourth argument (encoding) must be a string";
QTest::newRow("qsTranslate('foo', 'bar', 'baz', 'zab', 'rab')") << "qsTranslate('foo', 'bar', 'baz', 'zab', 'rab')" << "Error: qsTranslate(): fifth argument (n) must be a number";
QTest::newRow("qsTranslate('foo', 'bar', 'baz', 'zab', 123)") << "qsTranslate('foo', 'bar', 'baz', 'zab', 123)" << "Error: qsTranslate(): invalid encoding 'zab'";
+
+ QTest::newRow("qsTrId()") << "qsTrId()" << "Error: qsTrId() requires at least one argument";
+ QTest::newRow("qsTrId(123)") << "qsTrId(123)" << "TypeError: qsTrId(): first argument (id) must be a string";
+ QTest::newRow("qsTrId('foo', 'bar')") << "qsTrId('foo', 'bar')" << "TypeError: qsTrId(): second argument (n) must be a number";
}
void tst_QScriptEngine::translateWithInvalidArgs()
@@ -4598,6 +4624,53 @@ void tst_QScriptEngine::translationContext()
QCoreApplication::instance()->removeTranslator(&translator);
}
+void tst_QScriptEngine::translateScriptIdBased()
+{
+ QScriptEngine engine;
+
+ QTranslator translator;
+ translator.load(":/translations/idtranslatable_la");
+ QCoreApplication::instance()->installTranslator(&translator);
+ engine.installTranslatorFunctions();
+
+ QString fileName = QString::fromLatin1("idtranslatable.js");
+
+ QHash<QString, QString> expectedTranslations;
+ expectedTranslations["qtn_foo_bar"] = "First string";
+ expectedTranslations["qtn_needle"] = "Second string";
+ expectedTranslations["qtn_haystack"] = "Third string";
+ expectedTranslations["qtn_bar_baz"] = "Fourth string";
+
+ QHash<QString, QString>::const_iterator it;
+ for (it = expectedTranslations.constBegin(); it != expectedTranslations.constEnd(); ++it) {
+ for (int x = 0; x < 2; ++x) {
+ QString fn;
+ if (x)
+ fn = fileName;
+ // Top-level
+ QCOMPARE(engine.evaluate(QString::fromLatin1("qsTrId('%0')")
+ .arg(it.key()), fn).toString(),
+ it.value());
+ QCOMPARE(engine.evaluate(QString::fromLatin1("QT_TRID_NOOP('%0')")
+ .arg(it.key()), fn).toString(),
+ it.key());
+ // From function
+ QCOMPARE(engine.evaluate(QString::fromLatin1("(function() { return qsTrId('%0'); })()")
+ .arg(it.key()), fn).toString(),
+ it.value());
+ QCOMPARE(engine.evaluate(QString::fromLatin1("(function() { return QT_TRID_NOOP('%0'); })()")
+ .arg(it.key()), fn).toString(),
+ it.key());
+ }
+ }
+
+ // Plural form
+ QCOMPARE(engine.evaluate("qsTrId('qtn_bar_baz', 10)").toString(),
+ QString::fromLatin1("10 fooish bar(s) found"));
+ QCOMPARE(engine.evaluate("qsTrId('qtn_foo_bar', 10)").toString(),
+ QString::fromLatin1("qtn_foo_bar")); // Doesn't have plural
+}
+
void tst_QScriptEngine::functionScopes()
{
QScriptEngine eng;
@@ -4968,6 +5041,68 @@ void tst_QScriptEngine::qRegExpInport()
}
}
+// QScriptValue::toDateTime() returns a local time, whereas JS dates
+// are always stored as UTC. QtScript must respect the current time
+// zone, and correctly adjust for daylight saving time that may be in
+// effect at a given date (QTBUG-9770).
+void tst_QScriptEngine::dateRoundtripJSQtJS()
+{
+ uint secs = QDateTime(QDate(2009, 1, 1)).toUTC().toTime_t();
+ QScriptEngine eng;
+ for (int i = 0; i < 8000; ++i) {
+ QScriptValue jsDate = eng.evaluate(QString::fromLatin1("new Date(%0)").arg(secs * 1000.0));
+ QDateTime qtDate = jsDate.toDateTime();
+ QScriptValue jsDate2 = eng.newDate(qtDate);
+ if (jsDate2.toNumber() != jsDate.toNumber())
+ QFAIL(qPrintable(jsDate.toString()));
+ secs += 2*60*60;
+ }
+}
+
+void tst_QScriptEngine::dateRoundtripQtJSQt()
+{
+ QDateTime qtDate = QDateTime(QDate(2009, 1, 1));
+ QScriptEngine eng;
+ for (int i = 0; i < 8000; ++i) {
+ QScriptValue jsDate = eng.newDate(qtDate);
+ QDateTime qtDate2 = jsDate.toDateTime();
+ if (qtDate2 != qtDate)
+ QFAIL(qPrintable(qtDate.toString()));
+ qtDate = qtDate.addSecs(2*60*60);
+ }
+}
+
+void tst_QScriptEngine::dateConversionJSQt()
+{
+ uint secs = QDateTime(QDate(2009, 1, 1)).toUTC().toTime_t();
+ QScriptEngine eng;
+ for (int i = 0; i < 8000; ++i) {
+ QScriptValue jsDate = eng.evaluate(QString::fromLatin1("new Date(%0)").arg(secs * 1000.0));
+ QDateTime qtDate = jsDate.toDateTime();
+ QString qtUTCDateStr = qtDate.toUTC().toString(Qt::ISODate);
+ QString jsUTCDateStr = jsDate.property("toISOString").call(jsDate).toString();
+ jsUTCDateStr.chop(5); // get rid of milliseconds (".000Z")
+ if (qtUTCDateStr != jsUTCDateStr)
+ QFAIL(qPrintable(jsDate.toString()));
+ secs += 2*60*60;
+ }
+}
+
+void tst_QScriptEngine::dateConversionQtJS()
+{
+ QDateTime qtDate = QDateTime(QDate(2009, 1, 1));
+ QScriptEngine eng;
+ for (int i = 0; i < 8000; ++i) {
+ QScriptValue jsDate = eng.newDate(qtDate);
+ QString jsUTCDateStr = jsDate.property("toISOString").call(jsDate).toString();
+ jsUTCDateStr.chop(5); // get rid of milliseconds (".000Z")
+ QString qtUTCDateStr = qtDate.toUTC().toString(Qt::ISODate);
+ if (jsUTCDateStr != qtUTCDateStr)
+ QFAIL(qPrintable(qtDate.toString()));
+ qtDate = qtDate.addSecs(2*60*60);
+ }
+}
+
static QScriptValue createAnotherEngine(QScriptContext *, QScriptEngine *)
{
QScriptEngine eng;
diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp
index 6c1dd8f30d..d6a7a01c0d 100644
--- a/tests/auto/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp
@@ -183,6 +183,7 @@ private slots:
void ignoreSslErrorsListWithSlot();
void readFromClosedSocket();
void writeBigChunk();
+ void setEmptyDefaultConfiguration();
static void exitLoop()
{
@@ -1835,6 +1836,21 @@ void tst_QSslSocket::writeBigChunk()
socket->close();
}
+void tst_QSslSocket::setEmptyDefaultConfiguration()
+{
+ // used to produce a crash in QSslConfigurationPrivate::deepCopyDefaultConfiguration, QTBUG-13265
+
+ if (!QSslSocket::supportsSsl())
+ return;
+
+ QSslConfiguration emptyConf;
+ QSslConfiguration::setDefaultConfiguration(emptyConf);
+
+ QSslSocketPtr socket = newSocket();
+ socket->connectToHostEncrypted(QtNetworkSettings::serverName(), 443);
+
+}
+
#endif // QT_NO_OPENSSL
QTEST_MAIN(tst_QSslSocket)
diff --git a/tests/auto/qstatictext/tst_qstatictext.cpp b/tests/auto/qstatictext/tst_qstatictext.cpp
index 0ae5320b82..2a60e9e59f 100644
--- a/tests/auto/qstatictext/tst_qstatictext.cpp
+++ b/tests/auto/qstatictext/tst_qstatictext.cpp
@@ -73,6 +73,8 @@ private slots:
void prepareToCorrectData();
void prepareToWrongData();
+ void copyConstructor();
+
void translatedPainter();
void rotatedPainter();
void scaledPainter();
@@ -104,6 +106,31 @@ void tst_QStaticText::constructionAndDestruction()
QStaticText text("My text");
}
+void tst_QStaticText::copyConstructor()
+{
+ QStaticText text(QLatin1String("My text"));
+
+ QTextOption textOption(Qt::AlignRight);
+ text.setTextOption(textOption);
+
+ text.setPerformanceHint(QStaticText::AggressiveCaching);
+ text.setTextWidth(123.456);
+ text.setTextFormat(Qt::PlainText);
+
+ QStaticText copiedText(text);
+ copiedText.setText(QLatin1String("Other text"));
+
+ QCOMPARE(copiedText.textOption().alignment(), Qt::AlignRight);
+ QCOMPARE(copiedText.performanceHint(), QStaticText::AggressiveCaching);
+ QCOMPARE(copiedText.textWidth(), 123.456);
+ QCOMPARE(copiedText.textFormat(), Qt::PlainText);
+
+ QStaticText otherCopiedText(copiedText);
+ otherCopiedText.setTextWidth(789);
+
+ QCOMPARE(otherCopiedText.text(), QString::fromLatin1("Other text"));
+}
+
Q_DECLARE_METATYPE(QStaticText::PerformanceHint)
void tst_QStaticText::drawToPoint_data()
{
diff --git a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
index e370309716..04b1e79f09 100644
--- a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
+++ b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
@@ -698,20 +698,25 @@ void tst_QStyleSheetStyle::fontPrecedence()
QCOMPARE(FONTSIZE(edit2), 26);
}
-static bool testForColors(const QImage& image, const QColor& color)
+// Ensure primary will only return true if the color covers more than 50% of pixels
+static bool testForColors(const QImage& image, const QColor& color, bool ensurePrimary=false)
{
int count = 0;
QRgb rgb = color.rgba();
+ int totalCount = image.height()*image.width();
for (int y = 0; y < image.height(); ++y) {
for (int x = 0; x < image.width(); ++x) {
// Because of antialiasing we allow a certain range of errors here.
QRgb pixel = image.pixel(x, y);
+
if (qAbs((int)(pixel & 0xff) - (int)(rgb & 0xff)) +
qAbs((int)((pixel & 0xff00) >> 8) - (int)((rgb & 0xff00) >> 8)) +
qAbs((int)((pixel & 0xff0000) >> 16) - (int)((rgb & 0xff0000) >> 16)) <= 50) {
- if (++count >= 10) {
+ count++;
+ if (!ensurePrimary && count >=10 )
+ return true;
+ else if (count > totalCount/2)
return true;
- }
}
}
}
@@ -1528,6 +1533,15 @@ void tst_QStyleSheetStyle::task188195_baseBackground()
tree.render(&image);
QVERIFY(testForColors(image, tree.palette().base().color()));
QVERIFY(!testForColors(image, QColor(0xab, 0x12, 0x51)));
+
+ QTableWidget table(12, 12);
+ table.setItem(0, 0, new QTableWidgetItem());
+ table.setStyleSheet( "QTableView {background-color: #ff0000}" );
+ table.show();
+ QTest::qWait(20);
+ image = QImage(table.width(), table.height(), QImage::Format_ARGB32);
+ table.render(&image);
+ QVERIFY(testForColors(image, Qt::red, true));
}
void tst_QStyleSheetStyle::task232085_spinBoxLineEditBg()
diff --git a/tests/auto/qtimer/tst_qtimer.cpp b/tests/auto/qtimer/tst_qtimer.cpp
index 8d213ed853..b651187e9c 100644
--- a/tests/auto/qtimer/tst_qtimer.cpp
+++ b/tests/auto/qtimer/tst_qtimer.cpp
@@ -161,8 +161,9 @@ void tst_QTimer::singleShotTimeout()
QCOMPARE(helper.count, 1);
}
-#if defined(Q_OS_SYMBIAN) && defined(Q_CC_NOKIAX86)
-// Increase wait as emulator startup can cause unexpected delays
+#if defined(Q_OS_SYMBIAN)
+// Increase wait as emulator startup can cause unexpected delays, and
+// on hardware there are sometimes spikes right after process startup.
#define TIMEOUT_TIMEOUT 2000
#else
#define TIMEOUT_TIMEOUT 200
diff --git a/tests/auto/qtouchevent/tst_qtouchevent.cpp b/tests/auto/qtouchevent/tst_qtouchevent.cpp
index bb80fde4e7..4219ef411c 100644
--- a/tests/auto/qtouchevent/tst_qtouchevent.cpp
+++ b/tests/auto/qtouchevent/tst_qtouchevent.cpp
@@ -109,6 +109,7 @@ class tst_QTouchEventGraphicsItem : public QGraphicsItem
public:
QList<QTouchEvent::TouchPoint> touchBeginPoints, touchUpdatePoints, touchEndPoints;
bool seenTouchBegin, seenTouchUpdate, seenTouchEnd;
+ int touchBeginCounter, touchUpdateCounter, touchEndCounter;
bool acceptTouchBegin, acceptTouchUpdate, acceptTouchEnd;
bool deleteInTouchBegin, deleteInTouchUpdate, deleteInTouchEnd;
tst_QTouchEventGraphicsItem **weakpointer;
@@ -131,6 +132,7 @@ public:
touchUpdatePoints.clear();
touchEndPoints.clear();
seenTouchBegin = seenTouchUpdate = seenTouchEnd = false;
+ touchBeginCounter = touchUpdateCounter = touchEndCounter = 0;
acceptTouchBegin = acceptTouchUpdate = acceptTouchEnd = true;
deleteInTouchBegin = deleteInTouchUpdate = deleteInTouchEnd = false;
}
@@ -146,6 +148,7 @@ public:
if (seenTouchUpdate) qWarning("TouchBegin: TouchUpdate cannot happen before TouchBegin");
if (seenTouchEnd) qWarning("TouchBegin: TouchEnd cannot happen before TouchBegin");
seenTouchBegin = !seenTouchBegin && !seenTouchUpdate && !seenTouchEnd;
+ ++touchBeginCounter;
touchBeginPoints = static_cast<QTouchEvent *>(event)->touchPoints();
event->setAccepted(acceptTouchBegin);
if (deleteInTouchBegin)
@@ -155,6 +158,7 @@ public:
if (!seenTouchBegin) qWarning("TouchUpdate: have not seen TouchBegin");
if (seenTouchEnd) qWarning("TouchUpdate: TouchEnd cannot happen before TouchUpdate");
seenTouchUpdate = seenTouchBegin && !seenTouchEnd;
+ ++touchUpdateCounter;
touchUpdatePoints = static_cast<QTouchEvent *>(event)->touchPoints();
event->setAccepted(acceptTouchUpdate);
if (deleteInTouchUpdate)
@@ -164,6 +168,7 @@ public:
if (!seenTouchBegin) qWarning("TouchEnd: have not seen TouchBegin");
if (seenTouchEnd) qWarning("TouchEnd: already seen a TouchEnd");
seenTouchEnd = seenTouchBegin && !seenTouchEnd;
+ ++touchEndCounter;
touchEndPoints = static_cast<QTouchEvent *>(event)->touchPoints();
event->setAccepted(acceptTouchEnd);
if (deleteInTouchEnd)
@@ -194,6 +199,7 @@ private slots:
void deleteInEventHandler();
void deleteInRawEventTranslation();
void crashInQGraphicsSceneAfterNotHandlingTouchBegin();
+ void touchBeginWithGraphicsWidget();
};
void tst_QTouchEvent::touchDisabledByDefault()
@@ -1334,6 +1340,59 @@ void tst_QTouchEvent::crashInQGraphicsSceneAfterNotHandlingTouchBegin()
QTest::touchEvent(view.viewport()).release(0, view.mapFromScene(QPoint(10, 10)));
}
+void tst_QTouchEvent::touchBeginWithGraphicsWidget()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ tst_QTouchEventGraphicsItem *root;
+ root = new tst_QTouchEventGraphicsItem;
+ root->setAcceptTouchEvents(true);
+ scene.addItem(root);
+
+ QGraphicsWidget *glassWidget = new QGraphicsWidget;
+ glassWidget->setMinimumSize(100, 100);
+ scene.addItem(glassWidget);
+
+ view.resize(200, 200);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ view.fitInView(scene.sceneRect());
+
+ QTest::touchEvent()
+ .press(0, view.mapFromScene(root->mapToScene(3,3)), view.viewport());
+ QTest::touchEvent()
+ .stationary(0)
+ .press(1, view.mapFromScene(root->mapToScene(6,6)), view.viewport());
+ QTest::touchEvent()
+ .release(0, view.mapFromScene(root->mapToScene(3,3)), view.viewport())
+ .release(1, view.mapFromScene(root->mapToScene(6,6)), view.viewport());
+
+ QCOMPARE(root->touchBeginCounter, 1);
+ QCOMPARE(root->touchUpdateCounter, 1);
+ QCOMPARE(root->touchEndCounter, 1);
+ QCOMPARE(root->touchUpdatePoints.size(), 2);
+
+ root->reset();
+ glassWidget->setWindowFlags(Qt::Window); // make the glassWidget a panel
+
+ QTest::touchEvent()
+ .press(0, view.mapFromScene(root->mapToScene(3,3)), view.viewport());
+ QTest::touchEvent()
+ .stationary(0)
+ .press(1, view.mapFromScene(root->mapToScene(6,6)), view.viewport());
+ QTest::touchEvent()
+ .release(0, view.mapFromScene(root->mapToScene(3,3)), view.viewport())
+ .release(1, view.mapFromScene(root->mapToScene(6,6)), view.viewport());
+
+ QCOMPARE(root->touchBeginCounter, 0);
+ QCOMPARE(root->touchUpdateCounter, 0);
+ QCOMPARE(root->touchEndCounter, 0);
+
+
+ delete root;
+ delete glassWidget;
+}
+
QTEST_MAIN(tst_QTouchEvent)
#include "tst_qtouchevent.moc"
diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp
index 820e32d11f..b5236e53ec 100644
--- a/tests/auto/qurl/tst_qurl.cpp
+++ b/tests/auto/qurl/tst_qurl.cpp
@@ -194,6 +194,7 @@ private slots:
void task_199967();
void task_240612();
void taskQTBUG_6962();
+ void taskQTBUG_8701();
#ifdef QT3_SUPPORT
void dirPath();
@@ -2265,7 +2266,9 @@ void tst_QUrl::ipv6()
QCOMPARE(url.isValid(), isValid);
if (url.isValid()) {
- QCOMPARE(url.toString(), ipv6Auth);
+ QCOMPARE(url.toString(), ipv6Auth);
+ url.setHost(url.host());
+ QCOMPARE(url.toString(), ipv6Auth);
}
};
@@ -2289,6 +2292,8 @@ void tst_QUrl::ipv6_2()
QUrl url(input);
QCOMPARE(url.toString(), output);
+ url.setHost(url.host());
+ QCOMPARE(url.toString(), output);
}
void tst_QUrl::moreIpv6()
@@ -3912,5 +3917,17 @@ void tst_QUrl::taskQTBUG_6962()
QCOMPARE(url.authority(), QString());
}
+void tst_QUrl::taskQTBUG_8701()
+{
+ //bug 8701: foo:///bar mangled to foo:/bar
+ QString foo_triple_bar("foo:///bar"), foo_uni_bar("foo:/bar");
+
+ QCOMPARE(foo_triple_bar, QUrl(foo_triple_bar).toString());
+ QCOMPARE(foo_uni_bar, QUrl(foo_uni_bar).toString());
+
+ QCOMPARE(foo_triple_bar, QUrl(foo_triple_bar, QUrl::StrictMode).toString()); // fails
+ QCOMPARE(foo_uni_bar, QUrl(foo_uni_bar, QUrl::StrictMode).toString());
+}
+
QTEST_MAIN(tst_QUrl)
#include "tst_qurl.moc"
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index b618479c45..8d64ca1551 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -402,6 +402,8 @@ private slots:
#endif // QT_MAC_USE_COCOA
#endif
+ void nativeChildFocus();
+
private:
bool ensureScreenSize(int width, int height);
QWidget *testWidget;
@@ -10534,5 +10536,28 @@ void tst_QWidget::taskQTBUG_11373()
#endif // QT_MAC_USE_COCOA
#endif
+void tst_QWidget::nativeChildFocus()
+{
+ QWidget w;
+ QLayout *layout = new QVBoxLayout;
+ w.setLayout(layout);
+ QLineEdit *p1 = new QLineEdit;
+ QLineEdit *p2 = new QLineEdit;
+ layout->addWidget(p1);
+ layout->addWidget(p2);
+ p1->setObjectName("p1");
+ p2->setObjectName("p2");
+ w.show();
+ w.activateWindow();
+ p1->setFocus();
+ p1->setAttribute(Qt::WA_NativeWindow);
+ p2->setAttribute(Qt::WA_NativeWindow);
+ QApplication::processEvents();
+ QTest::qWaitForWindowShown(&w);
+
+ QCOMPARE(QApplication::activeWindow(), &w);
+ QCOMPARE(QApplication::focusWidget(), p1);
+}
+
QTEST_MAIN(tst_QWidget)
#include "tst_qwidget.moc"
diff --git a/tests/benchmarks/corelib/tools/qstring/data.cpp b/tests/benchmarks/corelib/tools/qstring/data.cpp
new file mode 100644
index 0000000000..6d1a069ec7
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qstring/data.cpp
@@ -0,0 +1,1284 @@
+// This is a generated file - DO NOT EDIT
+static const ushort stringCollectionData[] __attribute__((aligned(16))) = {
+ // #0
+ 65535,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+ 65535,65534,65533,65532,65531, // 24
+ 65535,65534,65533,65532,65531,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+ 65535, // 48
+
+ // #1
+ 65535,65534,65533,65532,65531,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+ 65535, // 72
+ 65535,65534,65533,65532,65531,
+ 67, 111, 109, 112, 105, 108, 101, 114, 32, 86, 101, 114, 115, 105, 111, 110, 115, 47,
+ 65535, // 96
+
+ // #2
+ 65535,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+ 65535,65534,65533, // 120
+ 65535,65534,65533,65532,65531,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 152
+
+ // #3
+ 65535,65534,65533,65532,65531,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 184
+ 65535,
+ 67, 111, 109, 112, 105, 108, 101, 114, 32, 84, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+ 65535,65534,65533, // 208
+
+ // #4
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,65522,65521,65520,65519,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532, // 280+
+
+
+ // #5
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 352+
+ 65535,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532, // 408+
+
+ // #6
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532, // 472+
+
+
+ // #7
+ 65535,
+ 97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+ 65535,65534,65533,65532, // 496
+ 65535,65534,65533,65532,65531,
+ 97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 528
+
+ // #8
+ 65535,65534,65533,65532,65531,
+ 97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 560
+ 65535,65534,65533,65532,65531,
+ 65, 114, 99, 104, 105, 118, 101, 100, 32, 67, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 592
+
+ // #9
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,65522,65521,65520,65519,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532, // 664+
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 736+
+
+ // #10
+ 65535,65534,65533,65532,65531,
+ 76, 105, 110, 117, 120,
+ 65535,65534,65533,65532,65531,65530, // 752
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 760
+
+ // #11
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 776
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 792
+
+ // #12
+ 65535,
+ 105, 99, 99,
+ 65535,65534,65533,65532, // 800
+ 65535,65534,65533,65532,65531,
+ 103, 43, 43,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 816
+
+ // #13
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 824
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 832
+
+ // #14
+ 65535,
+ 105, 51, 56, 54,
+ 65535,65534,65533, // 840
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 856
+
+ // #15
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 864
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 872
+
+ // #16
+ 65535,
+ 105, 51, 56, 54,
+ 65535,65534,65533, // 880
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 896
+
+ // #17
+ 65535,
+ 103, 99, 99,
+ 65535,65534,65533,65532, // 904
+ 65535,65534,65533,65532,65531,
+ 103, 43, 43,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 920
+
+ // #18
+ 65535,65534,65533,65532,65531,
+ 76, 105, 110, 117, 120,
+ 65535,65534,65533,65532,65531,65530, // 936
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 944
+
+ // #19
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 960
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 976
+
+ // #20
+ 65535,
+ 103, 43, 43,
+ 65535,65534,65533,65532, // 984
+ 65535,65534,65533,65532,65531,
+ 103, 43, 43,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 1000
+
+ // #21
+ 65535,65534,65533,65532,65531,
+ 52, 46, 52, 46, 51,
+ 65535,65534,65533,65532,65531,65530, // 1016
+ 65535,65534,65533,65532,65531,
+ 52, 46, 52, 46, 51,
+ 65535,65534,65533,65532,65531,65530, // 1032
+
+ // #22
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1040
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1048
+
+ // #23
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1064
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1080
+
+ // #24
+ 65535,
+ 47, 117, 115, 114, 47, 98, 105, 110, 47, 103, 43, 43,
+ 65535,65534,65533, // 1096
+ 65535,
+ 47, 117, 115, 114, 47, 98, 105, 110, 47, 103, 43, 43,
+ 65535,65534,65533, // 1112
+
+ // #25
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1120
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1128
+
+ // #26
+ 65535,
+ 105, 51, 56, 54,
+ 65535,65534,65533, // 1136
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1152
+
+ // #27
+ 65535,
+ 105, 99, 99,
+ 65535,65534,65533,65532, // 1160
+ 65535,65534,65533,65532,65531,
+ 103, 43, 43,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 1176
+
+ // #28
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1184
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1192
+
+ // #29
+ 65535,
+ 105, 51, 56, 54,
+ 65535,65534,65533, // 1200
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1216
+
+ // #30
+ 65535,65534,65533,65532,65531,
+ 76, 105, 110, 117, 120,
+ 65535,65534,65533,65532,65531,65530, // 1232
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1240
+
+ // #31
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1256
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1272
+
+ // #32
+ 65535,65534,65533,65532,65531,
+ 76, 105, 110, 117, 120,
+ 65535,65534,65533,65532,65531,65530, // 1288
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1296
+
+ // #33
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1312
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1328
+
+ // #34
+ 65535,
+ 45, 109, 97, 114, 99, 104, 61, 99, 111, 114, 101, 50,
+ 65535,65534,65533, // 1344
+ 65535,
+ 116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+ 65535,65534,65533, // 1360
+
+ // #35
+ 65535,65534,65533,65532,65531,
+ 45, 102, 108, 111, 111, 112, 45, 98, 108, 111, 99, 107,
+ 65535,65534,65533,65532,65531,65530,65529, // 1384
+ 65535,
+ 116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+ 65535,65534,65533, // 1400
+
+ // #36
+ 65535,65534,65533,65532,65531,
+ 116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+ 65535,65534,65533,65532,65531,65530,65529, // 1424
+ 65535,
+ 116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+ 65535,65534,65533, // 1440
+
+ // #37
+ 65535,65534,65533,65532,65531,
+ 45, 109, 115, 115, 101, 52,
+ 65535,65534,65533,65532,65531, // 1456
+ 65535,65534,65533,65532,65531,
+ 108, 101, 110, 103, 116, 104,
+ 65535,65534,65533,65532,65531, // 1472
+
+ // #38
+ 65535,65534,65533,65532,65531,
+ 116, 98, 51, 54, 57, 54, 56, 95, 49, 46, 111,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 1496
+ 65535,65534,65533,65532,65531,
+ 116, 98, 51, 54, 57, 54, 56, 95, 49, 46, 111,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 1520
+
+ // #39
+ 65535,65534,65533,65532,65531,
+ 68, 69, 83, 75, 84, 79, 80, 95, 83, 69, 83, 83,
+ 65535,65534,65533,65532,65531,65530,65529, // 1544
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1560
+
+ // #40
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 83, 79, 85, 82, 67, 69, 68, 61, 49,
+ 65535,65534,65533,65532,65531,65530,65529, // 1584
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1600
+
+ // #41
+ 65535,65534,65533,65532,65531,
+ 81, 84, 68, 73, 82, 61, 47, 104, 111, 109, 101, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 1624
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1640
+
+ // #42
+ 65535,
+ 76, 67, 95, 67, 84, 89, 80, 69, 61, 112, 116, 95,
+ 65535,65534,65533, // 1656
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1672
+
+ // #43
+ 65535,
+ 71, 84, 75, 95, 82, 67, 95, 70, 73, 76, 69, 83,
+ 65535,65534,65533, // 1688
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1704
+
+ // #44
+ 65535,
+ 88, 77, 79, 68, 73, 70, 73, 69, 82, 83, 61, 64,
+ 65535,65534,65533, // 1720
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1736
+
+ // #45
+ 65535,
+ 83, 72, 69, 76, 76, 61, 47, 98, 105, 110, 47, 122,
+ 65535,65534,65533, // 1752
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1768
+
+ // #46
+ 65535,65534,65533,65532,65531,
+ 85, 61, 64, 123, 117, 112, 115, 116, 114, 101, 97, 109,
+ 65535,65534,65533,65532,65531,65530,65529, // 1792
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1808
+
+ // #47
+ 65535,
+ 95, 61, 47, 117, 115, 114, 47, 98, 105, 110, 47, 105,
+ 65535,65534,65533, // 1824
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1840
+
+ // #48
+ 65535,
+ 88, 68, 71, 95, 67, 79, 78, 70, 73, 71, 95, 68,
+ 65535,65534,65533, // 1856
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1872
+
+ // #49
+ 65535,65534,65533,65532,65531,
+ 83, 65, 86, 69, 72, 73, 83, 84, 61, 49, 48, 48,
+ 65535,65534,65533,65532,65531,65530,65529, // 1896
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1912
+
+ // #50
+ 65535,
+ 75, 68, 69, 95, 77, 85, 76, 84, 73, 72, 69, 65,
+ 65535,65534,65533, // 1928
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1944
+
+ // #51
+ 65535,65534,65533,65532,65531,
+ 77, 65, 76, 76, 79, 67, 95, 67, 72, 69, 67, 75,
+ 65535,65534,65533,65532,65531,65530,65529, // 1968
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1984
+
+ // #52
+ 65535,65534,65533,65532,65531,
+ 72, 73, 83, 84, 67, 79, 78, 84, 82, 79, 76, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 2008
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2024
+
+ // #53
+ 65535,65534,65533,65532,65531,
+ 88, 68, 71, 95, 68, 65, 84, 65, 95, 68, 73, 82,
+ 65535,65534,65533,65532,65531,65530,65529, // 2048
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2064
+
+ // #54
+ 65535,65534,65533,65532,65531,
+ 88, 68, 77, 95, 77, 65, 78, 65, 71, 69, 68, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 2088
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2104
+
+ // #55
+ 65535,
+ 76, 67, 95, 67, 79, 76, 76, 65, 84, 69, 61, 112,
+ 65535,65534,65533, // 2120
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2136
+
+ // #56
+ 65535,
+ 81, 84, 95, 80, 76, 85, 71, 73, 78, 95, 80, 65,
+ 65535,65534,65533, // 2152
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2168
+
+ // #57
+ 65535,
+ 83, 67, 82, 69, 69, 78, 68, 73, 82, 61, 47, 104,
+ 65535,65534,65533, // 2184
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2200
+
+ // #58
+ 65535,65534,65533,65532,65531,
+ 76, 69, 83, 83, 79, 80, 69, 78, 61, 124, 47, 117,
+ 65535,65534,65533,65532,65531,65530,65529, // 2224
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2240
+
+ // #59
+ 65535,
+ 76, 67, 95, 78, 65, 77, 69, 61, 110, 98, 95, 78,
+ 65535,65534,65533, // 2256
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2272
+
+ // #60
+ 65535,65534,65533,65532,65531,
+ 80, 52, 67, 76, 73, 69, 78, 84, 61, 116, 109, 97,
+ 65535,65534,65533,65532,65531,65530,65529, // 2296
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2312
+
+ // #61
+ 65535,
+ 80, 65, 84, 72, 61, 47, 104, 111, 109, 101, 47, 116,
+ 65535,65534,65533, // 2328
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2344
+
+ // #62
+ 65535,65534,65533,65532,65531,
+ 71, 80, 71, 95, 65, 71, 69, 78, 84, 95, 73, 78,
+ 65535,65534,65533,65532,65531,65530,65529, // 2368
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2384
+
+ // #63
+ 65535,65534,65533,65532,65531,
+ 88, 67, 85, 82, 83, 79, 82, 95, 84, 72, 69, 77,
+ 65535,65534,65533,65532,65531,65530,65529, // 2408
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2424
+
+ // #64
+ 65535,65534,65533,65532,65531,
+ 83, 69, 83, 83, 73, 79, 78, 95, 77, 65, 78, 65,
+ 65535,65534,65533,65532,65531,65530,65529, // 2448
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2464
+
+ // #65
+ 65535,
+ 81, 84, 83, 82, 67, 68, 73, 82, 61, 47, 104, 111,
+ 65535,65534,65533, // 2480
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2496
+
+ // #66
+ 65535,65534,65533,65532,65531,
+ 87, 73, 78, 68, 79, 87, 73, 68, 61, 52, 54, 49,
+ 65535,65534,65533,65532,65531,65530,65529, // 2520
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2536
+
+ // #67
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 77, 69, 83, 83, 65, 71, 69, 83, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 2560
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2576
+
+ // #68
+ 65535,
+ 76, 67, 95, 78, 85, 77, 69, 82, 73, 67, 61, 110,
+ 65535,65534,65533, // 2592
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2608
+
+ // #69
+ 65535,
+ 71, 84, 75, 50, 95, 82, 67, 95, 70, 73, 76, 69,
+ 65535,65534,65533, // 2624
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2640
+
+ // #70
+ 65535,
+ 80, 82, 79, 70, 73, 76, 69, 72, 79, 77, 69, 61,
+ 65535,65534,65533, // 2656
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2672
+
+ // #71
+ 65535,65534,65533,65532,65531,
+ 68, 77, 95, 67, 79, 78, 84, 82, 79, 76, 61, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 2696
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2712
+
+ // #72
+ 65535,
+ 76, 83, 95, 67, 79, 76, 79, 82, 83, 61, 114, 115,
+ 65535,65534,65533, // 2728
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2744
+
+ // #73
+ 65535,65534,65533,65532,65531,
+ 83, 83, 72, 95, 65, 85, 84, 72, 95, 83, 79, 67,
+ 65535,65534,65533,65532,65531,65530,65529, // 2768
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2784
+
+ // #74
+ 65535,65534,65533,65532,65531,
+ 75, 68, 69, 68, 73, 82, 83, 61, 47, 104, 111, 109,
+ 65535,65534,65533,65532,65531,65530,65529, // 2808
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2824
+
+ // #75
+ 65535,65534,65533,65532,65531,
+ 76, 68, 95, 80, 82, 69, 76, 79, 65, 68, 61, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 2848
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2864
+
+ // #76
+ 65535,65534,65533,65532,65531,
+ 88, 67, 85, 82, 83, 79, 82, 95, 80, 65, 84, 72,
+ 65535,65534,65533,65532,65531,65530,65529, // 2888
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2904
+
+ // #77
+ 65535,
+ 115, 114, 99, 100, 105, 114, 61, 47, 104, 111, 109, 101,
+ 65535,65534,65533, // 2920
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2936
+
+ // #78
+ 65535,65534,65533,65532,65531,
+ 72, 79, 77, 69, 61, 47, 104, 111, 109, 101, 47, 116,
+ 65535,65534,65533,65532,65531,65530,65529, // 2960
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2976
+
+ // #79
+ 65535,
+ 81, 84, 52, 68, 79, 67, 68, 73, 82, 61, 47, 117,
+ 65535,65534,65533, // 2992
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3008
+
+ // #80
+ 65535,65534,65533,65532,65531,
+ 80, 87, 68, 61, 47, 104, 111, 109, 101, 47, 116, 109,
+ 65535,65534,65533,65532,65531,65530,65529, // 3032
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3048
+
+ // #81
+ 65535,65534,65533,65532,65531,
+ 75, 68, 69, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+ 65535,65534,65533,65532,65531,65530,65529, // 3072
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3088
+
+ // #82
+ 65535,
+ 73, 78, 83, 73, 68, 69, 95, 83, 80, 69, 67, 73,
+ 65535,65534,65533, // 3104
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3120
+
+ // #83
+ 65535,
+ 83, 83, 72, 95, 65, 71, 69, 78, 84, 95, 80, 73,
+ 65535,65534,65533, // 3136
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3152
+
+ // #84
+ 65535,
+ 80, 75, 71, 95, 67, 79, 78, 70, 73, 71, 95, 80,
+ 65535,65534,65533, // 3168
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3184
+
+ // #85
+ 65535,65534,65533,65532,65531,
+ 68, 66, 85, 83, 95, 83, 69, 83, 83, 73, 79, 78,
+ 65535,65534,65533,65532,65531,65530,65529, // 3208
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3224
+
+ // #86
+ 65535,
+ 76, 68, 95, 76, 73, 66, 82, 65, 82, 89, 95, 80,
+ 65535,65534,65533, // 3240
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3256
+
+ // #87
+ 65535,65534,65533,65532,65531,
+ 80, 52, 85, 83, 69, 82, 61, 116, 106, 109, 97, 99,
+ 65535,65534,65533,65532,65531,65530,65529, // 3280
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3296
+
+ // #88
+ 65535,65534,65533,65532,65531,
+ 81, 84, 69, 83, 84, 95, 67, 79, 76, 79, 82, 69,
+ 65535,65534,65533,65532,65531,65530,65529, // 3320
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3336
+
+ // #89
+ 65535,65534,65533,65532,65531,
+ 88, 68, 71, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+ 65535,65534,65533,65532,65531,65530,65529, // 3360
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3376
+
+ // #90
+ 65535,65534,65533,65532,65531,
+ 76, 69, 83, 83, 75, 69, 89, 61, 47, 101, 116, 99,
+ 65535,65534,65533,65532,65531,65530,65529, // 3400
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3416
+
+ // #91
+ 65535,
+ 76, 79, 71, 78, 65, 77, 69, 61, 116, 109, 97, 99,
+ 65535,65534,65533, // 3432
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3448
+
+ // #92
+ 65535,
+ 71, 95, 70, 73, 76, 69, 78, 65, 77, 69, 95, 69,
+ 65535,65534,65533, // 3464
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3480
+
+ // #93
+ 65535,
+ 75, 68, 69, 95, 70, 85, 76, 76, 95, 83, 69, 83,
+ 65535,65534,65533, // 3496
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3512
+
+ // #94
+ 65535,65534,65533,65532,65531,
+ 72, 79, 83, 84, 78, 65, 77, 69, 61, 108, 111, 116,
+ 65535,65534,65533,65532,65531,65530,65529, // 3536
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3552
+
+ // #95
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 84, 73, 77, 69, 61, 112, 116, 95, 66,
+ 65535,65534,65533,65532,65531,65530,65529, // 3576
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3592
+
+ // #96
+ 65535,
+ 83, 83, 72, 95, 65, 83, 75, 80, 65, 83, 83, 61,
+ 65535,65534,65533, // 3608
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3624
+
+ // #97
+ 65535,65534,65533,65532,65531,
+ 72, 73, 83, 84, 70, 73, 76, 69, 61, 47, 104, 111,
+ 65535,65534,65533,65532,65531,65530,65529, // 3648
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3664
+
+ // #98
+ 65535,
+ 75, 79, 78, 83, 79, 76, 69, 95, 68, 66, 85, 83,
+ 65535,65534,65533, // 3680
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3696
+
+ // #99
+ 65535,
+ 77, 65, 75, 69, 61, 47, 117, 115, 114, 47, 98, 105,
+ 65535,65534,65533, // 3712
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3728
+
+ // #100
+ 65535,
+ 67, 65, 78, 66, 69, 82, 82, 65, 95, 68, 82, 73,
+ 65535,65534,65533, // 3744
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3760
+
+ // #101
+ 65535,
+ 71, 67, 79, 78, 70, 95, 84, 77, 80, 68, 73, 82,
+ 65535,65534,65533, // 3776
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3792
+
+ // #102
+ 65535,65534,65533,65532,65531,
+ 85, 83, 69, 82, 61, 116, 109, 97, 99, 105, 101, 105,
+ 65535,65534,65533,65532,65531,65530,65529, // 3816
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3832
+
+ // #103
+ 65535,
+ 111, 98, 106, 100, 105, 114, 61, 47, 104, 111, 109, 101,
+ 65535,65534,65533, // 3848
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3864
+
+ // #104
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 77, 79, 78, 69, 84, 65, 82, 89, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 3888
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3904
+
+ // #105
+ 65535,65534,65533,65532,65531,
+ 81, 84, 76, 73, 66, 61, 47, 117, 115, 114, 47, 108,
+ 65535,65534,65533,65532,65531,65530,65529, // 3928
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3944
+
+ // #106
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 84, 69, 76, 69, 80, 72, 79, 78, 69,
+ 65535,65534,65533,65532,65531,65530,65529, // 3968
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3984
+
+ // #107
+ 65535,
+ 80, 89, 84, 72, 79, 78, 68, 79, 78, 84, 87, 82,
+ 65535,65534,65533, // 4000
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4016
+
+ // #108
+ 65535,65534,65533,65532,65531,
+ 84, 77, 80, 68, 73, 82, 61, 47, 116, 109, 112, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 4040
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4056
+
+ // #109
+ 65535,65534,65533,65532,65531,
+ 65, 82, 77, 76, 77, 68, 95, 76, 73, 67, 69, 78,
+ 65535,65534,65533,65532,65531,65530,65529, // 4080
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4096
+
+ // #110
+ 65535,
+ 80, 89, 84, 72, 79, 78, 80, 65, 84, 72, 61, 47,
+ 65535,65534,65533, // 4112
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4128
+
+ // #111
+ 65535,65534,65533,65532,65531,
+ 77, 65, 75, 69, 70, 76, 65, 71, 83, 61, 119, 32,
+ 65535,65534,65533,65532,65531,65530,65529, // 4152
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4168
+
+ // #112
+ 65535,
+ 77, 70, 76, 65, 71, 83, 61, 45, 119, 32, 45, 45,
+ 65535,65534,65533, // 4184
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4200
+
+ // #113
+ 65535,
+ 77, 65, 73, 76, 61, 47, 118, 97, 114, 47, 115, 112,
+ 65535,65534,65533, // 4216
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4232
+
+ // #114
+ 65535,65534,65533,65532,65531,
+ 83, 72, 69, 76, 76, 95, 83, 69, 83, 83, 73, 79,
+ 65535,65534,65533,65532,65531,65530,65529, // 4256
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4272
+
+ // #115
+ 65535,
+ 75, 68, 69, 68, 73, 82, 61, 47, 104, 111, 109, 101,
+ 65535,65534,65533, // 4288
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4304
+
+ // #116
+ 65535,65534,65533,65532,65531,
+ 76, 69, 83, 83, 67, 72, 65, 82, 83, 69, 84, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 4328
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4344
+
+ // #117
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 80, 65, 80, 69, 82, 61, 110, 98, 95,
+ 65535,65534,65533,65532,65531,65530,65529, // 4368
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4384
+
+ // #118
+ 65535,
+ 66, 82, 79, 87, 83, 69, 82, 61, 47, 117, 115, 114,
+ 65535,65534,65533, // 4400
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4416
+
+ // #119
+ 65535,
+ 77, 69, 84, 65, 95, 67, 76, 65, 83, 83, 61, 100,
+ 65535,65534,65533, // 4432
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4448
+
+ // #120
+ 65535,65534,65533,65532,65531,
+ 77, 68, 86, 95, 77, 69, 78, 85, 95, 83, 84, 89,
+ 65535,65534,65533,65532,65531,65530,65529, // 4472
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4488
+
+ // #121
+ 65535,65534,65533,65532,65531,
+ 67, 79, 76, 79, 82, 70, 71, 66, 71, 61, 49, 53,
+ 65535,65534,65533,65532,65531,65530,65529, // 4512
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4528
+
+ // #122
+ 65535,65534,65533,65532,65531,
+ 80, 89, 84, 72, 79, 78, 83, 84, 65, 82, 84, 85,
+ 65535,65534,65533,65532,65531,65530,65529, // 4552
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4568
+
+ // #123
+ 65535,
+ 76, 67, 95, 77, 69, 65, 83, 85, 82, 69, 77, 69,
+ 65535,65534,65533, // 4584
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4600
+
+ // #124
+ 65535,65534,65533,65532,65531,
+ 69, 68, 73, 84, 79, 82, 61, 47, 117, 115, 114, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 4624
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4640
+
+ // #125
+ 65535,65534,65533,65532,65531,
+ 69, 78, 95, 84, 66, 61, 109, 111, 99, 58, 117, 105,
+ 65535,65534,65533,65532,65531,65530,65529, // 4664
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4680
+
+ // #126
+ 65535,
+ 72, 73, 83, 84, 83, 73, 90, 69, 61, 49, 48, 48,
+ 65535,65534,65533, // 4696
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4712
+
+ // #127
+ 65535,65534,65533,65532,65531,
+ 71, 83, 95, 76, 73, 66, 61, 47, 104, 111, 109, 101,
+ 65535,65534,65533,65532,65531,65530,65529, // 4736
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4752
+
+ // #128
+ 65535,65534,65533,65532,65531,
+ 78, 76, 83, 80, 65, 84, 72, 61, 47, 117, 115, 114,
+ 65535,65534,65533,65532,65531,65530,65529, // 4776
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4792
+
+ // #129
+ 65535,65534,65533,65532,65531,
+ 87, 73, 78, 68, 79, 87, 80, 65, 84, 72, 61, 55,
+ 65535,65534,65533,65532,65531,65530,65529, // 4816
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4832
+
+ // #130
+ 65535,65534,65533,65532,65531,
+ 75, 79, 78, 83, 79, 76, 69, 95, 68, 66, 85, 83,
+ 65535,65534,65533,65532,65531,65530,65529, // 4856
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4872
+
+ // #131
+ 65535,
+ 76, 67, 95, 73, 68, 69, 78, 84, 73, 70, 73, 67,
+ 65535,65534,65533, // 4888
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4904
+
+ // #132
+ 65535,
+ 73, 78, 80, 85, 84, 82, 67, 61, 47, 101, 116, 99,
+ 65535,65534,65533, // 4920
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4936
+
+ // #133
+ 65535,65534,65533,65532,65531,
+ 81, 84, 73, 78, 67, 61, 47, 117, 115, 114, 47, 108,
+ 65535,65534,65533,65532,65531,65530,65529, // 4960
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4976
+
+ // #134
+ 65535,
+ 76, 67, 95, 65, 68, 68, 82, 69, 83, 83, 61, 110,
+ 65535,65534,65533, // 4992
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5008
+
+ // #135
+ 65535,65534,65533,65532,65531,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 95,
+ 65535,65534,65533,65532,65531,65530,65529, // 5032
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5048
+
+ // #136
+ 65535,
+ 76, 65, 78, 71, 61, 112, 116, 95, 66, 82, 46, 85,
+ 65535,65534,65533, // 5064
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5080
+
+ // #137
+ 65535,
+ 80, 52, 80, 79, 82, 84, 61, 112, 52, 46, 116, 114,
+ 65535,65534,65533, // 5096
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5112
+
+ // #138
+ 65535,65534,65533,65532,65531,
+ 80, 73, 76, 79, 84, 80, 79, 82, 84, 61, 117, 115,
+ 65535,65534,65533,65532,65531,65530,65529, // 5136
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5152
+
+ // #139
+ 65535,
+ 75, 68, 69, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+ 65535,65534,65533, // 5168
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5184
+
+ // #140
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5200
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5216
+
+
+};
+static struct StringCollection
+{
+ int len;
+ int offset1, offset2;
+ ushort align1, align2;
+} stringCollection[] = {
+ {18, 1, 29, 3666, 106}, // #0
+ {18, 53, 77, 106, 1978}, // #1
+ {20, 97, 125, 2850, 3210}, // #2
+ {20, 157, 185, 3210, 3138}, // #3
+ {51, 225, 225, 3362, 3362}, // #4
+ {51, 293, 353, 1434, 3362}, // #5
+ {51, 417, 417, 3362, 3362}, // #6
+ {19, 473, 501, 2850, 10}, // #7
+ {19, 533, 565, 10, 442}, // #8
+ {51, 609, 677, 3362, 1434}, // #9
+ {5, 741, 753, 2666, 2066}, // #10
+ {4, 765, 781, 2362, 3930}, // #11
+ {3, 793, 805, 3330, 2138}, // #12
+ {5, 817, 825, 738, 2066}, // #13
+ {4, 833, 845, 434, 3930}, // #14
+ {5, 857, 865, 3842, 2066}, // #15
+ {4, 873, 885, 3538, 3930}, // #16
+ {3, 897, 909, 3330, 2138}, // #17
+ {5, 925, 937, 1898, 2066}, // #18
+ {4, 949, 965, 1594, 3930}, // #19
+ {3, 977, 989, 3330, 2138}, // #20
+ {5, 1005, 1021, 2218, 762}, // #21
+ {5, 1033, 1041, 3346, 2066}, // #22
+ {4, 1053, 1069, 3082, 3930}, // #23
+ {12, 1081, 1097, 2082, 962}, // #24
+ {5, 1113, 1121, 3362, 2066}, // #25
+ {4, 1129, 1141, 322, 3930}, // #26
+ {3, 1153, 1165, 2050, 2138}, // #27
+ {5, 1177, 1185, 1538, 2066}, // #28
+ {4, 1193, 1205, 1234, 3930}, // #29
+ {5, 1221, 1233, 554, 2066}, // #30
+ {4, 1245, 1261, 250, 3930}, // #31
+ {5, 1277, 1289, 2858, 2066}, // #32
+ {4, 1301, 1317, 2554, 3930}, // #33
+ {12, 1329, 1345, 2194, 1762}, // #34
+ {12, 1365, 1385, 2170, 1762}, // #35
+ {12, 1405, 1425, 2314, 1762}, // #36
+ {6, 1445, 1461, 3626, 666}, // #37
+ {11, 1477, 1501, 3882, 842}, // #38
+ {12, 1525, 1545, 1722, 2930}, // #39
+ {12, 1565, 1585, 1914, 2930}, // #40
+ {12, 1605, 1625, 442, 2930}, // #41
+ {12, 1641, 1657, 626, 2930}, // #42
+ {12, 1673, 1689, 946, 2930}, // #43
+ {12, 1705, 1721, 738, 2930}, // #44
+ {12, 1737, 1753, 2066, 2930}, // #45
+ {12, 1773, 1793, 1210, 2930}, // #46
+ {12, 1809, 1825, 1426, 2930}, // #47
+ {12, 1841, 1857, 1650, 2930}, // #48
+ {12, 1877, 1897, 1530, 2930}, // #49
+ {12, 1913, 1929, 1858, 2930}, // #50
+ {12, 1949, 1969, 2106, 2930}, // #51
+ {12, 1989, 2009, 2202, 2930}, // #52
+ {12, 2029, 2049, 2490, 2930}, // #53
+ {12, 2069, 2089, 2794, 2930}, // #54
+ {12, 2105, 2121, 2322, 2930}, // #55
+ {12, 2137, 2153, 2834, 2930}, // #56
+ {12, 2169, 2185, 1266, 2930}, // #57
+ {12, 2205, 2225, 2538, 2930}, // #58
+ {12, 2241, 2257, 2706, 2930}, // #59
+ {12, 2277, 2297, 3402, 2930}, // #60
+ {12, 2313, 2329, 146, 2930}, // #61
+ {12, 2349, 2369, 3690, 2930}, // #62
+ {12, 2389, 2409, 810, 2930}, // #63
+ {12, 2429, 2449, 1178, 2930}, // #64
+ {12, 2465, 2481, 1442, 2930}, // #65
+ {12, 2501, 2521, 3546, 2930}, // #66
+ {12, 2541, 2561, 1930, 2930}, // #67
+ {12, 2577, 2593, 1634, 2930}, // #68
+ {12, 2609, 2625, 1986, 2930}, // #69
+ {12, 2641, 2657, 1970, 2930}, // #70
+ {12, 2677, 2697, 1834, 2930}, // #71
+ {12, 2713, 2729, 1474, 2930}, // #72
+ {12, 2749, 2769, 2250, 2930}, // #73
+ {12, 2789, 2809, 2458, 2930}, // #74
+ {12, 2829, 2849, 2618, 2930}, // #75
+ {12, 2869, 2889, 3066, 2930}, // #76
+ {12, 2905, 2921, 3330, 2930}, // #77
+ {12, 2941, 2961, 1706, 2930}, // #78
+ {12, 2977, 2993, 2802, 2930}, // #79
+ {12, 3013, 3033, 3770, 2930}, // #80
+ {12, 3053, 3073, 3594, 2930}, // #81
+ {12, 3089, 3105, 2, 2930}, // #82
+ {12, 3121, 3137, 2962, 2930}, // #83
+ {12, 3153, 3169, 290, 2930}, // #84
+ {12, 3189, 3209, 794, 2930}, // #85
+ {12, 3225, 3241, 1058, 2930}, // #86
+ {12, 3261, 3281, 2394, 2930}, // #87
+ {12, 3301, 3321, 138, 2930}, // #88
+ {12, 3341, 3361, 1482, 2930}, // #89
+ {12, 3381, 3401, 570, 2930}, // #90
+ {12, 3417, 3433, 674, 2930}, // #91
+ {12, 3449, 3465, 1282, 2930}, // #92
+ {12, 3481, 3497, 1746, 2930}, // #93
+ {12, 3517, 3537, 1866, 2930}, // #94
+ {12, 3557, 3577, 1978, 2930}, // #95
+ {12, 3593, 3609, 3954, 2930}, // #96
+ {12, 3629, 3649, 2570, 2930}, // #97
+ {12, 3665, 3681, 2754, 2930}, // #98
+ {12, 3697, 3713, 3666, 2930}, // #99
+ {12, 3729, 3745, 34, 2930}, // #100
+ {12, 3761, 3777, 2914, 2930}, // #101
+ {12, 3797, 3817, 1194, 2930}, // #102
+ {12, 3833, 3849, 3202, 2930}, // #103
+ {12, 3869, 3889, 3018, 2930}, // #104
+ {12, 3909, 3929, 202, 2930}, // #105
+ {12, 3949, 3969, 3546, 2930}, // #106
+ {12, 3985, 4001, 3682, 2930}, // #107
+ {12, 4021, 4041, 3466, 2930}, // #108
+ {12, 4061, 4081, 4074, 2930}, // #109
+ {12, 4097, 4113, 306, 2930}, // #110
+ {12, 4133, 4153, 634, 2930}, // #111
+ {12, 4169, 4185, 802, 2930}, // #112
+ {12, 4201, 4217, 962, 2930}, // #113
+ {12, 4237, 4257, 1114, 2930}, // #114
+ {12, 4273, 4289, 1250, 2930}, // #115
+ {12, 4309, 4329, 3898, 2930}, // #116
+ {12, 4349, 4369, 1386, 2930}, // #117
+ {12, 4385, 4401, 1586, 2930}, // #118
+ {12, 4417, 4433, 1730, 2930}, // #119
+ {12, 4453, 4473, 1914, 2930}, // #120
+ {12, 4493, 4513, 1498, 2930}, // #121
+ {12, 4533, 4553, 2138, 2930}, // #122
+ {12, 4569, 4585, 2290, 2930}, // #123
+ {12, 4605, 4625, 2426, 2930}, // #124
+ {12, 4645, 4665, 2666, 2930}, // #125
+ {12, 4681, 4697, 2050, 2930}, // #126
+ {12, 4717, 4737, 2874, 2930}, // #127
+ {12, 4757, 4777, 3018, 2930}, // #128
+ {12, 4797, 4817, 1834, 2930}, // #129
+ {12, 4837, 4857, 3178, 2930}, // #130
+ {12, 4873, 4889, 3314, 2930}, // #131
+ {12, 4905, 4921, 2546, 2930}, // #132
+ {12, 4941, 4961, 3546, 2930}, // #133
+ {12, 4977, 4993, 3682, 2930}, // #134
+ {12, 5013, 5033, 3802, 2930}, // #135
+ {12, 5049, 5065, 3922, 2930}, // #136
+ {12, 5081, 5097, 4018, 2930}, // #137
+ {12, 5117, 5137, 42, 2930}, // #138
+ {12, 5153, 5169, 130, 2930}, // #139
+ {12, 5185, 5201, 242, 2930}, // #140
+};
+static const int stringCollectionCount = 141;
+static const int stringCollectionMaxLen = 51;
+// average comparison length: 12.0922
+// cache-line crosses: 6 (2.1%)
+// alignment histogram:
+// 0xXXX2 = 188 (66.7%) strings, 57 (30.3%) of which same-aligned
+// 0xXXXa = 94 (33.3%) strings, 10 (10.6%) of which same-aligned
+// total = 282 (100%) strings, 67 (23.8%) of which same-aligned
diff --git a/tools/designer/src/components/propertyeditor/defs.h b/tests/benchmarks/corelib/tools/qstring/data.h
index 28e39fc9ec..c7a7467309 100644
--- a/tools/designer/src/components/propertyeditor/defs.h
+++ b/tests/benchmarks/corelib/tools/qstring/data.h
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the Qt Designer of the Qt Toolkit.
+** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,22 +39,15 @@
**
****************************************************************************/
-#ifndef DEFS_H
-#define DEFS_H
+#include <qglobal.h>
-#include <QtGui/QSizePolicy>
-#include <QtCore/QString>
+struct StringCollection
+{
+ int len;
+ int offset1, offset2;
+ ushort align1, align2;
+};
-QT_BEGIN_NAMESPACE
-
-namespace qdesigner_internal {
-
-int size_type_to_int(QSizePolicy::Policy t);
-QString size_type_to_string(QSizePolicy::Policy t);
-QSizePolicy::Policy int_to_size_type(int i);
-
-} // namespace qdesigner_internal
-
-QT_END_NAMESPACE
-
-#endif // DEFS_H
+extern const ushort stringCollectionData[];
+extern StringCollection stringCollection[];
+extern const int stringCollectionCount;
diff --git a/tests/benchmarks/corelib/tools/qstring/generatelist.pl b/tests/benchmarks/corelib/tools/qstring/generatelist.pl
new file mode 100644
index 0000000000..d027adb3ac
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qstring/generatelist.pl
@@ -0,0 +1,198 @@
+#!/usr/bin/perl
+## 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 QtCore module 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$
+#
+# Parses a file (passed as argument) that contains a dump of pairs of
+# strings and generates C source code including said data.
+#
+# The format of the file is:
+# LEN = <len> <keyword> <align1> <align2>\n<data1><data2>\n
+# where:
+# LEN the literal string "LEN"
+# <len> the length of the data, in 16-bit words
+# <keyword> the literal string "SAME" or "DIFF"
+# <align1> the alignment or pointer value of the first data
+# <align2> the alignment or pointer value of the second data
+# <data1> the first data
+# <data2> the second data
+# \n newline
+#
+# The code to write this data would be:
+# fprintf(out, "LEN = %d %s %d %d\n", len,
+# (p1 == p2) ? "SAME" : "DIFF",
+# uint(quintptr(p1)) & 0xfff, uint(quintptr(p2)) & 0xfff);
+# fwrite(p1, 2, len, out);
+# fwrite(p2, 2, len, out);
+# fwrite("\n", 1, 1, out);
+
+sub printUshortArray($$$) {
+ $str = $_[0];
+ $align = $_[1] & 0x1f;
+ $offset = $_[2];
+
+ die if ($align & 1) != 0;
+ $align /= 2;
+
+ $len = (length $str) / 2;
+ $headpadding = $align & 0x7;
+ $tailpadding = 8 - (($len + $headpadding) & 0x7);
+ $multiplecachelines = ($align + $len) > 0x20;
+
+ if ($multiplecachelines) {
+ # if this string crosses into a new cacheline, then
+ # replicate the result
+ $headpadding |= ($offset & ~0x1f);
+ $headpadding += 0x20
+ if ($headpadding < $offset);
+ $headpadding -= $offset;
+ ++$cachelinecrosses;
+ }
+ for $i (1..$headpadding) {
+ print 65536-$i,",";
+ }
+ print "\n " if ($headpadding > 0);
+ print " " if ($headpadding == 0);
+
+ for ($i = 0; $i < $len * 2; $i += 2) {
+ print " ", ord(substr($str, $i, 1)) +
+ ord(substr($str, $i + 1, 1)) * 256,
+ ",";
+ }
+ print "\n " if ($tailpadding > 0);
+
+ for $i (1..$tailpadding) {
+ print 65536-$i, ",";
+ }
+ print " // ", $offset + $headpadding + $len + $tailpadding;
+ print "+" if $multiplecachelines;
+
+ return ($offset + $headpadding, $offset + $headpadding + $len + $tailpadding);
+}
+
+print "#include \"data.h\"\n\n";
+
+print "// This is a generated file - DO NOT EDIT\n";
+print "const ushort stringCollectionData[] __attribute__((aligned(64))) = {\n";
+$count = 0;
+$offset = 0;
+$totalsize = 0;
+$maxlen = 0;
+$cachelinecrosses = 0;
+
+open IN, "<" . $ARGV[0];
+while (1) {
+ $line = readline(*IN);
+ last unless defined($line);
+ $line =~ /LEN = (\d+) (\w+) (\d+) (\d+)/;
+ $len = $1;
+ $data[$count]->{len} = $len;
+ $sameptr = $2;
+ $data[$count]->{align1} = $3 - 0;
+ $data[$count]->{align2} = $4 - 0;
+
+ # statistics
+ $alignhistogram{$3 & 0xf}++;
+ $alignhistogram{$4 & 0xf}++;
+ $samealignments{$3 & 0xf}++ if ($3 & 0xf) == ($4 & 0xf);
+
+ read IN, $a, $len * 2;
+ read IN, $b, $len * 2;
+
+ <IN>; # Eat the newline
+
+ if ($len == 0) {
+ $data[$count]->{offset1} = $offset;
+ $data[$count]->{offset2} = $data[$count]->{offset1};
+ ++$data[$count]->{offset2} if ($sameptr eq "DIFF");
+ } else {
+ print " // #$count\n";
+ print " ";
+ ($data[$count]->{offset1}, $offset) =
+ printUshortArray($a, $data[$count]->{align1}, $offset);
+ print "\n ";
+ die if ($offset & 0x7) != 0;
+
+ if ($sameptr eq "DIFF") {
+ ($data[$count]->{offset2}, $offset) =
+ printUshortArray($b, $data[$count]->{align2}, $offset);
+ print "\n\n";
+ } else {
+ $data[$count]->{offset2} = $data[$count]->{offset1};
+ print "\n\n";
+ }
+ }
+ ++$count;
+
+ $totalsize += $len;
+ $maxlen = $len if $len > $maxlen;
+}
+print "\n};\n";
+close IN;
+
+print "struct StringCollection stringCollection[] = {\n";
+
+for $i (0..$count-1) {
+ print " {",
+ $data[$i]->{len}, ", ",
+ $data[$i]->{offset1}, ", ",
+ $data[$i]->{offset2}, ", ",
+ $data[$i]->{align1}, ", ",
+ $data[$i]->{align2},
+ "}, // #$i\n";
+ next if $data[$i]->{len} == 0;
+ die if (($data[$i]->{offset1} & 0x7) != ($data[$i]->{align1} & 0xf)/2);
+ die if (($data[$i]->{offset2} & 0x7) != ($data[$i]->{align2} & 0xf)/2);
+}
+print "};\n";
+
+print "const int stringCollectionCount = $count;\n";
+print "const int stringCollectionMaxLen = $maxlen;\n";
+printf "// average comparison length: %.4f\n", ($totalsize * 1.0 / $count);
+printf "// cache-line crosses: %d (%.1f%%)\n",
+ $cachelinecrosses, ($cachelinecrosses * 100.0 / $count / 2);
+
+print "// alignment histogram:\n";
+for $key (sort { $a <=> $b } keys(%alignhistogram)) {
+ $value = $alignhistogram{$key};
+ $samealigned = $samealignments{$key};
+ printf "// 0xXXX%x = %d (%.1f%%) strings, %d (%.1f%%) of which same-aligned\n",
+ $key, $value, $value * 100.0 / ($count*2),
+ $samealigned, $samealigned * 100.0 / $value;
+ $samealignedtotal += $samealigned;
+}
+printf "// total = %d (100%) strings, %d (%.1f%%) of which same-aligned\n",
+ $count * 2, $samealignedtotal, $samealignedtotal * 100 / $count / 2;
diff --git a/tests/benchmarks/corelib/tools/qstring/main.cpp b/tests/benchmarks/corelib/tools/qstring/main.cpp
index 12826ebd72..961605298c 100644
--- a/tests/benchmarks/corelib/tools/qstring/main.cpp
+++ b/tests/benchmarks/corelib/tools/qstring/main.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
#include <QStringList>
#include <QFile>
-#include <qtest.h>
+#include <QtTest/QtTest>
#ifdef Q_OS_SYMBIAN
// In Symbian OS test data is located in applications private dir
@@ -48,12 +48,27 @@
#define SRCDIR ""
#endif
+#ifdef Q_OS_UNIX
+#include <sys/mman.h>
+#include <unistd.h>
+#endif
+
+#include <private/qsimd_p.h>
+
+#include "data.h"
+
class tst_QString: public QObject
{
Q_OBJECT
+public:
+ tst_QString();
private slots:
void equals() const;
void equals_data() const;
+ void equals2_data() const;
+ void equals2() const;
+ void ucstrncmp_data() const;
+ void ucstrncmp() const;
void fromUtf8() const;
};
@@ -67,6 +82,10 @@ void tst_QString::equals() const
}
}
+tst_QString::tst_QString()
+{
+}
+
void tst_QString::equals_data() const
{
static const struct {
@@ -126,6 +145,1247 @@ void tst_QString::equals_data() const
<< QString::fromRawData(ptr + 1, 58) << QString::fromRawData(ptr + 3, 58);
}
+static bool equals2_memcmp_call(const ushort *p1, const ushort *p2, int len)
+{
+ return memcmp(p1, p2, len * 2) == 0;
+}
+
+static bool equals2_bytewise(const ushort *p1, const ushort *p2, int len)
+{
+ if (p1 == p2 || !len)
+ return true;
+ uchar *b1 = (uchar *)p1;
+ uchar *b2 = (uchar *)p2;
+ len *= 2;
+ while (len--)
+ if (*b1++ != *b2++)
+ return false;
+ return true;
+}
+
+static bool equals2_shortwise(const ushort *p1, const ushort *p2, int len)
+{
+ if (p1 == p2 || !len)
+ return true;
+// for (register int counter; counter < len; ++counter)
+// if (p1[counter] != p2[counter])
+// return false;
+ while (len--) {
+ if (p1[len] != p2[len])
+ return false;
+ }
+ return true;
+}
+
+static bool equals2_intwise(const ushort *p1, const ushort *p2, int length)
+{
+ if (p1 == p2 || !length)
+ return true;
+ register union {
+ const quint16 *w;
+ const quint32 *d;
+ quintptr value;
+ } sa, sb;
+ sa.w = p1;
+ sb.w = p2;
+
+ // check alignment
+ if ((sa.value & 2) == (sb.value & 2)) {
+ // both addresses have the same alignment
+ if (sa.value & 2) {
+ // both addresses are not aligned to 4-bytes boundaries
+ // compare the first character
+ if (*sa.w != *sb.w)
+ return false;
+ --length;
+ ++sa.w;
+ ++sb.w;
+
+ // now both addresses are 4-bytes aligned
+ }
+
+ // both addresses are 4-bytes aligned
+ // do a fast 32-bit comparison
+ register const quint32 *e = sa.d + (length >> 1);
+ for ( ; sa.d != e; ++sa.d, ++sb.d) {
+ if (*sa.d != *sb.d)
+ return false;
+ }
+
+ // do we have a tail?
+ return (length & 1) ? *sa.w == *sb.w : true;
+ } else {
+ // one of the addresses isn't 4-byte aligned but the other is
+ register const quint16 *e = sa.w + length;
+ for ( ; sa.w != e; ++sa.w, ++sb.w) {
+ if (*sa.w != *sb.w)
+ return false;
+ }
+ }
+ return true;
+}
+
+static inline bool equals2_short_tail(const ushort *p1, const ushort *p2, int len)
+{
+ if (len) {
+ if (*p1 != *p2)
+ return false;
+ if (--len) {
+ if (p1[1] != p2[1])
+ return false;
+ if (--len) {
+ if (p1[2] != p2[2])
+ return false;
+ if (--len) {
+ if (p1[3] != p2[3])
+ return false;
+ if (--len) {
+ if (p1[4] != p2[4])
+ return false;
+ if (--len) {
+ if (p1[5] != p2[5])
+ return false;
+ if (--len) {
+ if (p1[6] != p2[6])
+ return false;
+ return p1[7] == p2[7];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return true;
+}
+
+//#pragma GCC optimize("no-unroll-loops")
+#ifdef __SSE2__
+static bool equals2_sse2_aligned(const ushort *p1, const ushort *p2, int len)
+{
+ if (len >= 8) {
+ qptrdiff counter = 0;
+ while (len > 8) {
+ __m128i q1 = _mm_load_si128((__m128i *)(p1 + counter));
+ __m128i q2 = _mm_load_si128((__m128i *)(p2 + counter));
+ __m128i cmp = _mm_cmpeq_epi16(q1, q2);
+ if (ushort(_mm_movemask_epi8(cmp)) != ushort(0xffff))
+ return false;
+
+ len -= 8;
+ counter += 8;
+ }
+ p1 += counter;
+ p2 += counter;
+ }
+
+ return equals2_short_tail(p1, p2, len);
+}
+
+static bool __attribute__((optimize("no-unroll-loops"))) equals2_sse2(const ushort *p1, const ushort *p2, int len)
+{
+ if (p1 == p2 || !len)
+ return true;
+
+ if (len >= 8) {
+ qptrdiff counter = 0;
+ while (len >= 8) {
+ __m128i q1 = _mm_loadu_si128((__m128i *)(p1 + counter));
+ __m128i q2 = _mm_loadu_si128((__m128i *)(p2 + counter));
+ __m128i cmp = _mm_cmpeq_epi16(q1, q2);
+ if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+ return false;
+
+ len -= 8;
+ counter += 8;
+ }
+ p1 += counter;
+ p2 += counter;
+ }
+
+ return equals2_short_tail(p1, p2, len);
+}
+
+//static bool equals2_sse2(const ushort *p1, const ushort *p2, int len)
+//{
+// register int val1 = quintptr(p1) & 0xf;
+// register int val2 = quintptr(p2) & 0xf;
+// if (false && val1 + val2 == 0)
+// return equals2_sse2_aligned(p1, p2, len);
+// else
+// return equals2_sse2_unaligned(p1, p2, len);
+//}
+
+static bool equals2_sse2_aligning(const ushort *p1, const ushort *p2, int len)
+{
+ if (len < 8)
+ return equals2_short_tail(p1, p2, len);
+
+ qptrdiff counter = 0;
+
+ // which one is easier to align, p1 or p2 ?
+ register int val1 = quintptr(p1) & 0xf;
+ register int val2 = quintptr(p2) & 0xf;
+ if (val1 && val2) {
+#if 0
+ // we'll align the one which requires the least number of steps
+ if (val1 > val2) {
+ qSwap(p1, p2);
+ val1 = val2;
+ }
+
+ // val1 contains the number of bytes past the 16-aligned mark
+ // we must read 16-val1 bytes to align
+ val1 = 16 - val1;
+ if (val1 & 0x2) {
+ if (*p1 != *p2)
+ return false;
+ --len;
+ ++counter;
+ }
+ while (val1 & 12) {
+ if (*(uint*)p1 != *(uint*)p2)
+ return false;
+ --len;
+ counter += 2;
+ val1 -= 4;
+ }
+#else
+ // we'll align the one closest to the 16-byte mark
+ if (val1 > val2) {
+ qSwap(p1, p2);
+ val1 = val2;
+ }
+
+ // we're reading val1 bytes too many
+ __m128i q2 = _mm_loadu_si128((__m128i *)(p2 - val1/2));
+ __m128i cmp = _mm_cmpeq_epi16(*(__m128i *)(p1 - val1/2), q2);
+ if (short(_mm_movemask_epi8(cmp)) >> val1 != short(-1))
+ return false;
+
+ counter = 8 - val1/2;
+ len -= 8 - val1/2;
+#endif
+ } else if (!val2) {
+ // p2 is already aligned
+ qSwap(p1, p2);
+ }
+
+ // p1 is aligned
+
+ while (len >= 8) {
+ __m128i q1 = _mm_load_si128((__m128i *)(p1 + counter));
+ __m128i q2 = _mm_loadu_si128((__m128i *)(p2 + counter));
+ __m128i cmp = _mm_cmpeq_epi16(q1, q2);
+ if (ushort(_mm_movemask_epi8(cmp)) != ushort(0xffff))
+ return false;
+
+ len -= 8;
+ counter += 8;
+ }
+
+ // tail
+ return equals2_short_tail(p1 + counter, p2 + counter, len);
+}
+
+#ifdef __SSE3__
+static bool __attribute__((optimize("no-unroll-loops"))) equals2_sse3(const ushort *p1, const ushort *p2, int len)
+{
+ if (p1 == p2 || !len)
+ return true;
+
+ if (len >= 8) {
+ qptrdiff counter = 0;
+ while (len >= 8) {
+ __m128i q1 = _mm_lddqu_si128((__m128i *)(p1 + counter));
+ __m128i q2 = _mm_lddqu_si128((__m128i *)(p2 + counter));
+ __m128i cmp = _mm_cmpeq_epi16(q1, q2);
+ if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+ return false;
+
+ len -= 8;
+ counter += 8;
+ }
+ p1 += counter;
+ p2 += counter;
+ }
+
+ return equals2_short_tail(p1, p2, len);
+}
+
+#ifdef __SSSE3__
+template<int N> static __attribute__((optimize("unroll-loops"))) inline bool equals2_ssse3_alignr(__m128i *m1, __m128i *m2, int len)
+{
+ __m128i lower = _mm_load_si128(m1);
+ while (len >= 8) {
+ __m128i upper = _mm_load_si128(m1 + 1);
+ __m128i correct;
+ correct = _mm_alignr_epi8(upper, lower, N);
+
+ __m128i q2 = _mm_lddqu_si128(m2);
+ __m128i cmp = _mm_cmpeq_epi16(correct, q2);
+ if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+ return false;
+
+ len -= 8;
+ ++m2;
+ ++m1;
+ lower = upper;
+ }
+
+ // tail
+ return len == 0 || equals2_short_tail((const ushort *)m1 + N / 2, (const ushort*)m2, len);
+}
+
+static inline __attribute__((optimize("unroll-loops"))) bool equals2_ssse3_aligned(__m128i *m1, __m128i *m2, int len)
+{
+ while (len >= 8) {
+ __m128i q2 = _mm_lddqu_si128(m2);
+ __m128i cmp = _mm_cmpeq_epi16(*m1, q2);
+ if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+ return false;
+
+ len -= 8;
+ ++m1;
+ ++m2;
+ }
+ return len == 0 || equals2_short_tail((const ushort *)m1, (const ushort *)m2, len);
+}
+
+static bool equals2_ssse3(const ushort *p1, const ushort *p2, int len)
+{
+ // p1 & 0xf can be:
+ // 0, 2, 4, 6, 8, 10, 12, 14
+ // If it's 0, we're aligned
+ // If it's not, then we're interested in the 16 - (p1 & 0xf) bytes only
+
+ if (len >= 8) {
+ // find the last aligned position below the p1 memory
+ __m128i *m1 = (__m128i *)(quintptr(p1) & ~0xf);
+ __m128i *m2 = (__m128i *)p2;
+ qptrdiff diff = quintptr(p1) - quintptr(m1);
+
+ // diff contains the number of extra bytes
+ if (diff == 10)
+ return equals2_ssse3_alignr<10>(m1, m2, len);
+ else if (diff == 2)
+ return equals2_ssse3_alignr<2>(m1, m2, len);
+ if (diff < 8) {
+ if (diff < 4) {
+ return equals2_ssse3_aligned(m1, m2, len);
+ } else {
+ if (diff == 4)
+ return equals2_ssse3_alignr<4>(m1, m2, len);
+ else // diff == 6
+ return equals2_ssse3_alignr<6>(m1, m2, len);
+ }
+ } else {
+ if (diff < 12) {
+ return equals2_ssse3_alignr<8>(m1, m2, len);
+ } else {
+ if (diff == 12)
+ return equals2_ssse3_alignr<12>(m1, m2, len);
+ else // diff == 14
+ return equals2_ssse3_alignr<14>(m1, m2, len);
+ }
+ }
+ }
+
+ // tail
+ return equals2_short_tail(p1, p2, len);
+}
+
+template<int N> static inline bool equals2_ssse3_aligning_alignr(__m128i *m1, __m128i *m2, int len)
+{
+ __m128i lower = _mm_load_si128(m1);
+ while (len >= 8) {
+ __m128i upper = _mm_load_si128(m1 + 1);
+ __m128i correct;
+ correct = _mm_alignr_epi8(upper, lower, N);
+
+ __m128i cmp = _mm_cmpeq_epi16(correct, *m2);
+ if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+ return false;
+
+ len -= 8;
+ ++m2;
+ ++m1;
+ lower = upper;
+ }
+
+ // tail
+ return len == 0 || equals2_short_tail((const ushort *)m1 + N / 2, (const ushort*)m2, len);
+}
+
+static bool equals2_ssse3_aligning(const ushort *p1, const ushort *p2, int len)
+{
+ if (len < 8)
+ return equals2_short_tail(p1, p2, len);
+ qptrdiff counter = 0;
+
+ // which one is easier to align, p1 or p2 ?
+ {
+ register int val1 = quintptr(p1) & 0xf;
+ register int val2 = quintptr(p2) & 0xf;
+ if (val1 && val2) {
+ // we'll align the one closest to the 16-byte mark
+ if (val1 < val2) {
+ qSwap(p1, p2);
+ val2 = val1;
+ }
+
+ // we're reading val1 bytes too many
+ __m128i q1 = _mm_lddqu_si128((__m128i *)(p1 - val2/2));
+ __m128i cmp = _mm_cmpeq_epi16(q1, *(__m128i *)(p2 - val2/2));
+ if (short(_mm_movemask_epi8(cmp)) >> val1 != short(-1))
+ return false;
+
+ counter = 8 - val2/2;
+ len -= 8 - val2/2;
+ } else if (!val1) {
+ // p1 is already aligned
+ qSwap(p1, p2);
+ }
+ }
+
+ // p2 is aligned now
+ // we want to use palignr in the mis-alignment of p1
+ __m128i *m1 = (__m128i *)(quintptr(p1 + counter) & ~0xf);
+ __m128i *m2 = (__m128i *)(p2 + counter);
+ register int val1 = quintptr(p1 + counter) - quintptr(m1);
+
+ // val1 contains the number of extra bytes
+ if (val1 == 8)
+ return equals2_ssse3_aligning_alignr<8>(m1, m2, len);
+ if (val1 == 0)
+ return equals2_sse2_aligned(p1 + counter, p2 + counter, len);
+ if (val1 < 8) {
+ if (val1 < 4) {
+ return equals2_ssse3_aligning_alignr<2>(m1, m2, len);
+ } else {
+ if (val1 == 4)
+ return equals2_ssse3_aligning_alignr<4>(m1, m2, len);
+ else // diff == 6
+ return equals2_ssse3_aligning_alignr<6>(m1, m2, len);
+ }
+ } else {
+ if (val1 < 12) {
+ return equals2_ssse3_aligning_alignr<10>(m1, m2, len);
+ } else {
+ if (val1 == 12)
+ return equals2_ssse3_aligning_alignr<12>(m1, m2, len);
+ else // diff == 14
+ return equals2_ssse3_aligning_alignr<14>(m1, m2, len);
+ }
+ }
+}
+
+#ifdef __SSE4_1__
+static bool equals2_sse4(const ushort *p1, const ushort *p2, int len)
+{
+ // We use the pcmpestrm instruction searching for differences (negative polarity)
+ // it will reset CF if it's all equal
+ // it will reset OF if the first char is equal
+ // it will set ZF & SF if the length is less than 8 (which means we've done the last operation)
+ // the three possible conditions are:
+ // difference found: CF = 1
+ // all equal, not finished: CF = ZF = SF = 0
+ // all equal, finished: CF = 0, ZF = SF = 1
+ // We use the JA instruction that jumps if ZF = 0 and CF = 0
+ if (p1 == p2 || !len)
+ return true;
+
+ // This function may read some bytes past the end of p1 or p2
+ // It is safe to do that, as long as those extra bytes (beyond p1+len and p2+len)
+ // are on the same page as the last valid byte.
+ // If len is a multiple of 8, we'll never load invalid bytes.
+ if (len & 7) {
+ // The last load would load (len & ~7) valid bytes and (8 - (len & ~7)) invalid bytes.
+ // So we can't do the last load if any of those bytes is in a different
+ // page. That is, if:
+ // pX + len is on a different page from pX + (len & ~7) + 8
+ //
+ // that is, if second-to-last load ended up less than 16 bytes from the page end:
+ // pX + (len & ~7) is the last ushort read in the second-to-last load
+ if (len < 8)
+ return equals2_short_tail(p1, p2, len);
+ if ((quintptr(p1 + (len & ~7)) & 0xfff) > 0xff0 ||
+ (quintptr(p2 + (len & ~7)) & 0xfff) > 0xff0) {
+
+ // yes, so we mustn't do the final 128-bit load
+ bool result;
+ asm (
+ "sub %[p1], %[p2]\n\t"
+ "sub $16, %[p1]\n\t"
+ "add $8, %[len]\n\t"
+
+ // main loop:
+ "0:\n\t"
+ "add $16, %[p1]\n\t"
+ "sub $8, %[len]\n\t"
+ "jz 1f\n\t"
+ "lddqu (%[p1]), %%xmm0\n\t"
+ "mov %[len], %%edx\n\t"
+ "pcmpestri %[mode], (%[p2],%[p1]), %%xmm0\n\t"
+
+ "jna 1f\n\t"
+ "add $16, %[p1]\n\t"
+ "sub $8, %[len]\n\t"
+ "jz 1f\n\t"
+ "lddqu (%[p1]), %%xmm0\n\t"
+ "mov %[len], %%edx\n\t"
+ "pcmpestri %[mode], (%[p2],%[p1]), %%xmm0\n\t"
+
+ "ja 0b\n\t"
+ "1:\n\t"
+ "setnc %[result]\n\t"
+ : [result] "=a" (result),
+ [p1] "+r" (p1),
+ [p2] "+r" (p2)
+ : [len] "0" (len & ~7),
+ [mode] "i" (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY)
+ : "%edx", "%ecx", "%xmm0"
+ );
+ return result && equals2_short_tail(p1, (const ushort *)(quintptr(p1) + quintptr(p2)), len & 7);
+ }
+ }
+
+// const qptrdiff disp = p2 - p1;
+// p1 -= 8;
+// len += 8;
+// while (true) {
+// enum { Mode = _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY };
+
+// p1 += 8;
+// len -= 8;
+// if (!len)
+// return true;
+
+// __m128i q1 = _mm_lddqu_si128((__m128i *)(p1 + disp));
+// __m128i *m2 = (__m128i *)p1;
+
+// bool cmp_a = _mm_cmpestra(q1, len, *m2, len, Mode);
+// if (cmp_a)
+// continue;
+// return !_mm_cmpestrc(q1, len, *m2, len, Mode);
+// }
+// return true;
+ bool result;
+ asm (
+ "sub %[p1], %[p2]\n\t"
+ "sub $16, %[p1]\n\t"
+ "add $8, %[len]\n\t"
+
+ "0:\n\t"
+ "add $16, %[p1]\n\t"
+ "sub $8, %[len]\n\t"
+ "jz 1f\n\t"
+ "lddqu (%[p2],%[p1]), %%xmm0\n\t"
+ "mov %[len], %%edx\n\t"
+ "pcmpestri %[mode], (%[p1]), %%xmm0\n\t"
+
+ "jna 1f\n\t"
+ "add $16, %[p1]\n\t"
+ "sub $8, %[len]\n\t"
+ "jz 1f\n\t"
+ "lddqu (%[p2],%[p1]), %%xmm0\n\t"
+ "mov %[len], %%edx\n\t"
+ "pcmpestri %[mode], (%[p1]), %%xmm0\n\t"
+
+ "ja 0b\n\t"
+
+ "1:\n\t"
+ "setnc %[result]\n\t"
+ : [result] "=a" (result)
+ : [len] "0" (len),
+ [p1] "r" (p1),
+ [p2] "r" (p2),
+ [mode] "i" (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY)
+ : "%edx", "%ecx", "%xmm0"
+ );
+ return result;
+}
+
+#endif
+#endif
+#endif
+#endif
+
+typedef bool (* FuncPtr)(const ushort *, const ushort *, int);
+static const FuncPtr func[] = {
+ equals2_memcmp_call, // 0
+ equals2_bytewise, // 1
+ equals2_shortwise, // 1
+ equals2_intwise, // 3
+#ifdef __SSE2__
+ equals2_sse2, // 4
+ equals2_sse2_aligning, // 5
+#ifdef __SSE3__
+ equals2_sse3, // 6
+#ifdef __SSSE3__
+ equals2_ssse3, // 7
+ equals2_ssse3, // 8
+#ifdef __SSE4_1__
+ equals2_sse4, // 9
+#endif
+#endif
+#endif
+#endif
+ 0
+};
+static const int functionCount = sizeof(func)/sizeof(func[0]) - 1;
+
+void tst_QString::equals2_data() const
+{
+ QTest::addColumn<int>("algorithm");
+ QTest::newRow("selftest") << -1;
+ QTest::newRow("memcmp_call") << 0;
+ QTest::newRow("bytewise") << 1;
+ QTest::newRow("shortwise") << 2;
+ QTest::newRow("intwise") << 3;
+#ifdef __SSE2__
+ QTest::newRow("sse2") << 4;
+ QTest::newRow("sse2_aligning") << 5;
+#ifdef __SSE3__
+ QTest::newRow("sse3") << 6;
+#ifdef __SSSE3__
+ QTest::newRow("ssse3") << 7;
+ QTest::newRow("ssse3_aligning") << 8;
+#ifdef __SSE4_1__
+ QTest::newRow("sse4.2") << 9;
+#endif
+#endif
+#endif
+#endif
+}
+
+static void __attribute__((noinline)) equals2_selftest()
+{
+#ifdef Q_OS_UNIX
+ const long pagesize = sysconf(_SC_PAGESIZE);
+ void *page1, *page3;
+ ushort *page2;
+ page1 = mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ page2 = (ushort *)mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE, -1, 0);
+ page3 = mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+ Q_ASSERT(quintptr(page2) == quintptr(page1) + pagesize || quintptr(page2) == quintptr(page1) - pagesize);
+ Q_ASSERT(quintptr(page3) == quintptr(page2) + pagesize || quintptr(page3) == quintptr(page2) - pagesize);
+ munmap(page1, pagesize);
+ munmap(page3, pagesize);
+
+ // populate our page
+ for (uint i = 0; i < pagesize / sizeof(long long); ++i)
+ ((long long *)page2)[i] = Q_INT64_C(0x0041004100410041);
+
+ // the following should crash:
+ //page2[-1] = 0xdead;
+ //page2[pagesize / sizeof(ushort) + 1] = 0xbeef;
+
+ static const ushort needle[] = {
+ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
+ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
+ 0x41
+ };
+
+ for (int algo = 0; algo < functionCount; ++algo) {
+ // boundary condition test:
+ for (int i = 0; i < 8; ++i) {
+ (func[algo])(page2 + i, needle, sizeof needle / 2);
+ (func[algo])(page2 - i - 1 - sizeof(needle)/2 + pagesize/2, needle, sizeof needle/2);
+ }
+ }
+
+ munmap(page2, pagesize);
+#endif
+
+ for (int algo = 0; algo < functionCount; ++algo) {
+ for (int i = 0; i < stringCollectionCount; ++i) {
+ const ushort *p1 = stringCollectionData + stringCollection[i].offset1;
+ const ushort *p2 = stringCollectionData + stringCollection[i].offset2;
+ bool expected = memcmp(p1, p2, stringCollection[i].len * 2) == 0;
+
+ bool result = (func[algo])(p1, p2, stringCollection[i].len);
+ if (expected != result)
+ qWarning().nospace()
+ << "algo=" << algo
+ << " i=" << i
+ << " failed (" << result << "!=" << expected
+ << "); strings were "
+ << QByteArray((char*)p1, stringCollection[i].len).toHex()
+ << " and "
+ << QByteArray((char*)p2, stringCollection[i].len).toHex();
+ }
+ }
+}
+
+void tst_QString::equals2() const
+{
+ QFETCH(int, algorithm);
+ if (algorithm == -1) {
+ equals2_selftest();
+ return;
+ }
+
+ QBENCHMARK {
+ for (int i = 0; i < stringCollectionCount; ++i) {
+ const ushort *p1 = stringCollectionData + stringCollection[i].offset1;
+ const ushort *p2 = stringCollectionData + stringCollection[i].offset2;
+ bool result = (func[algorithm])(p1, p2, stringCollection[i].len);
+ Q_UNUSED(result);
+ }
+ }
+}
+
+static int ucstrncmp_shortwise(const ushort *a, const ushort *b, int l)
+{
+ while (l-- && *a == *b)
+ a++,b++;
+ if (l==-1)
+ return 0;
+ return *a - *b;
+}
+
+static int ucstrncmp_intwise(const ushort *a, const ushort *b, int len)
+{
+ // do both strings have the same alignment?
+ if ((quintptr(a) & 2) == (quintptr(b) & 2)) {
+ // are we aligned to 4 bytes?
+ if (quintptr(a) & 2) {
+ if (*a != *b)
+ return *a - *b;
+ ++a;
+ ++b;
+ --len;
+ }
+
+ const uint *p1 = (const uint *)a;
+ const uint *p2 = (const uint *)b;
+ quintptr counter = 0;
+ for ( ; len > 1 ; len -= 2, ++counter) {
+ if (p1[counter] != p2[counter]) {
+ // which ushort isn't equal?
+ int diff = a[2*counter] - b[2*counter];
+ return diff ? diff : a[2*counter + 1] - b[2*counter + 1];
+ }
+ }
+
+ return len ? a[2*counter] - b[2*counter] : 0;
+ } else {
+ while (len-- && *a == *b)
+ a++,b++;
+ if (len==-1)
+ return 0;
+ return *a - *b;
+ }
+}
+
+#ifdef __SSE2__
+static inline int ucstrncmp_short_tail(const ushort *p1, const ushort *p2, int len)
+{
+ if (len) {
+ if (*p1 != *p2)
+ return *p1 - *p2;
+ if (--len) {
+ if (p1[1] != p2[1])
+ return p1[1] - p2[1];
+ if (--len) {
+ if (p1[2] != p2[2])
+ return p1[2] - p2[2];
+ if (--len) {
+ if (p1[3] != p2[3])
+ return p1[3] - p2[3];
+ if (--len) {
+ if (p1[4] != p2[4])
+ return p1[4] - p2[4];
+ if (--len) {
+ if (p1[5] != p2[5])
+ return p1[5] - p2[5];
+ if (--len) {
+ if (p1[6] != p2[6])
+ return p1[6] - p2[6];
+ return p1[7] - p2[7];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+static inline int bsf_nonzero(register long val)
+{
+ int result;
+# ifdef Q_CC_GNU
+ // returns the first non-zero bit on a non-zero reg
+ asm ("bsf %1, %0" : "=r" (result) : "r" (val));
+ return result;
+# elif defined(Q_CC_MSVC)
+ _BitScanForward(&result, val);
+ return result;
+# endif
+}
+
+static __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_sse2(const ushort *a, const ushort *b, int len)
+{
+ qptrdiff counter = 0;
+ while (len >= 8) {
+ __m128i m1 = _mm_loadu_si128((__m128i *)(a + counter));
+ __m128i m2 = _mm_loadu_si128((__m128i *)(b + counter));
+ __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+ ushort mask = ~uint(_mm_movemask_epi8(cmp));
+ if (mask) {
+ // which ushort isn't equal?
+ counter += bsf_nonzero(mask)/2;
+ return a[counter] - b[counter];
+ }
+
+ counter += 8;
+ len -= 8;
+ }
+ return ucstrncmp_short_tail(a + counter, b + counter, len);
+}
+
+static __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_sse2_aligning(const ushort *a, const ushort *b, int len)
+{
+ if (len >= 8) {
+ __m128i m1 = _mm_loadu_si128((__m128i *)a);
+ __m128i m2 = _mm_loadu_si128((__m128i *)b);
+ __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+ ushort mask = ~uint(_mm_movemask_epi8(cmp));
+ if (mask) {
+ // which ushort isn't equal?
+ int counter = bsf_nonzero(mask)/2;
+ return a[counter] - b[counter];
+ }
+
+
+ // now align to do 16-byte loads
+ int diff = 8 - (quintptr(a) & 0xf)/2;
+ len -= diff;
+ a += diff;
+ b += diff;
+ }
+
+ qptrdiff counter = 0;
+ while (len >= 8) {
+ __m128i m1 = _mm_load_si128((__m128i *)(a + counter));
+ __m128i m2 = _mm_loadu_si128((__m128i *)(b + counter));
+ __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+ ushort mask = ~uint(_mm_movemask_epi8(cmp));
+ if (mask) {
+ // which ushort isn't equal?
+ counter += bsf_nonzero(mask)/2;
+ return a[counter] - b[counter];
+ }
+
+ counter += 8;
+ len -= 8;
+ }
+ return ucstrncmp_short_tail(a + counter, b + counter, len);
+}
+
+static inline __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_sse2_aligned(const ushort *a, const ushort *b, int len)
+{
+ quintptr counter = 0;
+ while (len >= 8) {
+ __m128i m1 = _mm_load_si128((__m128i *)(a + counter));
+ __m128i m2 = _mm_load_si128((__m128i *)(b + counter));
+ __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+ ushort mask = ~uint(_mm_movemask_epi8(cmp));
+ if (mask) {
+ // which ushort isn't equal?
+ counter += bsf_nonzero(mask)/2;
+ return a[counter] - b[counter];
+ }
+
+ counter += 8;
+ len -= 8;
+ }
+ return ucstrncmp_short_tail(a + counter, b + counter, len);
+}
+
+static inline __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_ssse3_alignr_aligned(const ushort *a, const ushort *b, int len)
+{
+ quintptr counter = 0;
+ while (len >= 8) {
+ __m128i m1 = _mm_load_si128((__m128i *)(a + counter));
+ __m128i m2 = _mm_lddqu_si128((__m128i *)(b + counter));
+ __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+ ushort mask = ~uint(_mm_movemask_epi8(cmp));
+ if (mask) {
+ // which ushort isn't equal?
+ counter += bsf_nonzero(mask)/2;
+ return a[counter] - b[counter];
+ }
+
+ counter += 8;
+ len -= 8;
+ }
+ return ucstrncmp_short_tail(a + counter, b + counter, len);
+}
+
+
+typedef __m128i (* MMLoadFunction)(const __m128i *);
+template<int N, MMLoadFunction LoadFunction>
+static inline __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_ssse3_alignr(const ushort *a, const ushort *b, int len)
+{
+ qptrdiff counter = 0;
+ __m128i lower, upper;
+ upper = _mm_load_si128((__m128i *)a);
+
+ do {
+ lower = upper;
+ upper = _mm_load_si128((__m128i *)(a + counter) + 1);
+ __m128i merged = _mm_alignr_epi8(upper, lower, N);
+
+ __m128i m2 = LoadFunction((__m128i *)(b + counter));
+ __m128i cmp = _mm_cmpeq_epi16(merged, m2);
+ ushort mask = ~uint(_mm_movemask_epi8(cmp));
+ if (mask) {
+ // which ushort isn't equal?
+ counter += bsf_nonzero(mask)/2;
+ return a[counter + N/2] - b[counter];
+ }
+
+ counter += 8;
+ len -= 8;
+ } while (len >= 8);
+
+ return ucstrncmp_short_tail(a + counter + N/2, b + counter, len);
+}
+
+static int ucstrncmp_ssse3(const ushort *a, const ushort *b, int len)
+{
+ if (len >= 8) {
+ int val = quintptr(a) & 0xf;
+ a -= val/2;
+
+ if (val == 10)
+ return ucstrncmp_ssse3_alignr<10, _mm_lddqu_si128>(a, b, len);
+ else if (val == 2)
+ return ucstrncmp_ssse3_alignr<2, _mm_lddqu_si128>(a, b, len);
+ if (val < 8) {
+ if (val < 4)
+ return ucstrncmp_ssse3_alignr_aligned(a, b, len);
+ else if (val == 4)
+ return ucstrncmp_ssse3_alignr<4, _mm_lddqu_si128>(a, b, len);
+ else
+ return ucstrncmp_ssse3_alignr<6, _mm_lddqu_si128>(a, b, len);
+ } else {
+ if (val < 12)
+ return ucstrncmp_ssse3_alignr<8, _mm_lddqu_si128>(a, b, len);
+ else if (val == 12)
+ return ucstrncmp_ssse3_alignr<12, _mm_lddqu_si128>(a, b, len);
+ else
+ return ucstrncmp_ssse3_alignr<14, _mm_lddqu_si128>(a, b, len);
+ }
+ }
+ return ucstrncmp_short_tail(a, b, len);
+}
+
+static int ucstrncmp_ssse3_aligning(const ushort *a, const ushort *b, int len)
+{
+ if (len >= 8) {
+ __m128i m1 = _mm_loadu_si128((__m128i *)a);
+ __m128i m2 = _mm_loadu_si128((__m128i *)b);
+ __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+ ushort mask = ~uint(_mm_movemask_epi8(cmp));
+ if (mask) {
+ // which ushort isn't equal?
+ int counter = bsf_nonzero(mask)/2;
+ return a[counter] - b[counter];
+ }
+
+
+ // now 'b' align to do 16-byte loads
+ int diff = 8 - (quintptr(b) & 0xf)/2;
+ len -= diff;
+ a += diff;
+ b += diff;
+ }
+
+ if (len < 8)
+ return ucstrncmp_short_tail(a, b, len);
+
+ // 'b' is aligned
+ int val = quintptr(a) & 0xf;
+ a -= val/2;
+
+ if (val == 8)
+ return ucstrncmp_ssse3_alignr<8, _mm_load_si128>(a, b, len);
+ else if (val == 0)
+ return ucstrncmp_sse2_aligned(a, b, len);
+ if (val < 8) {
+ if (val < 4)
+ return ucstrncmp_ssse3_alignr<2, _mm_load_si128>(a, b, len);
+ else if (val == 4)
+ return ucstrncmp_ssse3_alignr<4, _mm_load_si128>(a, b, len);
+ else
+ return ucstrncmp_ssse3_alignr<6, _mm_load_si128>(a, b, len);
+ } else {
+ if (val < 12)
+ return ucstrncmp_ssse3_alignr<10, _mm_load_si128>(a, b, len);
+ else if (val == 12)
+ return ucstrncmp_ssse3_alignr<12, _mm_load_si128>(a, b, len);
+ else
+ return ucstrncmp_ssse3_alignr<14, _mm_load_si128>(a, b, len);
+ }
+}
+
+static inline __attribute__((optimize("no-unroll-loops")))
+int ucstrncmp_ssse3_aligning2_aligned(const ushort *a, const ushort *b, int len, int garbage)
+{
+ // len >= 8
+ __m128i m1 = _mm_load_si128((const __m128i *)a);
+ __m128i m2 = _mm_load_si128((const __m128i *)b);
+ __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+ int mask = short(_mm_movemask_epi8(cmp)); // force sign extension
+ mask >>= garbage;
+ if (~mask) {
+ // which ushort isn't equal?
+ uint counter = (garbage + bsf_nonzero(~mask));
+ return a[counter/2] - b[counter/2];
+ }
+
+ // the first 16-garbage bytes (8-garbage/2 ushorts) were equal
+ len -= 8 - garbage/2;
+ return ucstrncmp_sse2_aligned(a + 8, b + 8, len);
+}
+
+template<int N> static inline __attribute__((optimize("no-unroll-loops"),always_inline))
+int ucstrncmp_ssse3_aligning2_alignr(const ushort *a, const ushort *b, int len, int garbage)
+{
+ // len >= 8
+ __m128i lower, upper, merged;
+ lower = _mm_load_si128((const __m128i*)a);
+ upper = _mm_load_si128((const __m128i*)(a + 8));
+ merged = _mm_alignr_epi8(upper, lower, N);
+
+ __m128i m2 = _mm_load_si128((const __m128i*)b);
+ __m128i cmp = _mm_cmpeq_epi16(merged, m2);
+ int mask = short(_mm_movemask_epi8(cmp)); // force sign extension
+ mask >>= garbage;
+ if (~mask) {
+ // which ushort isn't equal?
+ uint counter = (garbage + bsf_nonzero(~mask));
+ return a[counter/2 + N/2] - b[counter/2];
+ }
+
+ // the first 16-garbage bytes (8-garbage/2 ushorts) were equal
+ quintptr counter = 8;
+ len -= 8 - garbage/2;
+ while (len >= 8) {
+ lower = upper;
+ upper = _mm_load_si128((__m128i *)(a + counter) + 1);
+ merged = _mm_alignr_epi8(upper, lower, N);
+
+ m2 = _mm_load_si128((__m128i *)(b + counter));
+ cmp = _mm_cmpeq_epi16(merged, m2);
+ ushort mask = ~uint(_mm_movemask_epi8(cmp));
+ if (mask) {
+ // which ushort isn't equal?
+ counter += bsf_nonzero(mask)/2;
+ return a[counter + N/2] - b[counter];
+ }
+
+ counter += 8;
+ len -= 8;
+ }
+
+ return ucstrncmp_short_tail(a + counter + N/2, b + counter, len);
+}
+
+static inline int conditional_invert(int result, bool invert)
+{
+ if (invert)
+ return -result;
+ return result;
+}
+
+static int ucstrncmp_ssse3_aligning2(const ushort *a, const ushort *b, int len)
+{
+ // Different strategy from above: instead of doing two unaligned loads
+ // when trying to align, we'll only do aligned loads and round down the
+ // addresses of a and b. This means the first load will contain garbage
+ // in the beginning of the string, which we'll shift out of the way
+ // (after _mm_movemask_epi8)
+
+ if (len < 8)
+ return ucstrncmp_intwise(a, b, len);
+
+ // both a and b are misaligned
+ // we'll call the alignr function with the alignment *difference* between the two
+ int offset = (quintptr(a) & 0xf) - (quintptr(b) & 0xf);
+ if (offset >= 0) {
+ // from this point on, b has the shortest alignment
+ // and align(a) = align(b) + offset
+ // round down the alignment so align(b) == align(a) == 0
+ int garbage = (quintptr(b) & 0xf);
+ a = (const ushort*)(quintptr(a) & ~0xf);
+ b = (const ushort*)(quintptr(b) & ~0xf);
+
+ // now the first load of b will load 'garbage' extra bytes
+ // and the first load of a will load 'garbage + offset' extra bytes
+ if (offset == 8)
+ return ucstrncmp_ssse3_aligning2_alignr<8>(a, b, len, garbage);
+ if (offset == 0)
+ return ucstrncmp_ssse3_aligning2_aligned(a, b, len, garbage);
+ if (offset < 8) {
+ if (offset < 4)
+ return ucstrncmp_ssse3_aligning2_alignr<2>(a, b, len, garbage);
+ else if (offset == 4)
+ return ucstrncmp_ssse3_aligning2_alignr<4>(a, b, len, garbage);
+ else
+ return ucstrncmp_ssse3_aligning2_alignr<6>(a, b, len, garbage);
+ } else {
+ if (offset < 12)
+ return ucstrncmp_ssse3_aligning2_alignr<10>(a, b, len, garbage);
+ else if (offset == 12)
+ return ucstrncmp_ssse3_aligning2_alignr<12>(a, b, len, garbage);
+ else
+ return ucstrncmp_ssse3_aligning2_alignr<14>(a, b, len, garbage);
+ }
+ } else {
+ // same as above but inverted
+ int garbage = (quintptr(a) & 0xf);
+ a = (const ushort*)(quintptr(a) & ~0xf);
+ b = (const ushort*)(quintptr(b) & ~0xf);
+
+ offset = -offset;
+ if (offset == 8)
+ return -ucstrncmp_ssse3_aligning2_alignr<8>(b, a, len, garbage);
+ if (offset < 8) {
+ if (offset < 4)
+ return -ucstrncmp_ssse3_aligning2_alignr<2>(b, a, len, garbage);
+ else if (offset == 4)
+ return -ucstrncmp_ssse3_aligning2_alignr<4>(b, a, len, garbage);
+ else
+ return -ucstrncmp_ssse3_aligning2_alignr<6>(b, a, len, garbage);
+ } else {
+ if (offset < 12)
+ return -ucstrncmp_ssse3_aligning2_alignr<10>(b, a, len, garbage);
+ else if (offset == 12)
+ return -ucstrncmp_ssse3_aligning2_alignr<12>(b, a, len, garbage);
+ else
+ return -ucstrncmp_ssse3_aligning2_alignr<14>(b, a, len, garbage);
+ }
+ }
+}
+
+#endif
+
+typedef int (* UcstrncmpFunction)(const ushort *, const ushort *, int);
+Q_DECLARE_METATYPE(UcstrncmpFunction)
+
+void tst_QString::ucstrncmp_data() const
+{
+ QTest::addColumn<UcstrncmpFunction>("function");
+ QTest::newRow("selftest") << UcstrncmpFunction(0);
+ QTest::newRow("shortwise") << &ucstrncmp_shortwise;
+ QTest::newRow("intwise") << &ucstrncmp_intwise;
+#ifdef __SSE2__
+ QTest::newRow("sse2") << &ucstrncmp_sse2;
+ QTest::newRow("sse2_aligning") << &ucstrncmp_sse2_aligning;
+#ifdef __SSSE3__
+ QTest::newRow("ssse3") << &ucstrncmp_ssse3;
+ QTest::newRow("ssse3_aligning") << &ucstrncmp_ssse3_aligning;
+ QTest::newRow("ssse3_aligning2") << &ucstrncmp_ssse3_aligning2;
+#endif
+#endif
+}
+
+void tst_QString::ucstrncmp() const
+{
+ QFETCH(UcstrncmpFunction, function);
+ if (!function) {
+ static const UcstrncmpFunction func[] = {
+ &ucstrncmp_shortwise,
+ &ucstrncmp_intwise,
+#ifdef __SSE2__
+ &ucstrncmp_sse2,
+ &ucstrncmp_sse2_aligning,
+#ifdef __SSSE3__
+ &ucstrncmp_ssse3,
+ &ucstrncmp_ssse3_aligning,
+ &ucstrncmp_ssse3_aligning2
+#endif
+#endif
+ };
+ static const int functionCount = sizeof func / sizeof func[0];
+
+#ifdef Q_OS_UNIX
+ const long pagesize = sysconf(_SC_PAGESIZE);
+ void *page1, *page3;
+ ushort *page2;
+ page1 = mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ page2 = (ushort *)mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE, -1, 0);
+ page3 = mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+ Q_ASSERT(quintptr(page2) == quintptr(page1) + pagesize || quintptr(page2) == quintptr(page1) - pagesize);
+ Q_ASSERT(quintptr(page3) == quintptr(page2) + pagesize || quintptr(page3) == quintptr(page2) - pagesize);
+ munmap(page1, pagesize);
+ munmap(page3, pagesize);
+
+ // populate our page
+ for (uint i = 0; i < pagesize / sizeof(long long); ++i)
+ ((long long *)page2)[i] = Q_INT64_C(0x0041004100410041);
+
+ // the following should crash:
+ //page2[-1] = 0xdead;
+ //page2[pagesize / sizeof(ushort) + 1] = 0xbeef;
+
+ static const ushort needle[] = {
+ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
+ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
+ 0x41
+ };
+
+ for (int algo = 0; algo < functionCount; ++algo) {
+ // boundary condition test:
+ for (int i = 0; i < 8; ++i) {
+ (func[algo])(page2 + i, needle, sizeof needle / 2);
+ (func[algo])(page2 - i - 1 - sizeof(needle)/2 + pagesize/2, needle, sizeof needle/2);
+ }
+ }
+
+ munmap(page2, pagesize);
+#endif
+
+ for (int algo = 0; algo < functionCount; ++algo) {
+ for (int i = 0; i < stringCollectionCount; ++i) {
+ const ushort *p1 = stringCollectionData + stringCollection[i].offset1;
+ const ushort *p2 = stringCollectionData + stringCollection[i].offset2;
+ int expected = ucstrncmp_shortwise(p1, p2, stringCollection[i].len);
+ expected = qBound(-1, expected, 1);
+
+ int result = (func[algo])(p1, p2, stringCollection[i].len);
+ result = qBound(-1, result, 1);
+ if (expected != result)
+ qWarning().nospace()
+ << "algo=" << algo
+ << " i=" << i
+ << " failed (" << result << "!=" << expected
+ << "); strings were "
+ << QByteArray((char*)p1, stringCollection[i].len).toHex()
+ << " and "
+ << QByteArray((char*)p2, stringCollection[i].len).toHex();
+ }
+ }
+ return;
+ }
+
+ QBENCHMARK {
+ for (int i = 0; i < stringCollectionCount; ++i) {
+ const ushort *p1 = stringCollectionData + stringCollection[i].offset1;
+ const ushort *p2 = stringCollectionData + stringCollection[i].offset2;
+ (function)(p1, p2, stringCollection[i].len);
+ }
+ }
+}
+
void tst_QString::fromUtf8() const
{
QFile file(SRCDIR "utf-8.txt");
diff --git a/tests/benchmarks/corelib/tools/qstring/qstring.pro b/tests/benchmarks/corelib/tools/qstring/qstring.pro
index fa4310e7e3..e8720e1919 100644
--- a/tests/benchmarks/corelib/tools/qstring/qstring.pro
+++ b/tests/benchmarks/corelib/tools/qstring/qstring.pro
@@ -1,7 +1,7 @@
load(qttest_p4)
TARGET = tst_bench_qstring
QT -= gui
-SOURCES += main.cpp
+SOURCES += main.cpp data.cpp
wince*:{
DEFINES += SRCDIR=\\\"\\\"
@@ -14,3 +14,6 @@ wince*:{
DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
+sse4:QMAKE_CXXFLAGS += -msse4
+else:ssse3:QMAKE_FLAGS += -mssse3
+else:sse2:QMAKE_CXXFLAGS += -msse2
diff --git a/tools/activeqt/testcon/changeproperties.cpp b/tools/activeqt/testcon/changeproperties.cpp
index e2ad601065..00a2cab279 100644
--- a/tools/activeqt/testcon/changeproperties.cpp
+++ b/tools/activeqt/testcon/changeproperties.cpp
@@ -111,10 +111,10 @@ void ChangeProperties::on_buttonSet_clicked()
value = qVariantFromValue(col);
} else {
QMessageBox::warning(this, tr("Can't parse input"),
- QString(tr("Failed to create a color from %1\n"
+ tr("Failed to create a color from %1\n"
"The string has to be a valid color name (e.g. 'red')\n"
"or a RGB triple of format '#rrggbb'."
- ).arg(editValue->text())));
+ ).arg(editValue->text()));
}
}
break;
@@ -125,10 +125,10 @@ void ChangeProperties::on_buttonSet_clicked()
value = qVariantFromValue(fnt);
} else {
QMessageBox::warning(this, tr("Can't parse input"),
- (tr("Failed to create a font from %1\n"
+ tr("Failed to create a font from %1\n"
"The string has to have a format family,<point size> or\n"
"family,pointsize,stylehint,weight,italic,underline,strikeout,fixedpitch,rawmode."
- ).arg(editValue->text())));
+ ).arg(editValue->text()));
}
}
break;
diff --git a/tools/assistant/tools/assistant/bookmarkitem.cpp b/tools/assistant/tools/assistant/bookmarkitem.cpp
index 2e81e38286..2c92113127 100644
--- a/tools/assistant/tools/assistant/bookmarkitem.cpp
+++ b/tools/assistant/tools/assistant/bookmarkitem.cpp
@@ -41,6 +41,7 @@
#include "bookmarkitem.h"
+#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
QT_BEGIN_NAMESPACE
@@ -147,7 +148,9 @@ BookmarkItem::insertChildren(bool isFolder, int position, int count)
for (int row = 0; row < count; ++row) {
m_children.insert(position, new BookmarkItem(DataVector()
- << QObject::tr(isFolder ? "New Folder" : "Untitled")
+ << (isFolder
+ ? QCoreApplication::translate("BookmarkItem", "New Folder")
+ : QCoreApplication::translate("BookmarkItem", "Untitled"))
<< (isFolder ? "Folder" : "about:blank") << false, this));
}
diff --git a/tools/assistant/tools/assistant/cmdlineparser.cpp b/tools/assistant/tools/assistant/cmdlineparser.cpp
index b6c0beba0f..1cf2915da4 100644
--- a/tools/assistant/tools/assistant/cmdlineparser.cpp
+++ b/tools/assistant/tools/assistant/cmdlineparser.cpp
@@ -48,7 +48,7 @@
QT_BEGIN_NAMESPACE
-const QString CmdLineParser::m_helpMessage = QLatin1String(
+static const char helpMessage[] = QT_TRANSLATE_NOOP("CmdLineParser",
"Usage: assistant [Options]\n\n"
"-collectionFile file Uses the specified collection\n"
" file instead of the default one\n"
@@ -138,10 +138,10 @@ CmdLineParser::Result CmdLineParser::parse()
}
if (!m_error.isEmpty()) {
- showMessage(m_error + QLatin1String("\n\n\n") + m_helpMessage, true);
+ showMessage(m_error + QLatin1String("\n\n\n") + tr(helpMessage), true);
return Error;
} else if (showHelp) {
- showMessage(m_helpMessage, false);
+ showMessage(tr(helpMessage), false);
return Help;
}
return Ok;
diff --git a/tools/assistant/tools/assistant/cmdlineparser.h b/tools/assistant/tools/assistant/cmdlineparser.h
index 5573081ec6..db66494c15 100644
--- a/tools/assistant/tools/assistant/cmdlineparser.h
+++ b/tools/assistant/tools/assistant/cmdlineparser.h
@@ -93,7 +93,6 @@ private:
QStringList m_arguments;
int m_pos;
- static const QString m_helpMessage;
QString m_collectionFile;
QString m_cloneFile;
QString m_helpFile;
diff --git a/tools/assistant/tools/assistant/main.cpp b/tools/assistant/tools/assistant/main.cpp
index 02507ae172..bb86bfe411 100644
--- a/tools/assistant/tools/assistant/main.cpp
+++ b/tools/assistant/tools/assistant/main.cpp
@@ -316,6 +316,7 @@ int main(int argc, char *argv[])
TRACE_OBJ
QApplication a(argc, argv, useGui(argc, argv));
a.addLibraryPath(a.applicationDirPath() + QLatin1String("/plugins"));
+ setupTranslations();
// Parse arguments.
CmdLineParser cmd(a.arguments());
@@ -419,8 +420,6 @@ int main(int argc, char *argv[])
cachedCollection.setCurrentFilter(cmd.currentFilter());
}
- setupTranslations();
-
/*
* We need to be careful here: The main window has to be deleted before
* the help engine wrapper, which has to be deleted before the
diff --git a/tools/assistant/tools/assistant/mainwindow.cpp b/tools/assistant/tools/assistant/mainwindow.cpp
index 913e34221f..65a58c090a 100644
--- a/tools/assistant/tools/assistant/mainwindow.cpp
+++ b/tools/assistant/tools/assistant/mainwindow.cpp
@@ -831,7 +831,7 @@ void MainWindow::showAboutDialog()
aboutDia.setWindowTitle(aboutDia.documentTitle());
} else {
QByteArray resources;
- aboutDia.setText(QString::fromLatin1("<center>"
+ aboutDia.setText(tr("<center>"
"<h3>%1</h3>"
"<p>Version %2</p></center>"
"<p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p>")
diff --git a/tools/assistant/tools/qcollectiongenerator/main.cpp b/tools/assistant/tools/qcollectiongenerator/main.cpp
index b3f6bd9544..46e301c23f 100644
--- a/tools/assistant/tools/qcollectiongenerator/main.cpp
+++ b/tools/assistant/tools/qcollectiongenerator/main.cpp
@@ -49,15 +49,21 @@
#include <QtCore/QDir>
#include <QtCore/QMap>
#include <QtCore/QFileInfo>
-#include <QtCore/QCoreApplication>
#include <QtCore/QDateTime>
#include <QtCore/QBuffer>
+#include <QtCore/QTranslator>
+#include <QtCore/QLocale>
+#include <QtCore/QLibraryInfo>
#include <QtHelp/QHelpEngineCore>
#include <QtXml/QXmlStreamReader>
QT_USE_NAMESPACE
+class QCG {
+ Q_DECLARE_TR_FUNCTIONS(QCollectionGenerator)
+};
+
class CollectionConfigReader : public QXmlStreamReader
{
public:
@@ -123,9 +129,7 @@ private:
void CollectionConfigReader::raiseErrorWithLine()
{
- raiseError(QCoreApplication::translate("QCollectionGenerator",
- "Unknown token at line %1.")
- .arg(lineNumber()));
+ raiseError(QCG::tr("Unknown token at line %1.").arg(lineNumber()));
}
void CollectionConfigReader::readData(const QByteArray &contents)
@@ -144,9 +148,8 @@ void CollectionConfigReader::readData(const QByteArray &contents)
&& attributes().value(QLatin1String("version")) == QLatin1String("1.0"))
readConfig();
else
- raiseError(QCoreApplication::translate("QCollectionGenerator",
- "Unknown token at line %1. "
- "Expected \"QtHelpCollectionProject\"!")
+ raiseError(QCG::tr("Unknown token at line %1. "
+ "Expected \"QtHelpCollectionProject\".")
.arg(lineNumber()));
}
}
@@ -169,7 +172,7 @@ void CollectionConfigReader::readConfig()
}
}
if (!ok && !hasError())
- raiseError(QLatin1String("Missing end tags."));
+ raiseError(QCG::tr("Missing end tags."));
}
void CollectionConfigReader::readAssistantSettings()
@@ -311,7 +314,7 @@ void CollectionConfigReader::readFiles()
}
}
if (input.isEmpty() || output.isEmpty()) {
- raiseError(QLatin1String("Missing input or output file for help file generation!"));
+ raiseError(QCG::tr("Missing input or output file for help file generation."));
return;
}
m_filesToGenerate.insert(input, output);
@@ -350,6 +353,20 @@ int main(int argc, char *argv[])
bool showHelp = false;
bool showVersion = false;
+ QCoreApplication app(argc, argv);
+ QTranslator translator;
+ QTranslator qtTranslator;
+ QTranslator qt_helpTranslator;
+ QString sysLocale = QLocale::system().name();
+ QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ if (translator.load(QLatin1String("assistant_") + sysLocale, resourceDir)
+ && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)
+ && qt_helpTranslator.load(QLatin1String("qt_help_") + sysLocale, resourceDir)) {
+ app.installTranslator(&translator);
+ app.installTranslator(&qtTranslator);
+ app.installTranslator(&qt_helpTranslator);
+ }
+
for (int i=1; i<argc; ++i) {
arg = QString::fromLocal8Bit(argv[i]);
if (arg == QLatin1String("-o")) {
@@ -357,8 +374,7 @@ int main(int argc, char *argv[])
QFileInfo fi(QString::fromLocal8Bit(argv[i]));
collectionFile = fi.absoluteFilePath();
} else {
- error = QCoreApplication::translate("QCollectionGenerator",
- "Missing output file name!");
+ error = QCG::tr("Missing output file name.");
}
} else if (arg == QLatin1String("-h")) {
showHelp = true;
@@ -372,16 +388,15 @@ int main(int argc, char *argv[])
}
if (showVersion) {
- fprintf(stdout, "Qt Collection Generator version 1.0 (Qt %s)\n",
- QT_VERSION_STR);
+ fputs(qPrintable(QCG::tr("Qt Collection Generator version 1.0 (Qt %1)\n")
+ .arg(QT_VERSION_STR)), stdout);
return 0;
}
if (configFile.isEmpty() && !showHelp)
- error = QCoreApplication::translate("QCollectionGenerator",
- "Missing collection config file!");
+ error = QCG::tr("Missing collection config file.");
- QString help = QCoreApplication::translate("QCollectionGenerator", "\nUsage:\n\n"
+ QString help = QCG::tr("\nUsage:\n\n"
"qcollectiongenerator <collection-config-file> [options]\n\n"
" -o <collection-file> Generates a collection file\n"
" called <collection-file>. If\n"
@@ -391,7 +406,7 @@ int main(int argc, char *argv[])
" qcollectiongenerator.\n\n");
if (showHelp) {
- fprintf(stdout, "%s", qPrintable(help));
+ fputs(qPrintable(help), stdout);
return 0;
}else if (!error.isEmpty()) {
fprintf(stderr, "%s\n\n%s", qPrintable(error), qPrintable(help));
@@ -400,7 +415,7 @@ int main(int argc, char *argv[])
QFile file(configFile);
if (!file.open(QIODevice::ReadOnly)) {
- fprintf(stderr, "Could not open %s!\n", qPrintable(configFile));
+ fputs(qPrintable(QCG::tr("Could not open %1.\n").arg(configFile)), stderr);
return -1;
}
@@ -410,19 +425,18 @@ int main(int argc, char *argv[])
+ fi.baseName() + QLatin1String(".qhc");
}
- QCoreApplication app(argc, argv);
-
- fprintf(stdout, "Reading collection config file...\n");
+ fputs(qPrintable(QCG::tr("Reading collection config file...\n")), stdout);
CollectionConfigReader config;
config.readData(file.readAll());
if (config.hasError()) {
- fprintf(stderr, "Collection config file error: %s\n", qPrintable(config.errorString()));
+ fputs(qPrintable(QCG::tr("Collection config file error: %1\n")
+ .arg(config.errorString())), stderr);
return -1;
}
QMap<QString, QString>::const_iterator it = config.filesToGenerate().constBegin();
while (it != config.filesToGenerate().constEnd()) {
- fprintf(stdout, "Generating help for %s...\n", qPrintable(it.key()));
+ fputs(qPrintable(QCG::tr("Generating help for %1...\n").arg(it.key())), stdout);
QHelpProjectData helpData;
if (!helpData.readData(absoluteFileName(basePath, it.key()))) {
fprintf(stderr, "%s\n", qPrintable(helpData.errorMessage()));
@@ -437,12 +451,13 @@ int main(int argc, char *argv[])
++it;
}
- fprintf(stdout, "Creating collection file...\n");
+ fputs(qPrintable(QCG::tr("Creating collection file...\n")), stdout);
QFileInfo colFi(collectionFile);
if (colFi.exists()) {
if (!colFi.dir().remove(colFi.fileName())) {
- fprintf(stderr, "The file %s cannot be overwritten!\n", qPrintable(collectionFile));
+ fputs(qPrintable(QCG::tr("The file %1 cannot be overwritten.\n")
+ .arg(collectionFile)), stderr);
return -1;
}
}
@@ -500,7 +515,7 @@ int main(int argc, char *argv[])
if (!config.applicationIcon().isEmpty()) {
QFile icon(absoluteFileName(basePath, config.applicationIcon()));
if (!icon.open(QIODevice::ReadOnly)) {
- fprintf(stderr, "Cannot open %s!\n", qPrintable(icon.fileName()));
+ fputs(qPrintable(QCG::tr("Cannot open %1.\n").arg(icon.fileName())), stderr);
return -1;
}
CollectionConfiguration::setApplicationIcon(helpEngine, icon.readAll());
@@ -521,7 +536,7 @@ int main(int argc, char *argv[])
if (!config.aboutIcon().isEmpty()) {
QFile icon(absoluteFileName(basePath, config.aboutIcon()));
if (!icon.open(QIODevice::ReadOnly)) {
- fprintf(stderr, "Cannot open %s!\n", qPrintable(icon.fileName()));
+ fputs(qPrintable(QCG::tr("Cannot open %1.\n").arg(icon.fileName())), stderr);
return -1;
}
CollectionConfiguration::setAboutIcon(helpEngine, icon.readAll());
@@ -543,7 +558,7 @@ int main(int argc, char *argv[])
QFileInfo fi(absoluteFileName(basePath, it.value()));
QFile f(fi.absoluteFilePath());
if (!f.open(QIODevice::ReadOnly)) {
- fprintf(stderr, "Cannot open %s!\n", qPrintable(f.fileName()));
+ fputs(qPrintable(QCG::tr("Cannot open %1.\n").arg(f.fileName())), stderr);
return -1;
}
QByteArray data = f.readAll();
@@ -565,8 +580,8 @@ int main(int argc, char *argv[])
if (!imgData.contains(src))
imgData.insert(src, img.readAll());
} else {
- fprintf(stderr, "Cannot open referenced image file %s!\n",
- qPrintable(img.fileName()));
+ fputs(qPrintable(QCG::tr("Cannot open referenced image file %1.\n")
+ .arg(img.fileName())), stderr);
}
}
}
diff --git a/tools/assistant/tools/qhelpconverter/filterpage.cpp b/tools/assistant/tools/qhelpconverter/filterpage.cpp
index 7f8698043c..c782943875 100644
--- a/tools/assistant/tools/qhelpconverter/filterpage.cpp
+++ b/tools/assistant/tools/qhelpconverter/filterpage.cpp
@@ -127,7 +127,7 @@ void FilterPage::addFilter()
{
QTreeWidgetItem *item = new QTreeWidgetItem(m_ui.customFilterWidget);
item->setFlags(Qt::ItemIsEnabled|Qt::ItemIsEditable|Qt::ItemIsSelectable);
- item->setText(0, QLatin1String("unfiltered"));
+ item->setText(0, tr("unfiltered", "list of available documentation"));
item->setText(1, QLatin1String(""));
m_ui.customFilterWidget->editItem(item, 0);
m_ui.removeButton->setDisabled(false);
diff --git a/tools/assistant/tools/qhelpconverter/finishpage.cpp b/tools/assistant/tools/qhelpconverter/finishpage.cpp
index 0be3a1b3cc..f0228e3c28 100644
--- a/tools/assistant/tools/qhelpconverter/finishpage.cpp
+++ b/tools/assistant/tools/qhelpconverter/finishpage.cpp
@@ -52,8 +52,7 @@ FinishPage::FinishPage(QWidget *parent)
: QWizardPage(parent)
{
setTitle(tr("Converting File"));
- setSubTitle(QLatin1String("Creating the new Qt help files from the "
- "old .adp file."));
+ setSubTitle(tr("Creating the new Qt help files from the old ADP file."));
setFinalPage(true);
QVBoxLayout *layout = new QVBoxLayout(this);
diff --git a/tools/assistant/tools/qhelpconverter/helpwindow.cpp b/tools/assistant/tools/qhelpconverter/helpwindow.cpp
index 9cc1a85862..2c7e030f09 100644
--- a/tools/assistant/tools/qhelpconverter/helpwindow.cpp
+++ b/tools/assistant/tools/qhelpconverter/helpwindow.cpp
@@ -64,7 +64,7 @@ HelpWindow::HelpWindow(QWidget *parent)
layout = new QVBoxLayout(frame);
layout->setMargin(2);
- QLabel *l = new QLabel(QLatin1String("<center><b>Wizard Assistant</b></center>"));
+ QLabel *l = new QLabel(tr("<center><b>Wizard Assistant</b></center>"));
layout->addWidget(l);
m_textEdit = new QTextEdit();
m_textEdit->setFrameStyle(QFrame::NoFrame);
diff --git a/tools/assistant/tools/qhelpconverter/main.cpp b/tools/assistant/tools/qhelpconverter/main.cpp
index 4b1d81520c..5ee624de64 100644
--- a/tools/assistant/tools/qhelpconverter/main.cpp
+++ b/tools/assistant/tools/qhelpconverter/main.cpp
@@ -40,6 +40,9 @@
****************************************************************************/
#include <QtCore/QFileInfo>
+#include <QtCore/QTranslator>
+#include <QtCore/QLocale>
+#include <QtCore/QLibraryInfo>
#include <QtGui/QApplication>
#include "conversionwizard.h"
@@ -49,6 +52,18 @@ QT_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
+ QTranslator translator;
+ QTranslator qtTranslator;
+ QTranslator qt_helpTranslator;
+ QString sysLocale = QLocale::system().name();
+ QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ if (translator.load(QLatin1String("assistant_") + sysLocale, resourceDir)
+ && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)
+ && qt_helpTranslator.load(QLatin1String("qt_help_") + sysLocale, resourceDir)) {
+ app.installTranslator(&translator);
+ app.installTranslator(&qtTranslator);
+ app.installTranslator(&qt_helpTranslator);
+ }
ConversionWizard w;
if (argc == 2) {
diff --git a/tools/assistant/tools/qhelpgenerator/main.cpp b/tools/assistant/tools/qhelpgenerator/main.cpp
index a309f424d2..637786cf8f 100644
--- a/tools/assistant/tools/qhelpgenerator/main.cpp
+++ b/tools/assistant/tools/qhelpgenerator/main.cpp
@@ -44,11 +44,18 @@
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
#include <QtCore/QCoreApplication>
+#include <QtCore/QTranslator>
+#include <QtCore/QLocale>
+#include <QtCore/QLibraryInfo>
#include <private/qhelpprojectdata_p.h>
QT_USE_NAMESPACE
+class QHG {
+ Q_DECLARE_TR_FUNCTIONS(QHelpGenerator)
+};
+
int main(int argc, char *argv[])
{
QString error;
@@ -60,6 +67,20 @@ int main(int argc, char *argv[])
bool showVersion = false;
bool checkLinks = false;
+ QCoreApplication app(argc, argv);
+ QTranslator translator;
+ QTranslator qtTranslator;
+ QTranslator qt_helpTranslator;
+ QString sysLocale = QLocale::system().name();
+ QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ if (translator.load(QLatin1String("assistant_") + sysLocale, resourceDir)
+ && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)
+ && qt_helpTranslator.load(QLatin1String("qt_help_") + sysLocale, resourceDir)) {
+ app.installTranslator(&translator);
+ app.installTranslator(&qtTranslator);
+ app.installTranslator(&qt_helpTranslator);
+ }
+
for (int i = 1; i < argc; ++i) {
arg = QString::fromLocal8Bit(argv[i]);
if (arg == QLatin1String("-o")) {
@@ -67,8 +88,7 @@ int main(int argc, char *argv[])
QFileInfo fi(QString::fromLocal8Bit(argv[i]));
compressedFile = fi.absoluteFilePath();
} else {
- error = QCoreApplication::translate("QHelpGenerator",
- "Missing output file name!");
+ error = QHG::tr("Missing output file name.");
}
} else if (arg == QLatin1String("-v")) {
showVersion = true;
@@ -84,16 +104,15 @@ int main(int argc, char *argv[])
}
if (showVersion) {
- fprintf(stdout, "Qt Help Generator version 1.0 (Qt %s)\n",
- QT_VERSION_STR);
+ fputs(qPrintable(QHG::tr("Qt Help Generator version 1.0 (Qt %1)\n")
+ .arg(QT_VERSION_STR)), stdout);
return 0;
}
if (projectFile.isEmpty() && !showHelp)
- error = QCoreApplication::translate("QHelpGenerator",
- "Missing Qt help project file!");
+ error = QHG::tr("Missing Qt help project file.");
- QString help = QCoreApplication::translate("QHelpGenerator", "\nUsage:\n\n"
+ QString help = QHG::tr("\nUsage:\n\n"
"qhelpgenerator <help-project-file> [options]\n\n"
" -o <compressed-file> Generates a Qt compressed help\n"
" file called <compressed-file>.\n"
@@ -105,7 +124,7 @@ int main(int argc, char *argv[])
" qhelpgenerator.\n\n");
if (showHelp) {
- fprintf(stdout, "%s", qPrintable(help));
+ fputs(qPrintable(help), stdout);
return 0;
}else if (!error.isEmpty()) {
fprintf(stderr, "%s\n\n%s", qPrintable(error), qPrintable(help));
@@ -114,7 +133,7 @@ int main(int argc, char *argv[])
QFile file(projectFile);
if (!file.open(QIODevice::ReadOnly)) {
- fprintf(stderr, "Could not open %s!\n", qPrintable(projectFile));
+ fputs(qPrintable(QHG::tr("Could not open %1.\n").arg(projectFile)), stderr);
return -1;
}
@@ -130,8 +149,8 @@ int main(int argc, char *argv[])
QDir parentDir = fi.dir();
if (!parentDir.exists()) {
if (!parentDir.mkpath(QLatin1String("."))) {
- fprintf(stderr, "Could not create output directory: %s\n",
- qPrintable(parentDir.path()));
+ fputs(qPrintable(QHG::tr("Could not create output directory: %1\n")
+ .arg(parentDir.path())), stderr);
}
}
}
@@ -142,7 +161,6 @@ int main(int argc, char *argv[])
return -1;
}
- QCoreApplication app(argc, argv);
HelpGenerator generator;
bool success = true;
if (checkLinks)
diff --git a/tools/assistant/tools/shared/helpgenerator.cpp b/tools/assistant/tools/shared/helpgenerator.cpp
index 12008e6940..4812bc532e 100644
--- a/tools/assistant/tools/shared/helpgenerator.cpp
+++ b/tools/assistant/tools/shared/helpgenerator.cpp
@@ -73,12 +73,12 @@ QString HelpGenerator::error() const
void HelpGenerator::printStatus(const QString &msg)
{
- fprintf(stdout, "%s\n", qPrintable(msg));
+ puts(qPrintable(msg));
}
void HelpGenerator::printWarning(const QString &msg)
{
- fprintf(stdout, "Warning: %s\n", qPrintable(msg));
+ puts(qPrintable(tr("Warning: %1").arg(msg)));
}
QT_END_NAMESPACE
diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro
index 73f3317427..a3473af359 100644
--- a/tools/configure/configure.pro
+++ b/tools/configure/configure.pro
@@ -28,7 +28,7 @@ INCLUDEPATH += \
$$QT_SOURCE_TREE/src/corelib/global \
$$QT_BUILD_TREE/include \
$$QT_BUILD_TREE/include/QtCore \
- $$QT_BUILD_TREE/tools/shared
+ $$QT_SOURCE_TREE/tools/shared
HEADERS = configureapp.h environment.h tools.h\
$$QT_SOURCE_TREE/src/corelib/tools/qbytearray.h \
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 0c716d1d64..6e66742319 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -341,7 +341,7 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "ACCESSIBILITY" ] = "yes";
dictionary[ "OPENGL" ] = "yes";
dictionary[ "OPENVG" ] = "no";
- dictionary[ "IPV6" ] = "yes"; // Always, dynamicly loaded
+ dictionary[ "IPV6" ] = "yes"; // Always, dynamically loaded
dictionary[ "OPENSSL" ] = "auto";
dictionary[ "DBUS" ] = "auto";
dictionary[ "S60" ] = "yes";
@@ -381,6 +381,7 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "INCREDIBUILD_XGE" ] = "auto";
dictionary[ "LTCG" ] = "no";
dictionary[ "NATIVE_GESTURES" ] = "yes";
+ dictionary[ "MSVC_MP" ] = "no";
}
Configure::~Configure()
@@ -534,6 +535,13 @@ void Configure::parseCmdLine()
else if (configCmdLine.at(i) == "-no-ltcg") {
dictionary[ "LTCG" ] = "no";
}
+ else if (configCmdLine.at(i) == "-mp") {
+ dictionary[ "MSVC_MP" ] = "yes";
+ }
+ else if (configCmdLine.at(i) == "-no-mp") {
+ dictionary[ "MSVC_MP" ] = "no";
+ }
+
#endif
else if (configCmdLine.at(i) == "-platform") {
@@ -1509,6 +1517,10 @@ void Configure::applySpecSpecifics()
dictionary[ "QT3SUPPORT" ] = "no";
dictionary[ "OPENGL" ] = "no";
dictionary[ "OPENSSL" ] = "yes";
+ // We accidently enabled IPv6 for Qt Symbian in 4.6.x. However the underlying OpenC does not fully support IPV6.
+ // Therefore for 4.7.1 and following we disable it until OpenC either supports it or we have the native Qt
+ // symbian socket engine.
+ dictionary[ "IPV6" ] = "no";
dictionary[ "STL" ] = "yes";
dictionary[ "EXCEPTIONS" ] = "yes";
dictionary[ "RTTI" ] = "yes";
@@ -1848,6 +1860,8 @@ bool Configure::displayHelp()
desc("STYLE_S60" , "yes", "", " s60\n", ' ');
desc("NATIVE_GESTURES", "no", "-no-native-gestures", "Do not use native gestures on Windows 7.");
desc("NATIVE_GESTURES", "yes", "-native-gestures", "Use native gestures on Windows 7.");
+ desc("MSVC_MP", "no", "-no-mp", "Do not use multiple processors for compiling with MSVC");
+ desc("MSVC_MP", "yes", "-mp", "Use multiple processors for compiling with MSVC (-MP)");
/* We do not support -qconfig on Windows yet
@@ -2149,7 +2163,7 @@ bool Configure::checkAvailability(const QString &part)
available = (paths.size() == 0);
if (!available) {
- if (epocRoot.isNull() || epocRoot == "")
+ if (epocRoot.isEmpty())
epocRoot = "<empty string>";
cout << endl
<< "The QtMultimedia audio backend will not be built because required" << endl
@@ -2667,8 +2681,13 @@ void Configure::generateOutputVars()
qtConfig += "audio-backend";
}
- if (dictionary["WEBKIT"] == "yes")
- qtConfig += "webkit";
+ QString dst = buildPath + "/mkspecs/modules/qt_webkit_version.pri";
+ QFile::remove(dst);
+ if (dictionary["WEBKIT"] == "yes") {
+ // This include takes care of adding "webkit" to QT_CONFIG.
+ QString src = sourcePath + "/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri";
+ QFile::copy(src, dst);
+ }
if (dictionary["DECLARATIVE"] == "yes") {
if (dictionary[ "SCRIPT" ] == "no") {
@@ -2695,7 +2714,7 @@ void Configure::generateOutputVars()
QString set_config = dictionary["QCONFIG"];
if (possible_configs.contains(set_config)) {
- foreach(QString cfg, possible_configs) {
+ foreach (const QString &cfg, possible_configs) {
qtConfig += (cfg + "-config");
if (cfg == set_config)
break;
@@ -2817,11 +2836,11 @@ void Configure::generateCachefile()
for (QStringList::Iterator var = qmakeVars.begin(); var != qmakeVars.end(); ++var) {
cacheStream << (*var) << endl;
}
- cacheStream << "CONFIG += " << qmakeConfig.join(" ") << " incremental create_prl link_prl depend_includepath QTDIR_build" << endl;
+ cacheStream << "CONFIG += " << qmakeConfig.join(" ") << " incremental msvc_mp create_prl link_prl depend_includepath QTDIR_build" << endl;
QStringList buildParts;
buildParts << "libs" << "tools" << "examples" << "demos" << "docs" << "translations";
- foreach(QString item, disabledBuildParts) {
+ foreach (const QString &item, disabledBuildParts) {
buildParts.removeAll(item);
}
cacheStream << "QT_BUILD_PARTS = " << buildParts.join(" ") << endl;
@@ -2880,6 +2899,8 @@ void Configure::generateCachefile()
if (dictionary[ "LTCG" ] == "yes")
configStream << " ltcg";
+ if (dictionary[ "MSVC_MP" ] == "yes")
+ configStream << " msvc_mp";
if (dictionary[ "STL" ] == "yes")
configStream << " stl";
if (dictionary[ "EXCEPTIONS" ] == "yes")
@@ -3134,7 +3155,7 @@ void Configure::generateConfigfiles()
QStringList kbdDrivers = dictionary["KBD_DRIVERS"].split(" ");;
QStringList allKbdDrivers;
allKbdDrivers<<"tty"<<"usb"<<"sl5000"<<"yopy"<<"vr41xx"<<"qvfb"<<"um";
- foreach(QString kbd, allKbdDrivers) {
+ foreach (const QString &kbd, allKbdDrivers) {
if (!kbdDrivers.contains(kbd))
tmpStream<<"#define QT_NO_QWS_KBD_"<<kbd.toUpper()<<endl;
}
@@ -3142,7 +3163,7 @@ void Configure::generateConfigfiles()
QStringList mouseDrivers = dictionary["MOUSE_DRIVERS"].split(" ");
QStringList allMouseDrivers;
allMouseDrivers << "pc"<<"bus"<<"linuxtp"<<"yopy"<<"vr41xx"<<"tslib"<<"qvfb";
- foreach(QString mouse, allMouseDrivers) {
+ foreach (const QString &mouse, allMouseDrivers) {
if (!mouseDrivers.contains(mouse))
tmpStream<<"#define QT_NO_QWS_MOUSE_"<<mouse.toUpper()<<endl;
}
@@ -3150,7 +3171,7 @@ void Configure::generateConfigfiles()
QStringList gfxDrivers = dictionary["GFX_DRIVERS"].split(" ");
QStringList allGfxDrivers;
allGfxDrivers<<"linuxfb"<<"transformed"<<"qvfb"<<"vnc"<<"multiscreen"<<"ahi";
- foreach(QString gfx, allGfxDrivers) {
+ foreach (const QString &gfx, allGfxDrivers) {
if (!gfxDrivers.contains(gfx))
tmpStream<<"#define QT_NO_QWS_"<<gfx.toUpper()<<endl;
}
@@ -3158,7 +3179,7 @@ void Configure::generateConfigfiles()
tmpStream<<"#define Q_WS_QWS"<<endl;
QStringList depths = dictionary[ "QT_QWS_DEPTH" ].split(" ");
- foreach(QString depth, depths)
+ foreach (const QString &depth, depths)
tmpStream<<"#define QT_QWS_DEPTH_"+depth<<endl;
}
@@ -3607,7 +3628,10 @@ void Configure::buildHostTools()
// generate Makefile
QStringList args;
args << QDir::toNativeSeparators(buildPath + "/bin/qmake");
- args << "-spec" << dictionary["QMAKESPEC"] << "-r";
+ // override .qmake.cache because we are not cross-building these.
+ // we need a full path so that a build with -prefix will still find it.
+ args << "-spec" << QDir::toNativeSeparators(buildPath + "/mkspecs/" + dictionary["QMAKESPEC"]);
+ args << "-r";
args << "-o" << QDir::toNativeSeparators(toolBuildPath + "/Makefile");
QDir().mkpath(toolBuildPath);
@@ -3745,8 +3769,7 @@ void Configure::generateMakefiles()
printf("Generating Makefiles...\n");
generate = false; // Now Makefiles will be done
}
- args << "-spec";
- args << spec;
+ // don't pass -spec - .qmake.cache has it already
args << "-r";
args << (sourcePath + "/projects.pro");
args << "-o";
diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp
index 943a8a266f..03fd0cc120 100644
--- a/tools/configure/environment.cpp
+++ b/tools/configure/environment.cpp
@@ -281,8 +281,7 @@ static QByteArray qt_create_environment(const QStringList &environment)
pos += tmpSize;
}
// add the user environment
- for (QStringList::ConstIterator it = environment.begin(); it != environment.end(); it++ ) {
- QString tmp = *it;
+ foreach (const QString &tmp, environment) {
uint tmpSize = sizeof(wchar_t) * (tmp.length() + 1);
envlist.resize(envlist.size() + tmpSize);
memcpy(envlist.data() + pos, tmp.utf16(), tmpSize);
@@ -386,7 +385,7 @@ int Environment::execute(QStringList arguments, const QStringList &additionalEnv
switch(GetLastError()) {
case E2BIG:
cerr << "execute: Argument list exceeds 1024 bytes" << endl;
- foreach(QString arg, arguments)
+ foreach (const QString &arg, arguments)
cerr << " (" << arg.toLocal8Bit().constData() << ")" << endl;
break;
case ENOENT:
@@ -400,7 +399,7 @@ int Environment::execute(QStringList arguments, const QStringList &additionalEnv
break;
default:
cerr << "execute: Unknown error" << endl;
- foreach(QString arg, arguments)
+ foreach (const QString &arg, arguments)
cerr << " (" << arg.toLocal8Bit().constData() << ")" << endl;
break;
}
diff --git a/tools/configure/tools.cpp b/tools/configure/tools.cpp
index c4625aff48..c91f048645 100644
--- a/tools/configure/tools.cpp
+++ b/tools/configure/tools.cpp
@@ -91,8 +91,8 @@ void Tools::checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString
QStringList components = buffer.split( '=' );
if ( components.size() >= 2 ) {
QStringList::Iterator it = components.begin();
- QString key = (*it++).trimmed().replace( "\"", QString() ).toUpper();
- QString value = (*it++).trimmed().replace( "\"", QString() );
+ QString key = (*it++).trimmed().remove('"').toUpper();
+ QString value = (*it++).trimmed().remove('"');
licenseInfo[ key ] = value;
}
}
@@ -111,7 +111,7 @@ void Tools::checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString
// Verify license info...
QString licenseKey = licenseInfo["LICENSEKEYEXT"];
QByteArray clicenseKey = licenseKey.toLatin1();
- //We check the licence
+ //We check the license
static const char * const SEP = "-";
char *licenseParts[NUMBER_OF_PARTS];
int partNumber = 0;
@@ -218,7 +218,7 @@ void Tools::checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString
if (QFile::exists(dictionary["QT_SOURCE_TREE"] + "/.LICENSE")) {
// Generic, no-suffix license
- dictionary["LICENSE_EXTENSION"] = QString();
+ dictionary["LICENSE_EXTENSION"].clear();
} else if (dictionary["LICENSE_EXTENSION"].isEmpty()) {
cout << "License file does not contain proper license key." << endl;
dictionary["DONE"] = "error";
@@ -239,7 +239,7 @@ void Tools::checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString
fromLicenseFile += "-US";
if (!CopyFile((wchar_t*)QDir::toNativeSeparators(fromLicenseFile).utf16(),
- (wchar_t*)QDir::toNativeSeparators(toLicenseFile).utf16(), FALSE)) {
+ (wchar_t*)QDir::toNativeSeparators(toLicenseFile).utf16(), false)) {
cout << "Failed to copy license file (" << fromLicenseFile << ")";
dictionary["DONE"] = "error";
return;
diff --git a/tools/designer/src/components/formeditor/formeditor.qrc b/tools/designer/src/components/formeditor/formeditor.qrc
index 651081434f..42724ddca2 100644
--- a/tools/designer/src/components/formeditor/formeditor.qrc
+++ b/tools/designer/src/components/formeditor/formeditor.qrc
@@ -113,7 +113,6 @@
<file>images/widgets/vslider.png</file>
<file>images/widgets/vspacer.png</file>
<file>images/widgets/widget.png</file>
- <file>images/widgets/widget.png</file>
<file>images/widgets/widgetstack.png</file>
<file>images/widgets/wizard.png</file>
<file>images/win/adjustsize.png</file>
diff --git a/tools/designer/src/components/propertyeditor/defs.cpp b/tools/designer/src/components/propertyeditor/defs.cpp
deleted file mode 100644
index 54dec74103..0000000000
--- a/tools/designer/src/components/propertyeditor/defs.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** 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 Designer 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 "defs.h"
-
-QT_BEGIN_NAMESPACE
-
-namespace qdesigner_internal {
-
-int size_type_to_int( QSizePolicy::Policy t )
-{
- if ( t == QSizePolicy::Fixed )
- return 0;
- if ( t == QSizePolicy::Minimum )
- return 1;
- if ( t == QSizePolicy::Maximum )
- return 2;
- if ( t == QSizePolicy::Preferred )
- return 3;
- if ( t == QSizePolicy::MinimumExpanding )
- return 4;
- if ( t == QSizePolicy::Expanding )
- return 5;
- if ( t == QSizePolicy::Ignored )
- return 6;
- return 0;
-}
-
-QString size_type_to_string( QSizePolicy::Policy t )
-{
- if ( t == QSizePolicy::Fixed )
- return QString::fromUtf8("Fixed");
- if ( t == QSizePolicy::Minimum )
- return QString::fromUtf8("Minimum");
- if ( t == QSizePolicy::Maximum )
- return QString::fromUtf8("Maximum");
- if ( t == QSizePolicy::Preferred )
- return QString::fromUtf8("Preferred");
- if ( t == QSizePolicy::MinimumExpanding )
- return QString::fromUtf8("MinimumExpanding");
- if ( t == QSizePolicy::Expanding )
- return QString::fromUtf8("Expanding");
- if ( t == QSizePolicy::Ignored )
- return QString::fromUtf8("Ignored");
- return QString();
-}
-
-QSizePolicy::Policy int_to_size_type( int i )
-{
- if ( i == 0 )
- return QSizePolicy::Fixed;
- if ( i == 1 )
- return QSizePolicy::Minimum;
- if ( i == 2 )
- return QSizePolicy::Maximum;
- if ( i == 3 )
- return QSizePolicy::Preferred;
- if ( i == 4 )
- return QSizePolicy::MinimumExpanding;
- if ( i == 5 )
- return QSizePolicy::Expanding;
- if ( i == 6 )
- return QSizePolicy::Ignored;
- return QSizePolicy::Preferred;
-}
-
-} // namespace qdesigner_internal
-
-QT_END_NAMESPACE
diff --git a/tools/designer/src/components/propertyeditor/propertyeditor.pri b/tools/designer/src/components/propertyeditor/propertyeditor.pri
index 7d2e7cba6c..bb1afdb94b 100644
--- a/tools/designer/src/components/propertyeditor/propertyeditor.pri
+++ b/tools/designer/src/components/propertyeditor/propertyeditor.pri
@@ -45,10 +45,8 @@ SOURCES += $$PWD/propertyeditor.cpp \
HEADERS += \
$$PWD/propertyeditor_global.h \
- $$PWD/defs.h \
$$PWD/qlonglongvalidator.h
-SOURCES += $$PWD/defs.cpp \
- $$PWD/qlonglongvalidator.cpp
+SOURCES += $$PWD/qlonglongvalidator.cpp
RESOURCES += $$PWD/propertyeditor.qrc
diff --git a/tools/designer/src/components/taskmenu/itemlisteditor.cpp b/tools/designer/src/components/taskmenu/itemlisteditor.cpp
index 94959fdd48..9f8e9c8c6a 100644
--- a/tools/designer/src/components/taskmenu/itemlisteditor.cpp
+++ b/tools/designer/src/components/taskmenu/itemlisteditor.cpp
@@ -114,20 +114,20 @@ void AbstractItemEditor::keyPressEvent(QKeyEvent *e)
}
static const char * const itemFlagNames[] = {
- "Selectable",
- "Editable",
- "DragEnabled",
- "DropEnabled",
- "UserCheckable",
- "Enabled",
- "Tristate",
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "Selectable"),
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "Editable"),
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "DragEnabled"),
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "DropEnabled"),
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "UserCheckable"),
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "Enabled"),
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "Tristate"),
0
};
static const char * const checkStateNames[] = {
- "Unchecked",
- "PartiallyChecked",
- "Checked",
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "Unchecked"),
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "PartiallyChecked"),
+ QT_TRANSLATE_NOOP("AbstractItemEditor", "Checked"),
0
};
@@ -135,7 +135,7 @@ static QStringList c2qStringList(const char * const in[])
{
QStringList out;
for (int i = 0; in[i]; i++)
- out << QLatin1String(in[i]);
+ out << AbstractItemEditor::tr(in[i]);
return out;
}
diff --git a/tools/designer/src/lib/shared/actionrepository.cpp b/tools/designer/src/lib/shared/actionrepository.cpp
index 1076ff412a..a54c1e7f46 100644
--- a/tools/designer/src/lib/shared/actionrepository.cpp
+++ b/tools/designer/src/lib/shared/actionrepository.cpp
@@ -397,9 +397,10 @@ void ActionTreeView::contextMenuEvent(QContextMenuEvent *event)
emit contextMenuRequested(event, m_model->actionAt(indexAt(event->pos())));
}
-void ActionTreeView::currentChanged(const QModelIndex &current, const QModelIndex &/*previous*/)
+void ActionTreeView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
{
emit currentChanged(m_model->actionAt(current));
+ QTreeView::currentChanged(current, previous);
}
void ActionTreeView::slotActivated(const QModelIndex &index)
@@ -478,9 +479,10 @@ void ActionListView::contextMenuEvent(QContextMenuEvent *event)
emit contextMenuRequested(event, m_model->actionAt(indexAt(event->pos())));
}
-void ActionListView::currentChanged(const QModelIndex &current, const QModelIndex & /*previous*/)
+void ActionListView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
{
emit currentChanged(m_model->actionAt(current));
+ QListView::currentChanged(current, previous);
}
void ActionListView::slotActivated(const QModelIndex &index)
diff --git a/tools/designer/src/lib/shared/plugindialog.cpp b/tools/designer/src/lib/shared/plugindialog.cpp
index 3e88043b7d..63ba81cd86 100644
--- a/tools/designer/src/lib/shared/plugindialog.cpp
+++ b/tools/designer/src/lib/shared/plugindialog.cpp
@@ -102,7 +102,7 @@ void PluginDialog::populateTreeWidget()
const QStringList fileNames = pluginManager->registeredPlugins();
if (!fileNames.isEmpty()) {
- QTreeWidgetItem *topLevelItem = setTopLevelItem(QLatin1String("Loaded Plugins"));
+ QTreeWidgetItem *topLevelItem = setTopLevelItem(tr("Loaded Plugins"));
QFont boldFont = topLevelItem->font(0);
foreach (const QString &fileName, fileNames) {
@@ -125,7 +125,7 @@ void PluginDialog::populateTreeWidget()
const QStringList notLoadedPlugins = pluginManager->failedPlugins();
if (!notLoadedPlugins.isEmpty()) {
- QTreeWidgetItem *topLevelItem = setTopLevelItem(QLatin1String("Failed Plugins"));
+ QTreeWidgetItem *topLevelItem = setTopLevelItem(tr("Failed Plugins"));
const QFont boldFont = topLevelItem->font(0);
foreach (const QString &plugin, notLoadedPlugins) {
const QString failureReason = pluginManager->failureReason(plugin);
diff --git a/tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp b/tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp
index c508fa20a7..7f597ff003 100644
--- a/tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp
+++ b/tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp
@@ -66,12 +66,12 @@ QString SeekSliderPlugin::group() const
QString SeekSliderPlugin::toolTip() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString SeekSliderPlugin::whatsThis() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString SeekSliderPlugin::includeFile() const
diff --git a/tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp b/tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp
index d4af121410..489a08c68e 100644
--- a/tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp
+++ b/tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp
@@ -72,12 +72,12 @@ QString VideoPlayerPlugin::group() const
QString VideoPlayerPlugin::toolTip() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString VideoPlayerPlugin::whatsThis() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString VideoPlayerPlugin::includeFile() const
diff --git a/tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp b/tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp
index becd5d989e..24eb829094 100644
--- a/tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp
+++ b/tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp
@@ -66,12 +66,12 @@ QString VolumeSliderPlugin::group() const
QString VolumeSliderPlugin::toolTip() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString VolumeSliderPlugin::whatsThis() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString VolumeSliderPlugin::includeFile() const
diff --git a/tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp b/tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp
index b352a9b361..7148ad0b3b 100644
--- a/tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp
+++ b/tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp
@@ -69,12 +69,12 @@ QString QDeclarativeViewPlugin::group() const
QString QDeclarativeViewPlugin::toolTip() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString QDeclarativeViewPlugin::whatsThis() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString QDeclarativeViewPlugin::includeFile() const
diff --git a/tools/designer/src/plugins/qwebview/qwebview_plugin.cpp b/tools/designer/src/plugins/qwebview/qwebview_plugin.cpp
index 61f7e661f0..c90e191d9e 100644
--- a/tools/designer/src/plugins/qwebview/qwebview_plugin.cpp
+++ b/tools/designer/src/plugins/qwebview/qwebview_plugin.cpp
@@ -69,12 +69,12 @@ QString QWebViewPlugin::group() const
QString QWebViewPlugin::toolTip() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString QWebViewPlugin::whatsThis() const
{
- return QString(QLatin1String(toolTipC));
+ return tr(toolTipC);
}
QString QWebViewPlugin::includeFile() const
diff --git a/tools/linguist/lconvert/main.cpp b/tools/linguist/lconvert/main.cpp
index 094406c984..d69154801e 100644
--- a/tools/linguist/lconvert/main.cpp
+++ b/tools/linguist/lconvert/main.cpp
@@ -45,11 +45,17 @@
#include <QtCore/QDebug>
#include <QtCore/QString>
#include <QtCore/QStringList>
+#include <QtCore/QTranslator>
+#include <QtCore/QLibraryInfo>
#include <iostream>
QT_USE_NAMESPACE
+class LC {
+ Q_DECLARE_TR_FUNCTIONS(LConvert)
+};
+
static int usage(const QStringList &args)
{
Q_UNUSED(args);
@@ -59,7 +65,7 @@ static int usage(const QStringList &args)
foreach (Translator::FileFormat format, Translator::registeredFileFormats())
loaders += line.arg(format.extension, -5).arg(format.description);
- std::cerr << qPrintable(QString(QLatin1String("\nUsage:\n"
+ std::cerr << qPrintable(LC::tr("\nUsage:\n"
" lconvert [options] <infile> [<infile>...]\n\n"
"lconvert is part of Qt's Linguist tool chain. It can be used as a\n"
"stand-alone tool to convert and filter translation data files.\n"
@@ -121,7 +127,7 @@ static int usage(const QStringList &args)
" 0 on success\n"
" 1 on command line parse failures\n"
" 2 on read failures\n"
- " 3 on write failures\n")).arg(loaders));
+ " 3 on write failures\n").arg(loaders));
return 1;
}
@@ -134,8 +140,17 @@ struct File
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
- QStringList args = app.arguments();
+ QTranslator translator;
+ QTranslator qtTranslator;
+ QString sysLocale = QLocale::system().name();
+ QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ if (translator.load(QLatin1String("linguist_") + sysLocale, resourceDir)
+ && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) {
+ app.installTranslator(&translator);
+ app.installTranslator(&qtTranslator);
+ }
+ QStringList args = app.arguments();
QList<File> inFiles;
QString inFormat(QLatin1String("auto"));
QString outFileName;
diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp
index 7d11823c8b..265df059d0 100644
--- a/tools/linguist/linguist/mainwindow.cpp
+++ b/tools/linguist/linguist/mainwindow.cpp
@@ -1030,6 +1030,8 @@ void MainWindow::findAgain()
break;
if (searchItem(m->extraComment()))
break;
+ if (searchItem(m->translatorComment()))
+ break;
m_foundWhere = DataModel::NoLocation;
// did not find the search string in this message
}
diff --git a/tools/linguist/linguist/phrase.cpp b/tools/linguist/linguist/phrase.cpp
index 254daf40ef..709ec35df8 100644
--- a/tools/linguist/linguist/phrase.cpp
+++ b/tools/linguist/linguist/phrase.cpp
@@ -188,10 +188,9 @@ bool QphHandler::characters(const QString &ch)
bool QphHandler::fatalError(const QXmlParseException &exception)
{
if (ferrorCount++ == 0) {
- QString msg;
- msg.sprintf("Parse error at line %d, column %d (%s).",
- exception.lineNumber(), exception.columnNumber(),
- exception.message().toLatin1().constData());
+ QString msg = PhraseBook::tr("Parse error at line %1, column %2 (%3).")
+ .arg(exception.lineNumber()).arg(exception.columnNumber())
+ .arg(exception.message());
QMessageBox::information(0,
QObject::tr("Qt Linguist"), msg);
}
diff --git a/tools/linguist/lrelease/main.cpp b/tools/linguist/lrelease/main.cpp
index b5cff90a77..19377efcb6 100644
--- a/tools/linguist/lrelease/main.cpp
+++ b/tools/linguist/lrelease/main.cpp
@@ -65,6 +65,17 @@ static void initBinaryDir(
const char *argv0
#endif
);
+
+struct LR {
+ static inline QString tr(const char *sourceText, const char *comment = 0)
+ {
+ return QCoreApplication::translate("LRelease", sourceText, comment);
+ }
+};
+#else
+class LR {
+ Q_DECLARE_TR_FUNCTIONS(LRelease)
+};
#endif
static void printOut(const QString & out)
@@ -75,7 +86,7 @@ static void printOut(const QString & out)
static void printUsage()
{
- printOut(QCoreApplication::tr(
+ printOut(LR::tr(
"Usage:\n"
" lrelease [options] project-file\n"
" lrelease [options] ts-files [-qm qm-file]\n\n"
@@ -108,7 +119,7 @@ static bool loadTsFile(Translator &tor, const QString &tsFileName, bool /* verbo
ConversionData cd;
bool ok = tor.load(tsFileName, cd, QLatin1String("auto"));
if (!ok) {
- std::cerr << "lrelease error: " << qPrintable(cd.error());
+ std::cerr << qPrintable(LR::tr("lrelease error: %1").arg(cd.error()));
} else {
if (!cd.errors().isEmpty())
printOut(cd.error());
@@ -123,17 +134,17 @@ static bool releaseTranslator(Translator &tor, const QString &qmFileName,
tor.reportDuplicates(tor.resolveDuplicates(), qmFileName, cd.isVerbose());
if (cd.isVerbose())
- printOut(QCoreApplication::tr( "Updating '%1'...\n").arg(qmFileName));
+ printOut(LR::tr("Updating '%1'...\n").arg(qmFileName));
if (removeIdentical) {
if (cd.isVerbose())
- printOut(QCoreApplication::tr( "Removing translations equal to source text in '%1'...\n").arg(qmFileName));
+ printOut(LR::tr("Removing translations equal to source text in '%1'...\n").arg(qmFileName));
tor.stripIdenticalSourceTranslations();
}
QFile file(qmFileName);
if (!file.open(QIODevice::WriteOnly)) {
- std::cerr << "lrelease error: cannot create '" << qPrintable(qmFileName)
- << "': " << qPrintable(file.errorString()) << std::endl;
+ std::cerr << qPrintable(LR::tr("lrelease error: cannot create '%1': %2\n")
+ .arg(qmFileName, file.errorString()));
return false;
}
@@ -142,8 +153,8 @@ static bool releaseTranslator(Translator &tor, const QString &qmFileName,
file.close();
if (!ok) {
- std::cerr << "lrelease error: cannot save '" << qPrintable(qmFileName)
- << "': " << qPrintable(cd.error());
+ std::cerr << qPrintable(LR::tr("lrelease error: cannot save '%1': %2")
+ .arg(qmFileName, cd.error()));
} else if (!cd.errors().isEmpty()) {
printOut(cd.error());
}
@@ -181,8 +192,14 @@ int main(int argc, char **argv)
#else
QCoreApplication app(argc, argv);
QTranslator translator;
- if (translator.load(QLatin1String("lrelease_") + QLocale::system().name()))
+ QTranslator qtTranslator;
+ QString sysLocale = QLocale::system().name();
+ QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ if (translator.load(QLatin1String("linguist_") + sysLocale, resourceDir)
+ && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) {
app.installTranslator(&translator);
+ app.installTranslator(&qtTranslator);
+ }
#endif
ConversionData cd;
@@ -221,7 +238,7 @@ int main(int argc, char **argv)
cd.m_verbose = true;
continue;
} else if (!strcmp(argv[i], "-version")) {
- printOut(QCoreApplication::tr( "lrelease version %1\n").arg(QLatin1String(QT_VERSION_STR)) );
+ printOut(LR::tr("lrelease version %1\n").arg(QLatin1String(QT_VERSION_STR)));
return 0;
} else if (!strcmp(argv[i], "-qm")) {
if (i == argc - 1) {
@@ -255,20 +272,23 @@ int main(int argc, char **argv)
visitor.setVerbose(cd.isVerbose());
if (!visitor.queryProFile(&pro)) {
- std::cerr << "lrelease error: cannot read project file '"
- << qPrintable(inputFile) << "'.\n";
+ std::cerr << qPrintable(LR::tr(
+ "lrelease error: cannot read project file '%1'.\n")
+ .arg(inputFile));
continue;
}
if (!visitor.accept(&pro)) {
- std::cerr << "lrelease error: cannot process project file '"
- << qPrintable(inputFile) << "'.\n";
+ std::cerr << qPrintable(LR::tr(
+ "lrelease error: cannot process project file '%1'.\n")
+ .arg(inputFile));
continue;
}
QStringList translations = visitor.values(QLatin1String("TRANSLATIONS"));
if (translations.isEmpty()) {
- std::cerr << "lrelease warning: Met no 'TRANSLATIONS' entry in project file '"
- << qPrintable(inputFile) << "'\n";
+ std::cerr << qPrintable(LR::tr(
+ "lrelease warning: Met no 'TRANSLATIONS' entry in project file '%1'\n")
+ .arg(inputFile));
} else {
QDir proDir(fi.absolutePath());
foreach (const QString &trans, translations)
diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp
index bc9bb261ce..970d44b705 100644
--- a/tools/linguist/lupdate/cpp.cpp
+++ b/tools/linguist/lupdate/cpp.cpp
@@ -50,6 +50,7 @@
#include <QtCore/QString>
#include <QtCore/QTextCodec>
#include <QtCore/QTextStream>
+#include <QtCore/QCoreApplication>
#include <iostream>
@@ -57,6 +58,10 @@
QT_BEGIN_NAMESPACE
+class LU {
+ Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
/* qmake ignore Q_OBJECT */
static QString MagicComment(QLatin1String("TRANSLATOR"));
@@ -624,8 +629,8 @@ uint CppParser::getToken()
|| yyBraceDepth != is.braceDepth1st
|| yyParenDepth != is.parenDepth1st)
yyMsg(is.elseLine)
- << "Parenthesis/bracket/brace mismatch between "
- "#if and #else branches; using #if branch\n";
+ << qPrintable(LU::tr("Parenthesis/bracket/brace mismatch between "
+ "#if and #else branches; using #if branch\n"));
} else {
is.bracketDepth1st = yyBracketDepth;
is.braceDepth1st = yyBraceDepth;
@@ -647,8 +652,8 @@ uint CppParser::getToken()
|| yyBraceDepth != is.braceDepth1st
|| yyParenDepth != is.parenDepth1st)
yyMsg(is.elseLine)
- << "Parenthesis/brace mismatch between "
- "#if and #else branches; using #if branch\n";
+ << qPrintable(LU::tr("Parenthesis/brace mismatch between "
+ "#if and #else branches; using #if branch\n"));
yyBracketDepth = is.bracketDepth1st;
yyBraceDepth = is.braceDepth1st;
yyParenDepth = is.parenDepth1st;
@@ -674,7 +679,7 @@ uint CppParser::getToken()
forever {
yyCh = getChar();
if (yyCh == EOF) {
- yyMsg() << "Unterminated C++ comment\n";
+ yyMsg() << qPrintable(LU::tr("Unterminated C++ comment\n"));
break;
}
@@ -804,7 +809,7 @@ uint CppParser::getToken()
forever {
yyCh = getChar();
if (yyCh == EOF) {
- yyMsg() << "Unterminated C++ comment\n";
+ yyMsg() << qPrintable(LU::tr("Unterminated C++ comment\n"));
break;
}
*ptr++ = yyCh;
@@ -837,7 +842,7 @@ uint CppParser::getToken()
yyWord.resize(ptr - (ushort *)yyWord.unicode());
if (yyCh != '"')
- yyMsg() << "Unterminated C++ string\n";
+ yyMsg() << qPrintable(LU::tr("Unterminated C++ string\n"));
else
yyCh = getChar();
return Tok_String;
@@ -894,8 +899,8 @@ uint CppParser::getToken()
if (yyBraceDepth == yyMinBraceDepth) {
if (!inDefine)
yyMsg(yyCurLineNo)
- << "Excess closing brace in C++ code"
- " (or abuse of the C++ preprocessor)\n";
+ << qPrintable(LU::tr("Excess closing brace in C++ code"
+ " (or abuse of the C++ preprocessor)\n"));
// Avoid things getting messed up even more
yyCh = getChar();
return Tok_Semicolon;
@@ -912,8 +917,8 @@ uint CppParser::getToken()
case ')':
if (yyParenDepth == 0)
yyMsg(yyCurLineNo)
- << "Excess closing parenthesis in C++ code"
- " (or abuse of the C++ preprocessor)\n";
+ << qPrintable(LU::tr("Excess closing parenthesis in C++ code"
+ " (or abuse of the C++ preprocessor)\n"));
else
yyParenDepth--;
yyCh = getChar();
@@ -927,8 +932,8 @@ uint CppParser::getToken()
case ']':
if (yyBracketDepth == 0)
yyMsg(yyCurLineNo)
- << "Excess closing bracket in C++ code"
- " (or abuse of the C++ preprocessor)\n";
+ << qPrintable(LU::tr("Excess closing bracket in C++ code"
+ " (or abuse of the C++ preprocessor)\n"));
else
yyBracketDepth--;
yyCh = getChar();
@@ -1296,7 +1301,7 @@ void CppParser::processInclude(const QString &file, ConversionData &cd,
QString cleanFile = QDir::cleanPath(file);
if (inclusions.contains(cleanFile)) {
- yyMsg() << "circular inclusion of " << qPrintable(cleanFile) << std::endl;
+ yyMsg() << qPrintable(LU::tr("circular inclusion of %1\n").arg(cleanFile));
return;
}
@@ -1320,9 +1325,7 @@ void CppParser::processInclude(const QString &file, ConversionData &cd,
QFile f(cleanFile);
if (!f.open(QIODevice::ReadOnly)) {
- yyMsg()
- << "Cannot open " << qPrintable(cleanFile) << ": "
- << qPrintable(f.errorString()) << std::endl;
+ yyMsg() << qPrintable(LU::tr("Cannot open %1: %2\n").arg(cleanFile, f.errorString()));
return;
}
@@ -1766,7 +1769,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
if (!tor)
goto case_default;
if (!sourcetext.isEmpty())
- yyMsg() << "//% cannot be used with tr() / QT_TR_NOOP(). Ignoring\n";
+ yyMsg() << qPrintable(LU::tr("//% cannot be used with tr() / QT_TR_NOOP(). Ignoring\n"));
utf8 = (yyTok == Tok_trUtf8);
line = yyLineNo;
yyTok = getToken();
@@ -1787,9 +1790,8 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
QStringList unresolved;
if (!fullyQualify(namespaces, pendingContext, true, &functionContext, &unresolved)) {
functionContextUnresolved = unresolved.join(strColons);
- yyMsg() << "Qualifying with unknown namespace/class "
- << qPrintable(stringifyNamespace(functionContext)) << "::"
- << qPrintable(unresolved.first()) << std::endl;
+ yyMsg() << qPrintable(LU::tr("Qualifying with unknown namespace/class %1::%2\n")
+ .arg(stringifyNamespace(functionContext)).arg(unresolved.first()));
}
pendingContext.clear();
}
@@ -1797,7 +1799,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
if (functionContextUnresolved.isEmpty()) {
int idx = functionContext.length();
if (idx < 2) {
- yyMsg() << "tr() cannot be called without context\n";
+ yyMsg() << qPrintable(LU::tr("tr() cannot be called without context\n"));
break;
}
Namespace *fctx;
@@ -1806,8 +1808,8 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
context = stringifyNamespace(functionContext);
fctx = findNamespace(functionContext)->classDef;
if (!fctx->complained) {
- yyMsg() << "Class '" << qPrintable(context)
- << "' lacks Q_OBJECT macro\n";
+ yyMsg() << qPrintable(LU::tr("Class '%1' lacks Q_OBJECT macro\n")
+ .arg(context));
fctx->complained = true;
}
goto gotctx;
@@ -1835,8 +1837,8 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
int last = prefix.lastIndexOf(strColons);
QString className = prefix.mid(last == -1 ? 0 : last + 2);
if (!className.isEmpty() && className == functionName) {
- yyMsg() << "It is not recommended to call tr() from within a constructor '"
- << qPrintable(className) << "::" << qPrintable(functionName) << "'\n";
+ yyMsg() << qPrintable(LU::tr("It is not recommended to call tr() from within a constructor '%1::%2'\n")
+ .arg(className).arg(functionName));
}
#endif
prefix.chop(2);
@@ -1851,7 +1853,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
context = fctx->trQualification;
}
if (!fctx->hasTrFunctions && !fctx->complained) {
- yyMsg() << "Class '" << qPrintable(context) << "' lacks Q_OBJECT macro\n";
+ yyMsg() << qPrintable(LU::tr("Class '%1' lacks Q_OBJECT macro\n").arg(context));
fctx->complained = true;
}
} else {
@@ -1873,7 +1875,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
if (!tor)
goto case_default;
if (!sourcetext.isEmpty())
- yyMsg() << "//% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring\n";
+ yyMsg() << qPrintable(LU::tr("//% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring\n"));
utf8 = (yyTok == Tok_translateUtf8);
line = yyLineNo;
yyTok = getToken();
@@ -1928,7 +1930,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
if (!tor)
goto case_default;
if (!msgid.isEmpty())
- yyMsg() << "//= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring\n";
+ yyMsg() << qPrintable(LU::tr("//= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring\n"));
//utf8 = false; // Maybe use //%% or something like that
line = yyLineNo;
yyTok = getToken();
@@ -1995,13 +1997,13 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
if (isspace(c))
continue;
if (c != '"') {
- yyMsg() << "Unexpected character in meta string\n";
+ yyMsg() << qPrintable(LU::tr("Unexpected character in meta string\n"));
break;
}
forever {
if (p >= yyWord.length()) {
whoops:
- yyMsg() << "Unterminated meta string\n";
+ yyMsg() << qPrintable(LU::tr("Unterminated meta string\n"));
break;
}
c = yyWord.unicode()[p++].unicode();
@@ -2054,7 +2056,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
case Tok_Arrow:
yyTok = getToken();
if (yyTok == Tok_tr || yyTok == Tok_trUtf8)
- yyMsg() << "Cannot invoke tr() like this\n";
+ yyMsg() << qPrintable(LU::tr("Cannot invoke tr() like this\n"));
break;
case Tok_ColonColon:
if (yyBraceDepth == namespaceDepths.count() && yyParenDepth == 0 && !yyTokColonSeen)
@@ -2087,7 +2089,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
prospectiveContext.clear();
prefix.clear();
if (!sourcetext.isEmpty() || !extracomment.isEmpty() || !msgid.isEmpty() || !extra.isEmpty()) {
- yyMsg() << "Discarding unconsumed meta data\n";
+ yyMsg() << qPrintable(LU::tr("Discarding unconsumed meta data\n"));
sourcetext.clear();
extracomment.clear();
msgid.clear();
@@ -2127,16 +2129,16 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
if (yyBraceDepth != 0)
yyMsg(yyBraceLineNo)
- << "Unbalanced opening brace in C++ code"
- " (or abuse of the C++ preprocessor)\n";
+ << qPrintable(LU::tr("Unbalanced opening brace in C++ code"
+ " (or abuse of the C++ preprocessor)\n"));
else if (yyParenDepth != 0)
yyMsg(yyParenLineNo)
- << "Unbalanced opening parenthesis in C++ code"
- " (or abuse of the C++ preprocessor)\n";
+ << qPrintable(LU::tr("Unbalanced opening parenthesis in C++ code"
+ " (or abuse of the C++ preprocessor)\n"));
else if (yyBracketDepth != 0)
yyMsg(yyBracketLineNo)
- << "Unbalanced opening bracket in C++ code"
- " (or abuse of the C++ preprocessor)\n";
+ << qPrintable(LU::tr("Unbalanced opening bracket in C++ code"
+ " (or abuse of the C++ preprocessor)\n"));
}
const ParseResults *CppParser::recordResults(bool isHeader)
@@ -2197,8 +2199,7 @@ void loadCPP(Translator &translator, const QStringList &filenames, ConversionDat
QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
- cd.appendError(QString::fromLatin1("Cannot open %1: %2")
- .arg(filename, file.errorString()));
+ cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
continue;
}
diff --git a/tools/linguist/lupdate/java.cpp b/tools/linguist/lupdate/java.cpp
index dc66e2b365..165b6a3f2d 100644
--- a/tools/linguist/lupdate/java.cpp
+++ b/tools/linguist/lupdate/java.cpp
@@ -50,6 +50,7 @@
#include <QtCore/QStack>
#include <QtCore/QString>
#include <QtCore/QTextCodec>
+#include <QtCore/QCoreApplication>
#include <iostream>
@@ -57,6 +58,10 @@
QT_BEGIN_NAMESPACE
+class LU {
+ Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
enum { Tok_Eof, Tok_class, Tok_return, Tok_tr,
Tok_translate, Tok_Ident, Tok_Package,
Tok_Comment, Tok_String, Tok_Colon, Tok_Dot,
@@ -196,7 +201,7 @@ static int getToken()
while ( !metAsterSlash ) {
yyCh = getChar();
if ( yyCh == EOF ) {
- yyMsg() << "Unterminated Java comment.\n";
+ yyMsg() << qPrintable(LU::tr("Unterminated Java comment.\n"));
return Tok_Comment;
}
@@ -232,7 +237,7 @@ static int getToken()
else {
int sub(yyCh.toLower().toAscii() - 87);
if( sub > 15 || sub < 10) {
- yyMsg() << "Invalid Unicode value.\n";
+ yyMsg() << qPrintable(LU::tr("Invalid Unicode value.\n"));
break;
}
unicode += sub;
@@ -255,7 +260,7 @@ static int getToken()
}
if ( yyCh != QLatin1Char('"') )
- yyMsg() << "Unterminated string.\n";
+ yyMsg() << qPrintable(LU::tr("Unterminated string.\n"));
yyCh = getChar();
@@ -368,8 +373,9 @@ static bool matchString( QString &s )
if (yyTok == Tok_String)
s += yyString;
else {
- yyMsg() << "String used in translation can contain only literals"
- " concatenated with other literals, not expressions or numbers.\n";
+ yyMsg() << qPrintable(LU::tr(
+ "String used in translation can contain only literals"
+ " concatenated with other literals, not expressions or numbers.\n"));
return false;
}
yyTok = getToken();
@@ -477,7 +483,7 @@ static void parse( Translator *tor )
yyScope.push(new Scope(yyIdent, Scope::Clazz, yyLineNo));
}
else {
- yyMsg() << "'class' must be followed by a class name.\n";
+ yyMsg() << qPrintable(LU::tr("'class' must be followed by a class name.\n"));
break;
}
while (!match(Tok_LeftBrace)) {
@@ -549,7 +555,7 @@ static void parse( Translator *tor )
case Tok_RightBrace:
if ( yyScope.isEmpty() ) {
- yyMsg() << "Excess closing brace.\n";
+ yyMsg() << qPrintable(LU::tr("Excess closing brace.\n"));
}
else
delete (yyScope.pop());
@@ -578,7 +584,7 @@ static void parse( Translator *tor )
yyPackage.append(QLatin1String("."));
break;
default:
- yyMsg() << "'package' must be followed by package name.\n";
+ yyMsg() << qPrintable(LU::tr("'package' must be followed by package name.\n"));
break;
}
yyTok = getToken();
@@ -591,9 +597,9 @@ static void parse( Translator *tor )
}
if ( !yyScope.isEmpty() )
- yyMsg(yyScope.top()->line) << "Unbalanced opening brace.\n";
+ yyMsg(yyScope.top()->line) << qPrintable(LU::tr("Unbalanced opening brace.\n"));
else if ( yyParenDepth != 0 )
- yyMsg(yyParenLineNo) << "Unbalanced opening parenthesis.\n";
+ yyMsg(yyParenLineNo) << qPrintable(LU::tr("Unbalanced opening parenthesis.\n"));
}
@@ -601,8 +607,7 @@ bool loadJava(Translator &translator, const QString &filename, ConversionData &c
{
QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
- cd.appendError(QString::fromLatin1("Cannot open %1: %2")
- .arg(filename, file.errorString()));
+ cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
return false;
}
diff --git a/tools/linguist/lupdate/main.cpp b/tools/linguist/lupdate/main.cpp
index a575192005..d96e205a46 100644
--- a/tools/linguist/lupdate/main.cpp
+++ b/tools/linguist/lupdate/main.cpp
@@ -52,6 +52,8 @@
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QTextCodec>
+#include <QtCore/QTranslator>
+#include <QtCore/QLibraryInfo>
#include <iostream>
@@ -79,7 +81,7 @@ static void recursiveFileInfoList(const QDir &dir,
static void printUsage()
{
- printOut(QObject::tr(
+ printOut(LU::tr(
"Usage:\n"
" lupdate [options] [project-file]...\n"
" lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file\n\n"
@@ -186,7 +188,7 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
else if (options & AbsoluteLocations)
tor.setLocationsType(Translator::AbsoluteLocations);
if (options & Verbose)
- printOut(QObject::tr("Updating '%1'...\n").arg(fn));
+ printOut(LU::tr("Updating '%1'...\n").arg(fn));
UpdateOptions theseOptions = options;
if (tor.locationsType() == Translator::NoLocations) // Could be set from file
@@ -201,7 +203,7 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
}
if (options & PluralOnly) {
if (options & Verbose)
- printOut(QObject::tr("Stripping non plural forms in '%1'...\n").arg(fn));
+ printOut(LU::tr("Stripping non plural forms in '%1'...\n").arg(fn));
out.stripNonPluralForms();
}
if (options & NoObsolete)
@@ -359,12 +361,12 @@ static void processProjects(
if (visitor.contains(QLatin1String("TRANSLATIONS"))) {
if (parentTor) {
if (topLevel) {
- std::cerr << "lupdate warning: TS files from command line "
- "will override TRANSLATIONS in " << qPrintable(proFile) << ".\n";
+ std::cerr << qPrintable(LU::tr("lupdate warning: TS files from command line "
+ "will override TRANSLATIONS in %1.\n").arg(proFile));
goto noTrans;
} else if (nestComplain) {
- std::cerr << "lupdate warning: TS files from command line "
- "prevent recursing into " << qPrintable(proFile) << ".\n";
+ std::cerr << qPrintable(LU::tr("lupdate warning: TS files from command line "
+ "prevent recursing into %1.\n").arg(proFile));
continue;
}
}
@@ -395,8 +397,8 @@ static void processProjects(
noTrans:
if (!parentTor) {
if (topLevel)
- std::cerr << "lupdate warning: no TS files specified. Only diagnostics "
- "will be produced for '" << qPrintable(proFile) << "'.\n";
+ std::cerr << qPrintable(LU::tr("lupdate warning: no TS files specified. Only diagnostics "
+ "will be produced for '%1'.\n").arg(proFile));
Translator tor;
processProject(nestComplain, pfi, visitor, options, codecForSource,
targetLanguage, sourceLanguage, &tor, fail);
@@ -410,6 +412,16 @@ static void processProjects(
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
+ QTranslator translator;
+ QTranslator qtTranslator;
+ QString sysLocale = QLocale::system().name();
+ QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ if (translator.load(QLatin1String("linguist_") + sysLocale, resourceDir)
+ && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) {
+ app.installTranslator(&translator);
+ app.installTranslator(&qtTranslator);
+ }
+
m_defaultExtensions = QLatin1String("java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml");
QStringList args = app.arguments();
@@ -613,7 +625,7 @@ int main(int argc, char **argv)
proFiles << file;
} else if (fi.isDir()) {
if (options & Verbose)
- printOut(QObject::tr("Scanning directory '%1'...\n").arg(file));
+ printOut(LU::tr("Scanning directory '%1'...\n").arg(file));
QDir dir = QDir(fi.filePath());
projectRoots.insert(dir.absolutePath() + QLatin1Char('/'));
if (extensionsNameFilters.isEmpty()) {
diff --git a/tools/linguist/lupdate/merge.cpp b/tools/linguist/lupdate/merge.cpp
index fffdf9ba4a..87c150c60a 100644
--- a/tools/linguist/lupdate/merge.cpp
+++ b/tools/linguist/lupdate/merge.cpp
@@ -44,15 +44,19 @@
#include "simtexth.h"
#include "translator.h"
+#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtCore/QMap>
#include <QtCore/QStringList>
#include <QtCore/QTextCodec>
#include <QtCore/QVector>
-
QT_BEGIN_NAMESPACE
+class LU {
+ Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
static bool isDigitFriendly(QChar c)
{
return c.isPunct() || c.isSpace();
@@ -485,24 +489,24 @@ Translator merge(const Translator &tor, const Translator &virginTor,
if (options & Verbose) {
int totalFound = neww + known;
- err += QObject::tr(" Found %n source text(s) (%1 new and %2 already existing)\n", 0, totalFound).arg(neww).arg(known);
+ err += LU::tr(" Found %n source text(s) (%1 new and %2 already existing)\n", 0, totalFound).arg(neww).arg(known);
if (obsoleted) {
if (options & NoObsolete) {
- err += QObject::tr(" Removed %n obsolete entries\n", 0, obsoleted);
+ err += LU::tr(" Removed %n obsolete entries\n", 0, obsoleted);
} else {
- err += QObject::tr(" Kept %n obsolete entries\n", 0, obsoleted);
+ err += LU::tr(" Kept %n obsolete entries\n", 0, obsoleted);
}
}
if (sameNumberHeuristicCount)
- err += QObject::tr(" Number heuristic provided %n translation(s)\n",
+ err += LU::tr(" Number heuristic provided %n translation(s)\n",
0, sameNumberHeuristicCount);
if (sameTextHeuristicCount)
- err += QObject::tr(" Same-text heuristic provided %n translation(s)\n",
+ err += LU::tr(" Same-text heuristic provided %n translation(s)\n",
0, sameTextHeuristicCount);
if (similarTextHeuristicCount)
- err += QObject::tr(" Similar-text heuristic provided %n translation(s)\n",
+ err += LU::tr(" Similar-text heuristic provided %n translation(s)\n",
0, similarTextHeuristicCount);
}
return outTor;
diff --git a/tools/linguist/lupdate/qdeclarative.cpp b/tools/linguist/lupdate/qdeclarative.cpp
index 2377416f8a..01b9a1d1cf 100644
--- a/tools/linguist/lupdate/qdeclarative.cpp
+++ b/tools/linguist/lupdate/qdeclarative.cpp
@@ -65,8 +65,26 @@
QT_BEGIN_NAMESPACE
+class LU {
+ Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
using namespace QDeclarativeJS;
+class Comment
+{
+public:
+ Comment() : lastLine(-1) {}
+ QString extracomment;
+ QString msgid;
+ TranslatorMessage::ExtraData extra;
+ QString sourcetext;
+ int lastLine;
+
+ bool isValid() const
+ { return !extracomment.isEmpty() || !msgid.isEmpty() || !sourcetext.isEmpty() || !extra.isEmpty(); }
+};
+
class FindTrCalls: protected AST::Visitor
{
public:
@@ -78,6 +96,8 @@ public:
accept(node);
}
+ QList<Comment> comments;
+
protected:
using AST::Visitor::visit;
using AST::Visitor::endVisit;
@@ -114,10 +134,23 @@ protected:
plural = true;
}
+ QString id;
+ QString extracomment;
+ TranslatorMessage::ExtraData extra;
+ Comment scomment = findComment(node->firstSourceLocation().startLine);
+ if (scomment.isValid()) {
+ extracomment = scomment.extracomment;
+ extra = scomment.extra;
+ id = scomment.msgid;
+ }
+
TranslatorMessage msg(m_component, source,
comment, QString(), m_fileName,
node->firstSourceLocation().startLine, QStringList(),
TranslatorMessage::Unfinished, plural);
+ msg.setExtraComment(extracomment.simplified());
+ msg.setId(id);
+ msg.setExtras(extra);
m_translator->extend(msg);
}
} else if (idExpr->name->asString() == QLatin1String("qsTranslate") ||
@@ -140,6 +173,17 @@ protected:
}
if (!literal && m_bSource.isEmpty())
return;
+
+ QString id;
+ QString extracomment;
+ TranslatorMessage::ExtraData extra;
+ Comment scomment = findComment(node->firstSourceLocation().startLine);
+ if (scomment.isValid()) {
+ extracomment = scomment.extracomment;
+ extra = scomment.extra;
+ id = scomment.msgid;
+ }
+
source = literal ? literal->value->asString() : m_bSource;
AST::ArgumentList *commentNode = sourceNode->next;
if (commentNode && AST::cast<AST::StringLiteral *>(commentNode->expression)) {
@@ -155,15 +199,48 @@ protected:
comment, QString(), m_fileName,
node->firstSourceLocation().startLine, QStringList(),
TranslatorMessage::Unfinished, plural);
+ msg.setExtraComment(extracomment.simplified());
+ msg.setId(id);
+ msg.setExtras(extra);
m_translator->extend(msg);
}
+ } else if (idExpr->name->asString() == QLatin1String("qsTrId") ||
+ idExpr->name->asString() == QLatin1String("QT_TRID_NOOP")) {
+ if (!node->arguments)
+ return;
+ AST::StringLiteral *literal = AST::cast<AST::StringLiteral *>(node->arguments->expression);
+ if (literal) {
+
+ QString extracomment;
+ QString sourcetext;
+ TranslatorMessage::ExtraData extra;
+ Comment comment = findComment(node->firstSourceLocation().startLine);
+ if (comment.isValid()) {
+ extracomment = comment.extracomment;
+ sourcetext = comment.sourcetext;
+ extra = comment.extra;
+ }
+
+ const QString id = literal->value->asString();
+ bool plural = node->arguments->next;
+
+ TranslatorMessage msg(QString(), QString(),
+ QString(), QString(), m_fileName,
+ node->firstSourceLocation().startLine, QStringList(),
+ TranslatorMessage::Unfinished, plural);
+ msg.setExtraComment(extracomment.simplified());
+ msg.setId(id);
+ msg.setExtras(extra);
+ m_translator->extend(msg);
+ }
}
}
}
private:
- bool createString(AST::BinaryExpression *b) {
+ bool createString(AST::BinaryExpression *b)
+ {
if (!b || b->op != 0)
return false;
AST::BinaryExpression *l = AST::cast<AST::BinaryExpression *>(b->left);
@@ -187,6 +264,23 @@ private:
return true;
}
+ Comment findComment(int loc)
+ {
+ if (comments.isEmpty())
+ return Comment();
+
+ int i = 0;
+ int commentLoc = comments.at(i).lastLine;
+ while (commentLoc <= loc) {
+ if (commentLoc == loc)
+ return comments.at(i);
+ if (i == comments.count()-1)
+ break;
+ commentLoc = comments.at(++i).lastLine;
+ }
+ return Comment();
+ }
+
Translator *m_translator;
QString m_fileName;
QString m_component;
@@ -236,13 +330,60 @@ QString createErrorString(const QString &filename, const QString &code, Parser &
return errorString;
}
+bool processComment(const QChar *chars, int length, Comment &comment)
+{
+ // Try to match the logic of the QtScript parser.
+ if (!length)
+ return comment.isValid();
+ if (*chars == QLatin1Char(':') && chars[1].isSpace()) {
+ comment.extracomment += QString(chars+1, length-1);
+ } else if (*chars == QLatin1Char('=') && chars[1].isSpace()) {
+ comment.msgid = QString(chars+2, length-2).simplified();
+ } else if (*chars == QLatin1Char('~') && chars[1].isSpace()) {
+ QString text = QString(chars+2, length-2).trimmed();
+ int k = text.indexOf(QLatin1Char(' '));
+ if (k > -1)
+ comment.extra.insert(text.left(k), text.mid(k + 1).trimmed());
+ } else if (*chars == QLatin1Char('%') && chars[1].isSpace()) {
+ comment.sourcetext.reserve(comment.sourcetext.length() + length-2);
+ ushort *ptr = (ushort *)comment.sourcetext.data() + comment.sourcetext.length();
+ int p = 2, c;
+ forever {
+ if (p >= length)
+ break;
+ c = chars[p++].unicode();
+ if (isspace(c))
+ continue;
+ if (c != '"')
+ break;
+ forever {
+ if (p >= length)
+ break;
+ c = chars[p++].unicode();
+ if (c == '"')
+ break;
+ if (c == '\\') {
+ if (p >= length)
+ break;
+ c = chars[p++].unicode();
+ if (c == '\n')
+ break;
+ *ptr++ = '\\';
+ }
+ *ptr++ = c;
+ }
+ }
+ comment.sourcetext.resize(ptr - (ushort *)comment.sourcetext.data());
+ }
+ return comment.isValid();
+}
+
bool loadQml(Translator &translator, const QString &filename, ConversionData &cd)
{
cd.m_sourceFileName = filename;
QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
- cd.appendError(QString::fromLatin1("Cannot open %1: %2")
- .arg(filename, file.errorString()));
+ cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
return false;
}
@@ -260,6 +401,25 @@ bool loadQml(Translator &translator, const QString &filename, ConversionData &cd
if (parser.parse()) {
FindTrCalls trCalls;
+
+ // build up a list of comments that contain translation information.
+ for (int i = 0; i < driver.comments().size(); ++i) {
+ AST::SourceLocation loc = driver.comments().at(i);
+ QString commentStr = code.mid(loc.offset, loc.length);
+
+ if (trCalls.comments.isEmpty() || trCalls.comments.last().lastLine != int(loc.startLine)) {
+ Comment comment;
+ comment.lastLine = loc.startLine+1;
+ if (processComment(commentStr.constData(), commentStr.length(), comment))
+ trCalls.comments.append(comment);
+ } else {
+ Comment &lastComment = trCalls.comments.last();
+ lastComment.lastLine += 1;
+ processComment(commentStr.constData(), commentStr.length(), lastComment);
+ }
+ }
+
+ //find all tr calls in the code
trCalls(&translator, filename, parser.ast());
} else {
QString error = createErrorString(filename, code, parser);
diff --git a/tools/linguist/lupdate/qscript.cpp b/tools/linguist/lupdate/qscript.cpp
index 188ac3695f..5323022d09 100644
--- a/tools/linguist/lupdate/qscript.cpp
+++ b/tools/linguist/lupdate/qscript.cpp
@@ -47,6 +47,7 @@
#include <translator.h>
+#include <QtCore/QCoreApplication>
#include <QtCore/qdebug.h>
#include <QtCore/qnumeric.h>
#include <QtCore/qstring.h>
@@ -62,6 +63,10 @@
QT_BEGIN_NAMESPACE
+class LU {
+ Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
class QScriptGrammar
{
public:
@@ -770,13 +775,16 @@ const int QScriptGrammar::action_check [] = {
static void recordMessage(
Translator *tor, const QString &context, const QString &text, const QString &comment,
- const QString &extracomment, bool plural, const QString &fileName, int lineNo)
+ const QString &extracomment, const QString &msgid, const TranslatorMessage::ExtraData &extra,
+ bool plural, const QString &fileName, int lineNo)
{
TranslatorMessage msg(
context, text, comment, QString(),
fileName, lineNo, QStringList(),
TranslatorMessage::Unfinished, plural);
msg.setExtraComment(extracomment.simplified());
+ msg.setId(msgid);
+ msg.setExtras(extra);
tor->extend(msg);
}
@@ -784,15 +792,23 @@ static void recordMessage(
namespace QScript
{
+class CommentProcessor
+{
+public:
+ virtual ~CommentProcessor() {}
+ virtual void processComment(const QChar *chars, int length) = 0;
+};
+
class Lexer
{
public:
- Lexer();
+ Lexer(CommentProcessor *);
~Lexer();
- void setCode(const QString &c, int lineno);
+ void setCode(const QString &c, const QString &fileName, int lineno);
int lex();
+ QString fileName() const { return yyfilename; }
int currentLineNo() const { return yylineno; }
int currentColumnNo() const { return yycolumn; }
@@ -872,6 +888,7 @@ public:
{ err = NoError; }
private:
+ QString yyfilename;
int yylineno;
bool done;
char *buffer8;
@@ -925,6 +942,8 @@ private:
void syncProhibitAutomaticSemicolon();
+ void processComment(const QChar *, int);
+
const QChar *code;
uint length;
int yycolumn;
@@ -951,6 +970,8 @@ private:
ParenthesesState parenthesesState;
int parenthesesCount;
bool prohibitAutomaticSemicolon;
+
+ CommentProcessor *commentProcessor;
};
} // namespace QScript
@@ -1027,7 +1048,7 @@ double integerFromString(const char *buf, int size, int radix)
} // namespace QScript
-QScript::Lexer::Lexer()
+QScript::Lexer::Lexer(QScript::CommentProcessor *proc)
:
yylineno(0),
size8(128), size16(128), restrKeyword(false),
@@ -1038,7 +1059,8 @@ QScript::Lexer::Lexer()
err(NoError),
check_reserved(true),
parenthesesState(IgnoreParentheses),
- prohibitAutomaticSemicolon(false)
+ prohibitAutomaticSemicolon(false),
+ commentProcessor(proc)
{
// allocate space for read buffers
buffer8 = new char[size8];
@@ -1053,9 +1075,10 @@ QScript::Lexer::~Lexer()
delete [] buffer16;
}
-void QScript::Lexer::setCode(const QString &c, int lineno)
+void QScript::Lexer::setCode(const QString &c, const QString &fileName, int lineno)
{
errmsg = QString();
+ yyfilename = fileName;
yylineno = lineno;
yycolumn = 1;
restrKeyword = false;
@@ -1404,10 +1427,12 @@ int QScript::Lexer::lex()
} else if (current == '/' && next1 == '/') {
recordStartPos();
shift(1);
+ Q_ASSERT(pos16 == 0);
state = InSingleLineComment;
} else if (current == '/' && next1 == '*') {
recordStartPos();
shift(1);
+ Q_ASSERT(pos16 == 0);
state = InMultiLineComment;
} else if (current == 0) {
syncProhibitAutomaticSemicolon();
@@ -1466,7 +1491,7 @@ int QScript::Lexer::lex()
else {
setDone(Bad);
err = IllegalCharacter;
- errmsg = QLatin1String("Illegal character");
+ errmsg = LU::tr("Illegal character");
}
}
break;
@@ -1477,7 +1502,7 @@ int QScript::Lexer::lex()
} else if (current == 0 || isLineTerminator()) {
setDone(Bad);
err = UnclosedStringLiteral;
- errmsg = QLatin1String("Unclosed string at end of line");
+ errmsg = LU::tr("Unclosed string at end of line");
} else if (current == '\\') {
state = InEscapeSequence;
} else {
@@ -1503,7 +1528,7 @@ int QScript::Lexer::lex()
} else {
setDone(Bad);
err = IllegalEscapeSequence;
- errmsg = QLatin1String("Illegal escape squence");
+ errmsg = LU::tr("Illegal escape squence");
}
} else if (current == 'x')
state = InHexEscape;
@@ -1542,14 +1567,17 @@ int QScript::Lexer::lex()
} else {
setDone(Bad);
err = IllegalUnicodeEscapeSequence;
- errmsg = QLatin1String("Illegal unicode escape sequence");
+ errmsg = LU::tr("Illegal unicode escape sequence");
}
break;
case InSingleLineComment:
if (isLineTerminator()) {
+ record16(current); // include newline
+ processComment(buffer16, pos16);
shiftWindowsLineBreak();
yylineno++;
yycolumn = 0;
+ pos16 = 0;
terminator = true;
bol = true;
if (restrKeyword) {
@@ -1559,19 +1587,25 @@ int QScript::Lexer::lex()
state = Start;
} else if (current == 0) {
setDone(Eof);
+ } else {
+ record16(current);
}
break;
case InMultiLineComment:
if (current == 0) {
setDone(Bad);
err = UnclosedComment;
- errmsg = QLatin1String("Unclosed comment at end of file");
+ errmsg = LU::tr("Unclosed comment at end of file");
} else if (isLineTerminator()) {
shiftWindowsLineBreak();
yylineno++;
} else if (current == '*' && next1 == '/') {
+ processComment(buffer16, pos16);
+ pos16 = 0;
state = Start;
shift(1);
+ } else {
+ record16(current);
}
break;
case InIdentifier:
@@ -1649,7 +1683,7 @@ int QScript::Lexer::lex()
} else {
setDone(Bad);
err = IllegalExponentIndicator;
- errmsg = QLatin1String("Illegal syntax for exponential number");
+ errmsg = LU::tr("Illegal syntax for exponential number");
}
break;
case InExponent:
@@ -1675,7 +1709,7 @@ int QScript::Lexer::lex()
&& isIdentLetter(current)) {
state = Bad;
err = IllegalIdentifier;
- errmsg = QLatin1String("Identifier cannot start with numeric literal");
+ errmsg = LU::tr("Identifier cannot start with numeric literal");
}
// terminate string
@@ -1994,7 +2028,7 @@ bool QScript::Lexer::scanRegExp(RegExpBodyPrefix prefix)
while (1) {
if (isLineTerminator() || current == 0) {
- errmsg = QLatin1String("Unterminated regular expression literal");
+ errmsg = LU::tr("Unterminated regular expression literal");
return false;
}
else if (current != '/' || lastWasEscape == true)
@@ -2033,10 +2067,15 @@ void QScript::Lexer::syncProhibitAutomaticSemicolon()
}
}
+void QScript::Lexer::processComment(const QChar *chars, int length)
+{
+ commentProcessor->processComment(chars, length);
+}
+
class Translator;
-class QScriptParser: protected QScriptGrammar
+class QScriptParser: protected QScriptGrammar, public QScript::CommentProcessor
{
public:
QVariant val;
@@ -2052,10 +2091,12 @@ public:
QScriptParser();
~QScriptParser();
- bool parse(QScript::Lexer *lexer,
- const QString &fileName,
- Translator *translator);
+ void setLexer(QScript::Lexer *);
+
+ bool parse(Translator *translator);
+ QString fileName() const
+ { return lexer->fileName(); }
inline QString errorMessage() const
{ return error_message; }
inline int errorLineNumber() const
@@ -2072,6 +2113,10 @@ protected:
inline Location &loc(int index)
{ return location_stack [tos + index - 2]; }
+ std::ostream &yyMsg(int line = 0);
+
+ virtual void processComment(const QChar *, int);
+
protected:
int tos;
int stack_size;
@@ -2081,6 +2126,13 @@ protected:
QString error_message;
int error_lineno;
int error_column;
+
+private:
+ QScript::Lexer *lexer;
+ QString extracomment;
+ QString msgid;
+ QString sourcetext;
+ TranslatorMessage::ExtraData extra;
};
inline void QScriptParser::reallocateStack()
@@ -2107,7 +2159,8 @@ QScriptParser::QScriptParser():
stack_size(0),
sym_stack(0),
state_stack(0),
- location_stack(0)
+ location_stack(0),
+ lexer(0)
{
}
@@ -2129,10 +2182,14 @@ static inline QScriptParser::Location location(QScript::Lexer *lexer)
return loc;
}
-bool QScriptParser::parse(QScript::Lexer *lexer,
- const QString &fileName,
- Translator *translator)
+void QScriptParser::setLexer(QScript::Lexer *lex)
{
+ lexer = lex;
+}
+
+bool QScriptParser::parse(Translator *translator)
+{
+ Q_ASSERT(lexer != 0);
const int INITIAL_STATE = 0;
int yytoken = -1;
@@ -2214,44 +2271,70 @@ case 8: {
case 66: {
QString name = sym(1).toString();
if ((name == QLatin1String("qsTranslate")) || (name == QLatin1String("QT_TRANSLATE_NOOP"))) {
+ if (!sourcetext.isEmpty())
+ yyMsg(identLineNo) << qPrintable(LU::tr("//% cannot be used with %1(). Ignoring\n").arg(name));
QVariantList args = sym(2).toList();
if (args.size() < 2) {
- std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
- << qPrintable(name) << "() requires at least two arguments.\n";
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least two arguments.\n").arg(name));
} else {
if ((args.at(0).type() != QVariant::String)
|| (args.at(1).type() != QVariant::String)) {
- std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
- << qPrintable(name) << "(): both arguments must be literal strings.\n";
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1(): both arguments must be literal strings.\n").arg(name));
} else {
QString context = args.at(0).toString();
QString text = args.at(1).toString();
QString comment = args.value(2).toString();
- QString extracomment;
bool plural = (args.size() > 4);
recordMessage(translator, context, text, comment, extracomment,
- plural, fileName, identLineNo);
+ msgid, extra, plural, fileName(), identLineNo);
}
}
+ sourcetext.clear();
+ extracomment.clear();
+ msgid.clear();
+ extra.clear();
} else if ((name == QLatin1String("qsTr")) || (name == QLatin1String("QT_TR_NOOP"))) {
+ if (!sourcetext.isEmpty())
+ yyMsg(identLineNo) << qPrintable(LU::tr("//% cannot be used with %1(). Ignoring\n").arg(name));
QVariantList args = sym(2).toList();
if (args.size() < 1) {
- std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
- << qPrintable(name) << "() requires at least one argument.\n";
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least one argument.\n").arg(name));
} else {
if (args.at(0).type() != QVariant::String) {
- std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
- << qPrintable(name) << "(): text to translate must be a literal string.\n";
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1(): text to translate must be a literal string.\n").arg(name));
} else {
- QString context = QFileInfo(fileName).baseName();
+ QString context = QFileInfo(fileName()).baseName();
QString text = args.at(0).toString();
QString comment = args.value(1).toString();
- QString extracomment;
bool plural = (args.size() > 2);
recordMessage(translator, context, text, comment, extracomment,
- plural, fileName, identLineNo);
+ msgid, extra, plural, fileName(), identLineNo);
}
}
+ sourcetext.clear();
+ extracomment.clear();
+ msgid.clear();
+ extra.clear();
+ } else if ((name == QLatin1String("qsTrId")) || (name == QLatin1String("QT_TRID_NOOP"))) {
+ if (!msgid.isEmpty())
+ yyMsg(identLineNo) << qPrintable(LU::tr("//= cannot be used with %1(). Ignoring\n").arg(name));
+ QVariantList args = sym(2).toList();
+ if (args.size() < 1) {
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least one argument.\n").arg(name));
+ } else {
+ if (args.at(0).type() != QVariant::String) {
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1(): identifier must be a literal string.\n").arg(name));
+ } else {
+ msgid = args.at(0).toString();
+ bool plural = (args.size() > 1);
+ recordMessage(translator, QString(), sourcetext, QString(), extracomment,
+ msgid, extra, plural, fileName(), identLineNo);
+ }
+ }
+ sourcetext.clear();
+ extracomment.clear();
+ msgid.clear();
+ extra.clear();
}
} break;
@@ -2278,6 +2361,44 @@ case 94: {
sym(1) = QVariant();
} break;
+ case 171:
+
+ case 172:
+
+ case 173:
+
+ case 174:
+
+ case 175:
+
+ case 176:
+
+ case 177:
+
+ case 178:
+
+ case 179:
+
+ case 180:
+
+ case 181:
+
+ case 182:
+
+ case 183:
+
+ case 184:
+
+ case 185:
+ if (!sourcetext.isEmpty() || !extracomment.isEmpty() || !msgid.isEmpty() || !extra.isEmpty()) {
+ yyMsg() << qPrintable(LU::tr("Discarding unconsumed meta data\n"));
+ sourcetext.clear();
+ extracomment.clear();
+ msgid.clear();
+ extra.clear();
+ }
+ break;
+
} // switch
state_stack [tos] = nt_action (act, lhs [r] - TERMINAL_COUNT);
@@ -2332,7 +2453,9 @@ case 94: {
for (int s = 0; s < shifts; ++s)
{
if (first)
- error_message += QLatin1String ("Expected ");
+ //: Beginning of the string that contains
+ //: comma-separated list of expected tokens
+ error_message += LU::tr("Expected ");
else
error_message += QLatin1String (", ");
@@ -2356,13 +2479,69 @@ case 94: {
return false;
}
+std::ostream &QScriptParser::yyMsg(int line)
+{
+ return std::cerr << qPrintable(fileName()) << ':' << (line ? line : lexer->startLineNo()) << ": ";
+}
+
+void QScriptParser::processComment(const QChar *chars, int length)
+{
+ if (!length)
+ return;
+ // Try to match the logic of the C++ parser.
+ if (*chars == QLatin1Char(':') && chars[1].isSpace()) {
+ extracomment += QString(chars+2, length-2);
+ } else if (*chars == QLatin1Char('=') && chars[1].isSpace()) {
+ msgid = QString(chars+2, length-2).simplified();
+ } else if (*chars == QLatin1Char('~') && chars[1].isSpace()) {
+ QString text = QString(chars+2, length-2).trimmed();
+ int k = text.indexOf(QLatin1Char(' '));
+ if (k > -1)
+ extra.insert(text.left(k), text.mid(k + 1).trimmed());
+ } else if (*chars == QLatin1Char('%') && chars[1].isSpace()) {
+ sourcetext.reserve(sourcetext.length() + length-2);
+ ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
+ int p = 2, c;
+ forever {
+ if (p >= length)
+ break;
+ c = chars[p++].unicode();
+ if (isspace(c))
+ continue;
+ if (c != '"') {
+ yyMsg() << qPrintable(LU::tr("Unexpected character in meta string\n"));
+ break;
+ }
+ forever {
+ if (p >= length) {
+ whoops:
+ yyMsg() << qPrintable(LU::tr("Unterminated meta string\n"));
+ break;
+ }
+ c = chars[p++].unicode();
+ if (c == '"')
+ break;
+ if (c == '\\') {
+ if (p >= length)
+ goto whoops;
+ c = chars[p++].unicode();
+ if (c == '\n')
+ goto whoops;
+ *ptr++ = '\\';
+ }
+ *ptr++ = c;
+ }
+ }
+ sourcetext.resize(ptr - (ushort *)sourcetext.data());
+ }
+}
+
bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd)
{
QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
- cd.appendError(QString::fromLatin1("Cannot open %1: %2")
- .arg(filename, file.errorString()));
+ cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
return false;
}
QTextStream ts(&file);
@@ -2375,10 +2554,11 @@ bool loadQScript(Translator &translator, const QString &filename, ConversionData
ts.setAutoDetectUnicode(true);
QString code = ts.readAll();
- QScript::Lexer lexer;
- lexer.setCode(code, /*lineNumber=*/1);
QScriptParser parser;
- if (!parser.parse(&lexer, filename, &translator)) {
+ QScript::Lexer lexer(&parser);
+ lexer.setCode(code, filename, /*lineNumber=*/1);
+ parser.setLexer(&lexer);
+ if (!parser.parse(&translator)) {
std::cerr << qPrintable(filename) << ':' << parser.errorLineNumber() << ": "
<< qPrintable(parser.errorMessage()) << std::endl;
return false;
diff --git a/tools/linguist/lupdate/qscript.g b/tools/linguist/lupdate/qscript.g
index 857c58ab5d..3655f2e6ee 100644
--- a/tools/linguist/lupdate/qscript.g
+++ b/tools/linguist/lupdate/qscript.g
@@ -84,6 +84,7 @@
/.
#include <translator.h>
+#include <QtCore/QCoreApplication>
#include <QtCore/qdebug.h>
#include <QtCore/qnumeric.h>
#include <QtCore/qstring.h>
@@ -99,15 +100,22 @@
QT_BEGIN_NAMESPACE
+class LU {
+ Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
static void recordMessage(
Translator *tor, const QString &context, const QString &text, const QString &comment,
- const QString &extracomment, bool plural, const QString &fileName, int lineNo)
+ const QString &extracomment, const QString &msgid, const TranslatorMessage::ExtraData &extra,
+ bool plural, const QString &fileName, int lineNo)
{
TranslatorMessage msg(
context, text, comment, QString(),
fileName, lineNo, QStringList(),
TranslatorMessage::Unfinished, plural);
msg.setExtraComment(extracomment.simplified());
+ msg.setId(msgid);
+ msg.setExtras(extra);
tor->extend(msg);
}
@@ -115,15 +123,23 @@ static void recordMessage(
namespace QScript
{
+class CommentProcessor
+{
+public:
+ virtual ~CommentProcessor() {}
+ virtual void processComment(const QChar *chars, int length) = 0;
+};
+
class Lexer
{
public:
- Lexer();
+ Lexer(CommentProcessor *);
~Lexer();
- void setCode(const QString &c, int lineno);
+ void setCode(const QString &c, const QString &fileName, int lineno);
int lex();
+ QString fileName() const { return yyfilename; }
int currentLineNo() const { return yylineno; }
int currentColumnNo() const { return yycolumn; }
@@ -203,6 +219,7 @@ public:
{ err = NoError; }
private:
+ QString yyfilename;
int yylineno;
bool done;
char *buffer8;
@@ -256,6 +273,8 @@ private:
void syncProhibitAutomaticSemicolon();
+ void processComment(const QChar *, int);
+
const QChar *code;
uint length;
int yycolumn;
@@ -282,6 +301,8 @@ private:
ParenthesesState parenthesesState;
int parenthesesCount;
bool prohibitAutomaticSemicolon;
+
+ CommentProcessor *commentProcessor;
};
} // namespace QScript
@@ -358,7 +379,7 @@ double integerFromString(const char *buf, int size, int radix)
} // namespace QScript
-QScript::Lexer::Lexer()
+QScript::Lexer::Lexer(QScript::CommentProcessor *proc)
:
yylineno(0),
size8(128), size16(128), restrKeyword(false),
@@ -369,7 +390,8 @@ QScript::Lexer::Lexer()
err(NoError),
check_reserved(true),
parenthesesState(IgnoreParentheses),
- prohibitAutomaticSemicolon(false)
+ prohibitAutomaticSemicolon(false),
+ commentProcessor(proc)
{
// allocate space for read buffers
buffer8 = new char[size8];
@@ -384,9 +406,10 @@ QScript::Lexer::~Lexer()
delete [] buffer16;
}
-void QScript::Lexer::setCode(const QString &c, int lineno)
+void QScript::Lexer::setCode(const QString &c, const QString &fileName, int lineno)
{
errmsg = QString();
+ yyfilename = fileName;
yylineno = lineno;
yycolumn = 1;
restrKeyword = false;
@@ -735,10 +758,12 @@ int QScript::Lexer::lex()
} else if (current == '/' && next1 == '/') {
recordStartPos();
shift(1);
+ Q_ASSERT(pos16 == 0);
state = InSingleLineComment;
} else if (current == '/' && next1 == '*') {
recordStartPos();
shift(1);
+ Q_ASSERT(pos16 == 0);
state = InMultiLineComment;
} else if (current == 0) {
syncProhibitAutomaticSemicolon();
@@ -797,7 +822,7 @@ int QScript::Lexer::lex()
else {
setDone(Bad);
err = IllegalCharacter;
- errmsg = QLatin1String("Illegal character");
+ errmsg = LU::tr("Illegal character");
}
}
break;
@@ -808,7 +833,7 @@ int QScript::Lexer::lex()
} else if (current == 0 || isLineTerminator()) {
setDone(Bad);
err = UnclosedStringLiteral;
- errmsg = QLatin1String("Unclosed string at end of line");
+ errmsg = LU::tr("Unclosed string at end of line");
} else if (current == '\\') {
state = InEscapeSequence;
} else {
@@ -834,7 +859,7 @@ int QScript::Lexer::lex()
} else {
setDone(Bad);
err = IllegalEscapeSequence;
- errmsg = QLatin1String("Illegal escape squence");
+ errmsg = LU::tr("Illegal escape squence");
}
} else if (current == 'x')
state = InHexEscape;
@@ -873,14 +898,17 @@ int QScript::Lexer::lex()
} else {
setDone(Bad);
err = IllegalUnicodeEscapeSequence;
- errmsg = QLatin1String("Illegal unicode escape sequence");
+ errmsg = LU::tr("Illegal unicode escape sequence");
}
break;
case InSingleLineComment:
if (isLineTerminator()) {
+ record16(current); // include newline
+ processComment(buffer16, pos16);
shiftWindowsLineBreak();
yylineno++;
yycolumn = 0;
+ pos16 = 0;
terminator = true;
bol = true;
if (restrKeyword) {
@@ -890,19 +918,25 @@ int QScript::Lexer::lex()
state = Start;
} else if (current == 0) {
setDone(Eof);
+ } else {
+ record16(current);
}
break;
case InMultiLineComment:
if (current == 0) {
setDone(Bad);
err = UnclosedComment;
- errmsg = QLatin1String("Unclosed comment at end of file");
+ errmsg = LU::tr("Unclosed comment at end of file");
} else if (isLineTerminator()) {
shiftWindowsLineBreak();
yylineno++;
} else if (current == '*' && next1 == '/') {
+ processComment(buffer16, pos16);
+ pos16 = 0;
state = Start;
shift(1);
+ } else {
+ record16(current);
}
break;
case InIdentifier:
@@ -980,7 +1014,7 @@ int QScript::Lexer::lex()
} else {
setDone(Bad);
err = IllegalExponentIndicator;
- errmsg = QLatin1String("Illegal syntax for exponential number");
+ errmsg = LU::tr("Illegal syntax for exponential number");
}
break;
case InExponent:
@@ -1006,7 +1040,7 @@ int QScript::Lexer::lex()
&& isIdentLetter(current)) {
state = Bad;
err = IllegalIdentifier;
- errmsg = QLatin1String("Identifier cannot start with numeric literal");
+ errmsg = LU::tr("Identifier cannot start with numeric literal");
}
// terminate string
@@ -1325,7 +1359,7 @@ bool QScript::Lexer::scanRegExp(RegExpBodyPrefix prefix)
while (1) {
if (isLineTerminator() || current == 0) {
- errmsg = QLatin1String("Unterminated regular expression literal");
+ errmsg = LU::tr("Unterminated regular expression literal");
return false;
}
else if (current != '/' || lastWasEscape == true)
@@ -1364,10 +1398,15 @@ void QScript::Lexer::syncProhibitAutomaticSemicolon()
}
}
+void QScript::Lexer::processComment(const QChar *chars, int length)
+{
+ commentProcessor->processComment(chars, length);
+}
+
class Translator;
-class QScriptParser: protected $table
+class QScriptParser: protected $table, public QScript::CommentProcessor
{
public:
QVariant val;
@@ -1383,10 +1422,12 @@ public:
QScriptParser();
~QScriptParser();
- bool parse(QScript::Lexer *lexer,
- const QString &fileName,
- Translator *translator);
+ void setLexer(QScript::Lexer *);
+ bool parse(Translator *translator);
+
+ QString fileName() const
+ { return lexer->fileName(); }
inline QString errorMessage() const
{ return error_message; }
inline int errorLineNumber() const
@@ -1403,6 +1444,10 @@ protected:
inline Location &loc(int index)
{ return location_stack [tos + index - 2]; }
+ std::ostream &yyMsg(int line = 0);
+
+ virtual void processComment(const QChar *, int);
+
protected:
int tos;
int stack_size;
@@ -1412,6 +1457,13 @@ protected:
QString error_message;
int error_lineno;
int error_column;
+
+private:
+ QScript::Lexer *lexer;
+ QString extracomment;
+ QString msgid;
+ QString sourcetext;
+ TranslatorMessage::ExtraData extra;
};
inline void QScriptParser::reallocateStack()
@@ -1438,7 +1490,8 @@ QScriptParser::QScriptParser():
stack_size(0),
sym_stack(0),
state_stack(0),
- location_stack(0)
+ location_stack(0),
+ lexer(0)
{
}
@@ -1460,10 +1513,14 @@ static inline QScriptParser::Location location(QScript::Lexer *lexer)
return loc;
}
-bool QScriptParser::parse(QScript::Lexer *lexer,
- const QString &fileName,
- Translator *translator)
+void QScriptParser::setLexer(QScript::Lexer *lex)
{
+ lexer = lex;
+}
+
+bool QScriptParser::parse(Translator *translator)
+{
+ Q_ASSERT(lexer != 0);
const int INITIAL_STATE = 0;
int yytoken = -1;
@@ -1630,44 +1687,70 @@ CallExpression: MemberExpression Arguments ;
case $rule_number: {
QString name = sym(1).toString();
if ((name == QLatin1String("qsTranslate")) || (name == QLatin1String("QT_TRANSLATE_NOOP"))) {
+ if (!sourcetext.isEmpty())
+ yyMsg(identLineNo) << qPrintable(LU::tr("//% cannot be used with %1(). Ignoring\n").arg(name));
QVariantList args = sym(2).toList();
if (args.size() < 2) {
- std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
- << qPrintable(name) << "() requires at least two arguments.\n";
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least two arguments.\n").arg(name));
} else {
if ((args.at(0).type() != QVariant::String)
|| (args.at(1).type() != QVariant::String)) {
- std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
- << qPrintable(name) << "(): both arguments must be literal strings.\n";
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1(): both arguments must be literal strings.\n").arg(name));
} else {
QString context = args.at(0).toString();
QString text = args.at(1).toString();
QString comment = args.value(2).toString();
- QString extracomment;
bool plural = (args.size() > 4);
recordMessage(translator, context, text, comment, extracomment,
- plural, fileName, identLineNo);
+ msgid, extra, plural, fileName(), identLineNo);
}
}
+ sourcetext.clear();
+ extracomment.clear();
+ msgid.clear();
+ extra.clear();
} else if ((name == QLatin1String("qsTr")) || (name == QLatin1String("QT_TR_NOOP"))) {
+ if (!sourcetext.isEmpty())
+ yyMsg(identLineNo) << qPrintable(LU::tr("//% cannot be used with %1(). Ignoring\n").arg(name));
QVariantList args = sym(2).toList();
if (args.size() < 1) {
- std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
- << qPrintable(name) << "() requires at least one argument.\n";
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least one argument.\n").arg(name));
} else {
if (args.at(0).type() != QVariant::String) {
- std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
- << qPrintable(name) << "(): text to translate must be a literal string.\n";
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1(): text to translate must be a literal string.\n").arg(name));
} else {
- QString context = QFileInfo(fileName).baseName();
+ QString context = QFileInfo(fileName()).baseName();
QString text = args.at(0).toString();
QString comment = args.value(1).toString();
- QString extracomment;
bool plural = (args.size() > 2);
recordMessage(translator, context, text, comment, extracomment,
- plural, fileName, identLineNo);
+ msgid, extra, plural, fileName(), identLineNo);
}
}
+ sourcetext.clear();
+ extracomment.clear();
+ msgid.clear();
+ extra.clear();
+ } else if ((name == QLatin1String("qsTrId")) || (name == QLatin1String("QT_TRID_NOOP"))) {
+ if (!msgid.isEmpty())
+ yyMsg(identLineNo) << qPrintable(LU::tr("//= cannot be used with %1(). Ignoring\n").arg(name));
+ QVariantList args = sym(2).toList();
+ if (args.size() < 1) {
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least one argument.\n").arg(name));
+ } else {
+ if (args.at(0).type() != QVariant::String) {
+ yyMsg(identLineNo) << qPrintable(LU::tr("%1(): identifier must be a literal string.\n").arg(name));
+ } else {
+ msgid = args.at(0).toString();
+ bool plural = (args.size() > 1);
+ recordMessage(translator, QString(), sourcetext, QString(), extracomment,
+ msgid, extra, plural, fileName(), identLineNo);
+ }
+ }
+ sourcetext.clear();
+ extracomment.clear();
+ msgid.clear();
+ extra.clear();
}
} break;
./
@@ -1813,20 +1896,73 @@ ExpressionNotInOpt: ;
ExpressionNotInOpt: ExpressionNotIn ;
Statement: Block ;
+/.
+ case $rule_number:
+./
Statement: VariableStatement ;
+/.
+ case $rule_number:
+./
Statement: EmptyStatement ;
+/.
+ case $rule_number:
+./
Statement: ExpressionStatement ;
+/.
+ case $rule_number:
+./
Statement: IfStatement ;
+/.
+ case $rule_number:
+./
Statement: IterationStatement ;
+/.
+ case $rule_number:
+./
Statement: ContinueStatement ;
+/.
+ case $rule_number:
+./
Statement: BreakStatement ;
+/.
+ case $rule_number:
+./
Statement: ReturnStatement ;
+/.
+ case $rule_number:
+./
Statement: WithStatement ;
+/.
+ case $rule_number:
+./
Statement: LabelledStatement ;
+/.
+ case $rule_number:
+./
Statement: SwitchStatement ;
+/.
+ case $rule_number:
+./
Statement: ThrowStatement ;
+/.
+ case $rule_number:
+./
Statement: TryStatement ;
+/.
+ case $rule_number:
+./
Statement: DebuggerStatement ;
+/.
+ case $rule_number:
+ if (!sourcetext.isEmpty() || !extracomment.isEmpty() || !msgid.isEmpty() || !extra.isEmpty()) {
+ yyMsg() << qPrintable(LU::tr("Discarding unconsumed meta data\n"));
+ sourcetext.clear();
+ extracomment.clear();
+ msgid.clear();
+ extra.clear();
+ }
+ break;
+./
Block: T_LBRACE StatementListOpt T_RBRACE ;
StatementList: Statement ;
@@ -1965,6 +2101,9 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ;
{
if (first)
error_message += QLatin1String ("Expected ");
+ //: Beginning of the string that contains
+ //: comma-separated list of expected tokens
+ error_message += LU::tr("Expected ");
else
error_message += QLatin1String (", ");
@@ -1988,13 +2127,69 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ;
return false;
}
+std::ostream &QScriptParser::yyMsg(int line)
+{
+ return std::cerr << qPrintable(fileName()) << ':' << (line ? line : lexer->startLineNo()) << ": ";
+}
+
+void QScriptParser::processComment(const QChar *chars, int length)
+{
+ if (!length)
+ return;
+ // Try to match the logic of the C++ parser.
+ if (*chars == QLatin1Char(':') && chars[1].isSpace()) {
+ extracomment += QString(chars+2, length-2);
+ } else if (*chars == QLatin1Char('=') && chars[1].isSpace()) {
+ msgid = QString(chars+2, length-2).simplified();
+ } else if (*chars == QLatin1Char('~') && chars[1].isSpace()) {
+ QString text = QString(chars+2, length-2).trimmed();
+ int k = text.indexOf(QLatin1Char(' '));
+ if (k > -1)
+ extra.insert(text.left(k), text.mid(k + 1).trimmed());
+ } else if (*chars == QLatin1Char('%') && chars[1].isSpace()) {
+ sourcetext.reserve(sourcetext.length() + length-2);
+ ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
+ int p = 2, c;
+ forever {
+ if (p >= length)
+ break;
+ c = chars[p++].unicode();
+ if (isspace(c))
+ continue;
+ if (c != '"') {
+ yyMsg() << qPrintable(LU::tr("Unexpected character in meta string\n"));
+ break;
+ }
+ forever {
+ if (p >= length) {
+ whoops:
+ yyMsg() << qPrintable(LU::tr("Unterminated meta string\n"));
+ break;
+ }
+ c = chars[p++].unicode();
+ if (c == '"')
+ break;
+ if (c == '\\') {
+ if (p >= length)
+ goto whoops;
+ c = chars[p++].unicode();
+ if (c == '\n')
+ goto whoops;
+ *ptr++ = '\\';
+ }
+ *ptr++ = c;
+ }
+ }
+ sourcetext.resize(ptr - (ushort *)sourcetext.data());
+ }
+}
+
bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd)
{
QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
- cd.appendError(QString::fromLatin1("Cannot open %1: %2")
- .arg(filename, file.errorString()));
+ cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
return false;
}
QTextStream ts(&file);
@@ -2007,10 +2202,11 @@ bool loadQScript(Translator &translator, const QString &filename, ConversionData
ts.setAutoDetectUnicode(true);
QString code = ts.readAll();
- QScript::Lexer lexer;
- lexer.setCode(code, /*lineNumber=*/1);
QScriptParser parser;
- if (!parser.parse(&lexer, filename, &translator)) {
+ QScript::Lexer lexer(&parser);
+ lexer.setCode(code, filename, /*lineNumber=*/1);
+ parser.setLexer(&lexer);
+ if (!parser.parse(&translator)) {
std::cerr << qPrintable(filename) << ':' << parser.errorLineNumber() << ": "
<< qPrintable(parser.errorMessage()) << std::endl;
return false;
diff --git a/tools/linguist/lupdate/ui.cpp b/tools/linguist/lupdate/ui.cpp
index 9e22922631..797ab1f006 100644
--- a/tools/linguist/lupdate/ui.cpp
+++ b/tools/linguist/lupdate/ui.cpp
@@ -43,6 +43,7 @@
#include <translator.h>
+#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtCore/QFile>
#include <QtCore/QString>
@@ -55,6 +56,10 @@
QT_BEGIN_NAMESPACE
+class LU {
+ Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
class UiReader : public QXmlDefaultHandler
{
public:
@@ -152,11 +157,10 @@ bool UiReader::characters(const QString &ch)
bool UiReader::fatalError(const QXmlParseException &exception)
{
- QString msg;
- msg.sprintf("XML error: Parse error at line %d, column %d (%s).",
- exception.lineNumber(), exception.columnNumber(),
- exception.message().toLatin1().data());
- m_cd.appendError(msg);
+ QString msg = LU::tr("XML error: Parse error at line %1, column %2 (%3).")
+ .arg(exception.lineNumber()).arg(exception.columnNumber())
+ .arg(exception.message());
+ m_cd.appendError(msg);
return false;
}
@@ -181,8 +185,7 @@ bool loadUI(Translator &translator, const QString &filename, ConversionData &cd)
cd.m_sourceFileName = filename;
QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
- cd.appendError(QString::fromLatin1("Cannot open %1: %2")
- .arg(filename, file.errorString()));
+ cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
return false;
}
QXmlInputSource in(&file);
@@ -196,7 +199,7 @@ bool loadUI(Translator &translator, const QString &filename, ConversionData &cd)
reader.setErrorHandler(&handler);
bool result = reader.parse(in);
if (!result)
- cd.appendError(QLatin1String("Parse error in UI file"));
+ cd.appendError(LU::tr("Parse error in UI file"));
reader.setContentHandler(0);
reader.setErrorHandler(0);
return result;
diff --git a/tools/linguist/shared/po.cpp b/tools/linguist/shared/po.cpp
index a6923328ae..3fd05eec50 100644
--- a/tools/linguist/shared/po.cpp
+++ b/tools/linguist/shared/po.cpp
@@ -50,8 +50,6 @@
#include <ctype.h>
-#define MAGIC_OBSOLETE_REFERENCE "Obsolete_PO_entries"
-
// Uncomment if you wish to hard wrap long lines in .po files. Note that this
// affects only msg strings, not comments.
//#define HARD_WRAP_LONG_WORDS
@@ -555,15 +553,26 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd)
TranslatorMessage msg;
msg.setContext(codec->toUnicode(item.context));
if (!item.references.isEmpty()) {
+ QString xrefs;
foreach (const QString &ref,
codec->toUnicode(item.references).split(
QRegExp(QLatin1String("\\s")), QString::SkipEmptyParts)) {
- int pos = ref.lastIndexOf(QLatin1Char(':'));
- if (pos != -1)
- msg.addReference(ref.left(pos), ref.mid(pos + 1).toInt());
+ int pos = ref.indexOf(QLatin1Char(':'));
+ int lpos = ref.lastIndexOf(QLatin1Char(':'));
+ if (pos != -1 && pos == lpos) {
+ bool ok;
+ int lno = ref.mid(pos + 1).toInt(&ok);
+ if (ok) {
+ msg.addReference(ref.left(pos), lno);
+ continue;
+ }
+ }
+ if (!xrefs.isEmpty())
+ xrefs += QLatin1Char(' ');
+ xrefs += ref;
}
- } else if (isObsolete) {
- msg.setFileName(QLatin1String(MAGIC_OBSOLETE_REFERENCE));
+ if (!xrefs.isEmpty())
+ item.extra[QLatin1String("po-references")] = xrefs;
}
msg.setId(codec->toUnicode(item.id));
msg.setSourceText(codec->toUnicode(item.msgId));
@@ -660,6 +669,8 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd)
item.isPlural = true;
} else if (line.startsWith("#~ msgctxt ")) {
item.tscomment = slurpEscapedString(lines, l, 11, "#~ ", cd);
+ if (qtContexts)
+ splitContext(&item.tscomment, &item.context);
} else {
cd.appendError(QString(QLatin1String("PO-format parse error in line %1: '%2'"))
.arg(l + 1).arg(codec->toUnicode(lines[l])));
@@ -773,11 +784,14 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &cd)
if (!msg.id().isEmpty())
out << QLatin1String("#. ts-id ") << msg.id() << '\n';
- if (!msg.fileName().isEmpty() && msg.fileName() != QLatin1String(MAGIC_OBSOLETE_REFERENCE)) {
+ QString xrefs = msg.extra(QLatin1String("po-references"));
+ if (!msg.fileName().isEmpty() || !xrefs.isEmpty()) {
QStringList refs;
foreach (const TranslatorMessage::Reference &ref, msg.allReferences())
refs.append(QString(QLatin1String("%2:%1"))
.arg(ref.lineNumber()).arg(ref.fileName()));
+ if (!xrefs.isEmpty())
+ refs << xrefs;
out << poWrappedEscapedLines(QLatin1String("#:"), true, refs.join(QLatin1String(" ")));
}
diff --git a/tools/linguist/shared/xliff.cpp b/tools/linguist/shared/xliff.cpp
index 64114260cc..70724efe97 100644
--- a/tools/linguist/shared/xliff.cpp
+++ b/tools/linguist/shared/xliff.cpp
@@ -53,6 +53,11 @@
#include <QtXml/QXmlParseException>
+// The string value is historical and reflects the main purpose: Keeping
+// obsolete entries separate from the magic file message (which both have
+// no location information, but typically reside at opposite ends of the file).
+#define MAGIC_OBSOLETE_REFERENCE "Obsolete_PO_entries"
+
QT_BEGIN_NAMESPACE
/**
@@ -692,6 +697,9 @@ bool XLIFFHandler::finalizeMessage(bool isPlural)
m_cd.appendError(QLatin1String("XLIFF syntax error: Message without source string."));
return false;
}
+ if (m_type == TranslatorMessage::Obsolete && m_refs.size() == 1
+ && m_refs.at(0).fileName() == QLatin1String(MAGIC_OBSOLETE_REFERENCE))
+ m_refs.clear();
TranslatorMessage msg(m_context, m_sources[0],
m_comment, QString(), QString(), -1,
m_translations, m_type, isPlural);
@@ -761,12 +769,15 @@ bool saveXLIFF(const Translator &translator, QIODevice &dev, ConversionData &cd)
QHash<QString, QList<QString> > contextOrder;
QList<QString> fileOrder;
foreach (const TranslatorMessage &msg, translator.messages()) {
- QHash<QString, QList<TranslatorMessage> > &file = messageOrder[msg.fileName()];
+ QString fn = msg.fileName();
+ if (fn.isEmpty() && msg.type() == TranslatorMessage::Obsolete)
+ fn = QLatin1String(MAGIC_OBSOLETE_REFERENCE);
+ QHash<QString, QList<TranslatorMessage> > &file = messageOrder[fn];
if (file.isEmpty())
- fileOrder.append(msg.fileName());
+ fileOrder.append(fn);
QList<TranslatorMessage> &context = file[msg.context()];
if (context.isEmpty())
- contextOrder[msg.fileName()].append(msg.context());
+ contextOrder[fn].append(msg.context());
context.append(msg);
}
diff --git a/tools/porting/src/errors.cpp b/tools/porting/src/errors.cpp
index 580efb5419..9081dbac46 100644
--- a/tools/porting/src/errors.cpp
+++ b/tools/porting/src/errors.cpp
@@ -44,8 +44,8 @@
QT_BEGIN_NAMESPACE
-QT_STATIC_CONST_IMPL Error& Errors::InternalError = Error( 1, -1, QLatin1String("Internal Error") );
-QT_STATIC_CONST_IMPL Error& Errors::SyntaxError = Error( 2, -1, QLatin1String("Syntax Error before '%1'") );
-QT_STATIC_CONST_IMPL Error& Errors::ParseError = Error( 3, -1, QLatin1String("Parse Error before '%1'") );
+QT_STATIC_CONST_IMPL Error Errors::InternalError = Error( 1, -1, QLatin1String("Internal Error") );
+QT_STATIC_CONST_IMPL Error Errors::SyntaxError = Error( 2, -1, QLatin1String("Syntax Error before '%1'") );
+QT_STATIC_CONST_IMPL Error Errors::ParseError = Error( 3, -1, QLatin1String("Parse Error before '%1'") );
QT_END_NAMESPACE
diff --git a/tools/porting/src/errors.h b/tools/porting/src/errors.h
index f0ad6917af..dbac833f0c 100644
--- a/tools/porting/src/errors.h
+++ b/tools/porting/src/errors.h
@@ -61,9 +61,9 @@ public:
class Errors
{
public:
- QT_STATIC_CONST Error& InternalError;
- QT_STATIC_CONST Error& SyntaxError;
- QT_STATIC_CONST Error& ParseError;
+ QT_STATIC_CONST Error InternalError;
+ QT_STATIC_CONST Error SyntaxError;
+ QT_STATIC_CONST Error ParseError;
};
QT_END_NAMESPACE
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 698b516673..bc71b6e276 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -3177,7 +3177,14 @@ QString HtmlGenerator::highlightedCode(const QString& markedCode,
if (parseArg(src, typeTag, &i, srcSize, &arg, &par1)) {
par1 = QStringRef();
const Node* n = marker->resolveTarget(arg.toString(), myTree, relative, self);
- addLink(linkForNode(n,relative), arg, &html);
+ if (n && n->subType() == Node::QmlBasicType) {
+ if (relative && relative->subType() == Node::QmlClass)
+ addLink(linkForNode(n,relative), arg, &html);
+ else
+ html += arg.toString();
+ }
+ else
+ addLink(linkForNode(n,relative), arg, &html);
handled = true;
}
else if (parseArg(src, headerTag, &i, srcSize, &arg, &par1)) {
@@ -3539,7 +3546,7 @@ QString HtmlGenerator::linkForNode(const Node *node, const Node *relative)
return QString();
if (node->access() == Node::Private)
return QString();
-
+
fn = fileName(node);
/* if (!node->url().isEmpty())
return fn;*/
diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp
index fa7efeed41..2bfe38ed92 100644
--- a/tools/qdoc3/main.cpp
+++ b/tools/qdoc3/main.cpp
@@ -148,7 +148,7 @@ static void printHelp()
*/
static void printVersion()
{
- QString s = QString(tr("qdoc version ")) + QString(QT_VERSION_STR);
+ QString s = tr("qdoc version %1").arg(QT_VERSION_STR);
Location::information(s);
}
diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro
index 5bedc29877..ae0bf255a7 100644
--- a/tools/qdoc3/qdoc3.pro
+++ b/tools/qdoc3/qdoc3.pro
@@ -6,6 +6,7 @@ DEFINES += QT_NO_CAST_TO_ASCII
qdoc_bootstrapped {
include(../../src/tools/bootstrap/bootstrap.pri)
+ SOURCES += ../../src/corelib/plugin/quuid.cpp
DEFINES -= QT_NO_CAST_FROM_ASCII
DEFINES += QT_NO_TRANSLATION
} else {
diff --git a/tools/qdoc3/test/assistant.qdocconf b/tools/qdoc3/test/assistant.qdocconf
index 8cf57226bf..836c4bf955 100644
--- a/tools/qdoc3/test/assistant.qdocconf
+++ b/tools/qdoc3/test/assistant.qdocconf
@@ -6,7 +6,7 @@ include(qt-defines.qdocconf)
project = Qt Assistant
description = Qt Assistant Manual
-url = http://qt.nokia.com/doc/4.7
+url = http://doc.qt.nokia.com/4.7/
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
diff --git a/tools/qdoc3/test/designer.qdocconf b/tools/qdoc3/test/designer.qdocconf
index b1f37dc5ed..91366196f3 100644
--- a/tools/qdoc3/test/designer.qdocconf
+++ b/tools/qdoc3/test/designer.qdocconf
@@ -6,7 +6,7 @@ include(qt-defines.qdocconf)
project = Qt Designer
description = Qt Designer Manual
-url = http://qt.nokia.com/doc/4.7
+url = http://doc.qt.nokia.com/4.7/
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
@@ -18,6 +18,9 @@ qhp.Designer.virtualFolder = qdoc
qhp.Designer.indexTitle = Qt Designer Manual
qhp.Designer.extraFiles = images/bg_l.png \
images/bg_l_blank.png \
+ images/bg_ll_blank.png \
+ images/bg_ul_blank.png \
+ images/header_bg.png \
images/bg_r.png \
images/box_bg.png \
images/breadcrumb.png \
@@ -25,12 +28,12 @@ qhp.Designer.extraFiles = images/bg_l.png \
images/bullet_dn.png \
images/bullet_sq.png \
images/bullet_up.png \
+ images/arrow_down.png \
images/feedbackground.png \
images/horBar.png \
images/page.png \
images/page_bg.png \
images/sprites-combined.png \
- images/arrow-down.png \
images/spinner.gif \
images/stylesheet-coffee-plastique.png \
images/taskmenuextension-example.png \
@@ -38,7 +41,10 @@ qhp.Designer.extraFiles = images/bg_l.png \
images/dynamiclayouts-example.png \
scripts/functions.js \
scripts/jquery.js \
- style/OfflineStyle.css \
+ scripts/narrow.js \
+ scripts/superfish.js \
+ style/narrow.css \
+ style/superfish.css \
style/style_ie6.css \
style/style_ie7.css \
style/style_ie8.css \
diff --git a/tools/qdoc3/test/linguist.qdocconf b/tools/qdoc3/test/linguist.qdocconf
index 26fb55c9b6..696802a34c 100644
--- a/tools/qdoc3/test/linguist.qdocconf
+++ b/tools/qdoc3/test/linguist.qdocconf
@@ -6,7 +6,7 @@ include(qt-defines.qdocconf)
project = Qt Linguist
description = Qt Linguist Manual
-url = http://qt.nokia.com/doc/4.7
+url = http://doc.qt.nokia.com/4.7/
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
@@ -18,6 +18,9 @@ qhp.Linguist.virtualFolder = qdoc
qhp.Linguist.indexTitle = Qt Linguist Manual
qhp.Linguist.extraFiles = images/bg_l.png \
images/bg_l_blank.png \
+ images/bg_ll_blank.png \
+ images/bg_ul_blank.png \
+ images/header_bg.png \
images/bg_r.png \
images/box_bg.png \
images/breadcrumb.png \
@@ -25,20 +28,23 @@ qhp.Linguist.extraFiles = images/bg_l.png \
images/bullet_dn.png \
images/bullet_sq.png \
images/bullet_up.png \
+ images/arrow_down.png \
images/feedbackground.png \
images/horBar.png \
images/page.png \
images/page_bg.png \
images/sprites-combined.png \
- images/arrow-down.png \
-s images/spinner.gif \
+ images/spinner.gif \
images/stylesheet-coffee-plastique.png \
images/taskmenuextension-example.png \
images/coloreditorfactoryimage.png \
images/dynamiclayouts-example.png \
scripts/functions.js \
scripts/jquery.js \
- style/OfflineStyle.css \
+ scripts/narrow.js \
+ scripts/superfish.js \
+ style/narrow.css \
+ style/superfish.css \
style/style_ie6.css \
style/style_ie7.css \
style/style_ie8.css \
diff --git a/tools/qdoc3/test/qdeclarative.qdocconf b/tools/qdoc3/test/qdeclarative.qdocconf
index 80bca29e5c..45f48a6c92 100644
--- a/tools/qdoc3/test/qdeclarative.qdocconf
+++ b/tools/qdoc3/test/qdeclarative.qdocconf
@@ -28,32 +28,38 @@ qhp.Qml.indexTitle = Qml Reference
# Files not referenced in any qdoc file
# See also extraimages.HTML
qhp.Qml.extraFiles = images/bg_l.png \
- images/bg_l_blank.png \
- images/bg_r.png \
- images/box_bg.png \
- images/breadcrumb.png \
- images/bullet_gt.png \
- images/bullet_dn.png \
- images/bullet_sq.png \
- images/bullet_up.png \
- images/feedbackground.png \
- images/horBar.png \
- images/page.png \
- images/page_bg.png \
- images/sprites-combined.png \
- images/arrow-down.png \
- images/spinner.png \
- images/stylesheet-coffee-plastique.png \
- images/taskmenuextension-example.png \
- images/coloreditorfactoryimage.png \
- images/dynamiclayouts-example.png \
- scripts/functions.js \
- scripts/jquery.js \
- style/OfflineStyle.css \
- style/style_ie6.css \
- style/style_ie7.css \
- style/style_ie8.css \
- style/style.css
+ images/bg_l_blank.png \
+ images/bg_ll_blank.png \
+ images/bg_ul_blank.png \
+ images/header_bg.png \
+ images/bg_r.png \
+ images/box_bg.png \
+ images/breadcrumb.png \
+ images/bullet_gt.png \
+ images/bullet_dn.png \
+ images/bullet_sq.png \
+ images/bullet_up.png \
+ images/arrow_down.png \
+ images/feedbackground.png \
+ images/horBar.png \
+ images/page.png \
+ images/page_bg.png \
+ images/sprites-combined.png \
+ images/spinner.gif \
+ images/stylesheet-coffee-plastique.png \
+ images/taskmenuextension-example.png \
+ images/coloreditorfactoryimage.png \
+ images/dynamiclayouts-example.png \
+ scripts/functions.js \
+ scripts/jquery.js \
+ scripts/narrow.js \
+ scripts/superfish.js \
+ style/narrow.css \
+ style/superfish.css \
+ style/style_ie6.css \
+ style/style_ie7.css \
+ style/style_ie8.css \
+ style/style.css
qhp.Qml.filterAttributes = qt 4.7.0 qtrefdoc
qhp.Qml.customFilters.Qt.name = Qt 4.7.0
diff --git a/tools/qdoc3/test/qmake.qdocconf b/tools/qdoc3/test/qmake.qdocconf
index f06912962d..8125166431 100644
--- a/tools/qdoc3/test/qmake.qdocconf
+++ b/tools/qdoc3/test/qmake.qdocconf
@@ -17,32 +17,38 @@ qhp.qmake.namespace = com.trolltech.qmake.470
qhp.qmake.virtualFolder = qdoc
qhp.qmake.indexTitle = QMake Manual
qhp.qmake.extraFiles = images/bg_l.png \
- images/bg_l_blank.png \
- images/bg_r.png \
- images/box_bg.png \
- images/breadcrumb.png \
- images/bullet_gt.png \
- images/bullet_dn.png \
- images/bullet_sq.png \
- images/bullet_up.png \
- images/feedbackground.png \
- images/horBar.png \
- images/page.png \
- images/page_bg.png \
- images/sprites-combined.png \
- images/arrow-down.png \
- images/spinner.gif \
- images/stylesheet-coffee-plastique.png \
- images/taskmenuextension-example.png \
- images/coloreditorfactoryimage.png \
- images/dynamiclayouts-example.png \
- scripts/functions.js \
- scripts/jquery.js \
- style/OfflineStyle.css \
- style/style_ie6.css \
- style/style_ie7.css \
- style/style_ie8.css \
- style/style.css
+ images/bg_l_blank.png \
+ images/bg_ll_blank.png \
+ images/bg_ul_blank.png \
+ images/header_bg.png \
+ images/bg_r.png \
+ images/box_bg.png \
+ images/breadcrumb.png \
+ images/bullet_gt.png \
+ images/bullet_dn.png \
+ images/bullet_sq.png \
+ images/bullet_up.png \
+ images/arrow_down.png \
+ images/feedbackground.png \
+ images/horBar.png \
+ images/page.png \
+ images/page_bg.png \
+ images/sprites-combined.png \
+ images/spinner.gif \
+ images/stylesheet-coffee-plastique.png \
+ images/taskmenuextension-example.png \
+ images/coloreditorfactoryimage.png \
+ images/dynamiclayouts-example.png \
+ scripts/functions.js \
+ scripts/jquery.js \
+ scripts/narrow.js \
+ scripts/superfish.js \
+ style/narrow.css \
+ style/superfish.css \
+ style/style_ie6.css \
+ style/style_ie7.css \
+ style/style_ie8.css \
+ style/style.css
qhp.qmake.filterAttributes = qt 4.7.0 tools qmake
qhp.qmake.customFilters.qmake.name = qmake Manual
diff --git a/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf b/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
index 7701cae066..e0bb630759 100644
--- a/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
@@ -32,6 +32,9 @@ qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.0
qhp.Qt.extraFiles = index.html \
images/bg_l.png \
images/bg_l_blank.png \
+ images/bg_ll_blank.png \
+ images/bg_ul_blank.png \
+ images/header_bg.png \
images/bg_r.png \
images/box_bg.png \
images/breadcrumb.png \
@@ -39,12 +42,12 @@ qhp.Qt.extraFiles = index.html \
images/bullet_dn.png \
images/bullet_sq.png \
images/bullet_up.png \
+ images/arrow_down.png \
images/feedbackground.png \
images/horBar.png \
images/page.png \
images/page_bg.png \
images/sprites-combined.png \
- images/arrow-down.png \
images/spinner.gif \
images/stylesheet-coffee-plastique.png \
images/taskmenuextension-example.png \
@@ -52,17 +55,10 @@ qhp.Qt.extraFiles = index.html \
images/dynamiclayouts-example.png \
scripts/functions.js \
scripts/jquery.js \
- scripts/shBrushCpp.js \
- scripts/shCore.js \
- scripts/shLegacy.js \
scripts/narrow.js \
scripts/superfish.js \
- style/shCore.css \
- style/shThemeDefault.css \
style/narrow.css \
style/superfish.css \
- style/superfish_skin.css \
- style/OfflineStyle.css \
style/style_ie6.css \
style/style_ie7.css \
style/style_ie8.css \
diff --git a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
index be459d82c1..297c6eb5a8 100644
--- a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
@@ -32,6 +32,9 @@ qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.0
qhp.Qt.extraFiles = index.html \
images/bg_l.png \
images/bg_l_blank.png \
+ images/bg_ll_blank.png \
+ images/bg_ul_blank.png \
+ images/header_bg.png \
images/bg_r.png \
images/box_bg.png \
images/breadcrumb.png \
@@ -39,12 +42,12 @@ qhp.Qt.extraFiles = index.html \
images/bullet_dn.png \
images/bullet_sq.png \
images/bullet_up.png \
+ images/arrow_down.png \
images/feedbackground.png \
images/horBar.png \
images/page.png \
images/page_bg.png \
images/sprites-combined.png \
- images/arrow-down.png \
images/spinner.gif \
images/stylesheet-coffee-plastique.png \
images/taskmenuextension-example.png \
@@ -52,17 +55,10 @@ qhp.Qt.extraFiles = index.html \
images/dynamiclayouts-example.png \
scripts/functions.js \
scripts/jquery.js \
- scripts/shBrushCpp.js \
- scripts/shCore.js \
- scripts/shLegacy.js \
scripts/narrow.js \
scripts/superfish.js \
- style/shCore.css \
- style/shThemeDefault.css \
style/narrow.css \
style/superfish.css \
- style/superfish_skin.css \
- style/OfflineStyle.css \
style/style_ie6.css \
style/style_ie7.css \
style/style_ie8.css \
diff --git a/tools/qdoc3/test/qt-defines.qdocconf b/tools/qdoc3/test/qt-defines.qdocconf
index 9e41d93001..51ee0d355c 100644
--- a/tools/qdoc3/test/qt-defines.qdocconf
+++ b/tools/qdoc3/test/qt-defines.qdocconf
@@ -20,49 +20,43 @@ codeindent = 1
# 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 \
+ 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 \
- shBrushCpp.js \
- shCore.js \
- shLegacy.js \
narrow.js \
superfish.js \
jquery.js
styles.HTML = style.css \
- shCore.css \
- shThemeDefault.css \
narrow.css \
superfish.css \
superfish_skin.css \
- OfflineStyle.css \
style_ie6.css \
style_ie7.css \
style_ie8.css
diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf
index c70bcaf2ae..dc56ac91fc 100644
--- a/tools/qdoc3/test/qt-html-templates.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates.qdocconf
@@ -89,7 +89,7 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\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" \
+ " <li class=\"defaultLink\"><a href=\"qmlelements.html\">QML elements</a></li>\n" \
" </ul> \n" \
" </div>\n" \
" </div>\n" \
@@ -98,10 +98,13 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \
" Qt Topics</h2>\n" \
" <div id=\"list002\" class=\"list\">\n" \
" <ul id=\"ul002\" >\n" \
- " <li class=\"defaultLink\"><a href=\"qt-basic-concepts.html\">Basic Qt architecture</a></li>\n" \
- " <li class=\"defaultLink\"><a href=\"qtquick.html\">Device UI's &amp; Qt Quick</a></li>\n" \
- " <li class=\"defaultLink\"><a href=\"qt-gui-concepts.html\">Desktop UI components</a></li>\n" \
- " <li class=\"defaultLink\"><a href=\"platform-specific.html\">Platform-specific info</a></li>\n" \
+ " <li><a href=\"qt-basic-concepts.html\">Programming with Qt</a></li> \n" \
+ " <li><a href=\"qtquick.html\">Device UI's &amp; Qt Quick</a></li> \n" \
+ " <li><a href=\"qt-gui-concepts.html\">UI Design with Qt</a></li> \n" \
+ " <li><a href=\"developing-with-qt.html\">Cross-platform and Platform-specific</a></li> \n" \
+ " <li><a href=\"platform-specific.html\">Platform-specific info</a></li> \n" \
+ " <li><a href=\"technology-apis.html\">Qt and Key Technologies</a></li> \n" \
+ " <li><a href=\"best-practices.html\">How-To's and Best Practices</a></li> \n" \
" </ul> \n" \
" </div>\n" \
" </div>\n" \
@@ -161,12 +164,22 @@ HTML.footer = " <!-- /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> <div class=\"note\"><p>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></div>\n" \
+ " <p id=\"noteHead\">Thank you for giving your feedback. <div 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>.</div></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" \
- " </div>\n"
+ " <!--/div -->\n" \
+ "<script type=\"text/javascript\">\n" \
+ " var _gaq = _gaq || [];\n" \
+ " _gaq.push([\'_setAccount\', \'UA-4457116-5\']);\n" \
+ " _gaq.push([\'_trackPageview\']);\n" \
+ " (function() {\n" \
+ " var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;\n" \
+ " ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n" \
+ " var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\n" \
+ " })();\n" \
+ "</script>\n"
diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf
index f78bd38956..4f0d1592e9 100644
--- a/tools/qdoc3/test/qt.qdocconf
+++ b/tools/qdoc3/test/qt.qdocconf
@@ -50,17 +50,10 @@ qhp.Qt.extraFiles = index.html \
images/dynamiclayouts-example.png \
scripts/functions.js \
scripts/jquery.js \
- scripts/shBrushCpp.js \
- scripts/shCore.js \
- scripts/shLegacy.js \
scripts/narrow.js \
scripts/superfish.js \
- style/shCore.css \
- style/shThemeDefault.css \
style/narrow.css \
style/superfish.css \
- style/superfish_skin.css \
- style/OfflineStyle.css \
style/style_ie6.css \
style/style_ie7.css \
style/style_ie8.css \
diff --git a/tools/qdoc3/test/qt_ja_JP.qdocconf b/tools/qdoc3/test/qt_ja_JP.qdocconf
index d4141c7535..f9ce1427fc 100644
--- a/tools/qdoc3/test/qt_ja_JP.qdocconf
+++ b/tools/qdoc3/test/qt_ja_JP.qdocconf
@@ -57,17 +57,10 @@ qhp.Qt.extraFiles = index.html \
images/dynamiclayouts-example.png \
scripts/functions.js \
scripts/jquery.js \
- scripts/shBrushCpp.js \
- scripts/shCore.js \
- scripts/shLegacy.js \
scripts/narrow.js \
scripts/superfish.js \
- style/shCore.css \
- style/shThemeDefault.css \
style/narrow.css \
style/superfish.css \
- style/superfish_skin.css \
- style/OfflineStyle.css \
style/style_ie6.css \
style/style_ie7.css \
style/style_ie8.css \
diff --git a/tools/qdoc3/test/qt_zh_CN.qdocconf b/tools/qdoc3/test/qt_zh_CN.qdocconf
index 4983f9e6a6..5bf8171097 100644
--- a/tools/qdoc3/test/qt_zh_CN.qdocconf
+++ b/tools/qdoc3/test/qt_zh_CN.qdocconf
@@ -34,6 +34,9 @@ qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.0
qhp.Qt.extraFiles = index.html \
images/bg_l.png \
images/bg_l_blank.png \
+ images/bg_ll_blank.png \
+ images/bg_ul_blank.png \
+ images/header_bg.png \
images/bg_r.png \
images/box_bg.png \
images/breadcrumb.png \
@@ -41,6 +44,7 @@ qhp.Qt.extraFiles = index.html \
images/bullet_dn.png \
images/bullet_sq.png \
images/bullet_up.png \
+ images/arrow_down.png \
images/feedbackground.png \
images/horBar.png \
images/page.png \
@@ -53,6 +57,13 @@ qhp.Qt.extraFiles = index.html \
images/dynamiclayouts-example.png \
scripts/functions.js \
scripts/jquery.js \
+ scripts/narrow.js \
+ scripts/superfish.js \
+ style/narrow.css \
+ style/superfish.css \
+ style/style_ie6.css \
+ style/style_ie7.css \
+ style/style_ie8.css \
style/style.css
language = Cpp
diff --git a/tools/qml/deviceorientation.cpp b/tools/qml/deviceorientation.cpp
index e7c70d5fde..d3014ad150 100644
--- a/tools/qml/deviceorientation.cpp
+++ b/tools/qml/deviceorientation.cpp
@@ -53,6 +53,11 @@ public:
return m_orientation;
}
+ void pauseListening() {
+ }
+ void resumeListening() {
+ }
+
void setOrientation(Orientation o) {
if (o != m_orientation) {
m_orientation = o;
diff --git a/tools/qml/deviceorientation.h b/tools/qml/deviceorientation.h
index 817bfc8528..487ebd4834 100644
--- a/tools/qml/deviceorientation.h
+++ b/tools/qml/deviceorientation.h
@@ -63,6 +63,9 @@ public:
virtual Orientation orientation() const = 0;
virtual void setOrientation(Orientation) = 0;
+ virtual void pauseListening() = 0;
+ virtual void resumeListening() = 0;
+
static DeviceOrientation *instance();
signals:
diff --git a/tools/qml/deviceorientation_maemo5.cpp b/tools/qml/deviceorientation_maemo5.cpp
index e942579b70..a324820d5f 100644
--- a/tools/qml/deviceorientation_maemo5.cpp
+++ b/tools/qml/deviceorientation_maemo5.cpp
@@ -50,23 +50,9 @@ class MaemoOrientation : public DeviceOrientation
Q_OBJECT
public:
MaemoOrientation()
- : o(UnknownOrientation)
+ : o(UnknownOrientation), sensorEnabled(false)
{
- // enable the orientation sensor
- QDBusConnection::systemBus().call(
- QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
- MCE_REQUEST_IF, MCE_ACCELEROMETER_ENABLE_REQ));
-
- // query the initial orientation
- QDBusMessage reply = QDBusConnection::systemBus().call(
- QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
- MCE_REQUEST_IF, MCE_DEVICE_ORIENTATION_GET));
- if (reply.type() == QDBusMessage::ErrorMessage) {
- qWarning("Unable to retrieve device orientation: %s", qPrintable(reply.errorMessage()));
- } else {
- o = toOrientation(reply.arguments().value(0).toString());
- }
-
+ resumeListening();
// connect to the orientation change signal
QDBusConnection::systemBus().connect(QString(), MCE_SIGNAL_PATH, MCE_SIGNAL_IF,
MCE_DEVICE_ORIENTATION_SIG,
@@ -91,6 +77,40 @@ public:
{
}
+ void pauseListening() {
+ if (sensorEnabled) {
+ // disable the orientation sensor
+ QDBusConnection::systemBus().call(
+ QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
+ MCE_REQUEST_IF, MCE_ACCELEROMETER_DISABLE_REQ));
+ sensorEnabled = false;
+ }
+ }
+
+ void resumeListening() {
+ if (!sensorEnabled) {
+ // enable the orientation sensor
+ QDBusConnection::systemBus().call(
+ QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
+ MCE_REQUEST_IF, MCE_ACCELEROMETER_ENABLE_REQ));
+
+ QDBusMessage reply = QDBusConnection::systemBus().call(
+ QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
+ MCE_REQUEST_IF, MCE_DEVICE_ORIENTATION_GET));
+
+ if (reply.type() == QDBusMessage::ErrorMessage) {
+ qWarning("Unable to retrieve device orientation: %s", qPrintable(reply.errorMessage()));
+ } else {
+ Orientation orientation = toOrientation(reply.arguments().value(0).toString());
+ if (o != orientation) {
+ o = orientation;
+ emit orientationChanged();
+ }
+ sensorEnabled = true;
+ }
+ }
+ }
+
private Q_SLOTS:
void deviceOrientationChanged(const QString &newOrientation)
{
@@ -116,6 +136,7 @@ private:
private:
Orientation o;
+ bool sensorEnabled;
};
DeviceOrientation* DeviceOrientation::instance()
diff --git a/tools/qml/deviceorientation_symbian.cpp b/tools/qml/deviceorientation_symbian.cpp
index 307c4174af..7710cf9b19 100644
--- a/tools/qml/deviceorientation_symbian.cpp
+++ b/tools/qml/deviceorientation_symbian.cpp
@@ -52,7 +52,7 @@ class SymbianOrientation : public DeviceOrientation, public MSensrvDataListener
Q_OBJECT
public:
SymbianOrientation()
- : DeviceOrientation(), m_current(UnknownOrientation), m_sensorChannel(0)
+ : DeviceOrientation(), m_current(UnknownOrientation), m_sensorChannel(0), m_channelOpen(false)
{
TRAP_IGNORE(initL());
if (!m_sensorChannel)
@@ -84,6 +84,7 @@ public:
TRAP(error, m_sensorChannel->OpenChannelL());
if (!error) {
TRAP(error, m_sensorChannel->StartDataListeningL(this, 1, 1, 0));
+ m_channelOpen = true;
break;
}
if (error) {
@@ -107,6 +108,30 @@ public:
private:
DeviceOrientation::Orientation m_current;
CSensrvChannel *m_sensorChannel;
+ bool m_channelOpen;
+ void pauseListening() {
+ if (m_sensorChannel && m_channelOpen) {
+ m_sensorChannel->StopDataListening();
+ m_sensorChannel->CloseChannel();
+ m_channelOpen = false;
+ }
+ }
+
+ void resumeListening() {
+ if (m_sensorChannel && !m_channelOpen) {
+ TRAPD(error, m_sensorChannel->OpenChannelL());
+ if (!error) {
+ TRAP(error, m_sensorChannel->StartDataListeningL(this, 1, 1, 0));
+ if (!error) {
+ m_channelOpen = true;
+ }
+ }
+ if (error) {
+ delete m_sensorChannel;
+ m_sensorChannel = 0;
+ }
+ }
+ }
void DataReceived(CSensrvChannel &channel, TInt count, TInt dataLost)
{
diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp
index 7421b5e320..78cd64d5d2 100644
--- a/tools/qml/main.cpp
+++ b/tools/qml/main.cpp
@@ -441,6 +441,7 @@ static QDeclarativeViewer *createViewer()
QDeclarativeViewer *viewer = new QDeclarativeViewer(0, wflags);
viewer->setAttribute(Qt::WA_DeleteOnClose, true);
+ viewer->setUseGL(opts.useGL);
if (!opts.scriptopts.isEmpty()) {
viewer->setScriptOptions(opts.scriptOptions);
@@ -492,8 +493,6 @@ void showViewer(QDeclarativeViewer *viewer)
viewer->showMaximized();
else
viewer->show();
-
- viewer->setUseGL(opts.useGL);
viewer->raise();
}
diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro
index d7940051d7..3927dd677f 100644
--- a/tools/qml/qml.pro
+++ b/tools/qml/qml.pro
@@ -34,7 +34,7 @@ maemo5 {
}
symbian {
TARGET.UID3 = 0x20021317
- include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
TARGET.EPOCHEAPSIZE = 0x20000 0x4000000
TARGET.CAPABILITY = NetworkServices ReadUserData
!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp
index 321b7fdec6..b38e80dc6c 100644
--- a/tools/qml/qmlruntime.cpp
+++ b/tools/qml/qmlruntime.cpp
@@ -1208,8 +1208,10 @@ bool QDeclarativeViewer::event(QEvent *event)
{
if (event->type() == QEvent::WindowActivate) {
Runtime::instance()->setActiveWindow(true);
+ DeviceOrientation::instance()->resumeListening();
} else if (event->type() == QEvent::WindowDeactivate) {
Runtime::instance()->setActiveWindow(false);
+ DeviceOrientation::instance()->pauseListening();
}
return QWidget::event(event);
}
diff --git a/tools/qml/startup/startup.qml b/tools/qml/startup/startup.qml
index be675980f5..ddc7217530 100644
--- a/tools/qml/startup/startup.qml
+++ b/tools/qml/startup/startup.qml
@@ -49,14 +49,53 @@ Rectangle {
Component.onCompleted: treatsApp.state = "part1"
signal animationFinished
- Logo {
- id: logo
- x: 165
- y: 35
- rotation: -15
- scale: 0.6
- opacity: 0
- onAnimationFinished: treatsApp.animationFinished();
+ Item {
+ width: 800
+ height: 480
+ anchors.centerIn: parent
+ clip: true
+
+ Logo {
+ id: logo
+ x: 165
+ y: 35
+ rotation: -15
+ scale: 0.6
+ opacity: 0
+ onAnimationFinished: treatsApp.animationFinished();
+ }
+
+ Item {
+ id: quickblur
+ x: 800//325
+ y: 344
+ Image {
+ id: blurText
+ source: "quick-blur.png"
+ }
+ Image {
+ id: quickregular
+ x: -1
+ y: 0
+ opacity: 0
+ source: "quick-regular.png"
+ }
+ Image {
+ id: star
+ x: -1
+ y: 0
+ opacity: 0
+ source: "white-star.png"
+ smooth: true
+ NumberAnimation on rotation {
+ from: 0
+ to: 360
+ loops: NumberAnimation.Infinite
+ running: true
+ duration: 2000
+ }
+ }
+ }
}
states: [
@@ -96,39 +135,6 @@ Rectangle {
}
]
-
- Item {
- id: quickblur
- x: 800//325
- y: 344
- Image {
- id: blurText
- source: "quick-blur.png"
- }
- Image {
- id: quickregular
- x: -1
- y: 0
- opacity: 0
- source: "quick-regular.png"
- }
- Image {
- id: star
- x: -1
- y: 0
- opacity: 0
- source: "white-star.png"
- smooth: true
- NumberAnimation on rotation {
- from: 0
- to: 360
- loops: NumberAnimation.Infinite
- running: true
- duration: 2000
- }
- }
- }
-
transitions: [
Transition {
ParallelAnimation {
diff --git a/tools/shared/qtpropertybrowser/qtpropertymanager.cpp b/tools/shared/qtpropertybrowser/qtpropertymanager.cpp
index d9ff10aa7c..8c7835ca5a 100644
--- a/tools/shared/qtpropertybrowser/qtpropertymanager.cpp
+++ b/tools/shared/qtpropertybrowser/qtpropertymanager.cpp
@@ -2399,15 +2399,23 @@ QString QtLocalePropertyManager::valueText(const QtProperty *property) const
if (it == d_ptr->m_values.constEnd())
return QString();
- QLocale loc = it.value();
+ const QLocale loc = it.value();
int langIdx = 0;
int countryIdx = 0;
- metaEnumProvider()->localeToIndex(loc.language(), loc.country(), &langIdx, &countryIdx);
- QString str = tr("%1, %2")
- .arg(metaEnumProvider()->languageEnumNames().at(langIdx))
- .arg(metaEnumProvider()->countryEnumNames(loc.language()).at(countryIdx));
- return str;
+ const QtMetaEnumProvider *me = metaEnumProvider();
+ me->localeToIndex(loc.language(), loc.country(), &langIdx, &countryIdx);
+ if (langIdx < 0) {
+ qWarning("QtLocalePropertyManager::valueText: Unknown language %d", loc.language());
+ return tr("<Invalid>");
+ }
+ const QString languageName = me->languageEnumNames().at(langIdx);
+ if (countryIdx < 0) {
+ qWarning("QtLocalePropertyManager::valueText: Unknown country %d for %s", loc.country(), qPrintable(languageName));
+ return languageName;
+ }
+ const QString countryName = me->countryEnumNames(loc.language()).at(countryIdx);
+ return tr("%1, %2").arg(languageName, countryName);
}
/*!
@@ -2635,8 +2643,8 @@ QString QtPointPropertyManager::valueText(const QtProperty *property) const
if (it == d_ptr->m_values.constEnd())
return QString();
const QPoint v = it.value();
- return QString(tr("(%1, %2)").arg(QString::number(v.x()))
- .arg(QString::number(v.y())));
+ return tr("(%1, %2)").arg(QString::number(v.x()))
+ .arg(QString::number(v.y()));
}
/*!
@@ -2876,8 +2884,8 @@ QString QtPointFPropertyManager::valueText(const QtProperty *property) const
return QString();
const QPointF v = it.value().val;
const int dec = it.value().decimals;
- return QString(tr("(%1, %2)").arg(QString::number(v.x(), 'f', dec))
- .arg(QString::number(v.y(), 'f', dec)));
+ return tr("(%1, %2)").arg(QString::number(v.x(), 'f', dec))
+ .arg(QString::number(v.y(), 'f', dec));
}
/*!
@@ -3196,8 +3204,8 @@ QString QtSizePropertyManager::valueText(const QtProperty *property) const
if (it == d_ptr->m_values.constEnd())
return QString();
const QSize v = it.value().val;
- return QString(tr("%1 x %2").arg(QString::number(v.width()))
- .arg(QString::number(v.height())));
+ return tr("%1 x %2").arg(QString::number(v.width()))
+ .arg(QString::number(v.height()));
}
/*!
@@ -3561,8 +3569,8 @@ QString QtSizeFPropertyManager::valueText(const QtProperty *property) const
return QString();
const QSizeF v = it.value().val;
const int dec = it.value().decimals;
- return QString(tr("%1 x %2").arg(QString::number(v.width(), 'f', dec))
- .arg(QString::number(v.height(), 'f', dec)));
+ return tr("%1 x %2").arg(QString::number(v.width(), 'f', dec))
+ .arg(QString::number(v.height(), 'f', dec));
}
/*!
@@ -3954,10 +3962,10 @@ QString QtRectPropertyManager::valueText(const QtProperty *property) const
if (it == d_ptr->m_values.constEnd())
return QString();
const QRect v = it.value().val;
- return QString(tr("[(%1, %2), %3 x %4]").arg(QString::number(v.x()))
- .arg(QString::number(v.y()))
- .arg(QString::number(v.width()))
- .arg(QString::number(v.height())));
+ return tr("[(%1, %2), %3 x %4]").arg(QString::number(v.x()))
+ .arg(QString::number(v.y()))
+ .arg(QString::number(v.width()))
+ .arg(QString::number(v.height()));
}
/*!
diff --git a/translations/assistant_sl.ts b/translations/assistant_sl.ts
new file mode 100644
index 0000000000..05429bdf08
--- /dev/null
+++ b/translations/assistant_sl.ts
@@ -0,0 +1,972 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+ <extra-po-header-po_revision_date>2010-08-28 14:36+0200</extra-po-header-po_revision_date>
+ <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+ <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+ <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+ <extra-po-header-project_id_version></extra-po-header-project_id_version>
+ <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+ <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <source>&amp;Close</source>
+ <translation>&amp;Zapri</translation>
+ </message>
+</context>
+<context>
+ <name>AboutLabel</name>
+ <message>
+ <source>Warning</source>
+ <translation>Opozorilo</translation>
+ </message>
+ <message>
+ <source>Unable to launch external application.
+</source>
+ <translation>Zunanjega programa ni moč zagnati.
+</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>V redu</translation>
+ </message>
+</context>
+<context>
+ <name>Assistant</name>
+ <message>
+ <source>Error registering documentation file &apos;%1&apos;: %2</source>
+ <translation>Napaka pri registraciji datoteke z dokumentacijo »%1«: %2</translation>
+ </message>
+ <message>
+ <source>Error: %1</source>
+ <translation>Napaka: %1</translation>
+ </message>
+ <message>
+ <source>Could not register documentation file
+%1
+
+Reason:
+%2</source>
+ <translation>Ni bilo moč registrirati datoteke z dokumentacijo
+%1
+
+Razlog:
+%2</translation>
+ </message>
+ <message>
+ <source>Documentation successfully registered.</source>
+ <translation>Dokumentacija je bila uspešno registrirana.</translation>
+ </message>
+ <message>
+ <source>Could not unregister documentation file
+%1
+
+Reason:
+%2</source>
+ <translation>Ni bilo moč od-registrirati datoteke z dokumentacijo
+%1
+
+Razlog:
+%2</translation>
+ </message>
+ <message>
+ <source>Documentation successfully unregistered.</source>
+ <translation>Dokumentacija je bila uspešno odstranjena iz registrira.</translation>
+ </message>
+ <message>
+ <source>Error reading collection file &apos;%1&apos;: %2.</source>
+ <translation>Napaka pri branju datoteke zbirke »%1«: %2.</translation>
+ </message>
+ <message>
+ <source>Error creating collection file &apos;%1&apos;: %2.</source>
+ <translation>Napaka pri ustvarjanju datoteke zbirke »%1«: %2.</translation>
+ </message>
+ <message>
+ <source>Cannot load sqlite database driver!</source>
+ <translation>Ni moč naložiti gonilnika za podatkovno zbirko SQLite.</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkDialog</name>
+ <message>
+ <source>Add Bookmark</source>
+ <translation>Dodaj zaznamek</translation>
+ </message>
+ <message>
+ <source>Bookmark:</source>
+ <translation>Zaznamek:</translation>
+ </message>
+ <message>
+ <source>Add in Folder:</source>
+ <translation>Dodaj v mapo:</translation>
+ </message>
+ <message>
+ <source>+</source>
+ <translation>+</translation>
+ </message>
+ <message>
+ <source>New Folder</source>
+ <translation>Nova mapa</translation>
+ </message>
+ <message>
+ <source>Rename Folder</source>
+ <translation>Preimenuj mapo</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkManager</name>
+ <message>
+ <source>Untitled</source>
+ <translation>Brez naslova</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Odstrani</translation>
+ </message>
+ <message>
+ <source>You are going to delete a Folder, this will also&lt;br&gt;remove it&apos;s content. Are you sure to continue?</source>
+ <translation>Nameravate zbrisati mapo, pri čemer bo zbrisana&lt;br&gt;tudi njena vsebina. Ali res želite nadaljevati?</translation>
+ </message>
+ <message>
+ <source>Manage Bookmarks...</source>
+ <translation>Upravljanje zaznamkov ...</translation>
+ </message>
+ <message>
+ <source>Add Bookmark...</source>
+ <translation>Dodaj zaznamek ...</translation>
+ </message>
+ <message>
+ <source>Ctrl+D</source>
+ <translation>Ctrl+D</translation>
+ </message>
+ <message>
+ <source>Delete Folder</source>
+ <translation>Izbriši mapo</translation>
+ </message>
+ <message>
+ <source>Rename Folder</source>
+ <translation>Preimenuj mapo</translation>
+ </message>
+ <message>
+ <source>Show Bookmark</source>
+ <translation>Prikaži zaznamek</translation>
+ </message>
+ <message>
+ <source>Show Bookmark in New Tab</source>
+ <translation>Prikaži zaznamek v novem zavihku</translation>
+ </message>
+ <message>
+ <source>Delete Bookmark</source>
+ <translation>Izbriši zaznamek</translation>
+ </message>
+ <message>
+ <source>Rename Bookmark</source>
+ <translation>Preimenuj zaznamek</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkManagerWidget</name>
+ <message>
+ <source>Manage Bookmarks</source>
+ <translation>Upravljanje zaznamkov</translation>
+ </message>
+ <message>
+ <source>Search:</source>
+ <translation>Išči:</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Odstrani</translation>
+ </message>
+ <message>
+ <source>Import and Backup</source>
+ <translation>Uvozi in ustvari varnostno kopijo</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>V redu</translation>
+ </message>
+ <message>
+ <source>Import...</source>
+ <translation>Uvozi ...</translation>
+ </message>
+ <message>
+ <source>Export...</source>
+ <translation>Izvozi ...</translation>
+ </message>
+ <message>
+ <source>Open File</source>
+ <translation>Odpri datoteko</translation>
+ </message>
+ <message>
+ <source>Files (*.xbel)</source>
+ <translation>Datoteke (*.xbel)</translation>
+ </message>
+ <message>
+ <source>Save File</source>
+ <translation>Shrani datoteko</translation>
+ </message>
+ <message>
+ <source>Qt Assistant</source>
+ <translation>Qt Assistant</translation>
+ </message>
+ <message>
+ <source>Unable to save bookmarks.</source>
+ <translation>Zaznamkov ni moč shraniti.</translation>
+ </message>
+ <message>
+ <source>You are goingto delete a Folder, this will also&lt;br&gt; remove it&apos;s content. Are you sure to continue?</source>
+ <translation>Nameravate zbrisati mapo, pri čemer bo zbrisana&lt;br&gt;tudi njena vsebina. Ali res želite nadaljevati?</translation>
+ </message>
+ <message>
+ <source>Delete Folder</source>
+ <translation>Izbriši mapo</translation>
+ </message>
+ <message>
+ <source>Rename Folder</source>
+ <translation>Preimenuj mapo</translation>
+ </message>
+ <message>
+ <source>Show Bookmark</source>
+ <translation>Prikaži zaznamek</translation>
+ </message>
+ <message>
+ <source>Show Bookmark in New Tab</source>
+ <translation>Prikaži zaznamek v novem zavihku</translation>
+ </message>
+ <message>
+ <source>Delete Bookmark</source>
+ <translation>Izbriši zaznamek</translation>
+ </message>
+ <message>
+ <source>Rename Bookmark</source>
+ <translation>Preimenuj zaznamek</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkModel</name>
+ <message>
+ <source>Name</source>
+ <translation>Ime</translation>
+ </message>
+ <message>
+ <source>Address</source>
+ <translation>Naslov</translation>
+ </message>
+ <message>
+ <source>Bookmarks Menu</source>
+ <translation>Meni z zaznamki</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkWidget</name>
+ <message>
+ <source>Bookmarks</source>
+ <translation>Zaznamki</translation>
+ </message>
+ <message>
+ <source>Filter:</source>
+ <translation>Filter:</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Dodaj</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Odstrani</translation>
+ </message>
+</context>
+<context>
+ <name>CentralWidget</name>
+ <message>
+ <source>Add new page</source>
+ <translation>Dodaj novo stran</translation>
+ </message>
+ <message>
+ <source>Close current page</source>
+ <translation>Zapri trenutno stran</translation>
+ </message>
+ <message>
+ <source>Print Document</source>
+ <translation>Natisni dokument</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation>neznano</translation>
+ </message>
+ <message>
+ <source>Add New Page</source>
+ <translation>Dodaj novo stran</translation>
+ </message>
+ <message>
+ <source>Close This Page</source>
+ <translation>Zapri to stran</translation>
+ </message>
+ <message>
+ <source>Close Other Pages</source>
+ <translation>Zapri druge strani</translation>
+ </message>
+ <message>
+ <source>Add Bookmark for this Page...</source>
+ <translation>Dodaj zaznamek za to stran ...</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <translation>Iskanje</translation>
+ </message>
+</context>
+<context>
+ <name>CmdLineParser</name>
+ <message>
+ <source>Unknown option: %1</source>
+ <translation>Neznana možnost: %1</translation>
+ </message>
+ <message>
+ <source>The collection file &apos;%1&apos; does not exist.</source>
+ <translation>Datoteka zbirke »%1« ne obstaja.</translation>
+ </message>
+ <message>
+ <source>Missing collection file.</source>
+ <translation>Manjkajoča datoteka zbirke.</translation>
+ </message>
+ <message>
+ <source>Invalid URL &apos;%1&apos;.</source>
+ <translation>Neveljaven URL »%1«.</translation>
+ </message>
+ <message>
+ <source>Missing URL.</source>
+ <translation>Manjkajoč URL.</translation>
+ </message>
+ <message>
+ <source>Unknown widget: %1</source>
+ <translation>Neznan gradnik: %1</translation>
+ </message>
+ <message>
+ <source>Missing widget.</source>
+ <translation>Manjkajoč gradnik.</translation>
+ </message>
+ <message>
+ <source>The Qt help file &apos;%1&apos; does not exist.</source>
+ <translation>Datoteka s pomočjo za Qt »%1« ne obstaja.</translation>
+ </message>
+ <message>
+ <source>Missing help file.</source>
+ <translation>Manjkajoča datoteka s pomočjo.</translation>
+ </message>
+ <message>
+ <source>Missing filter argument.</source>
+ <translation>Manjkajoč argument filtra.</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Napaka</translation>
+ </message>
+ <message>
+ <source>Notice</source>
+ <translation>Opomba</translation>
+ </message>
+</context>
+<context>
+ <name>ContentWindow</name>
+ <message>
+ <source>Open Link</source>
+ <translation>Odpri povezavo</translation>
+ </message>
+ <message>
+ <source>Open Link in New Tab</source>
+ <translation>Odpri povezavo v novem zavihku</translation>
+ </message>
+</context>
+<context>
+ <name>FilterNameDialogClass</name>
+ <message>
+ <source>Add Filter Name</source>
+ <translation>Dodaj ime filtra</translation>
+ </message>
+ <message>
+ <source>Filter Name:</source>
+ <translation>Ime filtra:</translation>
+ </message>
+</context>
+<context>
+ <name>FindWidget</name>
+ <message>
+ <source>Previous</source>
+ <translation>Predhodno</translation>
+ </message>
+ <message>
+ <source>Next</source>
+ <translation>Naslednje</translation>
+ </message>
+ <message>
+ <source>Case Sensitive</source>
+ <translation>Loči velike in male črke</translation>
+ </message>
+ <message>
+ <source>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
+ <translation>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Iskanje se nadaljuje na drugem koncu</translation>
+ </message>
+</context>
+<context>
+ <name>FontPanel</name>
+ <message>
+ <source>Font</source>
+ <translation>Pisava</translation>
+ </message>
+ <message>
+ <source>&amp;Writing system</source>
+ <translation>S&amp;istem pisanja</translation>
+ </message>
+ <message>
+ <source>&amp;Family</source>
+ <translation>&amp;Družina</translation>
+ </message>
+ <message>
+ <source>&amp;Style</source>
+ <translation>&amp;Slog</translation>
+ </message>
+ <message>
+ <source>&amp;Point size</source>
+ <translation>&amp;Velikost v točkah</translation>
+ </message>
+</context>
+<context>
+ <name>HelpViewer</name>
+ <message>
+ <source>&lt;title&gt;about:blank&lt;/title&gt;</source>
+ <translation>&lt;title&gt;about:blank&lt;/title&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
+ <translation>&lt;title&gt;Napaka 404&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Strani ni bilo moč najti&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;»%1«&lt;/h3&gt;&lt;/div&gt;</translation>
+ </message>
+ <message>
+ <source>Copy &amp;Link Location</source>
+ <translation>Skopiraj &amp;povezavo do lokacije</translation>
+ </message>
+ <message>
+ <source>Open Link in New Tab Ctrl+LMB</source>
+ <translation>Odpri povezavo v novem zavihku Ctrl+LGM</translation>
+ </message>
+ <message>
+ <source>Open Link in New Tab</source>
+ <translation>Odpri povezavo v novem zavihku</translation>
+ </message>
+</context>
+<context>
+ <name>IndexWindow</name>
+ <message>
+ <source>&amp;Look for:</source>
+ <translation>&amp;Išči:</translation>
+ </message>
+ <message>
+ <source>Open Link</source>
+ <translation>Odpri povezavo</translation>
+ </message>
+ <message>
+ <source>Open Link in New Tab</source>
+ <translation>Odpri povezavo v novem zavihku</translation>
+ </message>
+</context>
+<context>
+ <name>InstallDialog</name>
+ <message>
+ <source>Install Documentation</source>
+ <translation>Namesti dokumentacijo</translation>
+ </message>
+ <message>
+ <source>Available Documentation:</source>
+ <translation>Razpoložljiva dokumentacija:</translation>
+ </message>
+ <message>
+ <source>Install</source>
+ <translation>Namesti</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Prekliči</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation>Zapri</translation>
+ </message>
+ <message>
+ <source>Installation Path:</source>
+ <translation>Namestitvena pot:</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <source>Downloading documentation info...</source>
+ <translation>Prejemanje podatkov o dokumentaciji ...</translation>
+ </message>
+ <message>
+ <source>Download canceled.</source>
+ <translation>Prejemanje preklicano.</translation>
+ </message>
+ <message>
+ <source>Done.</source>
+ <translation>Opravljeno.</translation>
+ </message>
+ <message>
+ <source>The file %1 already exists. Do you want to overwrite it?</source>
+ <translation>Datoteka %1 že obstaja. Ali jo želite nadomestiti?</translation>
+ </message>
+ <message>
+ <source>Unable to save the file %1: %2.</source>
+ <translation>Datoteke %1 ni moč shraniti: %2.</translation>
+ </message>
+ <message>
+ <source>Downloading %1...</source>
+ <translation>Prejemanje %1 ...</translation>
+ </message>
+ <message>
+ <source>Download failed: %1.</source>
+ <translation>Prejemanje ni uspelo: %1.</translation>
+ </message>
+ <message>
+ <source>Documentation info file is corrupt!</source>
+ <translation>Datoteka s podatki o dokumentaciji je poškodovana.</translation>
+ </message>
+ <message>
+ <source>Download failed: Downloaded file is corrupted.</source>
+ <translation>Prejemanje ni uspelo. Prejeta datoteka je poškodovana.</translation>
+ </message>
+ <message>
+ <source>Installing documentation %1...</source>
+ <translation>Nameščanje dokumentacije %1 ...</translation>
+ </message>
+ <message>
+ <source>Error while installing documentation:
+%1</source>
+ <translation>Napaka pri nameščanju dokumentacije:
+%1</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <source>Index</source>
+ <translation>Kazalo</translation>
+ </message>
+ <message>
+ <source>Contents</source>
+ <translation>Vsebina</translation>
+ </message>
+ <message>
+ <source>Bookmarks</source>
+ <translation>Zaznamki</translation>
+ </message>
+ <message>
+ <source>Qt Assistant</source>
+ <translation>Qt Assistant</translation>
+ </message>
+ <message>
+ <source>Looking for Qt Documentation...</source>
+ <translation>iskanje dokumentacije za Qt ...</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datoteka</translation>
+ </message>
+ <message>
+ <source>New &amp;Tab</source>
+ <translation>Nov zavi&amp;hek</translation>
+ </message>
+ <message>
+ <source>Page Set&amp;up...</source>
+ <translation>Nastavitve stra&amp;ni ...</translation>
+ </message>
+ <message>
+ <source>Print Preview...</source>
+ <translation>Ogled tiskanja ...</translation>
+ </message>
+ <message>
+ <source>&amp;Print...</source>
+ <translation>Na&amp;tisni ...</translation>
+ </message>
+ <message>
+ <source>&amp;Close Tab</source>
+ <translation>&amp;Zapri zavihek</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>Konča&amp;j</translation>
+ </message>
+ <message>
+ <source>CTRL+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Urejanje</translation>
+ </message>
+ <message>
+ <source>&amp;Copy selected Text</source>
+ <translation>S&amp;kopiraj izbrano besedilo</translation>
+ </message>
+ <message>
+ <source>&amp;Find in Text...</source>
+ <translation>&amp;Najdi v besedilu ...</translation>
+ </message>
+ <message>
+ <source>&amp;Find</source>
+ <translation>&amp;Najdi</translation>
+ </message>
+ <message>
+ <source>Find &amp;Next</source>
+ <translation>Najdi na&amp;slednje</translation>
+ </message>
+ <message>
+ <source>Find &amp;Previous</source>
+ <translation>Najdi p&amp;rejšnje</translation>
+ </message>
+ <message>
+ <source>Preferences...</source>
+ <translation>Nastavitve ...</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation>&amp;Videz</translation>
+ </message>
+ <message>
+ <source>Zoom &amp;in</source>
+ <translation>Po&amp;večaj</translation>
+ </message>
+ <message>
+ <source>Zoom &amp;out</source>
+ <translation>Z&amp;manjšaj</translation>
+ </message>
+ <message>
+ <source>Normal &amp;Size</source>
+ <translation>&amp;Običajna velikost</translation>
+ </message>
+ <message>
+ <source>Ctrl+0</source>
+ <translation>Ctrl+0</translation>
+ </message>
+ <message>
+ <source>ALT+C</source>
+ <translation>Alt+V</translation>
+ </message>
+ <message>
+ <source>ALT+I</source>
+ <translation>Alt+K</translation>
+ </message>
+ <message>
+ <source>ALT+O</source>
+ <translation>Alt+Z</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <translation>Iskanje</translation>
+ </message>
+ <message>
+ <source>ALT+S</source>
+ <translation>Alt+I</translation>
+ </message>
+ <message>
+ <source>&amp;Go</source>
+ <translation>&amp;Pojdi</translation>
+ </message>
+ <message>
+ <source>&amp;Home</source>
+ <translation>&amp;Domov</translation>
+ </message>
+ <message>
+ <source>ALT+Home</source>
+ <translation>Alt+Domov</translation>
+ </message>
+ <message>
+ <source>&amp;Back</source>
+ <translation>Na&amp;zaj</translation>
+ </message>
+ <message>
+ <source>&amp;Forward</source>
+ <translation>&amp;Naprej</translation>
+ </message>
+ <message>
+ <source>Sync with Table of Contents</source>
+ <translation>Uskladi s seznamom vsebine</translation>
+ </message>
+ <message>
+ <source>Sync</source>
+ <translation>Uskladi</translation>
+ </message>
+ <message>
+ <source>Next Page</source>
+ <translation>Naslednja stran</translation>
+ </message>
+ <message>
+ <source>Ctrl+Alt+Right</source>
+ <translation>Ctrl+Alt+Desno</translation>
+ </message>
+ <message>
+ <source>Previous Page</source>
+ <translation>Predhodna stran</translation>
+ </message>
+ <message>
+ <source>Ctrl+Alt+Left</source>
+ <translation>Ctrl+Alt+Levo</translation>
+ </message>
+ <message>
+ <source>&amp;Bookmarks</source>
+ <translation>&amp;Zaznamki</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Pomoč</translation>
+ </message>
+ <message>
+ <source>About...</source>
+ <translation>O ...</translation>
+ </message>
+ <message>
+ <source>Navigation Toolbar</source>
+ <translation>Orodjarna za krmarjenje</translation>
+ </message>
+ <message>
+ <source>&amp;Window</source>
+ <translation>&amp;Okno</translation>
+ </message>
+ <message>
+ <source>Zoom</source>
+ <translation>Povečava</translation>
+ </message>
+ <message>
+ <source>Minimize</source>
+ <translation>Pomanjšaj</translation>
+ </message>
+ <message>
+ <source>Ctrl+M</source>
+ <translation>Ctrl+M</translation>
+ </message>
+ <message>
+ <source>Toolbars</source>
+ <translation>Orodjarne</translation>
+ </message>
+ <message>
+ <source>Filter Toolbar</source>
+ <translation>Orodjarna filtra</translation>
+ </message>
+ <message>
+ <source>Filtered by:</source>
+ <translation>Filtrirano po:</translation>
+ </message>
+ <message>
+ <source>Address Toolbar</source>
+ <translation>Naslovna vrstica</translation>
+ </message>
+ <message>
+ <source>Address:</source>
+ <translation>Naslov:</translation>
+ </message>
+ <message>
+ <source>Could not find the associated content item.</source>
+ <translation>Povezane postavke vsebine ni bilo moč najti.</translation>
+ </message>
+ <message>
+ <source>About %1</source>
+ <translation>O %1</translation>
+ </message>
+ <message>
+ <source>Updating search index</source>
+ <translation>Posodabljanje kazala za iskanje</translation>
+ </message>
+ <message>
+ <source>Could not register file &apos;%1&apos;: %2</source>
+ <translation>Datoteke »%1« ni bilo moč registrirati: %2</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <source>Add Documentation</source>
+ <translation>Dodaj dokumentacijo</translation>
+ </message>
+ <message>
+ <source>Qt Compressed Help Files (*.qch)</source>
+ <translation>Stisnjene datoteke s pomočjo za Qt (*.qch)</translation>
+ </message>
+ <message>
+ <source>The namespace %1 is already registered!</source>
+ <translation>Imenski prostor %1 je že registriran.</translation>
+ </message>
+ <message>
+ <source>The specified file is not a valid Qt Help File!</source>
+ <translation>Navedena datoteka ni veljavna datoteka s pomočjo za Qt.</translation>
+ </message>
+ <message>
+ <source>Remove Documentation</source>
+ <translation>Odstrani dokumentacijo</translation>
+ </message>
+ <message>
+ <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source>
+ <translation>Nekateri odprti dokumenti se sklicujejo na dokumentacijo, ki jo poskušate odstraniti. Odstranitev dokumentacije bo povzročila zaprtje teh dokumentov.</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Prekliči</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>V redu</translation>
+ </message>
+ <message>
+ <source>Use custom settings</source>
+ <translation>Uporabi nastavitve po meri</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialogClass</name>
+ <message>
+ <source>Preferences</source>
+ <translation>Nastavitve</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation>Pisave</translation>
+ </message>
+ <message>
+ <source>Font settings:</source>
+ <translation>Nastavitve pisav</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation>Brskalnik</translation>
+ </message>
+ <message>
+ <source>Application</source>
+ <translation>Program</translation>
+ </message>
+ <message>
+ <source>Filters</source>
+ <translation>Filtri</translation>
+ </message>
+ <message>
+ <source>Filter:</source>
+ <translation>Filter:</translation>
+ </message>
+ <message>
+ <source>Attributes:</source>
+ <translation>Lastnosti:</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Dodaj</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Odstrani</translation>
+ </message>
+ <message>
+ <source>Documentation</source>
+ <translation>Dokumentacija</translation>
+ </message>
+ <message>
+ <source>Registered Documentation:</source>
+ <translation>Registrirana dokumentacija</translation>
+ </message>
+ <message>
+ <source>Add...</source>
+ <translation>Dodaj ...</translation>
+ </message>
+ <message>
+ <source>Options</source>
+ <translation>Možnosti</translation>
+ </message>
+ <message>
+ <source>On help start:</source>
+ <translation>Ob zagonu pomoči:</translation>
+ </message>
+ <message>
+ <source>Show my home page</source>
+ <translation>Prikaži mojo domačo stran</translation>
+ </message>
+ <message>
+ <source>Show a blank page</source>
+ <translation>Prikaži prazno stran</translation>
+ </message>
+ <message>
+ <source>Show my tabs from last session</source>
+ <translation>Prikaži moje zavihke iz zadnje seje</translation>
+ </message>
+ <message>
+ <source>Homepage</source>
+ <translation>Domača stran</translation>
+ </message>
+ <message>
+ <source>Current Page</source>
+ <translation>Trenutna stran</translation>
+ </message>
+ <message>
+ <source>Blank Page</source>
+ <translation>Prazna stran</translation>
+ </message>
+ <message>
+ <source>Restore to default</source>
+ <translation>Ponastavi na privzeto</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteControl</name>
+ <message>
+ <source>Debugging Remote Control</source>
+ <translation>Razhroščevanje oddaljenega nadzora</translation>
+ </message>
+ <message>
+ <source>Received Command: %1 %2</source>
+ <translation>Prejet ukaz: %1 %2</translation>
+ </message>
+</context>
+<context>
+ <name>SearchWidget</name>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>S&amp;kopiraj</translation>
+ </message>
+ <message>
+ <source>Copy &amp;Link Location</source>
+ <translation>Skopiraj &amp;povezavo do lokacije</translation>
+ </message>
+ <message>
+ <source>Open Link in New Tab</source>
+ <translation>Odpri povezavo v novem &amp;zavihku</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Izberi vse</translation>
+ </message>
+</context>
+<context>
+ <name>TopicChooser</name>
+ <message>
+ <source>Choose Topic</source>
+ <translation>Izberite temo</translation>
+ </message>
+ <message>
+ <source>&amp;Topics</source>
+ <translation>&amp;Teme</translation>
+ </message>
+ <message>
+ <source>&amp;Display</source>
+ <translation>&amp;Prikaži</translation>
+ </message>
+ <message>
+ <source>&amp;Close</source>
+ <translation>&amp;Zapri</translation>
+ </message>
+ <message>
+ <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
+ <translation>Izberite temo za &lt;b&gt;%1&lt;/b&gt;:</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/assistant_uk.ts b/translations/assistant_uk.ts
index c7aad839ca..d08003ee96 100644
--- a/translations/assistant_uk.ts
+++ b/translations/assistant_uk.ts
@@ -41,7 +41,7 @@
Reason:
%2</source>
- <translation>Не можу зареєструвати файл документації
+ <translation>Не вдалось зареєструвати файл документації
%1
Причина:
@@ -57,7 +57,7 @@ Reason:
Reason:
%2</source>
- <translation>Не можу скасувати реєстрацію файлу документації
+ <translation>Не вдалось скасувати реєстрацію файлу документації
%1
Причина:
@@ -77,7 +77,7 @@ Reason:
</message>
<message>
<source>Cannot load sqlite database driver!</source>
- <translation>Не можу завантажити драйвер бази даних SQLite!</translation>
+ <translation>Неможливо завантажити драйвер бази даних SQLite!</translation>
</message>
</context>
<context>
@@ -108,6 +108,17 @@ Reason:
</message>
</context>
<context>
+ <name>BookmarkItem</name>
+ <message>
+ <source>New Folder</source>
+ <translation>Нова тека</translation>
+ </message>
+ <message>
+ <source>Untitled</source>
+ <translation>Без назви</translation>
+ </message>
+</context>
+<context>
<name>BookmarkManager</name>
<message>
<source>Untitled</source>
@@ -313,6 +324,60 @@ Reason:
<context>
<name>CmdLineParser</name>
<message>
+ <source>Usage: assistant [Options]
+
+-collectionFile file Uses the specified collection
+ file instead of the default one
+-showUrl url Shows the document with the
+ url.
+-enableRemoteControl Enables Assistant to be
+ remotely controlled.
+-show widget Shows the specified dockwidget
+ which can be &quot;contents&quot;, &quot;index&quot;,
+ &quot;bookmarks&quot; or &quot;search&quot;.
+-activate widget Activates the specified dockwidget
+ which can be &quot;contents&quot;, &quot;index&quot;,
+ &quot;bookmarks&quot; or &quot;search&quot;.
+-hide widget Hides the specified dockwidget
+ which can be &quot;contents&quot;, &quot;index&quot;
+ &quot;bookmarks&quot; or &quot;search&quot;.
+-register helpFile Registers the specified help file
+ (.qch) in the given collection
+ file.
+-unregister helpFile Unregisters the specified help file
+ (.qch) from the give collection
+ file.
+-setCurrentFilter filter Set the filter as the active filter.
+-remove-search-index Removes the full text search index.
+-rebuild-search-index Re-builds the full text search index (potentially slow).
+-quiet Does not display any error or
+ status message.
+-help Displays this help.
+</source>
+ <translation>Використання: assistant [Опції]
+
+-collectionFile файл Використати вказаний файл колекції
+ замість типового
+-showUrl URL Показати документ з URL.
+-enableRemoteControl Увімкнути віддалене керування Assistant.
+-show віджет Показати вказаний віджет (може бути:
+ &quot;contents&quot;, &quot;index&quot;, &quot;bookmarks&quot; чи &quot;search&quot;).
+-activate віджет Активувати вказаний віджет (може бути:
+ &quot;contents&quot;, &quot;index&quot;, &quot;bookmarks&quot; чи &quot;search&quot;).
+-hide віджет Сховати вказаний віджет (може бути:
+ &quot;contents&quot;, &quot;index&quot;, &quot;bookmarks&quot; чи &quot;search&quot;).
+-register файлДовідки Зареєструвати вказаний файл довідки
+ (.qch) в даному файлі колекції.
+-unregister файлДовідки Скасувати реєстрацію вказаного файлу довідки
+ (.qch) в даному файлі колекції.
+-setCurrentFilter фільтр Встановити фільтр в якості активного.
+-remove-search-index Видалити повнотекстовий пошуковий індекс.
+-rebuild-search-index Перебудувати повнотекстовий пошуковий індекс (можливо довго).
+-quiet Не показувати жодних помилок чи статусних повідомлень.
+-help Показати цю довідку.
+</translation>
+ </message>
+ <message>
<source>Unknown option: %1</source>
<translation>Невідома опція: %1</translation>
</message>
@@ -487,6 +552,11 @@ Reason:
<source>The attributes for custom filter &apos;%1&apos; are defined multiple times.</source>
<translation>Атрибути для користувацького фільтра &apos;%1&apos; визначено декілька раз.</translation>
</message>
+ <message>
+ <source>unfiltered</source>
+ <comment>list of available documentation</comment>
+ <translation>без фільтра</translation>
+ </message>
</context>
<context>
<name>FindWidget</name>
@@ -513,6 +583,10 @@ Reason:
<source>Converting File</source>
<translation>Конвертування файлу</translation>
</message>
+ <message>
+ <source>Creating the new Qt help files from the old ADP file.</source>
+ <translation>Створення нових файлів довідки Qt зі старого файлу ADP.</translation>
+ </message>
</context>
<context>
<name>FontPanel</name>
@@ -577,6 +651,13 @@ Reason:
</message>
</context>
<context>
+ <name>HelpGenerator</name>
+ <message>
+ <source>Warning: %1</source>
+ <translation>Попередження: %1</translation>
+ </message>
+</context>
+<context>
<name>HelpViewer</name>
<message>
<source>&lt;title&gt;about:blank&lt;/title&gt;</source>
@@ -584,7 +665,7 @@ Reason:
</message>
<message>
<source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
- <translation>&lt;title&gt;Помилка 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Неможливо знайти сторінку&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
+ <translation>&lt;title&gt;Помилка 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Не вдалось знайти сторінку&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
</message>
<message>
<source>Copy &amp;Link Location</source>
@@ -600,6 +681,13 @@ Reason:
</message>
</context>
<context>
+ <name>HelpWindow</name>
+ <message>
+ <source>&lt;center&gt;&lt;b&gt;Wizard Assistant&lt;/b&gt;&lt;/center&gt;</source>
+ <translation>&lt;center&gt;&lt;b&gt;Майстер Assistant&lt;/b&gt;&lt;/center&gt;</translation>
+ </message>
+</context>
+<context>
<name>IdentifierPage</name>
<message>
<source>Form</source>
@@ -736,7 +824,7 @@ Reason:
</message>
<message>
<source>Unable to save the file %1: %2.</source>
- <translation>Не можу зберегти файл %1: %2.</translation>
+ <translation>Неможливо зберегти файл %1: %2.</translation>
</message>
<message>
<source>Downloading %1...</source>
@@ -988,6 +1076,10 @@ Reason:
<translation>Не вдалось знайти елемент, пов&apos;язаний зі змістом.</translation>
</message>
<message>
+ <source>&lt;center&gt;&lt;h3&gt;%1&lt;/h3&gt;&lt;p&gt;Version %2&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;</source>
+ <translation>&lt;center&gt;&lt;h3&gt;%1&lt;/h3&gt;&lt;p&gt;Версія %2&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Copyright (C) 2010 Корпорація Nokia та/або її дочірні компанії.&lt;/p&gt;</translation>
+ </message>
+ <message>
<source>About %1</source>
<translation>Про %1</translation>
</message>
@@ -997,7 +1089,7 @@ Reason:
</message>
<message>
<source>Could not register file &apos;%1&apos;: %2</source>
- <translation>Не можу зареєструвати файл &apos;%1&apos;: %2</translation>
+ <translation>Не вдалось зареєструвати файл &apos;%1&apos;: %2</translation>
</message>
</context>
<context>
@@ -1221,45 +1313,20 @@ Do you want to remove it?</source>
</message>
</context>
<context>
- <name>QCLuceneResultWidget</name>
- <message>
- <source>Search Results</source>
- <translation>Результати пошуку</translation>
- </message>
- <message>
- <source>Note:</source>
- <translation>Примітка:</translation>
- </message>
- <message>
- <source>The search results may not be complete since the documentation is still being indexed!</source>
- <translation>Результати пошуку можуть бути не повні, оскільки документація досі індексується!</translation>
- </message>
- <message>
- <source>Your search did not match any documents.</source>
- <translation>Ваш пошук не повернув результатів.</translation>
- </message>
- <message>
- <source>(The reason for this might be that the documentation is still being indexed.)</source>
- <translation>(Причиною цього може бути те, що документація досі індексується.)</translation>
- </message>
-</context>
-<context>
<name>QCollectionGenerator</name>
<message>
<source>Unknown token at line %1.</source>
<translation>Невідомий токен в рядку %1.</translation>
</message>
<message>
- <source>Unknown token at line %1. Expected &quot;QtHelpCollectionProject&quot;!</source>
- <translation>Невідомий токен в рядку %1. Очікувався &quot;QtHelpCollectionProject&quot;!</translation>
+ <source>Missing end tags.</source>
+ <translation>Відсутні кінцеві теги.</translation>
</message>
<message>
- <source>Missing output file name!</source>
- <translation>Відсутнє ім&apos;я вихідного файлу!</translation>
- </message>
- <message>
- <source>Missing collection config file!</source>
- <translation>Відсутній файл налаштувань колекції!</translation>
+ <source>Qt Collection Generator version 1.0 (Qt %1)
+</source>
+ <translation>Qt Collection Generator версії 1.0 (Qt %1)
+</translation>
</message>
<message>
<source>
@@ -1288,209 +1355,92 @@ qcollectiongenerator &lt;файл-налаштувань-колекції&gt; [
</translation>
</message>
-</context>
-<context>
- <name>QHelp</name>
<message>
- <source>Untitled</source>
- <translation>Без назви</translation>
- </message>
-</context>
-<context>
- <name>QHelpCollectionHandler</name>
- <message>
- <source>The collection file &apos;%1&apos; is not set up yet!</source>
- <translation>Файл колекції &apos;%1&apos; ще не встановлено!</translation>
- </message>
- <message>
- <source>Cannot load sqlite database driver!</source>
- <translation>Не можу завантажити драйвер бази даних SQLite!</translation>
- </message>
- <message>
- <source>Cannot open collection file: %1</source>
- <translation>Неможливо відкрити файл колекції: %1</translation>
- </message>
- <message>
- <source>Cannot create tables in file %1!</source>
- <translation>Неможливо створити таблиці в файлі %1!</translation>
- </message>
- <message>
- <source>The collection file &apos;%1&apos; already exists!</source>
- <translation>Файл колекції &apos;%1&apos; вже існує!</translation>
- </message>
- <message>
- <source>Cannot create directory: %1</source>
- <translation>Неможливо створити теку: %1</translation>
- </message>
- <message>
- <source>Cannot copy collection file: %1</source>
- <translation>Неможливо скопіювати файл колекції: %1</translation>
+ <source>Unknown token at line %1. Expected &quot;QtHelpCollectionProject&quot;.</source>
+ <translation>Невідомий токен в рядку %1. Очікувався &quot;QtHelpCollectionProject&quot;.</translation>
</message>
<message>
- <source>Unknown filter &apos;%1&apos;!</source>
- <translation>Невідомий фільтр &apos;%1&apos;!</translation>
+ <source>Missing input or output file for help file generation.</source>
+ <translation>Відсутній вхідний чи вихідний файл для генерації файлу довідки.</translation>
</message>
<message>
- <source>Cannot register filter %1!</source>
- <translation>Неможливо зареєструвати фільтр %1!</translation>
+ <source>Missing output file name.</source>
+ <translation>Відсутнє ім&apos;я вихідного файлу.</translation>
</message>
<message>
- <source>Cannot open documentation file %1!</source>
- <translation>Неможливо відкрити файл документації %1!</translation>
+ <source>Missing collection config file.</source>
+ <translation>Відсутній файл налаштувань колекції.</translation>
</message>
<message>
- <source>Invalid documentation file &apos;%1&apos;!</source>
- <translation>Неправильний файл документації &apos;%1&apos;!</translation>
+ <source>Could not open %1.
+</source>
+ <translation>Не вдалось відкрити %1.
+</translation>
</message>
<message>
- <source>The namespace %1 was not registered!</source>
- <translation>Простір імен %1 не зареєстровано!</translation>
+ <source>Reading collection config file...
+</source>
+ <translation>Читання файлу налаштувань колекції...
+</translation>
</message>
<message>
- <source>Namespace %1 already exists!</source>
- <translation>Простір імен %1 вже існує!</translation>
+ <source>Collection config file error: %1
+</source>
+ <translation>Помилка файлу налаштувань колекції: %1
+</translation>
</message>
<message>
- <source>Cannot register namespace &apos;%1&apos;!</source>
- <translation>Неможливо зареєструвати простір імен &apos;%1&apos;!</translation>
+ <source>Generating help for %1...
+</source>
+ <translation>Генерування довідки для %1...
+</translation>
</message>
<message>
- <source>Cannot open database &apos;%1&apos; to optimize!</source>
- <translation>Неможливо відкрити базу даних &apos;%1&apos; для оптимізації!</translation>
+ <source>Creating collection file...
+</source>
+ <translation>Створення файлу колекції...
+</translation>
</message>
-</context>
-<context>
- <name>QHelpDBReader</name>
<message>
- <source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
- <extracomment>The placeholders are: %1 - The name of the database which cannot be opened %2 - The unique id for the connection %3 - The actual error string</extracomment>
- <translation>Неможливо відкрити базу даних: &apos;%1&apos; &apos;%2&apos;: %3</translation>
+ <source>The file %1 cannot be overwritten.
+</source>
+ <translation>Неможливо перезаписати файл %1.
+</translation>
</message>
-</context>
-<context>
- <name>QHelpEngineCore</name>
<message>
- <source>Cannot open documentation file %1: %2!</source>
- <translation>Неможливо файл документації %1: %2!</translation>
+ <source>Cannot open %1.
+</source>
+ <translation>Неможливо відкрити %1.
+</translation>
</message>
<message>
- <source>The specified namespace does not exist!</source>
- <translation>Вказаний простір імен не існує!</translation>
+ <source>Cannot open referenced image file %1.
+</source>
+ <translation>Неможливо відкрити файл зображення %1, на який є посилання.
+</translation>
</message>
</context>
<context>
<name>QHelpGenerator</name>
<message>
- <source>Invalid help data!</source>
- <translation>Неправильні дані довідки!</translation>
- </message>
- <message>
- <source>No output file name specified!</source>
- <translation>Не вказане ім&apos;я вихідного файлу!</translation>
- </message>
- <message>
- <source>The file %1 cannot be overwritten!</source>
- <translation>Неможливо перезаписати файл %1!</translation>
- </message>
- <message>
- <source>Building up file structure...</source>
- <translation>Побудова структури файлу....</translation>
- </message>
- <message>
- <source>Cannot open data base file %1!</source>
- <translation>Неможливо відкрити файл бази даних %1!</translation>
+ <source>Missing output file name.</source>
+ <translation>Відсутнє ім&apos;я вихідного файлу.</translation>
</message>
<message>
- <source>Cannot register namespace %1!</source>
- <translation>Неможливо зареєструвати простір імен %1!</translation>
- </message>
- <message>
- <source>Insert custom filters...</source>
- <translation>Вставка фільтрів користувача...</translation>
- </message>
- <message>
- <source>Insert help data for filter section (%1 of %2)...</source>
- <translation>Вставка даних довідки для розділу фільтра (%1 з %2)...</translation>
- </message>
- <message>
- <source>Documentation successfully generated.</source>
- <translation>Документацію успішно згенеровано.</translation>
- </message>
- <message>
- <source>Some tables already exist!</source>
- <translation>Деякі таблиці вже існують!</translation>
- </message>
- <message>
- <source>Cannot create tables!</source>
- <translation>Неможливо створити таблиці!</translation>
- </message>
- <message>
- <source>Cannot register virtual folder!</source>
- <translation>Неможливо зареєструвати віртуальну теку!</translation>
- </message>
- <message>
- <source>Insert files...</source>
- <translation>Вставка файлів...</translation>
- </message>
- <message>
- <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
- <translation>Файл %1 має бути всередині підтеки (%2). Пропускаємо його.</translation>
- </message>
- <message>
- <source>The file %1 does not exist! Skipping it.</source>
- <translation>Файл %1 не існує! Пропускаємо його.</translation>
- </message>
- <message>
- <source>Cannot open file %1! Skipping it.</source>
- <translation>Неможливо відкрити файл %1! Пропускаємо його.</translation>
- </message>
- <message>
- <source>The filter %1 is already registered!</source>
- <translation>Фільтр %1 вже зареєстровано!</translation>
- </message>
- <message>
- <source>Cannot register filter %1!</source>
- <translation>Неможливо зареєструвати фільтр %1!</translation>
- </message>
- <message>
- <source>Insert indices...</source>
- <translation>Вставка індексів...</translation>
- </message>
- <message>
- <source>Insert contents...</source>
- <translation>Вставка змісту...</translation>
- </message>
- <message>
- <source>Cannot insert contents!</source>
- <translation>Неможливо вставити зміст!</translation>
- </message>
- <message>
- <source>Cannot register contents!</source>
- <translation>Неможливо зареєструвати зміст!</translation>
- </message>
- <message>
- <source>File &apos;%1&apos; does not exist.</source>
- <translation>Файл &apos;%1&apos; не існує.</translation>
- </message>
- <message>
- <source>File &apos;%1&apos; cannot be opened.</source>
- <translation>Неможливо відкрити файл &apos;%1&apos;.</translation>
- </message>
- <message>
- <source>File &apos;%1&apos; contains an invalid link to file &apos;%2&apos;</source>
- <translation>Файл &apos;%1&apos; містить неправильне посилання до файлу &apos;%2&apos;</translation>
- </message>
- <message>
- <source>Invalid links in HTML files.</source>
- <translation>Неправильні посилання в файлах HTML.</translation>
+ <source>Qt Help Generator version 1.0 (Qt %1)
+</source>
+ <translation>Qt Help Generator версії 1.0 (Qt %1)
+</translation>
</message>
<message>
- <source>Missing output file name!</source>
- <translation>Відсутнє ім&apos;я вихідного файлу!</translation>
+ <source>Missing Qt help project file.</source>
+ <translation>Відсутній файл проекту колекції довідки Qt.</translation>
</message>
<message>
- <source>Missing Qt help project file!</source>
- <translation>Відсутній файл проекту колекції довідки Qt!</translation>
+ <source>Could not open %1.
+</source>
+ <translation>Не вдалось відкрити %1.
+</translation>
</message>
<message>
<source>
@@ -1524,102 +1474,11 @@ qhelpgenerator &lt;файл-проекту-довідки&gt; [опції]
</translation>
</message>
-</context>
-<context>
- <name>QHelpProject</name>
- <message>
- <source>Unknown token.</source>
- <translation>Невідомий токен.</translation>
- </message>
- <message>
- <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
- <translation>Невідомий токен. Очікувався &quot;QtHelpProject&quot;!</translation>
- </message>
- <message>
- <source>Error in line %1: %2</source>
- <translation>Помилка в рядку %1: %2</translation>
- </message>
- <message>
- <source>Virtual folder has invalid syntax.</source>
- <translation>Віртуальна тека має неправильний синтаксис.</translation>
- </message>
- <message>
- <source>Namespace has invalid syntax.</source>
- <translation>Простір імен має неправильний синтаксис.</translation>
- </message>
- <message>
- <source>Missing namespace in QtHelpProject.</source>
- <translation>Відсутній простір імен в QtHelpProject.</translation>
- </message>
- <message>
- <source>Missing virtual folder in QtHelpProject</source>
- <translation>Відсутня віртуальна тека в QtHelpProject</translation>
- </message>
- <message>
- <source>Missing attribute in keyword at line %1.</source>
- <translation>Відсутній атрибут в ключовому слові на рядку %1.</translation>
- </message>
- <message>
- <source>The input file %1 could not be opened!</source>
- <translation>Неможливо відкрити вхідний файл %1!</translation>
- </message>
-</context>
-<context>
- <name>QHelpSearchQueryWidget</name>
- <message>
- <source>Search for:</source>
- <translation>Шукати:</translation>
- </message>
<message>
- <source>Previous search</source>
- <translation>Попередній пошук</translation>
- </message>
- <message>
- <source>Next search</source>
- <translation>Наступний пошук</translation>
- </message>
- <message>
- <source>Search</source>
- <translation>Пошук</translation>
- </message>
- <message>
- <source>Advanced search</source>
- <translation>Розширений пошук</translation>
- </message>
- <message>
- <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
- <translation>слова &lt;B&gt;схожі&lt;/B&gt; на:</translation>
- </message>
- <message>
- <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
- <translation>&lt;B&gt;без&lt;/B&gt; слів:</translation>
- </message>
- <message>
- <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
- <translation>з &lt;B&gt;точною фразою&lt;/B&gt;:</translation>
- </message>
- <message>
- <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
- <translation>з &lt;B&gt;усіма&lt;/B&gt; словами:</translation>
- </message>
- <message>
- <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
- <translation>з &lt;B&gt;щонайменше одним&lt;/B&gt; зі слів:</translation>
- </message>
-</context>
-<context>
- <name>QHelpSearchResultWidget</name>
- <message numerus="yes">
- <source>%1 - %2 of %n Hits</source>
- <translation>
- <numerusform>%1 - %2 з %n збігу</numerusform>
- <numerusform>%1 - %2 з %n збігів</numerusform>
- <numerusform>%1 - %2 з %n збігів</numerusform>
- </translation>
- </message>
- <message>
- <source>0 - 0 of 0 Hits</source>
- <translation>0 - 0 of 0 збігів</translation>
+ <source>Could not create output directory: %1
+</source>
+ <translation>Не вдалось створити вихідну теку: %1
+</translation>
</message>
</context>
<context>
diff --git a/translations/designer_sl.ts b/translations/designer_sl.ts
index 8d2a161d27..d925f0940c 100644
--- a/translations/designer_sl.ts
+++ b/translations/designer_sl.ts
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="sl_SI">
- <extra-po-header-po_revision_date>2010-08-05 02:42+0200</extra-po-header-po_revision_date>
+ <extra-po-header-po_revision_date>2010-08-28 14:05+0200</extra-po-header-po_revision_date>
<extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
<extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
<extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
@@ -720,7 +720,7 @@
</message>
<message>
<source>&amp;Point Size</source>
- <translation>&amp;Velikost točke</translation>
+ <translation>&amp;Velikost v točkah</translation>
</message>
<message>
<source>Style</source>
@@ -826,7 +826,7 @@
</message>
<message>
<source>&amp;Point size</source>
- <translation>&amp;Velikost točke</translation>
+ <translation>&amp;Velikost v točkah</translation>
</message>
</context>
<context>
@@ -2190,7 +2190,7 @@ Empty class name passed to widget factory method
</message>
<message>
<source>Point Size</source>
- <translation>Velikost točke</translation>
+ <translation>Velikost v točkah</translation>
</message>
<message>
<source>Bold</source>
diff --git a/translations/designer_uk.ts b/translations/designer_uk.ts
index ae27e67ab9..12e60e697c 100644
--- a/translations/designer_uk.ts
+++ b/translations/designer_uk.ts
@@ -25,6 +25,49 @@
</message>
</context>
<context>
+ <name>AbstractItemEditor</name>
+ <message>
+ <source>Selectable</source>
+ <translation>Можна вибирати</translation>
+ </message>
+ <message>
+ <source>Editable</source>
+ <translation>Можна редагувати</translation>
+ </message>
+ <message>
+ <source>DragEnabled</source>
+ <translation>Можна тягти</translation>
+ </message>
+ <message>
+ <source>DropEnabled</source>
+ <translation>Можна кидати</translation>
+ </message>
+ <message>
+ <source>UserCheckable</source>
+ <translation>Користувач може позначати</translation>
+ </message>
+ <message>
+ <source>Enabled</source>
+ <translation>Увімкнено</translation>
+ </message>
+ <message>
+ <source>Tristate</source>
+ <translation>Три стани</translation>
+ </message>
+ <message>
+ <source>Unchecked</source>
+ <translation>Не позначено</translation>
+ </message>
+ <message>
+ <source>PartiallyChecked</source>
+ <translation>Частково позначено</translation>
+ </message>
+ <message>
+ <source>Checked</source>
+ <translation>Позначено</translation>
+ </message>
+</context>
+<context>
<name>AddLinkDialog</name>
<message>
<source>Insert Link</source>
@@ -62,7 +105,7 @@
</message>
<message>
<source>The font file &apos;%1&apos; could not be loaded.</source>
- <translation>Неможливо завантажити файл шрифт &apos;%1&apos;.</translation>
+ <translation>Не вдалось завантажити файл шрифт &apos;%1&apos;.</translation>
</message>
<message>
<source>&apos;%1&apos; is not a valid font id.</source>
@@ -74,7 +117,7 @@
</message>
<message>
<source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
- <translation>Неможливо вивантажити шрифт &apos;%1&apos; (%2).</translation>
+ <translation>Не вдалось вивантажити шрифт &apos;%1&apos; (%2).</translation>
</message>
</context>
<context>
@@ -639,7 +682,7 @@
</message>
<message>
<source>The converted file could not be read.</source>
- <translation>Неможливо прочитати конвертований файл.</translation>
+ <translation>Не вдалось прочитати конвертований файл.</translation>
</message>
<message>
<source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source>
@@ -652,7 +695,7 @@
<message>
<source>This file was created using Designer from Qt-%1 and could not be read:
%2</source>
- <translation>Неможливо прочитати файл, бо його було створено з використанням Designer з Qt-%1:
+ <translation>Не вдалось прочитати файл, бо його було створено з використанням Designer з Qt-%1:
%2</translation>
</message>
<message>
@@ -672,14 +715,14 @@
</message>
<message>
<source>&apos;%1&apos; could not be converted to an enumeration value of type &apos;%2&apos;.</source>
- <translation>Неможливо сконвертувати &apos;%1&apos;до типу значень переліку &apos;%2&apos;.</translation>
+ <translation>Не вдалось сконвертувати &apos;%1&apos;до типу значень переліку &apos;%2&apos;.</translation>
</message>
</context>
<context>
<name>DesignerMetaFlags</name>
<message>
<source>&apos;%1&apos; could not be converted to a flag value of type &apos;%2&apos;.</source>
- <translation>&apos;%1&apos; не можу бути сконвертовано до прапорця типу &apos;%2&apos;.</translation>
+ <translation>Не вдалось перетворити &apos;%1&apos; прапорця типу &apos;%2&apos;.</translation>
</message>
</context>
<context>
@@ -721,7 +764,7 @@
<name>DeviceSkin</name>
<message>
<source>The image file &apos;%1&apos; could not be loaded.</source>
- <translation>Неможливо завантажити файл зображення &apos;%1&apos;.</translation>
+ <translation>Не вдалось завантажити файл зображення &apos;%1&apos;.</translation>
</message>
<message>
<source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
@@ -729,11 +772,11 @@
</message>
<message>
<source>The skin configuration file &apos;%1&apos; could not be opened.</source>
- <translation>Неможливо відкрити файл налаштувань &apos;%1&apos;.</translation>
+ <translation>Не вдалось відкрити файл налаштувань &apos;%1&apos;.</translation>
</message>
<message>
<source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
- <translation>Неможливо прочитати файл налаштувань &apos;%1&apos;: %2</translation>
+ <translation>Не вдалось прочитати файл налаштувань &apos;%1&apos;: %2</translation>
</message>
<message>
<source>Syntax error: %1</source>
@@ -1044,11 +1087,11 @@ Parsing grid layout minimum size values</extracomment>
</message>
<message>
<source>A temporary form file could not be created in %1.</source>
- <translation>Неможливо створити тимчасовий файл форми в %1.</translation>
+ <translation>Не вдалось створити тимчасовий файл форми в %1.</translation>
</message>
<message>
<source>The temporary form file %1 could not be written.</source>
- <translation>Неможливо записати тимчасовий файл форми %1.</translation>
+ <translation>Не вдалось записати тимчасовий файл форми %1.</translation>
</message>
</context>
<context>
@@ -1179,7 +1222,7 @@ This indicates an inconsistency in the ui-file.</source>
</message>
<message>
<source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
- <translation>Під час застосування позицій табуляції: Неможливо знайти віджет &apos;%1&apos;.</translation>
+ <translation>Під час застосування позицій табуляції: Не вдалось знайти віджет &apos;%1&apos;.</translation>
</message>
<message>
<source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
@@ -1464,13 +1507,13 @@ Do you want to update the file location or generate a new form?</source>
</message>
<message>
<source>Could not open file</source>
- <translation>Неможливо відкрити файл</translation>
+ <translation>Не вдалось відкрити файл</translation>
</message>
<message>
<source>The file %1 could not be opened.
Reason: %2
Would you like to retry or select a different file?</source>
- <translation>Неможливо відкрити файл %1.
+ <translation>Не вдалось відкрити файл %1.
Причина: %2
Чи не хотіли б ви спробувати ще раз чи вибрати інший файл?</translation>
</message>
@@ -1480,7 +1523,7 @@ Would you like to retry or select a different file?</source>
</message>
<message>
<source>Could not write file</source>
- <translation>Неможливо записати файл</translation>
+ <translation>Не вдалось записати файл</translation>
</message>
<message>
<source>It was not possible to write the entire file %1 to disk.
@@ -1500,15 +1543,15 @@ Would you like to retry?</source>
</message>
<message>
<source>The backup file %1 could not be written.</source>
- <translation>Неможливо записати файл резервної копії %1.</translation>
+ <translation>Не вдалось записати файл резервної копії %1.</translation>
</message>
<message>
<source>The backup directory %1 could not be created.</source>
- <translation>Неможливо створити теку резервних копій %1.</translation>
+ <translation>Не вдалось створити теку резервних копій %1.</translation>
</message>
<message>
<source>The temporary backup directory %1 could not be created.</source>
- <translation>Неможливо створити тимчасову теку резервних копій %1.</translation>
+ <translation>Не вдалось створити тимчасову теку резервних копій %1.</translation>
</message>
<message>
<source>Preview failed</source>
@@ -1528,7 +1571,7 @@ Would you like to retry?</source>
</message>
<message>
<source>The file %1 could not be written.</source>
- <translation>Неможливо записати файл %1.</translation>
+ <translation>Не вдалось записати файл %1.</translation>
</message>
<message>
<source>Please close all forms to enable the loading of additional fonts.</source>
@@ -1735,7 +1778,7 @@ Container pages should only be added by specifying them in XML returned by the d
<name>QDesignerSharedSettings</name>
<message>
<source>The template path %1 could not be created.</source>
- <translation>Неможливо створити шлях до шаблону %1.</translation>
+ <translation>Не вдалось створити шлях до шаблону %1.</translation>
</message>
<message>
<source>An error has been encountered while parsing device profile XML: %1</source>
@@ -1845,7 +1888,7 @@ Container pages should only be added by specifying them in XML returned by the d
</message>
<message>
<source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
- <translation>Неможливо відкрити файл &lt;b&gt;%1&lt;/b&gt;.</translation>
+ <translation>Не вдалось відкрити файл &lt;b&gt;%1&lt;/b&gt;.</translation>
</message>
<message>
<source>The file &lt;b&gt;%1&lt;/b&gt; is not a valid Designer UI file.</source>
@@ -1877,11 +1920,11 @@ Empty class name passed to widget factory method</extracomment>
</message>
<message>
<source>The set-type property %1 could not be read.</source>
- <translation>Неможливо прочитати властивість %1 типу &quot;множина&quot;.</translation>
+ <translation>Не вдалось прочитати властивість %1 типу &quot;множина&quot;.</translation>
</message>
<message>
<source>The enumeration-type property %1 could not be read.</source>
- <translation>Неможливо прочитати властивість %1 типу &quot;перелік&quot;.</translation>
+ <translation>Не вдалось прочитати властивість %1 типу &quot;перелік&quot;.</translation>
</message>
<message>
<source>Reading properties of the type %1 is not supported yet.</source>
@@ -1889,7 +1932,7 @@ Empty class name passed to widget factory method</extracomment>
</message>
<message>
<source>The property %1 could not be written. The type %2 is not supported yet.</source>
- <translation>Неможливо записати властивість %1. Тип %2 ще не підтримується.</translation>
+ <translation>Не вдалось записати властивість %1. Тип %2 ще не підтримується.</translation>
</message>
<message>
<source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
@@ -2513,6 +2556,10 @@ Empty class name passed to widget factory method</extracomment>
<context>
<name>QtLocalePropertyManager</name>
<message>
+ <source>&lt;Invalid&gt;</source>
+ <translation>&lt;Неправильний&gt;</translation>
+ </message>
+ <message>
<source>%1, %2</source>
<translation>%1, %2</translation>
</message>
@@ -2740,14 +2787,14 @@ This could for example be a language extension like &quot;_de&quot;.</source>
</message>
<message>
<source>Could not overwrite %1.</source>
- <translation>Неможливо перезаписати %1.</translation>
+ <translation>Не вдалось перезаписати %1.</translation>
</message>
<message>
<source>Could not copy
%1
to
%2</source>
- <translation>Неможливо копіювати
+ <translation>Не вдалось скопіювати
%1
до
%2</translation>
@@ -2764,7 +2811,7 @@ to
</message>
<message>
<source>Could not write %1: %2</source>
- <translation>Неможливо записати %1: %2</translation>
+ <translation>Не вдалось записати %1: %2</translation>
</message>
<message>
<source>Edit Resources</source>
@@ -3480,11 +3527,11 @@ Do you want overwrite the template?</source>
</message>
<message>
<source>A temporary form file could not be created in %1.</source>
- <translation>Неможливо створити тимчасовий файл форми в %1.</translation>
+ <translation>Не вдалось створити тимчасовий файл форми в %1.</translation>
</message>
<message>
<source>The temporary form file %1 could not be written.</source>
- <translation>Неможливо записати тимчасовий файл форми %1.</translation>
+ <translation>Не вдалось записати тимчасовий файл форми %1.</translation>
</message>
<message>
<source>%1 - [Code]</source>
@@ -3500,11 +3547,11 @@ Do you want overwrite the template?</source>
</message>
<message>
<source>The file %1 could not be opened: %2</source>
- <translation>Неможливо відкрити файл %1: %2</translation>
+ <translation>Не вдалось відкрити файл %1: %2</translation>
</message>
<message>
<source>The file %1 could not be written: %2</source>
- <translation>Неможливо записати файл %1: %2</translation>
+ <translation>Не вдалось записати файл %1: %2</translation>
</message>
<message>
<source>%1 - Error</source>
@@ -3951,7 +3998,7 @@ Do you want overwrite the template?</source>
</message>
<message>
<source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
- <translation>Неможливо вставити віджети. Qt Designer не зміг знайти контейнер без розташування для вставки.</translation>
+ <translation>Неможливо вставити віджети. Qt Designer&apos;у не вдалось знайти контейнер без розташування для вставки.</translation>
</message>
<message>
<source>Break the layout of the container you want to paste into, select this container and then paste again.</source>
@@ -4150,7 +4197,7 @@ Do you want overwrite the template?</source>
<message>
<source>Could not create form preview</source>
<comment>Title of warning message box</comment>
- <translation>Неможливо створити попередній перегляд форми</translation>
+ <translation>Не вдалось створити попередній перегляд форми</translation>
</message>
<message>
<source>Form Settings - %1</source>
@@ -4225,7 +4272,7 @@ Do you want overwrite the template?</source>
</message>
<message>
<source>The file &apos;%1&apos; could not be read: %2</source>
- <translation>Неможливо прочитати файл &apos;%1&apos;: %2</translation>
+ <translation>Не вдалось прочитати файл &apos;%1&apos;: %2</translation>
</message>
<message>
<source>Choose a Pixmap</source>
@@ -4740,8 +4787,16 @@ Please select another name.</source>
<translation>Шукати нові встановлені додатки користувацьких віджетів.</translation>
</message>
<message>
+ <source>Loaded Plugins</source>
+ <translation>Завантажені додатки</translation>
+ </message>
+ <message>
+ <source>Failed Plugins</source>
+ <translation>Проблемні додатки</translation>
+ </message>
+ <message>
<source>Qt Designer couldn&apos;t find any plugins</source>
- <translation>Qt Designer не зміг знайти жодного додатку</translation>
+ <translation>Qt Designer&apos;у не вдалось знайти жодного додатку</translation>
</message>
<message>
<source>Qt Designer found the following plugins</source>
@@ -5014,7 +5069,7 @@ Class: %2</source>
</message>
<message>
<source>The specified qrc file &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;could not be found. Do you want to update the file location?&lt;/p&gt;</source>
- <translation>Неможливо знайти вказаний файл qrc &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;. Бажаєте оновити розташування файлу?&lt;/p&gt;</translation>
+ <translation>Не вдалось знайти вказаний файл qrc &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;. Бажаєте оновити розташування файлу?&lt;/p&gt;</translation>
</message>
<message>
<source>New location for %1</source>
@@ -5152,7 +5207,7 @@ Class: %2</source>
</message>
<message>
<source>A widget element could not be found.</source>
- <translation>Неможливо знайти елемент віджета.</translation>
+ <translation>Не вдалось знайти елемент віджета.</translation>
</message>
</context>
<context>
@@ -5741,7 +5796,7 @@ Class: %2</source>
</message>
<message>
<source>The current page of the container &apos;%1&apos; (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget.</source>
- <translation>Неможливо визначити поточну сторінку контейнера &apos;%1&apos; (%2) під час створення розташування. Це вказує на некоректність файлу UI, можливо, розташування було створене на контейнерному віджеті.</translation>
+ <translation>Не вдалось визначити поточну сторінку контейнера &apos;%1&apos; (%2) під час створення розташування. Це вказує на некоректність файлу UI, можливо, розташування було створене на контейнерному віджеті.</translation>
</message>
<message>
<source>Attempt to add a layout to a widget &apos;%1&apos; (%2) which already has an unmanaged layout of type %3.
diff --git a/translations/linguist_sl.ts b/translations/linguist_sl.ts
new file mode 100644
index 0000000000..0b5b0844b9
--- /dev/null
+++ b/translations/linguist_sl.ts
@@ -0,0 +1,1596 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+ <extra-po-header-po_revision_date>2010-08-28 18:45+0200</extra-po-header-po_revision_date>
+ <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+ <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+ <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+ <extra-po-header-project_id_version></extra-po-header-project_id_version>
+ <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+ <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+</context>
+<context>
+ <name>BatchTranslationDialog</name>
+ <message>
+ <source>Qt Linguist - Batch Translation</source>
+ <translation>Qt Linguist – paketno prevajanje</translation>
+ </message>
+ <message>
+ <source>Options</source>
+ <translation>Možnosti</translation>
+ </message>
+ <message>
+ <source>Set translated entries to finished</source>
+ <translation>Označi prevedene vnose kot zaključene</translation>
+ </message>
+ <message>
+ <source>Retranslate entries with existing translation</source>
+ <translation>Znova prevedi vnose z obstoječimi prevodi</translation>
+ </message>
+ <message>
+ <source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked</source>
+ <translation>Vedite, da bodo spremenjeni vnosi ponastavljeni na nezaključeno, če možnost »Označi prevedene vnose kot zaključene« ni omogočena.</translation>
+ </message>
+ <message>
+ <source>Translate also finished entries</source>
+ <translation>Prevedi tudi zaključene vnose</translation>
+ </message>
+ <message>
+ <source>Phrase book preference</source>
+ <translation>Prednostni seznam knjig z izrazi</translation>
+ </message>
+ <message>
+ <source>Move up</source>
+ <translation>Premakni gor</translation>
+ </message>
+ <message>
+ <source>Move down</source>
+ <translation>Premakni dol</translation>
+ </message>
+ <message>
+ <source>The batch translator will search through the selected phrase books in the order given above</source>
+ <translation>Paketni prevajalnik bo izbrane knjige z izrazi preiskal v zgoraj navedenem vrstnem redu</translation>
+ </message>
+ <message>
+ <source>&amp;Run</source>
+ <translation>&amp;Zaženi</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Prekliči</translation>
+ </message>
+ <message>
+ <source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
+ <translation>Paketno prevajanje »%1« – Qt Linguist</translation>
+ </message>
+ <message>
+ <source>Searching, please wait...</source>
+ <translation>Iskanje, prosimo počakajte ...</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Prekliči</translation>
+ </message>
+ <message>
+ <source>Linguist batch translator</source>
+ <translation>Paketni prevajalnik</translation>
+ </message>
+ <message numerus="yes">
+ <source>Batch translated %n entries</source>
+ <translation>
+ <numerusform>Paketno preveden %n vnos</numerusform>
+ <numerusform>Paketno prevedena %n vnosa</numerusform>
+ <numerusform>Paketno prevedeni %n vnosi</numerusform>
+ <numerusform>Paketno prevedenih %n vnosov</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>DataModel</name>
+ <message>
+ <source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
+ <translation>&lt;qt&gt;V »%1« so bila najdena podvojena sporočila.</translation>
+ </message>
+ <message>
+ <source>&lt;p&gt;[more duplicates omitted]</source>
+ <translation>&lt;p&gt;[več izpuščenih podvojitev]</translation>
+ </message>
+ <message>
+ <source>&lt;p&gt;* ID: %1</source>
+ <translation>&lt;p&gt;* ID: %1</translation>
+ </message>
+ <message>
+ <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
+ <translation>&lt;p&gt;* Kontekst: %1&lt;br&gt;* Vir: %2</translation>
+ </message>
+ <message>
+ <source>&lt;br&gt;* Comment: %3</source>
+ <translation>&lt;br&gt;* Komentar: %3</translation>
+ </message>
+ <message>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation>Qt Linguist ne pozna pravil za množinske oblike za »%1«.
+Privzeta bo edninska univerzalna oblika.</translation>
+ </message>
+ <message>
+ <source>Cannot create &apos;%2&apos;: %1</source>
+ <translation>Ni moč ustvariti »%2«: %1</translation>
+ </message>
+ <message>
+ <source>Universal Form</source>
+ <translation>Univerzalna oblika</translation>
+ </message>
+</context>
+<context>
+ <name>ErrorsView</name>
+ <message>
+ <source>Accelerator possibly superfluous in translation.</source>
+ <translation>V prevodu je morda odvečen pospeševalnik.</translation>
+ </message>
+ <message>
+ <source>Accelerator possibly missing in translation.</source>
+ <translation>V prevodu morda manjka pospeševalnik.</translation>
+ </message>
+ <message>
+ <source>Translation does not end with the same punctuation as the source text.</source>
+ <translation>Prevod se ne zaključi z istim ločilom kot izvorno besedilo.</translation>
+ </message>
+ <message>
+ <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
+ <translation>Predlog za »%1« is knjige izrazov je bil prezrt.</translation>
+ </message>
+ <message>
+ <source>Translation does not refer to the same place markers as in the source text.</source>
+ <translation>Prevod ne navaja enakih oznak vsebnikov kot izvorno besedilo.</translation>
+ </message>
+ <message>
+ <source>Translation does not contain the necessary %n place marker.</source>
+ <translation>Prevod ne vsebuje potrebne oznake %n za vsebnik.</translation>
+ </message>
+ <message>
+ <source>Unknown error</source>
+ <translation>Neznana napaka</translation>
+ </message>
+</context>
+<context>
+ <name>FindDialog</name>
+ <message>
+ <source>Find</source>
+ <translation>Najdi</translation>
+ </message>
+ <message>
+ <source>This window allows you to search for some text in the translation source file.</source>
+ <translation>To okno omogoča iskanje besedila v izvorni datoteki s prevodom.</translation>
+ </message>
+ <message>
+ <source>&amp;Find what:</source>
+ <translation>&amp;Najdi:</translation>
+ </message>
+ <message>
+ <source>Type in the text to search for.</source>
+ <translation>Vnesite iskano besedilo.</translation>
+ </message>
+ <message>
+ <source>Options</source>
+ <translation>Možnosti</translation>
+ </message>
+ <message>
+ <source>Source texts are searched when checked.</source>
+ <translation>Ko je omogočeno, se preišče izvorna besedila.</translation>
+ </message>
+ <message>
+ <source>&amp;Source texts</source>
+ <translation>&amp;Izvorna besedila</translation>
+ </message>
+ <message>
+ <source>Translations are searched when checked.</source>
+ <translation>Ko je omogočeno, se preišče prevode.</translation>
+ </message>
+ <message>
+ <source>&amp;Translations</source>
+ <translation>&amp;Prevodi</translation>
+ </message>
+ <message>
+ <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+ <translation>Ko je omogočeno, se razlikuje med besedili kot sta »KDE« in »kde«.</translation>
+ </message>
+ <message>
+ <source>&amp;Match case</source>
+ <translation>Ujemanje &amp;velikosti črk</translation>
+ </message>
+ <message>
+ <source>Comments and contexts are searched when checked.</source>
+ <translation>Ko je omogočeno, se preišče kontekste in komentarje.</translation>
+ </message>
+ <message>
+ <source>&amp;Comments</source>
+ <translation>&amp;Komentarji</translation>
+ </message>
+ <message>
+ <source>Ignore &amp;accelerators</source>
+ <translation>Prezri p&amp;ospeševalnike</translation>
+ </message>
+ <message>
+ <source>Click here to find the next occurrence of the text you typed in.</source>
+ <translation>Kliknite, da poiščete naslednjo pojavitev vnešenega besedila.</translation>
+ </message>
+ <message>
+ <source>Find Next</source>
+ <translation>Najdi naslednje</translation>
+ </message>
+ <message>
+ <source>Click here to close this window.</source>
+ <translation>Kliknite, da zaprete to okno.</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Prekliči</translation>
+ </message>
+</context>
+<context>
+ <name>FormMultiWidget</name>
+ <message>
+ <source>Alt+Delete</source>
+ <extracomment>translate, but don&apos;t change
+</extracomment>
+ <translation>Alt+Izbriši</translation>
+ </message>
+ <message>
+ <source>Shift+Alt+Insert</source>
+ <extracomment>translate, but don&apos;t change
+</extracomment>
+ <translation>Shift+Alt+Vstavi</translation>
+ </message>
+ <message>
+ <source>Alt+Insert</source>
+ <extracomment>translate, but don&apos;t change
+</extracomment>
+ <translation>Alt+Vstavi</translation>
+ </message>
+ <message>
+ <source>Confirmation - Qt Linguist</source>
+ <translation>Potrditev – Qt Linguist</translation>
+ </message>
+ <message>
+ <source>Delete non-empty length variant?</source>
+ <translation>Ali izbrišem ne-prazno dolžinsko inačico?</translation>
+ </message>
+</context>
+<context>
+ <name>LRelease</name>
+ <message numerus="yes">
+ <source>Dropped %n message(s) which had no ID.</source>
+ <translation>
+ <numerusform>Opustil %n sporočilo, ki ni imelo ID-ja.</numerusform>
+ <numerusform>Opustil %n sporočili, ki nista imeli ID-ja.</numerusform>
+ <numerusform>Opustil %n sporočila, ki niso imela ID-ja.</numerusform>
+ <numerusform>Opustil %n sporočil, ki niso imeli ID-ja.</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source>Excess context/disambiguation dropped from %n message(s).</source>
+ <translation>
+ <numerusform>Odvečen kontekst/razločitev opuščen iz %n sporočila.</numerusform>
+ <numerusform>Odvečen kontekst/razločitev opuščen iz %n sporočil.</numerusform>
+ <numerusform>Odvečen kontekst/razločitev opuščen iz %n sporočil.</numerusform>
+ <numerusform>Odvečen kontekst/razločitev opuščen iz %n sporočil.</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source> Generated %n translation(s) (%1 finished and %2 unfinished)</source>
+ <translation>
+ <numerusform> Ustvaril %n prevod (%1 zaključenih in %2 nezaključenih)</numerusform>
+ <numerusform> Ustvaril %n prevoda (%1 zaključenih in %2 nezaključenih)</numerusform>
+ <numerusform> Ustvaril %n prevode (%1 zaključenih in %2 nezaključenih)</numerusform>
+ <numerusform> Ustvaril %n prevodov (%1 zaključenih in %2 nezaključenih)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source> Ignored %n untranslated source text(s)</source>
+ <translation>
+ <numerusform> Prezrl %n neprevedeno izvorno besedilo</numerusform>
+ <numerusform> Prezrl %n neprevedeni izvorni besedili</numerusform>
+ <numerusform> Prezrl %n neprevedena izvorna besedila</numerusform>
+ <numerusform> Prezrl %n neprevedenih izvornih besedil</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <source>MainWindow</source>
+ <translation>GlavnoOkno</translation>
+ </message>
+ <message>
+ <source>&amp;Phrases</source>
+ <translation>&amp;Izrazi</translation>
+ </message>
+ <message>
+ <source>&amp;Close Phrase Book</source>
+ <translation>&amp;Zapri knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>&amp;Edit Phrase Book</source>
+ <translation>&amp;Uredi knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>&amp;Print Phrase Book</source>
+ <translation>&amp;Natisni knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>V&amp;alidation</source>
+ <translation>P&amp;otrjevanje</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation>&amp;Videz</translation>
+ </message>
+ <message>
+ <source>Vie&amp;ws</source>
+ <translation>&amp;Prikazi</translation>
+ </message>
+ <message>
+ <source>&amp;Toolbars</source>
+ <translation>O&amp;rodjarne</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Pomoč</translation>
+ </message>
+ <message>
+ <source>&amp;Translation</source>
+ <translation>P&amp;revajanje</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datoteka</translation>
+ </message>
+ <message>
+ <source>Recently Opened &amp;Files</source>
+ <translation>Nedavno odprte &amp;datoteke</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Urejanje</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Odpri ...</translation>
+ </message>
+ <message>
+ <source>Open a Qt translation source file (TS file) for editing</source>
+ <translation>Odpre izvorno datoteko s prevodi za Qt (*.ts) za urejanje</translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation>Ctrl+O</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>Konča&amp;j</translation>
+ </message>
+ <message>
+ <source>Close this window and exit.</source>
+ <translation>Zapre to okno in konča.</translation>
+ </message>
+ <message>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Shrani</translation>
+ </message>
+ <message>
+ <source>Save changes made to this Qt translation source file</source>
+ <translation>Shrani spremembe te izvorne datoteke s prevodi za Qt</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation>Shrani &amp;kot ...</translation>
+ </message>
+ <message>
+ <source>Save As...</source>
+ <translation>Shrani kot ...</translation>
+ </message>
+ <message>
+ <source>Save changes made to this Qt translation source file into a new file.</source>
+ <translation>Shrani spremembe te izvorne datoteke s prevodi za Qt v novo datoteko.</translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <translation>Izdaj</translation>
+ </message>
+ <message>
+ <source>Create a Qt message file suitable for released applications from the current message file.</source>
+ <translation>Iz trenutne datoteke s sporočili ustvari datoteko, ki je primerna za izdane programe.</translation>
+ </message>
+ <message>
+ <source>&amp;Print...</source>
+ <translation>Na&amp;tisni ...</translation>
+ </message>
+ <message>
+ <source>Print a list of all the translation units in the current translation source file.</source>
+ <translation>Natisne seznam vseh prevajalskih enot iz trenutne izvorne datoteke s prevodi.</translation>
+ </message>
+ <message>
+ <source>Ctrl+P</source>
+ <translation>Ctrl+P</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation>&amp;Razveljavi</translation>
+ </message>
+ <message>
+ <source>Undo the last editing operation performed on the current translation.</source>
+ <translation>Razveljavi zadnje dejanje urejanja trenutnega prevoda.</translation>
+ </message>
+ <message>
+ <source>Ctrl+Z</source>
+ <translation>Ctrl+Z</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation>&amp;Uveljavi</translation>
+ </message>
+ <message>
+ <source>Redo an undone editing operation performed on the translation.</source>
+ <translation>Uveljavi razveljavljeno dejanje urejanja prevoda.</translation>
+ </message>
+ <message>
+ <source>Ctrl+Y</source>
+ <translation>Ctrl+Y</translation>
+ </message>
+ <message>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Izreži</translation>
+ </message>
+ <message>
+ <source>Copy the selected translation text to the clipboard and deletes it.</source>
+ <translation>Skopira izbrano besedilo prevoda na odložišče in ga izbriše.</translation>
+ </message>
+ <message>
+ <source>Ctrl+X</source>
+ <translation>Ctrl+X</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>S&amp;kopiraj</translation>
+ </message>
+ <message>
+ <source>Copy the selected translation text to the clipboard.</source>
+ <translation>Skopira izbrano besedilo prevoda na odložišče.</translation>
+ </message>
+ <message>
+ <source>Ctrl+C</source>
+ <translation>Ctrl+C</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>Pri&amp;lepi</translation>
+ </message>
+ <message>
+ <source>Paste the clipboard text into the translation.</source>
+ <translation>Prilepi besedilo z odložišča v prevod.</translation>
+ </message>
+ <message>
+ <source>Ctrl+V</source>
+ <translation>Ctrl+V</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation>Izberi &amp;vse</translation>
+ </message>
+ <message>
+ <source>Select the whole translation text.</source>
+ <translation>Izbere celotno besedilo prevoda.</translation>
+ </message>
+ <message>
+ <source>Ctrl+A</source>
+ <translation>Ctrl+A</translation>
+ </message>
+ <message>
+ <source>&amp;Find...</source>
+ <translation>&amp;Najdi ...</translation>
+ </message>
+ <message>
+ <source>Search for some text in the translation source file.</source>
+ <translation>Poišče dano besedilo v izvorni datoteki s prevodi.</translation>
+ </message>
+ <message>
+ <source>Ctrl+F</source>
+ <translation>Ctrl+F</translation>
+ </message>
+ <message>
+ <source>Find &amp;Next</source>
+ <translation>Najdi na&amp;slednje</translation>
+ </message>
+ <message>
+ <source>Continue the search where it was left.</source>
+ <translation>Nadaljuje z iskanjem od zadnjega mesta.</translation>
+ </message>
+ <message>
+ <source>F3</source>
+ <translation>F3</translation>
+ </message>
+ <message>
+ <source>&amp;Prev Unfinished</source>
+ <translation>&amp;Predhodni nezaključen</translation>
+ </message>
+ <message>
+ <source>Previous unfinished item</source>
+ <translation>Predhodni nezaključen prevod</translation>
+ </message>
+ <message>
+ <source>Move to the previous unfinished item.</source>
+ <translation>Premakne se na predhodni nezaključen prevod.</translation>
+ </message>
+ <message>
+ <source>Ctrl+K</source>
+ <translation>Ctrl+K</translation>
+ </message>
+ <message>
+ <source>&amp;Next Unfinished</source>
+ <translation>&amp;Naslednji nezaključen</translation>
+ </message>
+ <message>
+ <source>Next unfinished item</source>
+ <translation>Naslednji nezaključen prevod</translation>
+ </message>
+ <message>
+ <source>Move to the next unfinished item.</source>
+ <translation>Premakne se na naslednji nezaključen prevod.</translation>
+ </message>
+ <message>
+ <source>Ctrl+J</source>
+ <translation>Ctrl+J</translation>
+ </message>
+ <message>
+ <source>P&amp;rev</source>
+ <translation>&amp;Predhodni</translation>
+ </message>
+ <message>
+ <source>Move to previous item</source>
+ <translation>Predhodni prevod</translation>
+ </message>
+ <message>
+ <source>Move to the previous item.</source>
+ <translation>Premakne se na predhodni prevod.</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+K</source>
+ <translation>Ctrl+Shift+K</translation>
+ </message>
+ <message>
+ <source>Ne&amp;xt</source>
+ <translation>N&amp;aslednji</translation>
+ </message>
+ <message>
+ <source>Next item</source>
+ <translation>Naslednji prevod</translation>
+ </message>
+ <message>
+ <source>Move to the next item.</source>
+ <translation>Premakne se na naslednji prevod.</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+J</source>
+ <translation>Ctrl+Shift+J</translation>
+ </message>
+ <message>
+ <source>&amp;Done and Next</source>
+ <translation>&amp;Zaključi in naslednji</translation>
+ </message>
+ <message>
+ <source>Mark item as done and move to the next unfinished item</source>
+ <translation>Označi prevod kot zaključen in na naslednji nezaključen</translation>
+ </message>
+ <message>
+ <source>Mark this item as done and move to the next unfinished item.</source>
+ <translation>Označi prevod kot zaključen in se premakni na naslednji nezaključen prevod.</translation>
+ </message>
+ <message>
+ <source>Copy from source text</source>
+ <translation>Skopiraj izvorno besedilo</translation>
+ </message>
+ <message>
+ <source>Copies the source text into the translation field</source>
+ <translation>Skopira izvorno besedilo v prevod</translation>
+ </message>
+ <message>
+ <source>Copies the source text into the translation field.</source>
+ <translation>Skopira izvorno besedilo v polje za vnos prevoda.</translation>
+ </message>
+ <message>
+ <source>Ctrl+B</source>
+ <translation>Ctrl+B</translation>
+ </message>
+ <message>
+ <source>&amp;Accelerators</source>
+ <translation>&amp;Pospeševalniki</translation>
+ </message>
+ <message>
+ <source>Toggle the validity check of accelerators</source>
+ <translation>Preklopi preverjanje pospeševalnikov</translation>
+ </message>
+ <message>
+ <source>Toggle the validity check of accelerators, i.e. whether the number of ampersands in the source and translation text is the same. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Preklopi preverjanje pospeševalnikov, t.j. ali je število znakov »&amp;&amp;« v izvornem besedilu enako kot v prevodu. Če preizkus ne uspe, bo v podoknu z opozorili prikazano sporočilo.</translation>
+ </message>
+ <message>
+ <source>&amp;Ending Punctuation</source>
+ <translation>&amp;Končna ločila</translation>
+ </message>
+ <message>
+ <source>Toggle the validity check of ending punctuation</source>
+ <translation>Preklopi preverjanje končnih ločil</translation>
+ </message>
+ <message>
+ <source>Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Preklopi preverjanje končnih ločil. Če preizkus ne uspe, bo v podoknu z opozorili prikazano sporočilo.</translation>
+ </message>
+ <message>
+ <source>&amp;Phrase matches</source>
+ <translation>&amp;Ujemanje z izrazi</translation>
+ </message>
+ <message>
+ <source>Toggle checking that phrase suggestions are used</source>
+ <translation>Preklopi preverjanje uporabe predlogov izrazov</translation>
+ </message>
+ <message>
+ <source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Preklopi preverjanje uporabe predlogov izrazov. Če preizkus ne uspe, bo v podoknu z opozorili prikazano sporočilo.</translation>
+ </message>
+ <message>
+ <source>Place &amp;Marker Matches</source>
+ <translation>Ujemanje &amp;oznak vsebnikov</translation>
+ </message>
+ <message>
+ <source>Toggle the validity check of place markers</source>
+ <translation>Preklopi preverjanje oznak vsebnikov</translation>
+ </message>
+ <message>
+ <source>Toggle the validity check of place markers, i.e. whether %1, %2, ... are used consistently in the source text and translation text. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Preklopi preverjanje oznak vsebnikov, tj. ali so %1, %2, itd. v izvornem besedilu in prevodu konsistenčni. Če preizkus ne uspe, bo v podoknu z opozorili prikazano sporočilo.</translation>
+ </message>
+ <message>
+ <source>&amp;New Phrase Book...</source>
+ <translation>&amp;Nova knjiga z izrazi ...</translation>
+ </message>
+ <message>
+ <source>Create a new phrase book.</source>
+ <translation>Ustvari novo knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation>Ctrl+N</translation>
+ </message>
+ <message>
+ <source>&amp;Open Phrase Book...</source>
+ <translation>&amp;Odpri knjigo izrazov ...</translation>
+ </message>
+ <message>
+ <source>Open a phrase book to assist translation.</source>
+ <translation>Odpre knjigo izrazov za pomoč pri prevajanju.</translation>
+ </message>
+ <message>
+ <source>Ctrl+H</source>
+ <translation>Ctrl+H</translation>
+ </message>
+ <message>
+ <source>&amp;Reset Sorting</source>
+ <translation>&amp;Ponastavi razvrščanje</translation>
+ </message>
+ <message>
+ <source>Sort the items back in the same order as in the message file.</source>
+ <translation>Prevajalske enote bodo razvrščene kot v datoteki s sporočili.</translation>
+ </message>
+ <message>
+ <source>&amp;Display guesses</source>
+ <translation>Prikaži &amp;ugibanja</translation>
+ </message>
+ <message>
+ <source>Set whether or not to display translation guesses.</source>
+ <translation>Ali naj bodo prikazana ugibanja prevodov.</translation>
+ </message>
+ <message>
+ <source>&amp;Statistics</source>
+ <translation>&amp;Statistika</translation>
+ </message>
+ <message>
+ <source>Display translation statistics.</source>
+ <translation>Prikaže statistiko prevodov.</translation>
+ </message>
+ <message>
+ <source>&amp;Manual</source>
+ <translation>&amp;Priročnik</translation>
+ </message>
+ <message>
+ <source>F1</source>
+ <translation>F1</translation>
+ </message>
+ <message>
+ <source>About Qt Linguist</source>
+ <translation>O Qt Linguist</translation>
+ </message>
+ <message>
+ <source>About Qt</source>
+ <translation>O Qt</translation>
+ </message>
+ <message>
+ <source>Display information about the Qt toolkit by Nokia.</source>
+ <translation>Prikaže podatke o ogrodju Qt.</translation>
+ </message>
+ <message>
+ <source>&amp;What&apos;s This?</source>
+ <translation>&amp;Kaj je to?</translation>
+ </message>
+ <message>
+ <source>What&apos;s This?</source>
+ <translation>Kaj je to?</translation>
+ </message>
+ <message>
+ <source>Enter What&apos;s This? mode.</source>
+ <translation>Vstop v način Kaj je to?</translation>
+ </message>
+ <message>
+ <source>Shift+F1</source>
+ <translation>Shift+F1</translation>
+ </message>
+ <message>
+ <source>&amp;Search And Translate...</source>
+ <translation>&amp;Najdi in prevedi ...</translation>
+ </message>
+ <message>
+ <source>Replace the translation on all entries that matches the search source text.</source>
+ <translation>Zamenja prevode vseh enot, kjer se izvorno besedilo ujema z iskanim.</translation>
+ </message>
+ <message>
+ <source>&amp;Batch Translation...</source>
+ <translation>&amp;Paketno prevajanje ...</translation>
+ </message>
+ <message>
+ <source>Batch translate all entries using the information in the phrase books.</source>
+ <translation>Paketno prevede vse enote in pri tem uporabi podatke iz knjig z izrazi.</translation>
+ </message>
+ <message>
+ <source>Release As...</source>
+ <translation>Izdaj kot ...</translation>
+ </message>
+ <message>
+ <source>Create a Qt message file suitable for released applications from the current message file. The filename will automatically be determined from the name of the TS file.</source>
+ <translation>Iz trenutne datoteke s sporočili ustvari datoteko, ki je primerna za izdane programe. Ime datoteke bo izbrano sampdejno glede na ime datoteke *.ts.</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Datoteka</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation>Urejanje</translation>
+ </message>
+ <message>
+ <source>Translation</source>
+ <translation>Prevajanje</translation>
+ </message>
+ <message>
+ <source>Validation</source>
+ <translation>Potrjevanje</translation>
+ </message>
+ <message>
+ <source>Help</source>
+ <translation>Pomoč</translation>
+ </message>
+ <message>
+ <source>Open/Refresh Form &amp;Preview</source>
+ <translation>Odpri/osveži &amp;ogled obrazca</translation>
+ </message>
+ <message>
+ <source>Form Preview Tool</source>
+ <translation>Orodje za ogled obrazca</translation>
+ </message>
+ <message>
+ <source>F5</source>
+ <translation>F5</translation>
+ </message>
+ <message>
+ <source>Translation File &amp;Settings...</source>
+ <translation>&amp;Nastavitve datoteke s prevodi ...</translation>
+ </message>
+ <message>
+ <source>&amp;Add to Phrase Book</source>
+ <translation>&amp;Dodaj v knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>Ctrl+T</source>
+ <translation>Ctrl+T</translation>
+ </message>
+ <message>
+ <source>Open Read-O&amp;nly...</source>
+ <translation>Odpri samo za &amp;branje ...</translation>
+ </message>
+ <message>
+ <source>&amp;Save All</source>
+ <translation>&amp;Shrani vse</translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <source>&amp;Release All</source>
+ <translation>&amp;Izdaj vse</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation>Zapri</translation>
+ </message>
+ <message>
+ <source>&amp;Close All</source>
+ <translation>&amp;Zapri vse</translation>
+ </message>
+ <message>
+ <source>Ctrl+W</source>
+ <translation> Ctrl+W</translation>
+ </message>
+ <message>
+ <source>Length Variants</source>
+ <translation>Dolžinske inačice</translation>
+ </message>
+ <message>
+ <source>Source text</source>
+ <translation>Izvorno besedilo</translation>
+ </message>
+ <message>
+ <source>Index</source>
+ <translation>Kazalo</translation>
+ </message>
+ <message>
+ <source>Context</source>
+ <translation>Kontekst</translation>
+ </message>
+ <message>
+ <source>Items</source>
+ <translation>Postavke</translation>
+ </message>
+ <message>
+ <source>This panel lists the source contexts.</source>
+ <translation>To podokno prikazuje seznam kontekstov iz izvorne kode.</translation>
+ </message>
+ <message>
+ <source>Strings</source>
+ <translation>Nizi</translation>
+ </message>
+ <message>
+ <source>Phrases and guesses</source>
+ <translation>Izrazi in ugibanja</translation>
+ </message>
+ <message>
+ <source>Sources and Forms</source>
+ <translation>Izvorna koda in obrazci</translation>
+ </message>
+ <message>
+ <source>Warnings</source>
+ <translation>Opozorila</translation>
+ </message>
+ <message>
+ <source> MOD </source>
+ <comment>status bar: file(s) modified</comment>
+ <translation> SPR </translation>
+ </message>
+ <message>
+ <source>Loading...</source>
+ <translation>Nalaganje ...</translation>
+ </message>
+ <message>
+ <source>Loading File - Qt Linguist</source>
+ <translation>Nalaganje datoteke – Qt Linguist</translation>
+ </message>
+ <message>
+ <source>The file &apos;%1&apos; does not seem to be related to the currently open file(s) &apos;%2&apos;.
+
+Close the open file(s) first?</source>
+ <translation>Kot kaže datoteka »%1« ni povezana s trenutno odprtimi datotekami »%2«.
+
+Ali želite najprej zapreti odprte datoteke?</translation>
+ </message>
+ <message>
+ <source>The file &apos;%1&apos; does not seem to be related to the file &apos;%2&apos; which is being loaded as well.
+
+Skip loading the first named file?</source>
+ <translation>Kot kaže datoteka »%1« ni povezana z datoteko »%2«, ki se ravno tako nalaga.
+
+Ali želite preskočiti nalaganje prve datoteke?</translation>
+ </message>
+ <message numerus="yes">
+ <source>%n translation unit(s) loaded.</source>
+ <translation>
+ <numerusform>Naložena %n prevajalska enota.</numerusform>
+ <numerusform>Naloženi %n prevajalski enoti.</numerusform>
+ <numerusform>Naložene %n prevajalske enote.</numerusform>
+ <numerusform>Naloženih %n prevajalskih enot.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Related files (%1);;</source>
+ <translation>Povezane datoteke (%1);;</translation>
+ </message>
+ <message>
+ <source>Open Translation Files</source>
+ <translation>Odpri datoteke za prevajanje</translation>
+ </message>
+ <message>
+ <source>File saved.</source>
+ <translation>Datoteka je shranjena.</translation>
+ </message>
+ <message>
+ <source>Qt message files for released applications (*.qm)
+All files (*)</source>
+ <translation>Datoteke s sporočili za izdane programe (*.qm)
+Vse datoteke (*)</translation>
+ </message>
+ <message>
+ <source>File created.</source>
+ <translation>Datoteka ustvarjena.</translation>
+ </message>
+ <message>
+ <source>Printing...</source>
+ <translation>Tiskanje ...</translation>
+ </message>
+ <message>
+ <source>Context: %1</source>
+ <translation>Kontekst: %1</translation>
+ </message>
+ <message>
+ <source>finished</source>
+ <translation>zaključen</translation>
+ </message>
+ <message>
+ <source>unresolved</source>
+ <translation>nerazrešen</translation>
+ </message>
+ <message>
+ <source>obsolete</source>
+ <translation>zastarel</translation>
+ </message>
+ <message>
+ <source>Printing... (page %1)</source>
+ <translation>Tiskanje (%1. stran) ...</translation>
+ </message>
+ <message>
+ <source>Printing completed</source>
+ <translation>Tiskanje zaključeno</translation>
+ </message>
+ <message>
+ <source>Printing aborted</source>
+ <translation>Tiskanje preklicano</translation>
+ </message>
+ <message>
+ <source>Search wrapped.</source>
+ <translation>Iskanje na drugem koncu</translation>
+ </message>
+ <message>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <source>Cannot find the string &apos;%1&apos;.</source>
+ <translation>Ni moč najti niza »%1«.</translation>
+ </message>
+ <message>
+ <source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
+ <translation>Najdi in prevedi v »%1« – Qt Linguist</translation>
+ </message>
+ <message>
+ <source>Translate - Qt Linguist</source>
+ <translation>Prevajanje – Qt Linguist</translation>
+ </message>
+ <message numerus="yes">
+ <source>Translated %n entry(s)</source>
+ <translation>
+ <numerusform>Prevedel %n vnos</numerusform>
+ <numerusform>Prevedel %n vnosa</numerusform>
+ <numerusform>Prevedel %n vnose</numerusform>
+ <numerusform>Prevedel %n vnosov</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>No more occurrences of &apos;%1&apos;. Start over?</source>
+ <translation>Pojavitev »%1« ni več. Ali začnem znova?</translation>
+ </message>
+ <message>
+ <source>Create New Phrase Book</source>
+ <translation>Ustvari novo knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>Qt phrase books (*.qph)
+All files (*)</source>
+ <translation>Knjiga z izrazi za Qt (*.qph)
+Vse datoteke (*)</translation>
+ </message>
+ <message>
+ <source>Phrase book created.</source>
+ <translation>Knjiga izrazov ustvarjena.</translation>
+ </message>
+ <message>
+ <source>Open Phrase Book</source>
+ <translation>Odpri knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>Qt phrase books (*.qph);;All files (*)</source>
+ <translation>Knjiga z izrazi za Qt (*.qph);;Vse datoteke (*)</translation>
+ </message>
+ <message numerus="yes">
+ <source>%n phrase(s) loaded.</source>
+ <translation>
+ <numerusform>Naložil %n izrazov.</numerusform>
+ <numerusform>Naložil %n izraz.</numerusform>
+ <numerusform>Naložil %n izraza.</numerusform>
+ <numerusform>Naložil %n izraze.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Add to phrase book</source>
+ <translation>Dodaj v knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>No appropriate phrasebook found.</source>
+ <translation>Najdene ni bilo nobene ustrezne knjige izrazov.</translation>
+ </message>
+ <message>
+ <source>Adding entry to phrasebook %1</source>
+ <translation>Dodajam vnos v knjigo izrazov %1</translation>
+ </message>
+ <message>
+ <source>Select phrase book to add to</source>
+ <translation>Izberite knjigo izrazov za dodajanje vanjo</translation>
+ </message>
+ <message>
+ <source>Unable to launch Qt Assistant (%1)</source>
+ <translation>Ni moč zagnati Qt Assistanta (%1)</translation>
+ </message>
+ <message>
+ <source>Version %1</source>
+ <translation>Različica %1</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist is a tool for adding translations to Qt applications.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
+ <translation>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist je orodje za dodajanje prevodov programom Qt..&lt;/p&gt;&lt;p&gt;Avtorske pravice © 2010 Nokia Corporation in/ali njene podružnice.&lt;/p&gt;&lt;p&gt;Prevedel: &lt;a href=&quot;mailto:jlp@holodeck1.com&quot;&gt;Jure Repinc&lt;/a&gt;, &lt;a href=&quot;http://www.lugos.si/&quot;&gt;LUGOS&lt;/a&gt;&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <source>Do you want to save the modified files?</source>
+ <translation>Ali želite shraniti spremenjene datoteke?</translation>
+ </message>
+ <message>
+ <source>Do you want to save &apos;%1&apos;?</source>
+ <translation>Ali želite shraniti »%1«?</translation>
+ </message>
+ <message>
+ <source>Qt Linguist[*]</source>
+ <translation>Qt Linguist[*]</translation>
+ </message>
+ <message>
+ <source>%1[*] - Qt Linguist</source>
+ <translation>%1[*] – Qt Linguist</translation>
+ </message>
+ <message>
+ <source>No untranslated translation units left.</source>
+ <translation>Preostale ni nobene neprevedene prevajalske enote.</translation>
+ </message>
+ <message>
+ <source>&amp;Window</source>
+ <translation>&amp;Okno</translation>
+ </message>
+ <message>
+ <source>Minimize</source>
+ <translation>Pomanjšaj</translation>
+ </message>
+ <message>
+ <source>Ctrl+M</source>
+ <translation>Ctrl+M</translation>
+ </message>
+ <message>
+ <source>Display the manual for %1.</source>
+ <translation>Prikaži priročnik za %1.</translation>
+ </message>
+ <message>
+ <source>Display information about %1.</source>
+ <translation>Prikaži podatke o %1.</translation>
+ </message>
+ <message>
+ <source>&amp;Save &apos;%1&apos;</source>
+ <translation>&amp;Shrani »%1«</translation>
+ </message>
+ <message>
+ <source>Save &apos;%1&apos; &amp;As...</source>
+ <translation>Shrani »%1« &amp;kot ...</translation>
+ </message>
+ <message>
+ <source>Release &apos;%1&apos;</source>
+ <translation>Izdaj »%1«</translation>
+ </message>
+ <message>
+ <source>Release &apos;%1&apos; As...</source>
+ <translation>Izdaj »%1« kot ...</translation>
+ </message>
+ <message>
+ <source>&amp;Close &apos;%1&apos;</source>
+ <translation>&amp;Zapri »%1«</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Shrani</translation>
+ </message>
+ <message>
+ <source>&amp;Close</source>
+ <translation>&amp;Zapri</translation>
+ </message>
+ <message>
+ <source>Save All</source>
+ <translation>Shrani vse</translation>
+ </message>
+ <message>
+ <source>Close All</source>
+ <translation>Zapri vse</translation>
+ </message>
+ <message>
+ <source>&amp;Release</source>
+ <translation>&amp;Izdaj</translation>
+ </message>
+ <message>
+ <source>Translation File &amp;Settings for &apos;%1&apos;...</source>
+ <translation>&amp;Nastavitve datoteke s prevodi za »%1« ...</translation>
+ </message>
+ <message>
+ <source>&amp;Batch Translation of &apos;%1&apos;...</source>
+ <translation>&amp;Paketno prevajanje »%1« ...</translation>
+ </message>
+ <message>
+ <source>Search And &amp;Translate in &apos;%1&apos;...</source>
+ <translation>&amp;Najdi in prevedi v »%1« ...</translation>
+ </message>
+ <message>
+ <source>Search And &amp;Translate...</source>
+ <translation>&amp;Najdi in prevedi ...</translation>
+ </message>
+ <message>
+ <source>Cannot read from phrase book &apos;%1&apos;.</source>
+ <translation>Ni moč brati iz knjige izrazov »%1«.</translation>
+ </message>
+ <message>
+ <source>Close this phrase book.</source>
+ <translation>Zapri to knjigo izrazov.</translation>
+ </message>
+ <message>
+ <source>Enables you to add, modify, or delete entries in this phrase book.</source>
+ <translation>Omogoča dodajanje, spreminjanje in brisanje vnosov v knjigi izrazov.</translation>
+ </message>
+ <message>
+ <source>Print the entries in this phrase book.</source>
+ <translation>Natisne vnose iz te knjige izrazov.</translation>
+ </message>
+ <message>
+ <source>Cannot create phrase book &apos;%1&apos;.</source>
+ <translation>Ni moč ustvariti knjige izrazov »%1«.</translation>
+ </message>
+ <message>
+ <source>Do you want to save phrase book &apos;%1&apos;?</source>
+ <translation>Ali želite shraniti knjigo izrazov »%1«?</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Vse</translation>
+ </message>
+</context>
+<context>
+ <name>MessageEditor</name>
+ <message>
+ <source>Russian</source>
+ <translation>Ruščina</translation>
+ </message>
+ <message>
+ <source>German</source>
+ <translation>Nemščina</translation>
+ </message>
+ <message>
+ <source>Japanese</source>
+ <translation>Japonščina</translation>
+ </message>
+ <message>
+ <source>French</source>
+ <translation>Francoščina</translation>
+ </message>
+ <message>
+ <source>Polish</source>
+ <translation>Poljščina</translation>
+ </message>
+ <message>
+ <source>Chinese</source>
+ <translation>Kitajščina</translation>
+ </message>
+ <message>
+ <source>This whole panel allows you to view and edit the translation of some source text.</source>
+ <translation>To podokno vam omogoča ogled in urejanje prevoda izvornega besedila.</translation>
+ </message>
+ <message>
+ <source>Source text</source>
+ <translation>Izvorno besedilo</translation>
+ </message>
+ <message>
+ <source>This area shows the source text.</source>
+ <translation>To področje prikazuje izvorno besedilo.</translation>
+ </message>
+ <message>
+ <source>Source text (Plural)</source>
+ <translation>Izvorno besedilo (množina)</translation>
+ </message>
+ <message>
+ <source>This area shows the plural form of the source text.</source>
+ <translation>To področje prikazuje množinsko obliko izvornega besedila.</translation>
+ </message>
+ <message>
+ <source>Developer comments</source>
+ <translation>Komentarji razvijalcev</translation>
+ </message>
+ <message>
+ <source>This area shows a comment that may guide you, and the context in which the text occurs.</source>
+ <translation>To področje prikazuje komentar, ki vas lahko vodi, in kontekst v katerem se besedilo pojavi.</translation>
+ </message>
+ <message>
+ <source>Here you can enter comments for your own use. They have no effect on the translated applications.</source>
+ <translation>Sem lahko vnesete komentarje za lastne potrebe. Na prevedene programe ne vplivajo.</translation>
+ </message>
+ <message>
+ <source>%1 translation (%2)</source>
+ <translation>%1 prevod (%2)</translation>
+ </message>
+ <message>
+ <source>This is where you can enter or modify the translation of the above source text.</source>
+ <translation>Sem lahko vnesete ali pa tu spremenite prevod gornjega izvornega besedila.</translation>
+ </message>
+ <message>
+ <source>%1 translation</source>
+ <translation>%1 prevod</translation>
+ </message>
+ <message>
+ <source>%1 translator comments</source>
+ <translation>%1 prevajalski komentarji</translation>
+ </message>
+ <message>
+ <source>&apos;%1&apos;
+Line: %2</source>
+ <translation>»%1«
+Vrstica: %2</translation>
+ </message>
+</context>
+<context>
+ <name>MessageModel</name>
+ <message>
+ <source>Completion status for %1</source>
+ <translation>Stanje za %1</translation>
+ </message>
+ <message>
+ <source>&lt;file header&gt;</source>
+ <translation>&lt;glava datoteke&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;context comment&gt;</source>
+ <translation>&lt;komentar konteksta&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;unnamed context&gt;</source>
+ <translation>&lt;neimenovan kontekst&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>PhraseBookBox</name>
+ <message>
+ <source>Edit Phrase Book</source>
+ <translation>Uredi knjigo izrazov</translation>
+ </message>
+ <message>
+ <source>This window allows you to add, modify, or delete entries in a phrase book.</source>
+ <translation>To okno omogoča dodajanje, spreminjanje in brisanje vnosov v knjigi izrazov.</translation>
+ </message>
+ <message>
+ <source>&amp;Translation:</source>
+ <translation>&amp;Prevod:</translation>
+ </message>
+ <message>
+ <source>This is the phrase in the target language corresponding to the source phrase.</source>
+ <translation>To je izraz v ciljnem jeziku, ki ustreza izvornemu izrazu.</translation>
+ </message>
+ <message>
+ <source>S&amp;ource phrase:</source>
+ <translation>&amp;Izvorni izraz:</translation>
+ </message>
+ <message>
+ <source>This is a definition for the source phrase.</source>
+ <translation>To je definicija za izvorni izraz.</translation>
+ </message>
+ <message>
+ <source>This is the phrase in the source language.</source>
+ <translation>To je izraz v izvornem jeziku.</translation>
+ </message>
+ <message>
+ <source>&amp;Definition:</source>
+ <translation>&amp;Definicija:</translation>
+ </message>
+ <message>
+ <source>Click here to add the phrase to the phrase book.</source>
+ <translation>Kliknite, da dodate izraz v knjigo izrazov.</translation>
+ </message>
+ <message>
+ <source>&amp;New Entry</source>
+ <translation>&amp;Nov vnos</translation>
+ </message>
+ <message>
+ <source>Click here to remove the entry from the phrase book.</source>
+ <translation>Kliknite, da odstranite vnos iz knjige izrazov.</translation>
+ </message>
+ <message>
+ <source>&amp;Remove Entry</source>
+ <translation>&amp;Odstrani vnos</translation>
+ </message>
+ <message>
+ <source>Settin&amp;gs...</source>
+ <translation>&amp;Nastavitve ...</translation>
+ </message>
+ <message>
+ <source>Click here to save the changes made.</source>
+ <translation>Kliknite za shranitev opravljenih sprememb.</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Shrani</translation>
+ </message>
+ <message>
+ <source>Click here to close this window.</source>
+ <translation>Kliknite, da zaprete to okno.</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation>Zapri</translation>
+ </message>
+ <message>
+ <source>(New Entry)</source>
+ <translation>(Nov vnos)</translation>
+ </message>
+ <message>
+ <source>%1[*] - Qt Linguist</source>
+ <translation>%1[*] – Qt Linguist</translation>
+ </message>
+ <message>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <source>Cannot save phrase book &apos;%1&apos;.</source>
+ <translation>Ni moč shraniti knjige izrazov »%1«.</translation>
+ </message>
+</context>
+<context>
+ <name>PhraseModel</name>
+ <message>
+ <source>Source phrase</source>
+ <translation>Izvorni izraz</translation>
+ </message>
+ <message>
+ <source>Translation</source>
+ <translation>Prevod</translation>
+ </message>
+ <message>
+ <source>Definition</source>
+ <translation>Definicija</translation>
+ </message>
+</context>
+<context>
+ <name>PhraseView</name>
+ <message>
+ <source>Insert</source>
+ <translation>Vstavi</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation>Uredi</translation>
+ </message>
+ <message>
+ <source>Guess (%1)</source>
+ <translation>Ugibanje (%1)</translation>
+ </message>
+ <message>
+ <source>Guess</source>
+ <translation>Ugibanje</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <source>Translation files (%1);;</source>
+ <translation>Prevajalske datoteke (%1);;</translation>
+ </message>
+ <message>
+ <source>All files (*)</source>
+ <translation>Vse datoteke (*)</translation>
+ </message>
+ <message>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <source>GNU Gettext localization files</source>
+ <translation>Prevajalske datoteke GNU Gettext</translation>
+ </message>
+ <message>
+ <source>GNU Gettext localization template files</source>
+ <translation>Predloge prevajalskih datotek GNU Gettext</translation>
+ </message>
+ <message>
+ <source>Compiled Qt translations</source>
+ <translation>Prevedeni prevodi za Qt</translation>
+ </message>
+ <message>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation>Knjiga izrazov za Qt Linguist</translation>
+ </message>
+ <message>
+ <source>Qt translation sources (format 1.1)</source>
+ <translation>Prevajalski viri za Qt (različica 1.1)</translation>
+ </message>
+ <message>
+ <source>Qt translation sources (format 2.0)</source>
+ <translation>Prevajalski viri za Qt (različica 2.0)</translation>
+ </message>
+ <message>
+ <source>Qt translation sources (latest format)</source>
+ <translation>Prevajalski viri za Qt (najnovejša različica)</translation>
+ </message>
+ <message>
+ <source>XLIFF localization files</source>
+ <translation>Prevajalske datoteke XLIFF</translation>
+ </message>
+</context>
+<context>
+ <name>SourceCodeView</name>
+ <message>
+ <source>&lt;i&gt;Source code not available&lt;/i&gt;</source>
+ <translation>&lt;i&gt;Izvorna koda ni na voljo&lt;/i&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;i&gt;File %1 not available&lt;/i&gt;</source>
+ <translation>&lt;i&gt;Datoteka %1 ni na voljo&lt;/i&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;i&gt;File %1 not readable&lt;/i&gt;</source>
+ <translation>&lt;i&gt;Datoteka %1 ni berljiva&lt;/i&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Statistics</name>
+ <message>
+ <source>Statistics</source>
+ <translation>Statistika</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation>Zapri</translation>
+ </message>
+ <message>
+ <source>Translation</source>
+ <translation>Prevod</translation>
+ </message>
+ <message>
+ <source>Source</source>
+ <translation>Vir</translation>
+ </message>
+ <message>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <source>Words:</source>
+ <translation>Besede:</translation>
+ </message>
+ <message>
+ <source>Characters:</source>
+ <translation>Znaki:</translation>
+ </message>
+ <message>
+ <source>Characters (with spaces):</source>
+ <translation>Znaki (s presledki):</translation>
+ </message>
+</context>
+<context>
+ <name>TranslateDialog</name>
+ <message>
+ <source>This window allows you to search for some text in the translation source file.</source>
+ <translation>To okno omogoča iskanje besedila v izvorni datoteki s prevodom.</translation>
+ </message>
+ <message>
+ <source>Type in the text to search for.</source>
+ <translation>Vnesite iskano besedilo.</translation>
+ </message>
+ <message>
+ <source>Find &amp;source text:</source>
+ <translation>Najdi &amp;izvorno besedilo:</translation>
+ </message>
+ <message>
+ <source>&amp;Translate to:</source>
+ <translation>&amp;Prevedi v:</translation>
+ </message>
+ <message>
+ <source>Search options</source>
+ <translation>Možnosti iskanja</translation>
+ </message>
+ <message>
+ <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+ <translation>Ko je omogočeno, se razlikuje med besedili kot sta »KDE« in »kde«.</translation>
+ </message>
+ <message>
+ <source>Match &amp;case</source>
+ <translation>Ujemanje &amp;velikosti črk</translation>
+ </message>
+ <message>
+ <source>Mark new translation as &amp;finished</source>
+ <translation>Nove prevode označi kot &amp;zaključene</translation>
+ </message>
+ <message>
+ <source>Click here to find the next occurrence of the text you typed in.</source>
+ <translation>Kliknite, da poiščete naslednjo pojavitev vnešenega besedila.</translation>
+ </message>
+ <message>
+ <source>Find Next</source>
+ <translation>Najdi naslednje</translation>
+ </message>
+ <message>
+ <source>Translate</source>
+ <translation>Prevedi</translation>
+ </message>
+ <message>
+ <source>Translate All</source>
+ <translation>Prevedi vse</translation>
+ </message>
+ <message>
+ <source>Click here to close this window.</source>
+ <translation>Kliknite, da zaprete to okno.</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Prekliči</translation>
+ </message>
+</context>
+<context>
+ <name>TranslationSettingsDialog</name>
+ <message>
+ <source>Source language</source>
+ <translation>Izvorni jezik</translation>
+ </message>
+ <message>
+ <source>Language</source>
+ <translation>Jezik</translation>
+ </message>
+ <message>
+ <source>Country/Region</source>
+ <translation>Država/regija:</translation>
+ </message>
+ <message>
+ <source>Target language</source>
+ <translation>Ciljni jezik</translation>
+ </message>
+ <message>
+ <source>Settings for &apos;%1&apos; - Qt Linguist</source>
+ <translation>Nastavitve za »%1« – Qt Linguist</translation>
+ </message>
+ <message>
+ <source>Any Country</source>
+ <translation>Katerakoli država</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/linguist_uk.ts b/translations/linguist_uk.ts
index 6e58be50fe..ca326d6e85 100644
--- a/translations/linguist_uk.ts
+++ b/translations/linguist_uk.ts
@@ -113,7 +113,7 @@ Will assume a single universal form.</source>
</message>
<message>
<source>Cannot create &apos;%2&apos;: %1</source>
- <translation>Не можу створити &apos;%2&apos;: %1</translation>
+ <translation>Неможливо створити &apos;%2&apos;: %1</translation>
</message>
<message>
<source>Universal Form</source>
@@ -259,6 +259,186 @@ Will assume a single universal form.</source>
</message>
</context>
<context>
+ <name>LConvert</name>
+ <message>
+ <source>
+Usage:
+ lconvert [options] &lt;infile&gt; [&lt;infile&gt;...]
+
+lconvert is part of Qt&apos;s Linguist tool chain. It can be used as a
+stand-alone tool to convert and filter translation data files.
+The following file formats are supported:
+
+%1
+If multiple input files are specified, they are merged with
+translations from later files taking precedence.
+
+Options:
+ -h
+ --help Display this information and exit.
+
+ -i &lt;infile&gt;
+ --input-file &lt;infile&gt;
+ Specify input file. Use if &lt;infile&gt; might start with a dash.
+ This option can be used several times to merge inputs.
+ May be &apos;-&apos; (standard input) for use in a pipe.
+
+ -o &lt;outfile&gt;
+ --output-file &lt;outfile&gt;
+ Specify output file. Default is &apos;-&apos; (standard output).
+
+ -if &lt;informat&gt;
+ --input-format &lt;format&gt;
+ Specify input format for subsequent &lt;infile&gt;s.
+ The format is auto-detected from the file name and defaults to &apos;ts&apos;.
+
+ -of &lt;outformat&gt;
+ --output-format &lt;outformat&gt;
+ Specify output format. See -if.
+
+ --input-codec &lt;codec&gt;
+ Specify encoding for QM and PO input files. Default is &apos;Latin1&apos;
+ for QM and &apos;UTF-8&apos; for PO files. UTF-8 is always tried as well for
+ QM, corresponding to the possible use of the trUtf8() function.
+
+ --output-codec &lt;codec&gt;
+ Specify encoding for PO output files. Default is &apos;UTF-8&apos;.
+
+ --drop-tags &lt;regexp&gt;
+ Drop named extra tags when writing TS or XLIFF files.
+ May be specified repeatedly.
+
+ --drop-translations
+ Drop existing translations and reset the status to &apos;unfinished&apos;.
+ Note: this implies --no-obsolete.
+
+ --source-language &lt;language&gt;[_&lt;region&gt;]
+ Specify/override the language of the source strings. Defaults to
+ POSIX if not specified and the file does not name it yet.
+
+ --target-language &lt;language&gt;[_&lt;region&gt;]
+ Specify/override the language of the translation.
+ The target language is guessed from the file name if this option
+ is not specified and the file contents name no language yet.
+
+ --no-obsolete
+ Drop obsolete messages.
+
+ --no-finished
+ Drop finished messages.
+
+ --sort-contexts
+ Sort contexts in output TS file alphabetically.
+
+ --locations {absolute|relative|none}
+ Override how source code references are saved in TS files.
+ Default is absolute.
+
+ --no-ui-lines
+ Drop line numbers from references to UI files.
+
+ --verbose
+ be a bit more verbose
+
+Long options can be specified with only one leading dash, too.
+
+Return value:
+ 0 on success
+ 1 on command line parse failures
+ 2 on read failures
+ 3 on write failures
+</source>
+ <translation>
+Використання:
+ lconvert [опції] &lt;вхідний_файл&gt; [&lt;вхідний_файл&gt;...]
+
+lconvert - це частина набору програм Qt Linguist. Вона може використовуватись,
+як окремий інструмент, для конвертування та фільтрування файлів перекладу.
+Підтримуються наступні формати файлів:
+
+%1
+Якщо вказано декілька вхідних файлів, то вони об&apos;єднується з перекладами з
+попередньо вказаних файлів з урахуванням порядку задання.
+
+Опції:
+ -h
+ --help Показати цю інформацію та вийти.
+
+ -i &lt;вхідний_файл&gt;
+ --input-file &lt;вхідний_файл&gt;
+ Вказати вхідний файл. Використовуйте, якщо &lt;вхідний_файл&gt;
+ починається з дефіса. Ця опція може бути використана декілька
+ раз, щоб об&apos;єднати вхідні дані.
+ Може бути &apos;-&apos; (стандартний вхід) для використання в конвеєрі.
+
+ -o &lt;вихідний_файл&gt;
+ --output-file &lt;вихідний_файл&gt;
+ Вказати вихідний файл. Типово - &apos;-&apos; (стандартний вихід).
+
+ -if &lt;формат&gt;
+ --input-format &lt;формат&gt;
+ Вказати вхідний формат для наступних &lt;вхідних_файлів&gt;.
+ Формат автоматично визначається з імені файлу. Типово - &apos;ts&apos;.
+
+ -of &lt;формат&gt;
+ --output-format &lt;формат&gt;
+ Вказати вихідний формат. Дивіться -if.
+
+ --input-codec &lt;кодек&gt;
+ Вказати кодування для вхідних файлів QM та PO. Типово - &apos;Latin1&apos;
+ для QM та &apos;UTF-8&apos; файлів PO. Для QM також здійснюється спроба
+ використати UTF-8, відповідно до можливого застосування функції trUtf8().
+
+ --output-codec &lt;кодек&gt;
+ Вказати кодування для вихідних файлів PO. Типово - &apos;UTF-8&apos;.
+
+ --drop-tags &lt;регулярний_вираз&gt;
+ Видалити вказані додаткові теги під час запису файлів TS чи XLIFF.
+ Може вказуватись декілька раз.
+
+ --drop-translations
+ Видаляти існуючі переклади та скидати статус в &apos;незавершений&apos;.
+ Примітка: це включає --no-obsolete.
+
+ --source-language &lt;мова&gt;[_&lt;регіон&gt;]
+ Вказати/замінити мову оригінальних рядків. Типово - POSIX,
+ якщо не вказано та не встановлено в файлі.
+
+ --target-language &lt;мова&gt;[_&lt;регіон&gt;]
+ Вказати/замінити мову перекладу.
+ Якщо ця опція не вказана і у вмісті файлу мова не задана, то
+ мова перекладу вгадується з імені файлу.
+
+ --no-obsolete
+ Відкинути застарілі повідомлення.
+
+ --no-finished
+ Відкинути завершені повідомлення.
+
+ --sort-contexts
+ Сортувати контексти в вихідному файлі TS за абеткою.
+
+ --locations {absolute|relative|none}
+ Замінити як посилання на код зберігаються в файлі TS.
+ Типово - абсолютно.
+
+ --no-ui-lines
+ Видалити номери рядків з посилань на файли UI.
+
+ --verbose
+ бути трохи більш детальним
+
+Довгі опції також можуть вказуватись лише з одним дефісом.
+
+Коди повернення:
+ 0 при успіху
+ 1 при помилці розбору командного рядка
+ 2 при помилках читання
+ 3 при помилках запису
+</translation>
+ </message>
+</context>
+<context>
<name>LRelease</name>
<message numerus="yes">
<source>Dropped %n message(s) which had no ID.</source>
@@ -292,10 +472,231 @@ Will assume a single universal form.</source>
<numerusform> Зігноровано %n неперекладених оригінальних текстів</numerusform>
</translation>
</message>
+ <message>
+ <source>Usage:
+ lrelease [options] project-file
+ lrelease [options] ts-files [-qm qm-file]
+
+lrelease is part of Qt&apos;s Linguist tool chain. It can be used as a
+stand-alone tool to convert XML-based translations files in the TS
+format into the &apos;compiled&apos; QM format used by QTranslator objects.
+
+Options:
+ -help Display this information and exit
+ -idbased
+ Use IDs instead of source strings for message keying
+ -compress
+ Compress the QM files
+ -nounfinished
+ Do not include unfinished translations
+ -removeidentical
+ If the translated text is the same as
+ the source text, do not include the message
+ -markuntranslated &lt;prefix&gt;
+ If a message has no real translation, use the source text
+ prefixed with the given string instead
+ -silent
+ Do not explain what is being done
+ -version
+ Display the version of lrelease and exit
+</source>
+ <translation>Використання:
+ lrelease [опції] файл-проект
+ lrelease [опції] файли-ts [-qm файл-qm]
+
+lrelease - це частина набору програм Qt Linguist. Вона може використовуватися
+як окремий засіб для перетворення файлів перекладу на базі XML в форматі TS
+до &apos;скомпільованого&apos; формату QM, що використовується об&apos;єктами QTranslator.
+
+Опції:
+ -help Показати цю інформацію та вийти
+ -idbased
+ Використовувати ID замість рядків оригіналу як ключі повідомлень
+ -compress
+ Стискати файли QM
+ -nounfinished
+ Не включати незавершені переклади
+ -removeidentical
+ Якщо перекладений текст однаковий з оригіналом, то
+ не включати повідомлення
+ -markuntranslated &lt;prefix&gt;
+ If a message has no real translation, use the source text
+ prefixed with the given string instead
+ -silent
+ Не пояснювати, що відбувається
+ -version
+ Показати версію lrelease та вийти
+</translation>
+ </message>
+ <message>
+ <source>lrelease error: %1</source>
+ <translation>помилка lrelease: %1</translation>
+ </message>
+ <message>
+ <source>Updating &apos;%1&apos;...
+</source>
+ <translation>Оновлюю &apos;%1&apos;...
+</translation>
+ </message>
+ <message>
+ <source>Removing translations equal to source text in &apos;%1&apos;...
+</source>
+ <translation>Видалення перекладів однакових з оригінальним текстом в &apos;%1&apos;...
+</translation>
+ </message>
+ <message>
+ <source>lrelease error: cannot create &apos;%1&apos;: %2
+</source>
+ <translation>помилка lrelease: неможливо створити &apos;%1&apos;: %2
+</translation>
+ </message>
+ <message>
+ <source>lrelease error: cannot save &apos;%1&apos;: %2</source>
+ <translation>помилка lrelease: неможливо зберегти &apos;%1&apos;: %2
+</translation>
+ </message>
+ <message>
+ <source>lrelease version %1
+</source>
+ <translation>lrelease версії %1
+</translation>
+ </message>
+ <message>
+ <source>lrelease error: cannot read project file &apos;%1&apos;.
+</source>
+ <translation>помилка lrelease: неможливо прочитати файл проекту &apos;%1&apos;.
+</translation>
+ </message>
+ <message>
+ <source>lrelease error: cannot process project file &apos;%1&apos;.
+</source>
+ <translation>помилка lrelease: неможливо обробити файл проекту &apos;%1&apos;.
+</translation>
+ </message>
+ <message>
+ <source>lrelease warning: Met no &apos;TRANSLATIONS&apos; entry in project file &apos;%1&apos;
+</source>
+ <translation>попередження lrelease: в файлу проекту &apos;%1&apos; не знайдено елементу &apos;TRANSLATIONS&apos;
+</translation>
+ </message>
</context>
<context>
<name>LUpdate</name>
<message>
+ <source>Usage:
+ lupdate [options] [project-file]...
+ lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file
+
+lupdate is part of Qt&apos;s Linguist tool chain. It extracts translatable
+messages from Qt UI files, C++, Java and JavaScript/QtScript source code.
+Extracted messages are stored in textual translation source files (typically
+Qt TS XML). New and modified messages can be merged into existing TS files.
+
+Options:
+ -help Display this information and exit.
+ -no-obsolete
+ Drop all obsolete strings.
+ -extensions &lt;ext&gt;[,&lt;ext&gt;]...
+ Process files with the given extensions only.
+ The extension list must be separated with commas, not with whitespace.
+ Default: &apos;%1&apos;.
+ -pluralonly
+ Only include plural form messages.
+ -silent
+ Do not explain what is being done.
+ -no-sort
+ Do not sort contexts in TS files.
+ -no-recursive
+ Do not recursively scan the following directories.
+ -recursive
+ Recursively scan the following directories (default).
+ -I &lt;includepath&gt; or -I&lt;includepath&gt;
+ Additional location to look for include files.
+ May be specified multiple times.
+ -locations {absolute|relative|none}
+ Specify/override how source code references are saved in TS files.
+ Default is absolute.
+ -no-ui-lines
+ Do not record line numbers in references to UI files.
+ -disable-heuristic {sametext|similartext|number}
+ Disable the named merge heuristic. Can be specified multiple times.
+ -pro &lt;filename&gt;
+ Name of a .pro file. Useful for files with .pro file syntax but
+ different file suffix. Projects are recursed into and merged.
+ -source-language &lt;language&gt;[_&lt;region&gt;]
+ Specify the language of the source strings for new files.
+ Defaults to POSIX if not specified.
+ -target-language &lt;language&gt;[_&lt;region&gt;]
+ Specify the language of the translations for new files.
+ Guessed from the file name if not specified.
+ -ts &lt;ts-file&gt;...
+ Specify the output file(s). This will override the TRANSLATIONS
+ and nullify the CODECFORTR from possibly specified project files.
+ -codecfortr &lt;codec&gt;
+ Specify the codec assumed for tr() calls. Effective only with -ts.
+ -version
+ Display the version of lupdate and exit.
+ @lst-file
+ Read additional file names (one per line) from lst-file.
+</source>
+ <translation>Використання:
+ lupdate [опції] [файл-проект]...
+ lupdate [опції] [вхідний-файл|шлях|@файл-список]... -ts ts-файли|@файл-список
+
+lupdate - це частина набору програм Qt Linguist. Вона It витягає придатні для перекладу
+повідомлення з файлів Qt UI, коду C++, Java та JavaScript/QtScript. Витягнуті повідомлення
+зберігаються в текстовому файлі перекладу (типово Qt TS XML). Нові та модифіковані
+повідомлення можуть бути об&apos;єднанні з існуючими файлами TS.
+
+Опції:
+ -help Показати цю інформацію та вийти.
+ -no-obsolete
+ Видалити всі застарілі рядки.
+ -extensions &lt;розширення&gt;[,&lt;розширення&gt;]...
+ Обробляти файли лише з вказаними розширеннями.
+ Список розширень має розділюватись комами, а не пропусками.
+ Типово: &apos;%1&apos;.
+ -pluralonly
+ Включати лише повідомлення з формою множини.
+ -silent
+ Не пояснювати, що відбувається.
+ -no-sort
+ Не сортувати контексти в файлах TS.
+ -no-recursive
+ Не сканувати рекурсивно наступні теки.
+ -recursive
+ Рекурсивно сканувати наступні теки (типово).
+ -I &lt;шлях-включення&gt; або -I&lt;шлях-включення&gt;
+ Додаткові місця для пошуку файлів включення.
+ Може бути вказано декілька разів.
+ -locations {absolute|relative|none}
+ Вказати/замістити як посилання на код зберігаються в файлі TS.
+ Типово - абсолютно.
+ -no-ui-lines
+ Не записувати номери рядків в посиланнях на файли UI.
+ -disable-heuristic {sametext|similartext|number}
+ Вимкнути вказану евристику об&apos;єдання. Може бути вказано декілька разів.
+ -pro &lt;ім&apos;я-файлу&gt;
+ Ім&apos;я .pro файлу. Корисно для файлів із синтаксисом фалів .pro, але з
+ іншим розширенням. Projects are recursed into and merged.
+ -source-language &lt;мова&gt;[_&lt;регіон&gt;]
+ Вказати мову оригінальних рядків для нових файлів.
+ Типово, якщо не вказано - POSIX.
+ -target-language &lt;мова&gt;[_&lt;регіон&gt;]
+ Вказати мову перекладу для нових файлів.
+ Вгадується з імені файла, якщо не вказано.
+ -ts &lt;файл-ts&gt;...
+ Вказати вихідний файл(и). Це замістить TRANSLATIONS
+ та скине CODECFORTR з, можливо, вказаних файлів проекту.
+ -codecfortr &lt;кодек&gt;
+ Вказати кодек, що Specify the codec вживається для викликів tr(). Ефективно лише з -ts.
+ -version
+ Показати версію lupdate та вийти.
+ @файл-список
+ Читати додаткові імена файлів (одне на рядок) з файла-списку.
+</translation>
+ </message>
+ <message>
<source>lupdate warning: Codec for tr() &apos;%1&apos; disagrees with existing file&apos;s codec &apos;%2&apos;. Expect trouble.
</source>
<translation>попередження lupdate: Кодек для tr() &apos;%1&apos; не узгоджується з існуючим кодеком файлу &apos;%2&apos;. Очікуйте неприємностей.
@@ -314,12 +715,42 @@ Will assume a single universal form.</source>
</translation>
</message>
<message>
+ <source>Updating &apos;%1&apos;...
+</source>
+ <translation>Оновлюю &apos;%1&apos;...
+</translation>
+ </message>
+ <message>
+ <source>Stripping non plural forms in &apos;%1&apos;...
+</source>
+ <translation>Видалення не множинних форм в &apos;%1&apos;...
+</translation>
+ </message>
+ <message>
<source>lupdate warning: Codec for source &apos;%1&apos; is invalid. Falling back to codec for tr().
</source>
<translation>попередження lupdate: Кодек для джерела &apos;%1&apos; неправильний. Повертаємось до використання кодеку для tr().
</translation>
</message>
<message>
+ <source>lupdate warning: TS files from command line will override TRANSLATIONS in %1.
+</source>
+ <translation>попередження lupdate: файл-TS з командного рядка замінять TRANSLATIONS в %1.
+</translation>
+ </message>
+ <message>
+ <source>lupdate warning: TS files from command line prevent recursing into %1.
+</source>
+ <translation>попередження lupdate: файли TS з командного рядка перешкоджають рекурсивному проходу %1.
+</translation>
+ </message>
+ <message>
+ <source>lupdate warning: no TS files specified. Only diagnostics will be produced for &apos;%1&apos;.
+</source>
+ <translation>попередження lupdate: не вказано файлів TS. Здійснюватиметься лише діагностика для &apos;%1&apos;.
+</translation>
+ </message>
+ <message>
<source>The option -target-language requires a parameter.
</source>
<translation>Опція -target-language вимагає параметра.
@@ -410,6 +841,12 @@ Will assume a single universal form.</source>
</translation>
</message>
<message>
+ <source>Scanning directory &apos;%1&apos;...
+</source>
+ <translation>Сканування теки &apos;%1&apos;...
+</translation>
+ </message>
+ <message>
<source>lupdate warning: -target-language usually only makes sense with exactly one TS file.
</source>
<translation>попередження lupdate: Використання -target-language, зазвичай, має сенс лише з одним файлом TS.
@@ -433,6 +870,360 @@ Will assume a single universal form.</source>
<translation>помилка lupdate: Одночасно вказані файл проекту та вхідні файли / шляхи для включення.
</translation>
</message>
+ <message>
+ <source>Parenthesis/bracket/brace mismatch between #if and #else branches; using #if branch
+</source>
+ <translation>Круглі/квадратні/фігурні дужки не збігаються між гілками #if та #else, використовую гілку #if
+</translation>
+ </message>
+ <message>
+ <source>Parenthesis/brace mismatch between #if and #else branches; using #if branch
+</source>
+ <translation>Круглі/фігурні дужки не збігаються між гілками #if та #else, використовую гілку #if
+</translation>
+ </message>
+ <message>
+ <source>Unterminated C++ comment
+</source>
+ <translation>Незавершений коментар C++
+</translation>
+ </message>
+ <message>
+ <source>Unterminated C++ string
+</source>
+ <translation>Незавершений рядок C++
+</translation>
+ </message>
+ <message>
+ <source>Excess closing brace in C++ code (or abuse of the C++ preprocessor)
+</source>
+ <translation>Забагато закриваючих фігурних дужок в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+ </message>
+ <message>
+ <source>Excess closing parenthesis in C++ code (or abuse of the C++ preprocessor)
+</source>
+ <translation>Забагато закриваючих круглих дужок в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+ </message>
+ <message>
+ <source>Excess closing bracket in C++ code (or abuse of the C++ preprocessor)
+</source>
+ <translation>Забагато закриваючих квадратних дужок в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+ </message>
+ <message>
+ <source>Cannot open %1: %2</source>
+ <translation>Неможливо відкрити %1: %2</translation>
+ </message>
+ <message>
+ <source>//% cannot be used with tr() / QT_TR_NOOP(). Ignoring
+</source>
+ <translation>//% не може бути використаний разом з tr() / QT_TR_NOOP(). Ігнорую
+</translation>
+ </message>
+ <message>
+ <source>circular inclusion of %1
+</source>
+ <translation>циклічне вкладення %1
+</translation>
+ </message>
+ <message>
+ <source>Cannot open %1: %2
+</source>
+ <translation>Неможливо відкрити %1: %2
+</translation>
+ </message>
+ <message>
+ <source>Qualifying with unknown namespace/class %1::%2
+</source>
+ <translation>Задаю з невідомим простором імен/класом %1::%2
+</translation>
+ </message>
+ <message>
+ <source>tr() cannot be called without context
+</source>
+ <translation>tr() не можна викликати без контексту
+</translation>
+ </message>
+ <message>
+ <source>Class &apos;%1&apos; lacks Q_OBJECT macro
+</source>
+ <translation>У класу &apos;%1&apos; не вистачає макросу Q_OBJECT
+</translation>
+ </message>
+ <message>
+ <source>It is not recommended to call tr() from within a constructor &apos;%1::%2&apos;
+</source>
+ <translation>Не рекомендовано викликати tr() з конструктора &apos;%1::%2&apos;
+</translation>
+ </message>
+ <message>
+ <source>//% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring
+</source>
+ <translation>//% не може бути використаний разом з translate() / QT_TRANSLATE_NOOP(). Ігнорую
+</translation>
+ </message>
+ <message>
+ <source>//= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring
+</source>
+ <translation>//= не може бути використаний разом з qtTrId() / QT_TRID_NOOP(). Ігнорую
+</translation>
+ </message>
+ <message>
+ <source>Unexpected character in meta string
+</source>
+ <translation>Неочікуваний символ в мета-рядку
+</translation>
+ </message>
+ <message>
+ <source>Unterminated meta string
+</source>
+ <translation>Незавершений мета-рядок
+</translation>
+ </message>
+ <message>
+ <source>Cannot invoke tr() like this
+</source>
+ <translation>Неможливо викликати tr() подібним чином
+</translation>
+ </message>
+ <message>
+ <source>Discarding unconsumed meta data
+</source>
+ <translation>Відкидаю невжиті мета-дані
+</translation>
+ </message>
+ <message>
+ <source>Unbalanced opening brace in C++ code (or abuse of the C++ preprocessor)
+</source>
+ <translation>Незбалансовані відкриваючі фігурні дужки в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+ </message>
+ <message>
+ <source>Unbalanced opening parenthesis in C++ code (or abuse of the C++ preprocessor)
+</source>
+ <translation>Незбалансовані відкриваючі круглі дужки в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+ </message>
+ <message>
+ <source>Unbalanced opening bracket in C++ code (or abuse of the C++ preprocessor)
+</source>
+ <translation>Незбалансовані відкриваючі квадратні дужки в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+ </message>
+ <message>
+ <source>Unterminated Java comment.
+</source>
+ <translation>Незавершений коментар Java.
+</translation>
+ </message>
+ <message>
+ <source>Invalid Unicode value.
+</source>
+ <translation>Неправильне значення Unicode.
+</translation>
+ </message>
+ <message>
+ <source>Unterminated string.
+</source>
+ <translation>Незавершений рядок.
+</translation>
+ </message>
+ <message>
+ <source>String used in translation can contain only literals concatenated with other literals, not expressions or numbers.
+</source>
+ <translation>Рядки, що використовуються в перекладі, можуть містити лише літерали об&apos;єднані з іншими літералами, а не вирази або числа.
+</translation>
+ </message>
+ <message>
+ <source>&apos;class&apos; must be followed by a class name.
+</source>
+ <translation>Після &apos;class&apos; повинна слідувати назва класу.
+</translation>
+ </message>
+ <message>
+ <source>Excess closing brace.
+</source>
+ <translation>Забагато закриваючих фігурних дужок.</translation>
+ </message>
+ <message>
+ <source>&apos;package&apos; must be followed by package name.
+</source>
+ <translation>Після &apos;package&apos; повинна слідувати назва пакунку.
+</translation>
+ </message>
+ <message>
+ <source>Unbalanced opening brace.
+</source>
+ <translation>Незбалансовані відкриваючі фігурні дужки.
+</translation>
+ </message>
+ <message>
+ <source>Unbalanced opening parenthesis.
+</source>
+ <translation>Незбалансовані відкриваючі круглі дужки.
+</translation>
+ </message>
+ <message numerus="yes">
+ <source> Found %n source text(s) (%1 new and %2 already existing)
+</source>
+ <translation>
+ <numerusform> Знайдено %n оригінальний текст (%1 новий та %2 вже існує)
+</numerusform>
+ <numerusform> Знайдено %n оригінальних тексти (%1 нових та %2 вже існує)
+</numerusform>
+ <numerusform> Знайдено %n оригінальних текстів (%1 нових та %2 вже існує)
+</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source> Removed %n obsolete entries
+</source>
+ <translation>
+ <numerusform> Видалено %n застарілий елемент
+</numerusform>
+ <numerusform> Видалено %n застарілих елементи
+</numerusform>
+ <numerusform> Видалено %n застарілих елементів
+</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source> Kept %n obsolete entries
+</source>
+ <translation>
+ <numerusform> Залишено %n застарілий елемент
+</numerusform>
+ <numerusform> Залишено %n застарілих елементи
+</numerusform>
+ <numerusform> Залишено %n застарілих елементів
+</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source> Number heuristic provided %n translation(s)
+</source>
+ <translation>
+ <numerusform>Числова евристика надала %n переклад
+</numerusform>
+ <numerusform>Числова евристика надала %n переклади
+</numerusform>
+ <numerusform>Числова евристика надала %n перекладів
+</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source> Same-text heuristic provided %n translation(s)
+</source>
+ <translation>
+ <numerusform>Евристика &quot;однаковий текст&quot; надала %n переклад
+</numerusform>
+ <numerusform>Евристика &quot;однаковий текст&quot; надала %n переклади
+</numerusform>
+ <numerusform>Евристика &quot;однаковий текст&quot; надала %n перекладів
+</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source> Similar-text heuristic provided %n translation(s)
+</source>
+ <translation>
+ <numerusform>Евристика &quot;схожий текст&quot; надала %n переклад
+</numerusform>
+ <numerusform>Евристика &quot;схожий текст&quot; надала %n переклади
+</numerusform>
+ <numerusform>Евристика &quot;схожий текст&quot; надала %n перекладів
+</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Illegal character</source>
+ <translation>Неприпустимий символ</translation>
+ </message>
+ <message>
+ <source>Unclosed string at end of line</source>
+ <translation>Незакритий рядок в кінці файлу</translation>
+ </message>
+ <message>
+ <source>Illegal escape squence</source>
+ <translation>Неприпустима керуюча послідовність</translation>
+ </message>
+ <message>
+ <source>Illegal unicode escape sequence</source>
+ <translation>Неприпустима керуюча послідовність Unicode</translation>
+ </message>
+ <message>
+ <source>Unclosed comment at end of file</source>
+ <translation>Незакритий коментар в кінці файлу</translation>
+ </message>
+ <message>
+ <source>Illegal syntax for exponential number</source>
+ <translation>Неприпустимий синтаксис для експоненційного числа</translation>
+ </message>
+ <message>
+ <source>Identifier cannot start with numeric literal</source>
+ <translation>Ідентифікатор не може починатись з числового літералу</translation>
+ </message>
+ <message>
+ <source>Unterminated regular expression literal</source>
+ <translation>Незавершений літерал регулярного виразу</translation>
+ </message>
+ <message>
+ <source>//% cannot be used with %1(). Ignoring
+</source>
+ <translation>//% не може бути використаний разом з %1(). Ігнорую
+</translation>
+ </message>
+ <message>
+ <source>%1() requires at least two arguments.
+</source>
+ <translation>%1() вимагає щонайменше двох аргументів.
+</translation>
+ </message>
+ <message>
+ <source>%1(): both arguments must be literal strings.
+</source>
+ <translation>%1(): обидва аргументи повинні бути рядковими літералами.
+</translation>
+ </message>
+ <message>
+ <source>%1() requires at least one argument.
+</source>
+ <translation>%1() вимагає щонайменше одного аргументу.
+</translation>
+ </message>
+ <message>
+ <source>%1(): text to translate must be a literal string.
+</source>
+ <translation>%1(): текст для перекладу повинен бути рядковим літералом.
+</translation>
+ </message>
+ <message>
+ <source>//= cannot be used with %1(). Ignoring
+</source>
+ <translation>//= не може бути використаний разом з %1(). Ігнорую
+</translation>
+ </message>
+ <message>
+ <source>%1(): identifier must be a literal string.
+</source>
+ <translation>%1(): ідентифікатор повинен бути рядковим літералом.
+</translation>
+ </message>
+ <message>
+ <source>Expected </source>
+ <extracomment>Beginning of the string that contains comma-separated list of expected tokens</extracomment>
+ <translation>Очікувалось </translation>
+ </message>
+ <message>
+ <source>XML error: Parse error at line %1, column %2 (%3).</source>
+ <translation>Помилка XML: Помилка розбору в рядку %1, позиція %2 (%3).</translation>
+ </message>
+ <message>
+ <source>Parse error in UI file</source>
+ <translation>Помилка розбору файлу UI</translation>
+ </message>
</context>
<context>
<name>MainWindow</name>
@@ -1431,6 +2222,13 @@ Line: %2</source>
</message>
</context>
<context>
+ <name>PhraseBook</name>
+ <message>
+ <source>Parse error at line %1, column %2 (%3).</source>
+ <translation>Помилка розбору в рядку %1, позиція %2 (%3).</translation>
+ </message>
+</context>
+<context>
<name>PhraseBookBox</name>
<message>
<source>Edit Phrase Book</source>
@@ -1558,83 +2356,6 @@ Line: %2</source>
</message>
</context>
<context>
- <name>QCoreApplication</name>
- <message>
- <source>Usage:
- lrelease [options] project-file
- lrelease [options] ts-files [-qm qm-file]
-
-lrelease is part of Qt&apos;s Linguist tool chain. It can be used as a
-stand-alone tool to convert XML-based translations files in the TS
-format into the &apos;compiled&apos; QM format used by QTranslator objects.
-
-Options:
- -help Display this information and exit
- -idbased
- Use IDs instead of source strings for message keying
- -compress
- Compress the QM files
- -nounfinished
- Do not include unfinished translations
- -removeidentical
- If the translated text is the same as
- the source text, do not include the message
- -markuntranslated &lt;prefix&gt;
- If a message has no real translation, use the source text
- prefixed with the given string instead
- -silent
- Do not explain what is being done
- -version
- Display the version of lrelease and exit
-</source>
- <translation>Використання:
- lrelease [опції] файл-проект
- lrelease [опції] файли-ts [-qm файл-qm]
-
-lrelease - це частина набору програм Qt Linguist. Вона може використовуватися
-як окремий засіб для перетворення файлів перекладу на базі XML в форматі TS
-до &apos;скомпільованого&apos; формату QM, що використовується об&apos;єктами QTranslator.
-
-Опції:
- -help Показати цю інформацію та вийти
- -idbased
- Використовувати ID замість рядків оригіналу як ключі повідомлень
- -compress
- Стискати файли QM
- -nounfinished
- Не включати незавершені переклади
- -removeidentical
- Якщо перекладений текст однаковий з оригіналом, то
- не включати повідомлення
- -markuntranslated &lt;prefix&gt;
- If a message has no real translation, use the source text
- prefixed with the given string instead
- -silent
- Не пояснювати, що відбувається
- -version
- Показати версію lrelease та вийти
-</translation>
- </message>
- <message>
- <source>Updating &apos;%1&apos;...
-</source>
- <translation>Оновлюю &apos;%1&apos;...
-</translation>
- </message>
- <message>
- <source>Removing translations equal to source text in &apos;%1&apos;...
-</source>
- <translation>Видалення перекладів однакових з оригінальним текстом в &apos;%1&apos;...
-</translation>
- </message>
- <message>
- <source>lrelease version %1
-</source>
- <translation>lrelease версії %1
-</translation>
- </message>
-</context>
-<context>
<name>QObject</name>
<message>
<source>Translation files (%1);;</source>
@@ -1681,215 +2402,11 @@ lrelease - це частина набору програм Qt Linguist. Вона
<translation>Файли локалізації XLIFF</translation>
</message>
<message>
- <source>Usage:
- lupdate [options] [project-file]...
- lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file
-
-lupdate is part of Qt&apos;s Linguist tool chain. It extracts translatable
-messages from Qt UI files, C++, Java and JavaScript/QtScript source code.
-Extracted messages are stored in textual translation source files (typically
-Qt TS XML). New and modified messages can be merged into existing TS files.
-
-Options:
- -help Display this information and exit.
- -no-obsolete
- Drop all obsolete strings.
- -extensions &lt;ext&gt;[,&lt;ext&gt;]...
- Process files with the given extensions only.
- The extension list must be separated with commas, not with whitespace.
- Default: &apos;%1&apos;.
- -pluralonly
- Only include plural form messages.
- -silent
- Do not explain what is being done.
- -no-sort
- Do not sort contexts in TS files.
- -no-recursive
- Do not recursively scan the following directories.
- -recursive
- Recursively scan the following directories (default).
- -I &lt;includepath&gt; or -I&lt;includepath&gt;
- Additional location to look for include files.
- May be specified multiple times.
- -locations {absolute|relative|none}
- Specify/override how source code references are saved in TS files.
- Default is absolute.
- -no-ui-lines
- Do not record line numbers in references to UI files.
- -disable-heuristic {sametext|similartext|number}
- Disable the named merge heuristic. Can be specified multiple times.
- -pro &lt;filename&gt;
- Name of a .pro file. Useful for files with .pro file syntax but
- different file suffix. Projects are recursed into and merged.
- -source-language &lt;language&gt;[_&lt;region&gt;]
- Specify the language of the source strings for new files.
- Defaults to POSIX if not specified.
- -target-language &lt;language&gt;[_&lt;region&gt;]
- Specify the language of the translations for new files.
- Guessed from the file name if not specified.
- -ts &lt;ts-file&gt;...
- Specify the output file(s). This will override the TRANSLATIONS
- and nullify the CODECFORTR from possibly specified project files.
- -codecfortr &lt;codec&gt;
- Specify the codec assumed for tr() calls. Effective only with -ts.
- -version
- Display the version of lupdate and exit.
- @lst-file
- Read additional file names (one per line) from lst-file.
-</source>
- <translation>Використання:
- lupdate [опції] [файл-проект]...
- lupdate [опції] [вхідний-файл|шлях|@файл-список]... -ts ts-файли|@файл-список
-
-lupdate - це частина набору програм Qt Linguist. Вона It витягає придатні для перекладу
-повідомлення з файлів Qt UI, коду C++, Java та JavaScript/QtScript. Витягнуті повідомлення
-зберігаються в текстовому файлі перекладу (типово Qt TS XML). Нові та модифіковані
-повідомлення можуть бути об&apos;єднанні з існуючими файлами TS.
-
-Опції:
- -help Показати цю інформацію та вийти.
- -no-obsolete
- Видалити всі застарілі рядки.
- -extensions &lt;розширення&gt;[,&lt;розширення&gt;]...
- Обробляти файли лише з вказаними розширеннями.
- Список розширень має розділюватись комами, а не пропусками.
- Типово: &apos;%1&apos;.
- -pluralonly
- Включати лише повідомлення з формою множини.
- -silent
- Не пояснювати, що відбувається.
- -no-sort
- Не сортувати контексти в файлах TS.
- -no-recursive
- Не сканувати рекурсивно наступні теки.
- -recursive
- Рекурсивно сканувати наступні теки (типово).
- -I &lt;шлях-включення&gt; або -I&lt;шлях-включення&gt;
- Додаткові місця для пошуку файлів включення.
- Може бути вказано декілька разів.
- -locations {absolute|relative|none}
- Вказати/замістити як посилання на код зберігаються в файлі TS.
- Типово - абсолютно.
- -no-ui-lines
- Не записувати номери рядків в посиланнях на файли UI.
- -disable-heuristic {sametext|similartext|number}
- Вимкнути вказану евристику об&apos;єдання. Може бути вказано декілька разів.
- -pro &lt;ім&apos;я-файлу&gt;
- Ім&apos;я .pro файлу. Корисно для файлів із синтаксисом фалів .pro, але з
- іншим розширенням. Projects are recursed into and merged.
- -source-language &lt;мова&gt;[_&lt;регіон&gt;]
- Вказати мову оригінальних рядків для нових файлів.
- Типово, якщо не вказано - POSIX.
- -target-language &lt;мова&gt;[_&lt;регіон&gt;]
- Вказати мову перекладу для нових файлів.
- Вгадується з імені файла, якщо не вказано.
- -ts &lt;файл-ts&gt;...
- Вказати вихідний файл(и). Це замістить TRANSLATIONS
- та скине CODECFORTR з, можливо, вказаних файлів проекту.
- -codecfortr &lt;кодек&gt;
- Вказати кодек, що Specify the codec вживається для викликів tr(). Ефективно лише з -ts.
- -version
- Показати версію lupdate та вийти.
- @файл-список
- Читати додаткові імена файлів (одне на рядок) з файла-списку.
-</translation>
- </message>
- <message>
- <source>Updating &apos;%1&apos;...
-</source>
- <translation>Оновлюю &apos;%1&apos;...
-</translation>
- </message>
- <message>
- <source>Stripping non plural forms in &apos;%1&apos;...
-</source>
- <translation>Видалення не множинних форм в &apos;%1&apos;...
-</translation>
- </message>
- <message>
<source>lupdate version %1
</source>
<translation>lupdate версії %1
</translation>
</message>
- <message>
- <source>Scanning directory &apos;%1&apos;...
-</source>
- <translation>Сканування теки &apos;%1&apos;...
-</translation>
- </message>
- <message numerus="yes">
- <source> Found %n source text(s) (%1 new and %2 already existing)
-</source>
- <translation>
- <numerusform> Знайдено %n оригінальний текст (%1 новий та %2 вже існує)
-</numerusform>
- <numerusform> Знайдено %n оригінальних тексти (%1 нових та %2 вже існує)
-</numerusform>
- <numerusform> Знайдено %n оригінальних текстів (%1 нових та %2 вже існує)
-</numerusform>
- </translation>
- </message>
- <message numerus="yes">
- <source> Removed %n obsolete entries
-</source>
- <translation>
- <numerusform> Видалено %n застарілий елемент
-</numerusform>
- <numerusform> Видалено %n застарілих елементи
-</numerusform>
- <numerusform> Видалено %n застарілих елементів
-</numerusform>
- </translation>
- </message>
- <message numerus="yes">
- <source> Kept %n obsolete entries
-</source>
- <translation>
- <numerusform> Залишено %n застарілий елемент
-</numerusform>
- <numerusform> Залишено %n застарілих елементи
-</numerusform>
- <numerusform> Залишено %n застарілих елементів
-</numerusform>
- </translation>
- </message>
- <message numerus="yes">
- <source> Number heuristic provided %n translation(s)
-</source>
- <translation>
- <numerusform>Числова евристика надала %n переклад
-</numerusform>
- <numerusform>Числова евристика надала %n переклади
-</numerusform>
- <numerusform>Числова евристика надала %n перекладів
-</numerusform>
- </translation>
- </message>
- <message numerus="yes">
- <source> Same-text heuristic provided %n translation(s)
-</source>
- <translation>
- <numerusform>Евристика &quot;однаковий текст&quot; надала %n переклад
-</numerusform>
- <numerusform>Евристика &quot;однаковий текст&quot; надала %n переклади
-</numerusform>
- <numerusform>Евристика &quot;однаковий текст&quot; надала %n перекладів
-</numerusform>
- </translation>
- </message>
- <message numerus="yes">
- <source> Similar-text heuristic provided %n translation(s)
-</source>
- <translation>
- <numerusform>Евристика &quot;схожий текст&quot; надала %n переклад
-</numerusform>
- <numerusform>Евристика &quot;схожий текст&quot; надала %n переклади
-</numerusform>
- <numerusform>Евристика &quot;схожий текст&quot; надала %n перекладів
-</numerusform>
- </translation>
- </message>
</context>
<context>
<name>SourceCodeView</name>
diff --git a/translations/qt_help_sl.ts b/translations/qt_help_sl.ts
new file mode 100644
index 0000000000..7d76e58a23
--- /dev/null
+++ b/translations/qt_help_sl.ts
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+ <extra-po-header-po_revision_date>2010-08-28 13:32+0200</extra-po-header-po_revision_date>
+ <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+ <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+ <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+ <extra-po-header-project_id_version></extra-po-header-project_id_version>
+ <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+ <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+ <name>QCLuceneResultWidget</name>
+ <message>
+ <source>Search Results</source>
+ <translation>Rezultati iskanja</translation>
+ </message>
+ <message>
+ <source>Note:</source>
+ <translation>Opomba:</translation>
+ </message>
+ <message>
+ <source>The search results may not be complete since the documentation is still being indexed!</source>
+ <translation>Rezultati iskanja morda niso popolni, saj se dokumentacijo še vedno indeksira.</translation>
+ </message>
+ <message>
+ <source>Your search did not match any documents.</source>
+ <translation>Vašemu iskanju ne ustreza noben dokument.</translation>
+ </message>
+ <message>
+ <source>(The reason for this might be that the documentation is still being indexed.)</source>
+ <translation>(Razlog je morda to, da se dokumentacijo še vedno indeksira.)</translation>
+ </message>
+</context>
+<context>
+ <name>QHelp</name>
+ <message>
+ <source>Untitled</source>
+ <translation>Brez naslova</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpCollectionHandler</name>
+ <message>
+ <source>The collection file &apos;%1&apos; is not set up yet!</source>
+ <translation>Datoteka zbirke »%1« še ni nastavljena.</translation>
+ </message>
+ <message>
+ <source>Cannot load sqlite database driver!</source>
+ <translation>Ni moč naložiti gonilnika za podatkovno zbirko SQLite.</translation>
+ </message>
+ <message>
+ <source>Cannot open collection file: %1</source>
+ <translation>Datoteke zbirke ni moč odpreti: %1</translation>
+ </message>
+ <message>
+ <source>Cannot create tables in file %1!</source>
+ <translation>V datoteki %1 ni moč ustvariti tabel.</translation>
+ </message>
+ <message>
+ <source>The collection file &apos;%1&apos; already exists!</source>
+ <translation>Datoteka zbirke »%1« že obstaja.</translation>
+ </message>
+ <message>
+ <source>Cannot create directory: %1</source>
+ <translation>Ni moč ustvariti mape: %1</translation>
+ </message>
+ <message>
+ <source>Cannot copy collection file: %1</source>
+ <translation>Ni moč skopirati datoteke zbirke: %1</translation>
+ </message>
+ <message>
+ <source>Unknown filter &apos;%1&apos;!</source>
+ <translation>Neznan filter »%1«.</translation>
+ </message>
+ <message>
+ <source>Cannot register filter %1!</source>
+ <translation>Filtra %1 ni moč registrirati.</translation>
+ </message>
+ <message>
+ <source>Cannot open documentation file %1!</source>
+ <translation>Ni moč odpreti datoteke z dokumentacijo %1.</translation>
+ </message>
+ <message>
+ <source>Invalid documentation file &apos;%1&apos;!</source>
+ <translation>Neveljavna datoteka z dokumentacijo »%1«.</translation>
+ </message>
+ <message>
+ <source>The namespace %1 was not registered!</source>
+ <translation>Imenski prostor %1 ni bil registriran.</translation>
+ </message>
+ <message>
+ <source>Namespace %1 already exists!</source>
+ <translation>Imenski prostor %1 že obstaja.</translation>
+ </message>
+ <message>
+ <source>Cannot register namespace &apos;%1&apos;!</source>
+ <translation>Imenskega prostora »%1« ni moč registrirati.</translation>
+ </message>
+ <message>
+ <source>Cannot open database &apos;%1&apos; to optimize!</source>
+ <translation>Podatkovne zbirke »%1« ni moč odpreti za optimizacijo.</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpDBReader</name>
+ <message>
+ <source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
+ <extracomment>The placeholders are: %1 - The name of the database which cannot be opened %2 - The unique id for the connection %3 - The actual error string
+</extracomment>
+ <translation>Podatkovne zbirke »%1« »%2« ni moč odpreti: %3</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpEngineCore</name>
+ <message>
+ <source>Cannot open documentation file %1: %2!</source>
+ <translation>Ni moč odpreti datoteke z dokumentacijo %1: %2.</translation>
+ </message>
+ <message>
+ <source>The specified namespace does not exist!</source>
+ <translation>Navedeni imenski prostor ne obstaja.</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpGenerator</name>
+ <message>
+ <source>Invalid help data!</source>
+ <translation>Neveljavni podatki s pomočjo.</translation>
+ </message>
+ <message>
+ <source>No output file name specified!</source>
+ <translation>Navedenega ni nobenega imena izhodne datoteke.</translation>
+ </message>
+ <message>
+ <source>The file %1 cannot be overwritten!</source>
+ <translation>Datoteke %1 ni moč nadomestiti.</translation>
+ </message>
+ <message>
+ <source>Building up file structure...</source>
+ <translation>Grajenje datotečne strukture ...</translation>
+ </message>
+ <message>
+ <source>Cannot open data base file %1!</source>
+ <translation>Datoteke podatkovne zbirke %1 ni moč odpreti.</translation>
+ </message>
+ <message>
+ <source>Cannot register namespace %1!</source>
+ <translation>Imenskega prostora %1 ni moč registrirati.</translation>
+ </message>
+ <message>
+ <source>Insert custom filters...</source>
+ <translation>Vstavi filtre po meri ...</translation>
+ </message>
+ <message>
+ <source>Insert help data for filter section (%1 of %2)...</source>
+ <translation>Vstavljanje podatkov s pomočjo za filtrirni razdelek (%1 od %2) ...</translation>
+ </message>
+ <message>
+ <source>Documentation successfully generated.</source>
+ <translation>Dokumentacija je bila uspešno ustvarjena.</translation>
+ </message>
+ <message>
+ <source>Some tables already exist!</source>
+ <translation>Nekatere tabele že obstajajo.</translation>
+ </message>
+ <message>
+ <source>Cannot create tables!</source>
+ <translation>Tabel ni moč ustvariti.</translation>
+ </message>
+ <message>
+ <source>Cannot register virtual folder!</source>
+ <translation>Navidezne mape ni moč registrirati.</translation>
+ </message>
+ <message>
+ <source>Insert files...</source>
+ <translation>Vstavi datoteke ...</translation>
+ </message>
+ <message>
+ <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
+ <translation>Sklicana datoteka %1 se mora nahajti v mapi (%1) ali njeni podmapi. Preskakujem jo.</translation>
+ </message>
+ <message>
+ <source>The file %1 does not exist! Skipping it.</source>
+ <translation>Datoteka %1 ne obstaja. Preskakujem jo.</translation>
+ </message>
+ <message>
+ <source>Cannot open file %1! Skipping it.</source>
+ <translation>Datoteke %1 ni moč odpreti. Preskakujem jo.</translation>
+ </message>
+ <message>
+ <source>The filter %1 is already registered!</source>
+ <translation>Filter %1 je že registriran.</translation>
+ </message>
+ <message>
+ <source>Cannot register filter %1!</source>
+ <translation>Filtra %1 ni moč registrirati.</translation>
+ </message>
+ <message>
+ <source>Insert indices...</source>
+ <translation>Vstavi kazala ...</translation>
+ </message>
+ <message>
+ <source>Insert contents...</source>
+ <translation>Vstavi vsebino ...</translation>
+ </message>
+ <message>
+ <source>Cannot insert contents!</source>
+ <translation>Vsebine ni moč vstaviti.</translation>
+ </message>
+ <message>
+ <source>Cannot register contents!</source>
+ <translation>Vsebine ni moč registrirati.</translation>
+ </message>
+ <message>
+ <source>File &apos;%1&apos; does not exist.</source>
+ <translation>Filter »%1« ne obstaja.</translation>
+ </message>
+ <message>
+ <source>File &apos;%1&apos; cannot be opened.</source>
+ <translation>Filtra »%1« ni moč odpreti.</translation>
+ </message>
+ <message>
+ <source>File &apos;%1&apos; contains an invalid link to file &apos;%2&apos;</source>
+ <translation>Datoteka »%1« vsebuje neveljavno povezavo na datoteko »%2«</translation>
+ </message>
+ <message>
+ <source>Invalid links in HTML files.</source>
+ <translation>Neveljavne povezave v datotekah HTML.</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpProject</name>
+ <message>
+ <source>Unknown token.</source>
+ <translation>Neznan žeton.</translation>
+ </message>
+ <message>
+ <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
+ <translation>Neznan žeton. Pričakovan je bil »QtHelpProject«.</translation>
+ </message>
+ <message>
+ <source>Error in line %1: %2</source>
+ <translation>Napaka v vrstici %1: %2</translation>
+ </message>
+ <message>
+ <source>Virtual folder has invalid syntax.</source>
+ <translation>Navidezna mapa ima neveljavno skladnjo.</translation>
+ </message>
+ <message>
+ <source>Namespace has invalid syntax.</source>
+ <translation>Imenski prostor ima neveljavno skladnjo.</translation>
+ </message>
+ <message>
+ <source>Missing namespace in QtHelpProject.</source>
+ <translation>Manjkajoč imenski prostor v QtHelpProject.</translation>
+ </message>
+ <message>
+ <source>Missing virtual folder in QtHelpProject</source>
+ <translation>Manjkajoča navidezna mapa v QtHelpProject.</translation>
+ </message>
+ <message>
+ <source>Missing attribute in keyword at line %1.</source>
+ <translation>Manjkajoča lastnost v ključni besedi v vrstici %1.</translation>
+ </message>
+ <message>
+ <source>The input file %1 could not be opened!</source>
+ <translation>Vhodne datoteke %1 ni bilo moč odpreti.</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpSearchQueryWidget</name>
+ <message>
+ <source>Search for:</source>
+ <translation>Išči:</translation>
+ </message>
+ <message>
+ <source>Previous search</source>
+ <translation>Predhodno iskanje</translation>
+ </message>
+ <message>
+ <source>Next search</source>
+ <translation>Naslednje iskanje</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <translation>Išči</translation>
+ </message>
+ <message>
+ <source>Advanced search</source>
+ <translation>Napredno iskanje</translation>
+ </message>
+ <message>
+ <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
+ <translation>besede &lt;B&gt;podobne&lt;/B&gt;:</translation>
+ </message>
+ <message>
+ <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
+ <translation>&lt;B&gt;brez&lt;/B&gt; besed:</translation>
+ </message>
+ <message>
+ <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
+ <translation>s &lt;B&gt;točnim izrazom&lt;/B&gt;:</translation>
+ </message>
+ <message>
+ <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
+ <translation>z &lt;B&gt;vsemi&lt;/B&gt; besedami:</translation>
+ </message>
+ <message>
+ <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
+ <translation>z &lt;B&gt;vsaj eno&lt;/B&gt; izmed besed:</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpSearchResultWidget</name>
+ <message numerus="yes">
+ <source>%1 - %2 of %n Hits</source>
+ <translation>
+ <numerusform>%1 – %2 od %n zadetka</numerusform>
+ <numerusform>%1 – %2 od %n zadetkov</numerusform>
+ <numerusform>%1 – %2 od %n zadetkov</numerusform>
+ <numerusform>%1 – %2 od %n zadetkov</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>0 - 0 of 0 Hits</source>
+ <translation>0 - 0 od 0 zadetkov</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qt_help_uk.ts b/translations/qt_help_uk.ts
index b8bc984526..32e47b4441 100644
--- a/translations/qt_help_uk.ts
+++ b/translations/qt_help_uk.ts
@@ -106,7 +106,7 @@
<name>QHelpEngineCore</name>
<message>
<source>Cannot open documentation file %1: %2!</source>
- <translation>Не можу відкрити файл документації %1: %2!</translation>
+ <translation>Неможливо відкрити файл документації %1: %2!</translation>
</message>
<message>
<source>The specified namespace does not exist!</source>
@@ -256,7 +256,7 @@
</message>
<message>
<source>The input file %1 could not be opened!</source>
- <translation>Неможливо відкрити вхідний файл %1!</translation>
+ <translation>Не вдалось відкрити вхідний файл %1!</translation>
</message>
</context>
<context>
diff --git a/translations/qt_sl.ts b/translations/qt_sl.ts
index e0cee0fff9..6bc552bafe 100644
--- a/translations/qt_sl.ts
+++ b/translations/qt_sl.ts
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="sl">
- <extra-po-header-po_revision_date>2010-08-05 12:59+0200</extra-po-header-po_revision_date>
+ <extra-po-header-po_revision_date>2010-08-29 00:26+0200</extra-po-header-po_revision_date>
<extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
<extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
<extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
@@ -1328,194 +1328,194 @@ v
<name>QDeclarativeAnchors</name>
<message>
<source>Possible anchor loop detected on fill.</source>
- <translation type="unfinished">Ob zapolnjevanju je bila zaznana možna zanka sidra.</translation>
+ <translation>Ob zapolnjevanju je bila zaznana možna zanka sidra.</translation>
</message>
<message>
<source>Possible anchor loop detected on centerIn.</source>
- <translation type="unfinished">Ob usrediščanju je bila zaznana možna zanka sidra.</translation>
+ <translation>Ob usrediščanju je bila zaznana možna zanka sidra.</translation>
</message>
<message>
<source>Cannot anchor to an item that isn&apos;t a parent or sibling.</source>
- <translation type="unfinished">Na objekt, ki ni nadrejen ali enakovreden, se ni moč zasidrati.</translation>
+ <translation>Na objekt, ki ni nadrejen ali enakovreden, se ni moč zasidrati.</translation>
</message>
<message>
<source>Possible anchor loop detected on vertical anchor.</source>
- <translation type="unfinished">Ob navpičnem sidru je bila zaznana možna zanka sidra.</translation>
+ <translation>Ob navpičnem sidru je bila zaznana možna zanka sidra.</translation>
</message>
<message>
<source>Possible anchor loop detected on horizontal anchor.</source>
- <translation type="unfinished">Ob vodoravnem sidru je bila zaznana možna zanka sidra.</translation>
+ <translation>Ob vodoravnem sidru je bila zaznana možna zanka sidra.</translation>
</message>
<message>
<source>Cannot specify left, right, and hcenter anchors.</source>
- <translation type="unfinished">Levih, desnih in vodoravno sredinskih sider ni moč določiti.</translation>
+ <translation>Levih, desnih in vodoravno sredinskih sider ni moč določiti.</translation>
</message>
<message>
<source>Cannot anchor to a null item.</source>
- <translation type="unfinished">Na ničelni objekt se ni moč zasidrati.</translation>
+ <translation>Na neobstoječ objekt se ni moč zasidrati.</translation>
</message>
<message>
<source>Cannot anchor a horizontal edge to a vertical edge.</source>
- <translation type="unfinished">Vodoravnega roba ni moč zasidrati na navpični rob.</translation>
+ <translation>Vodoravnega roba ni moč zasidrati na navpični rob.</translation>
</message>
<message>
<source>Cannot anchor item to self.</source>
- <translation type="unfinished">Objekta ni moč zasidrati samega nase.</translation>
+ <translation>Objekta ni moč zasidrati samega nase.</translation>
</message>
<message>
<source>Cannot specify top, bottom, and vcenter anchors.</source>
- <translation type="unfinished">Vrhnjih, spodnjih in navpično sredinskih sider ni moč določiti.</translation>
+ <translation>Vrhnjih, spodnjih in navpično sredinskih sider ni moč določiti.</translation>
</message>
<message>
<source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source>
- <translation type="unfinished">Sidra na osnovnici ni moč uporabiti skupaj z vrhnjimi, spodnjimi ali navpično sredinskimi sidri.</translation>
+ <translation>Sidra na osnovnici ni moč uporabiti skupaj z vrhnjimi, spodnjimi ali navpično sredinskimi sidri.</translation>
</message>
<message>
<source>Cannot anchor a vertical edge to a horizontal edge.</source>
- <translation type="unfinished">Navpičnega roba ni moč zasidrati na vodoravni rob.</translation>
+ <translation>Navpičnega roba ni moč zasidrati na vodoravni rob.</translation>
</message>
</context>
<context>
<name>QDeclarativeAnimatedImage</name>
<message>
<source>Qt was built without support for QMovie</source>
- <translation type="unfinished">Qt je bil zgrajen brez podpore za QMovie</translation>
+ <translation>Qt je bil zgrajen brez podpore za QMovie</translation>
</message>
</context>
<context>
<name>QDeclarativeBehavior</name>
<message>
<source>Cannot change the animation assigned to a Behavior.</source>
- <translation type="unfinished">Animacije, ki je prirejena obnašanju, ni moč spremeniti.</translation>
+ <translation>Animacije, ki je prirejena obnašanju, ni moč spremeniti.</translation>
</message>
</context>
<context>
<name>QDeclarativeBinding</name>
<message>
<source>Binding loop detected for property &quot;%1&quot;</source>
- <translation type="unfinished">Za lastnost »%1« je bila zaznana zanka vezave</translation>
+ <translation>Za lastnost »%1« je bila zaznana zanka vezave</translation>
</message>
</context>
<context>
<name>QDeclarativeCompiledBindings</name>
<message>
<source>Binding loop detected for property &quot;%1&quot;</source>
- <translation type="unfinished">Za lastnost »%1« je bila zaznana zanka vezave</translation>
+ <translation>Za lastnost »%1« je bila zaznana zanka vezave</translation>
</message>
</context>
<context>
<name>QDeclarativeCompiler</name>
<message>
<source>Invalid property assignment: &quot;%1&quot; is a read-only property</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: »%1« je lastnost, ki je samo za branje</translation>
+ <translation>Neveljavna prireditev lastnosti: »%1« je lastnost, ki je samo za branje</translation>
</message>
<message>
<source>Invalid property assignment: unknown enumeration</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: neznano oštevilčenje</translation>
+ <translation>Neveljavna prireditev lastnosti: neznano oštevilčenje</translation>
</message>
<message>
<source>Invalid property assignment: string expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je niz</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovan je niz</translation>
</message>
<message>
<source>Invalid property assignment: url expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je URL</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovan je URL</translation>
</message>
<message>
<source>Invalid property assignment: unsigned int expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovano je nepredznačeno celo število</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovano je nepredznačeno celo število</translation>
</message>
<message>
<source>Invalid property assignment: int expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovano je celo število</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovano je celo število</translation>
</message>
<message>
<source>Invalid property assignment: number expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovano je število</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovano je število</translation>
</message>
<message>
<source>Invalid property assignment: color expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana je barva</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovana je barva</translation>
</message>
<message>
<source>Invalid property assignment: date expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je datum</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovan je datum</translation>
</message>
<message>
<source>Invalid property assignment: time expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je čas</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovan je čas</translation>
</message>
<message>
<source>Invalid property assignment: datetime expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana sta datum in čas</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovana sta datum in čas</translation>
</message>
<message>
<source>Invalid property assignment: point expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana je točka</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovana je točka</translation>
</message>
<message>
<source>Invalid property assignment: size expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana je velikost</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovana je velikost</translation>
</message>
<message>
<source>Invalid property assignment: rect expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je pravokotnik</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovan je pravokotnik</translation>
</message>
<message>
<source>Invalid property assignment: boolean expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana je logična vrednost</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovana je logična vrednost</translation>
</message>
<message>
<source>Invalid property assignment: 3D vector expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je 3D vektor</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovan je 3D vektor</translation>
</message>
<message>
<source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: nepodprta vrsta »%1«</translation>
+ <translation>Neveljavna prireditev lastnosti: nepodprta vrsta »%1«</translation>
</message>
<message>
<source>Element is not creatable.</source>
- <translation type="unfinished">Elementa ni moč ustvariti.</translation>
+ <translation>Elementa ni moč ustvariti.</translation>
</message>
<message>
<source>Component elements may not contain properties other than id</source>
- <translation type="unfinished">Elementi komponent ne smejo vsebovati drugih lastnosti kot ID</translation>
+ <translation>Elementi komponent ne smejo vsebovati drugih lastnosti kot ID</translation>
</message>
<message>
<source>Invalid component id specification</source>
- <translation type="unfinished">Neveljavno določen ID komponente</translation>
+ <translation>Neveljavno določen ID komponente</translation>
</message>
<message>
<source>id is not unique</source>
- <translation type="unfinished">ID ni edinstven</translation>
+ <translation>ID ni edinstven</translation>
</message>
<message>
<source>Invalid component body specification</source>
- <translation type="unfinished">Neveljavno določeno telo komponente</translation>
+ <translation>Neveljavno določeno telo komponente</translation>
</message>
<message>
<source>Component objects cannot declare new properties.</source>
- <translation type="unfinished">Objekti komponent ne morejo deklarirati novih lastnosti.</translation>
+ <translation>Objekti komponent ne morejo deklarirati novih lastnosti.</translation>
</message>
<message>
<source>Component objects cannot declare new signals.</source>
- <translation type="unfinished">Objekti komponent ne morejo deklarirati novih signalov.</translation>
+ <translation>Objekti komponent ne morejo deklarirati novih signalov.</translation>
</message>
<message>
<source>Component objects cannot declare new functions.</source>
- <translation type="unfinished">Objekti komponent ne morejo deklarirati novih funkcij.</translation>
+ <translation>Objekti komponent ne morejo deklarirati novih funkcij.</translation>
</message>
<message>
<source>Cannot create empty component specification</source>
- <translation type="unfinished">Prazne specifikacije komponente ni moč ustvariti</translation>
+ <translation>Prazne specifikacije komponente ni moč ustvariti</translation>
</message>
<message>
<source>Incorrectly specified signal assignment</source>
- <translation type="unfinished">Napačno določena prireditev signalu</translation>
+ <translation>Napačno določena prireditev signalu</translation>
</message>
<message>
<source>Cannot assign a value to a signal (expecting a script to be run)</source>
- <translation type="unfinished">Signalu ni moč prirediti vrednosti (pričakovan je skript, ki bo zagnan)</translation>
+ <translation>Signalu ni moč prirediti vrednosti (pričakovan je skript, ki bo zagnan)</translation>
</message>
<message>
<source>Empty signal assignment</source>
@@ -1527,247 +1527,247 @@ v
</message>
<message>
<source>Attached properties cannot be used here</source>
- <translation type="unfinished">Pripete lastnosti tu ne morejo biti uporabljene</translation>
+ <translation>Pripete lastnosti tu ne morejo biti uporabljene</translation>
</message>
<message>
<source>Non-existent attached object</source>
- <translation type="unfinished">Neobstoječ pripet objekt</translation>
+ <translation>Neobstoječ pripet objekt</translation>
</message>
<message>
<source>Invalid attached object assignment</source>
- <translation type="unfinished">Neveljavna prireditev pripetega objekta</translation>
+ <translation>Neveljavna prireditev pripetega objekta</translation>
</message>
<message>
<source>Cannot assign to non-existent default property</source>
- <translation type="unfinished">Neobstoječi privzeti lastnosti ni moč prirediti</translation>
+ <translation>Neobstoječi privzeti lastnosti ni moč prirediti</translation>
</message>
<message>
<source>Cannot assign to non-existent property &quot;%1&quot;</source>
- <translation type="unfinished">Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+ <translation>Neobstoječi lastnosti »%1« ni moč prirediti</translation>
</message>
<message>
<source>Invalid use of namespace</source>
- <translation type="unfinished">Napačna raba imenskega prostora</translation>
+ <translation>Napačna raba imenskega prostora</translation>
</message>
<message>
<source>Not an attached property name</source>
- <translation type="unfinished">Ni ime pripete lastnosti</translation>
+ <translation>Ni ime pripete lastnosti</translation>
</message>
<message>
<source>Invalid use of id property</source>
- <translation type="unfinished">Napačna raba lastnosti ID</translation>
+ <translation>Napačna raba lastnosti ID</translation>
</message>
<message>
<source>Property has already been assigned a value</source>
- <translation type="unfinished">Lastnosti je že bila prirejena vrednost</translation>
+ <translation>Lastnosti je že bila prirejena vrednost</translation>
</message>
<message>
<source>Invalid grouped property access</source>
- <translation type="unfinished">Neveljaven dostop do skupinske lastnosti</translation>
+ <translation>Neveljaven dostop do skupinske lastnosti</translation>
</message>
<message>
<source>Cannot assign a value directly to a grouped property</source>
- <translation type="unfinished">Skupinski lastnosti ni moč neposredno prirediti vrednosti</translation>
+ <translation>Skupinski lastnosti ni moč neposredno prirediti vrednosti</translation>
</message>
<message>
<source>Invalid property use</source>
- <translation type="unfinished">Neveljavna raba lastnosti</translation>
+ <translation>Neveljavna raba lastnosti</translation>
</message>
<message>
<source>Property assignment expected</source>
- <translation type="unfinished">Pričakovana je prireditev lastnosti</translation>
+ <translation>Pričakovana je prireditev lastnosti</translation>
</message>
<message>
<source>Single property assignment expected</source>
- <translation type="unfinished">Pričakovana je enojna prireditev lastnosti</translation>
+ <translation>Pričakovana je enojna prireditev lastnosti</translation>
</message>
<message>
<source>Unexpected object assignment</source>
- <translation type="unfinished">Nepričakovana prireditev objekta</translation>
+ <translation>Nepričakovana prireditev objekta</translation>
</message>
<message>
<source>Cannot assign object to list</source>
- <translation type="unfinished">Objekta ni moč prirediti seznamu</translation>
+ <translation>Objekta ni moč prirediti seznamu</translation>
</message>
<message>
<source>Can only assign one binding to lists</source>
- <translation type="unfinished">Seznamom je moč prirediti le eno vezavo</translation>
+ <translation>Seznamom je moč prirediti le eno vezavo</translation>
</message>
<message>
<source>Cannot assign primitives to lists</source>
- <translation type="unfinished">Seznamom ni moč prirediti osnovnih tipov</translation>
+ <translation>Seznamom ni moč prirediti osnovnih tipov</translation>
</message>
<message>
<source>Cannot assign multiple values to a script property</source>
- <translation type="unfinished"></translation>
+ <translation>Lastnosti »script« ni moč prirediti več vrednosti</translation>
</message>
<message>
<source>Invalid property assignment: script expected</source>
- <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je skript</translation>
+ <translation>Neveljavna prireditev lastnosti: pričakovan je skript</translation>
</message>
<message>
<source>Cannot assign object to property</source>
- <translation type="unfinished">Objekta ni moč prirediti lastnosti</translation>
+ <translation>Objekta ni moč prirediti lastnosti</translation>
</message>
<message>
<source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
- <translation type="unfinished">»%1« ne more delovati na »%2«</translation>
+ <translation>»%1« ne more delovati na »%2«</translation>
</message>
<message>
<source>Duplicate default property</source>
- <translation type="unfinished">Podvojena privzeta lastnost</translation>
+ <translation>Podvojena privzeta lastnost</translation>
</message>
<message>
<source>Duplicate property name</source>
- <translation type="unfinished">Podvojeno ime lastnosti</translation>
+ <translation>Podvojeno ime lastnosti</translation>
</message>
<message>
<source>Property names cannot begin with an upper case letter</source>
- <translation type="unfinished">Imena lastnosti se ne smejo začeti z veliko črko</translation>
+ <translation>Imena lastnosti se ne smejo začeti z veliko črko</translation>
</message>
<message>
<source>Illegal property name</source>
- <translation type="unfinished">Neveljavno ime lastnosti</translation>
+ <translation>Neveljavno ime lastnosti</translation>
</message>
<message>
<source>Duplicate signal name</source>
- <translation type="unfinished">Podvojeno ime signala</translation>
+ <translation>Podvojeno ime signala</translation>
</message>
<message>
<source>Signal names cannot begin with an upper case letter</source>
- <translation type="unfinished">Imena signalov se ne smejo začeti z veliko črko</translation>
+ <translation>Imena signalov se ne smejo začeti z veliko črko</translation>
</message>
<message>
<source>Illegal signal name</source>
- <translation type="unfinished">Neveljavno ime signala</translation>
+ <translation>Neveljavno ime signala</translation>
</message>
<message>
<source>Duplicate method name</source>
- <translation type="unfinished">Podvojeno ime metode</translation>
+ <translation>Podvojeno ime metode</translation>
</message>
<message>
<source>Method names cannot begin with an upper case letter</source>
- <translation type="unfinished">Imena metod se ne smejo začeti z veliko črko</translation>
+ <translation>Imena metod se ne smejo začeti z veliko črko</translation>
</message>
<message>
<source>Illegal method name</source>
- <translation type="unfinished">Neveljavno ime metode</translation>
+ <translation>Neveljavno ime metode</translation>
</message>
<message>
<source>Property value set multiple times</source>
- <translation type="unfinished">Vrednost lastnosti je bila nastavljena večkrat</translation>
+ <translation>Vrednost lastnosti je bila nastavljena večkrat</translation>
</message>
<message>
<source>Invalid property nesting</source>
- <translation type="unfinished">Neveljavno gnezdenje lastnosti</translation>
+ <translation>Neveljavno gnezdenje lastnosti</translation>
</message>
<message>
<source>Cannot override FINAL property</source>
- <translation type="unfinished">Lastnosti FINAL ni moč povoziti</translation>
+ <translation>Lastnosti FINAL ni moč povoziti</translation>
</message>
<message>
<source>Invalid property type</source>
- <translation type="unfinished">Neveljavna vrsta lastnosti</translation>
+ <translation>Neveljavna vrsta lastnosti</translation>
</message>
<message>
<source>Invalid empty ID</source>
- <translation type="unfinished">Neveljaven prazen ID</translation>
+ <translation>Neveljaven prazen ID</translation>
</message>
<message>
<source>IDs cannot start with an uppercase letter</source>
- <translation type="unfinished">ID-ji se ne smejo začeti z veliko črko</translation>
+ <translation>ID-ji se ne smejo začeti z veliko črko</translation>
</message>
<message>
<source>IDs must start with a letter or underscore</source>
- <translation type="unfinished">ID-ji se morajo začeti s črko ali podčrtajem</translation>
+ <translation>ID-ji se morajo začeti s črko ali podčrtajem</translation>
</message>
<message>
<source>IDs must contain only letters, numbers, and underscores</source>
- <translation type="unfinished">ID-ji lahko vsebujejo le črke, števke in podčrtaje</translation>
+ <translation>ID-ji lahko vsebujejo le črke, števke in podčrtaje</translation>
</message>
<message>
<source>ID illegally masks global JavaScript property</source>
- <translation type="unfinished">ID neveljavno zakriva globalno lastnost JavaScripta</translation>
+ <translation>ID neveljavno zakriva globalno lastnost JavaScripta</translation>
</message>
<message>
<source>No property alias location</source>
- <translation type="unfinished">Brez lokacije aliasa lastnosti</translation>
+ <translation>Brez lokacije aliasa lastnosti</translation>
</message>
<message>
<source>Invalid alias location</source>
- <translation type="unfinished">Neveljavna lokacija aliasa</translation>
+ <translation>Neveljavna lokacija aliasa</translation>
</message>
<message>
<source>Invalid alias reference. An alias reference must be specified as &lt;id&gt; or &lt;id&gt;.&lt;property&gt;</source>
- <translation type="unfinished">Neveljavna referenca aliasa. Referenca aliasa mora biti določena kot &lt;id&gt; ali &lt;id&gt;.&lt;lastnost&gt;</translation>
+ <translation>Neveljavna referenca aliasa. Referenca aliasa mora biti določena kot &lt;id&gt; ali &lt;id&gt;.&lt;lastnost&gt;</translation>
</message>
<message>
<source>Invalid alias reference. Unable to find id &quot;%1&quot;</source>
- <translation type="unfinished">Neveljavna referenca aliasa. ID-ja »%1« ni moč najti</translation>
+ <translation>Neveljavna referenca aliasa. ID-ja »%1« ni moč najti</translation>
</message>
</context>
<context>
<name>QDeclarativeComponent</name>
<message>
<source>Invalid empty URL</source>
- <translation type="unfinished">Neveljaven prazen URL</translation>
+ <translation>Neveljaven prazen URL</translation>
</message>
</context>
<context>
<name>QDeclarativeCompositeTypeManager</name>
<message>
<source>Resource %1 unavailable</source>
- <translation type="unfinished">Vir %1 ni na voljo</translation>
+ <translation>Vir %1 ni na voljo</translation>
</message>
<message>
<source>Namespace %1 cannot be used as a type</source>
- <translation type="unfinished">Imenskega prostora %1 ni moč uporabiti kot vrste</translation>
+ <translation>Imenskega prostora %1 ni moč uporabiti kot vrste</translation>
</message>
<message>
<source>%1 %2</source>
- <translation type="unfinished">%1 % {1 %2?}</translation>
+ <translation>%1 %2</translation>
</message>
<message>
<source>Type %1 unavailable</source>
- <translation type="unfinished">Vrsta %1 ni na voljo</translation>
+ <translation>Vrsta %1 ni na voljo</translation>
</message>
</context>
<context>
<name>QDeclarativeConnections</name>
<message>
<source>Cannot assign to non-existent property &quot;%1&quot;</source>
- <translation type="unfinished">Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+ <translation>Neobstoječi lastnosti »%1« ni moč prirediti</translation>
</message>
<message>
<source>Connections: nested objects not allowed</source>
- <translation type="unfinished">Povezave: gnezdeni objekti niso dovoljeni</translation>
+ <translation>Povezave: gnezdeni objekti niso dovoljeni</translation>
</message>
<message>
<source>Connections: syntax error</source>
- <translation type="unfinished">Povezave: napaka v skladnji</translation>
+ <translation>Povezave: napaka v skladnji</translation>
</message>
<message>
<source>Connections: script expected</source>
- <translation type="unfinished">Povezave: pričakovan je skript</translation>
+ <translation>Povezave: pričakovan je skript</translation>
</message>
</context>
<context>
<name>QDeclarativeEngine</name>
<message>
<source>executeSql called outside transaction()</source>
- <translation type="unfinished">executeSql je bil klican izven transaction()</translation>
+ <translation>executeSql je bil klican izven transaction()</translation>
</message>
<message>
<source>Read-only Transaction</source>
- <translation type="unfinished">Transakcija samo za branje</translation>
+ <translation>Transakcija samo za branje</translation>
</message>
<message>
<source>Version mismatch: expected %1, found %2</source>
- <translation type="unfinished">Neujemanje različic: pričakovana %1, najdena %2</translation>
+ <translation>Neujemanje različic: pričakovana %1, najdena %2</translation>
</message>
<message>
<source>SQL transaction failed</source>
- <translation type="unfinished">Transakcija SQL ni uspela</translation>
+ <translation>Transakcija SQL ni uspela</translation>
</message>
<message>
<source>transaction: missing callback</source>
@@ -1775,408 +1775,408 @@ v
</message>
<message>
<source>SQL: database version mismatch</source>
- <translation type="unfinished">SQL: neujemanje različice podatkovne zbirke</translation>
+ <translation>SQL: neujemanje različice podatkovne zbirke</translation>
</message>
</context>
<context>
<name>QDeclarativeFlipable</name>
<message>
<source>front is a write-once property</source>
- <translation type="unfinished">front je lastnost, ki se jo lahko zapiše samo enkrat</translation>
+ <translation>front je lastnost, ki se jo lahko zapiše samo enkrat</translation>
</message>
<message>
<source>back is a write-once property</source>
- <translation type="unfinished">back je lastnost, ki se jo lahko zapiše samo enkrat</translation>
+ <translation>back je lastnost, ki se jo lahko zapiše samo enkrat</translation>
</message>
</context>
<context>
<name>QDeclarativeImportDatabase</name>
<message>
<source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
- <translation type="unfinished">definicije »%2« modula »%1« ni moč brati</translation>
+ <translation>definicije »%2« modula »%1« ni moč brati</translation>
</message>
<message>
<source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
- <translation type="unfinished">vstavka za modul »%1« ni moč naložiti: %2</translation>
+ <translation>vstavka za modul »%1« ni moč naložiti: %2</translation>
</message>
<message>
<source>module &quot;%1&quot; plugin &quot;%2&quot; not found</source>
- <translation type="unfinished">vstavek »%2« modula »%1« ni bil najden</translation>
+ <translation>vstavek »%2« modula »%1« ni bil najden</translation>
</message>
<message>
<source>module &quot;%1&quot; version %2.%3 is not installed</source>
- <translation type="unfinished">modul »%1« različice %2.%3 ni nameščen</translation>
+ <translation>modul »%1« različice %2.%3 ni nameščen</translation>
</message>
<message>
<source>module &quot;%1&quot; is not installed</source>
- <translation type="unfinished">modul »%1« ni nameščen</translation>
+ <translation>modul »%1« ni nameščen</translation>
</message>
<message>
<source>&quot;%1&quot;: no such directory</source>
- <translation type="unfinished">»%1«: mapa ne obstaja</translation>
+ <translation>»%1«: mapa ne obstaja</translation>
</message>
<message>
<source>import &quot;%1&quot; has no qmldir and no namespace</source>
- <translation type="unfinished"></translation>
+ <translation>uvoz »%1« nima niti qmldir-a niti imenskega prostora</translation>
</message>
<message>
<source>- %1 is not a namespace</source>
- <translation type="unfinished">– %1 ni imenski prostor</translation>
+ <translation>– %1 ni imenski prostor</translation>
</message>
<message>
<source>- nested namespaces not allowed</source>
- <translation type="unfinished">– gnezdeni imenski prostori niso dovoljeni</translation>
+ <translation>– gnezdeni imenski prostori niso dovoljeni</translation>
</message>
<message>
<source>local directory</source>
- <translation type="unfinished">krajevna mapa</translation>
+ <translation>krajevna mapa</translation>
</message>
<message>
<source>is ambiguous. Found in %1 and in %2</source>
- <translation type="unfinished">je dvoumno. Najdeno v %1 in %2</translation>
+ <translation>je dvoumno. Najdeno v %1 in %2</translation>
</message>
<message>
<source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source>
- <translation type="unfinished">je dvoumno. Najdeno v %1 v različicah %2.%3 in %4.%5</translation>
+ <translation>je dvoumno. Najdeno v %1 v različicah %2.%3 in %4.%5</translation>
</message>
<message>
<source>is instantiated recursively</source>
- <translation type="unfinished">je instanciran rekurzivno</translation>
+ <translation>je instanciran rekurzivno</translation>
</message>
<message>
<source>is not a type</source>
- <translation type="unfinished">ni vrsta</translation>
+ <translation>ni vrsta</translation>
</message>
</context>
<context>
<name>QDeclarativeKeyNavigationAttached</name>
<message>
<source>KeyNavigation is only available via attached properties</source>
- <translation type="unfinished">KeyNavigation je na voljo samo s pripetimi lastnostmi</translation>
+ <translation>KeyNavigation je na voljo samo s pripetimi lastnostmi</translation>
</message>
</context>
<context>
<name>QDeclarativeKeysAttached</name>
<message>
<source>Keys is only available via attached properties</source>
- <translation type="unfinished">Keys je na voljo samo s pripetimi lastnostmi</translation>
+ <translation>Keys je na voljo samo s pripetimi lastnostmi</translation>
</message>
</context>
<context>
<name>QDeclarativeListModel</name>
<message>
<source>remove: index %1 out of range</source>
- <translation type="unfinished">remove: indeks %1 je izven obsega</translation>
+ <translation>remove: indeks %1 je izven obsega</translation>
</message>
<message>
<source>insert: value is not an object</source>
- <translation type="unfinished">insert: vrednost ni objekt</translation>
+ <translation>insert: vrednost ni objekt</translation>
</message>
<message>
<source>insert: index %1 out of range</source>
- <translation type="unfinished">insert: indeks %1 je izven obsega</translation>
+ <translation>insert: indeks %1 je izven obsega</translation>
</message>
<message>
<source>move: out of range</source>
- <translation type="unfinished">move: izven obsega</translation>
+ <translation>move: izven obsega</translation>
</message>
<message>
<source>append: value is not an object</source>
- <translation type="unfinished">append: vrednost ni objekt</translation>
+ <translation>append: vrednost ni objekt</translation>
</message>
<message>
<source>set: value is not an object</source>
- <translation type="unfinished">set: vrednost ni objekt</translation>
+ <translation>set: vrednost ni objekt</translation>
</message>
<message>
<source>set: index %1 out of range</source>
- <translation type="unfinished">set: indeks %1 je izven obsega</translation>
+ <translation>set: indeks %1 je izven obsega</translation>
</message>
<message>
<source>ListElement: cannot contain nested elements</source>
- <translation type="unfinished"></translation>
+ <translation>ListElement: ni moč vsebovati gnezdenih elementov</translation>
</message>
<message>
<source>ListElement: cannot use reserved &quot;id&quot; property</source>
- <translation type="unfinished">ListElement: ne more uporabiti rezervirane lastnosti »id«</translation>
+ <translation>ListElement: ne more uporabiti rezervirane lastnosti »id«</translation>
</message>
<message>
<source>ListElement: cannot use script for property value</source>
- <translation type="unfinished">ListElement: ne more uporabiti skripta za vrednost lastnosti</translation>
+ <translation>ListElement: ne more uporabiti skripta za vrednost lastnosti</translation>
</message>
<message>
<source>ListModel: undefined property &apos;%1&apos;</source>
- <translation type="unfinished">ListModel: nedoločena lastnost »%1«</translation>
+ <translation>ListModel: nedoločena lastnost »%1«</translation>
</message>
</context>
<context>
<name>QDeclarativeLoader</name>
<message>
<source>Loader does not support loading non-visual elements.</source>
- <translation type="unfinished">Loader ne podpira nalaganja elementov, ki niso vidni.</translation>
+ <translation>Loader ne podpira nalaganja elementov, ki niso vidni.</translation>
</message>
</context>
<context>
<name>QDeclarativeParentAnimation</name>
<message>
<source>Unable to preserve appearance under complex transform</source>
- <translation type="unfinished"></translation>
+ <translation>Pod kompleksnim preoblikovanjem ni moč obdržati videza</translation>
</message>
<message>
<source>Unable to preserve appearance under non-uniform scale</source>
- <translation type="unfinished"></translation>
+ <translation>Pod ne-enakovrednim povečevanjem ni moč obdržati videza</translation>
</message>
<message>
<source>Unable to preserve appearance under scale of 0</source>
- <translation type="unfinished"></translation>
+ <translation>Pod povečavo 0 ni moč obdržati videza</translation>
</message>
</context>
<context>
<name>QDeclarativeParentChange</name>
<message>
<source>Unable to preserve appearance under complex transform</source>
- <translation type="unfinished"></translation>
+ <translation>Pod kompleksnim preoblikovanjem ni moč obdržati videza</translation>
</message>
<message>
<source>Unable to preserve appearance under non-uniform scale</source>
- <translation type="unfinished"></translation>
+ <translation>Pod ne-enakovrednim povečevanjem ni moč obdržati videza</translation>
</message>
<message>
<source>Unable to preserve appearance under scale of 0</source>
- <translation type="unfinished"></translation>
+ <translation>Pod povečavo 0 ni moč obdržati videza</translation>
</message>
</context>
<context>
<name>QDeclarativeParser</name>
<message>
<source>Illegal unicode escape sequence</source>
- <translation type="unfinished">Neveljavno ubežno zaporedje Unicode</translation>
+ <translation>Neveljavno ubežno zaporedje Unicode</translation>
</message>
<message>
<source>Illegal character</source>
- <translation type="unfinished">Neveljaven znak</translation>
+ <translation>Neveljaven znak</translation>
</message>
<message>
<source>Unclosed string at end of line</source>
- <translation type="unfinished">Nezaprt niz na koncu vrstice</translation>
+ <translation>Nezaprt niz na koncu vrstice</translation>
</message>
<message>
<source>Illegal escape squence</source>
- <translation type="unfinished">Neveljavno ubežno zaporedje</translation>
+ <translation>Neveljavno ubežno zaporedje</translation>
</message>
<message>
<source>Unclosed comment at end of file</source>
- <translation type="unfinished">Nezaprt komentar na koncu datoteke</translation>
+ <translation>Nezaprt komentar na koncu datoteke</translation>
</message>
<message>
<source>Illegal syntax for exponential number</source>
- <translation type="unfinished">Neveljavna skladnja za eksponentno število</translation>
+ <translation>Neveljavna skladnja za eksponentno število</translation>
</message>
<message>
<source>Identifier cannot start with numeric literal</source>
- <translation type="unfinished"></translation>
+ <translation>Identifikator se ne sme začeti s številskim literalom</translation>
</message>
<message>
<source>Unterminated regular expression literal</source>
- <translation type="unfinished"></translation>
+ <translation>Nezaključen literal regularnega izraza</translation>
</message>
<message>
<source>Invalid regular expression flag &apos;%0&apos;</source>
- <translation type="unfinished">Neveljavna zastavica »%0« regularnega izraza</translation>
+ <translation>Neveljavna zastavica »%0« regularnega izraza</translation>
</message>
<message>
<source>Unterminated regular expression backslash sequence</source>
- <translation type="unfinished"></translation>
+ <translation>Nezaključeno zaporedij poševnic nazaj v regularnem izrazu</translation>
</message>
<message>
<source>Unterminated regular expression class</source>
- <translation type="unfinished"></translation>
+ <translation>Nezaključen razred regularnega izraza</translation>
</message>
<message>
<source>Syntax error</source>
- <translation type="unfinished">Skladenjska napaka</translation>
+ <translation>Skladenjska napaka</translation>
</message>
<message>
<source>Unexpected token `%1&apos;</source>
- <translation type="unfinished">Nepričakovan žeton »%1«</translation>
+ <translation>Nepričakovan žeton »%1«</translation>
</message>
<message>
<source>Expected token `%1&apos;</source>
- <translation type="unfinished">Pričakovan žeton »%1«</translation>
+ <translation>Pričakovan žeton »%1«</translation>
</message>
<message>
<source>Property value set multiple times</source>
- <translation type="unfinished">Vrednost lastnosti je bila nastavljena večkrat</translation>
+ <translation>Vrednost lastnosti je bila nastavljena večkrat</translation>
</message>
<message>
<source>Expected type name</source>
- <translation type="unfinished"></translation>
+ <translation>Pričakovano ime vrste</translation>
</message>
<message>
<source>Invalid import qualifier ID</source>
- <translation type="unfinished"></translation>
+ <translation>Neveljaven ID kvalifikatorja uvoza</translation>
</message>
<message>
<source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
- <translation type="unfinished"></translation>
+ <translation>Rezerviranega imena »Qt« ni moč uporabiti kot kvalifikatorja</translation>
</message>
<message>
<source>Script import qualifiers must be unique.</source>
- <translation type="unfinished"></translation>
+ <translation>Kvalifikatorji uvozov skriptov morajo biti edinstveni.</translation>
</message>
<message>
<source>Script import requires a qualifier</source>
- <translation type="unfinished"></translation>
+ <translation>Uvozi skriptov potrebujejo kvalifikator</translation>
</message>
<message>
<source>Library import requires a version</source>
- <translation type="unfinished"></translation>
+ <translation>Uvozi knjižnic potrebujejo različico</translation>
</message>
<message>
<source>Expected parameter type</source>
- <translation type="unfinished"></translation>
+ <translation>Pričakovana vrsta parametra</translation>
</message>
<message>
<source>Invalid property type modifier</source>
- <translation type="unfinished"></translation>
+ <translation>Neveljaven modifikator vrste lastnosti</translation>
</message>
<message>
<source>Unexpected property type modifier</source>
- <translation type="unfinished"></translation>
+ <translation>Nepričakovan modifikator vrste lastnosti</translation>
</message>
<message>
<source>Expected property type</source>
- <translation type="unfinished"></translation>
+ <translation>Pričakovana vrsta lastnosti</translation>
</message>
<message>
<source>Readonly not yet supported</source>
- <translation type="unfinished"></translation>
+ <translation>Tisti, ki so samo za branje, še niso podprti</translation>
</message>
<message>
<source>JavaScript declaration outside Script element</source>
- <translation type="unfinished"></translation>
+ <translation>Deklaracija JavaScripta izven elementa Script</translation>
</message>
</context>
<context>
<name>QDeclarativePauseAnimation</name>
<message>
<source>Cannot set a duration of &lt; 0</source>
- <translation type="unfinished">Trajanja, ki je krajše od 0, ni moč nastaviti</translation>
+ <translation>Trajanja, ki je krajše od 0, ni moč nastaviti</translation>
</message>
</context>
<context>
<name>QDeclarativePixmap</name>
<message>
<source>Error decoding: %1: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Napaka dekodiranja: %1: %2</translation>
</message>
<message>
<source>Failed to get image from provider: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Od ponudnika ni bilo moč dobiti slike: %1</translation>
</message>
<message>
<source>Cannot open: %1</source>
- <translation type="unfinished">Ni moč odpreti %1: %2</translation>
+ <translation>Ni moč odpreti %1:</translation>
</message>
</context>
<context>
<name>QDeclarativePropertyAnimation</name>
<message>
<source>Cannot set a duration of &lt; 0</source>
- <translation type="unfinished">Trajanja, ki je krajše od 0, ni moč nastaviti</translation>
+ <translation>Trajanja, ki je krajše od 0, ni moč nastaviti</translation>
</message>
</context>
<context>
<name>QDeclarativePropertyChanges</name>
<message>
<source>PropertyChanges does not support creating state-specific objects.</source>
- <translation type="unfinished"></translation>
+ <translation>PropertyChanges ne podpira ustvarjanja objektov sprecifičnih za stanje.</translation>
</message>
<message>
<source>Cannot assign to non-existent property &quot;%1&quot;</source>
- <translation type="unfinished">Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+ <translation>Neobstoječi lastnosti »%1« ni moč prirediti</translation>
</message>
<message>
<source>Cannot assign to read-only property &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
+ <translation>Ni moč prirediti lastnosti »%1«, ki je samo za branje</translation>
</message>
</context>
<context>
<name>QDeclarativeTextInput</name>
<message>
<source>Could not load cursor delegate</source>
- <translation type="unfinished"></translation>
+ <translation>Ni bilo moč naložiti delegata za kazalec</translation>
</message>
<message>
<source>Could not instantiate cursor delegate</source>
- <translation type="unfinished"></translation>
+ <translation>Ni bilo moč instancirati delegata za kazalec</translation>
</message>
</context>
<context>
<name>QDeclarativeVME</name>
<message>
<source>Unable to create object of type %1</source>
- <translation type="unfinished"></translation>
+ <translation>Ni moč ustvariti objekta vrste %1</translation>
</message>
<message>
<source>Cannot assign value %1 to property %2</source>
- <translation type="unfinished"></translation>
+ <translation>Lastnosti %2 ni moč prirediti vrednosti %1</translation>
</message>
<message>
<source>Cannot assign object type %1 with no default method</source>
- <translation type="unfinished"></translation>
+ <translation>Ni moč prirediti objekta vrste %1 brez privzete metode</translation>
</message>
<message>
<source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
- <translation type="unfinished"></translation>
+ <translation>Ni moč povezati neujemajočih signalov in rež: %1 in %2</translation>
</message>
<message>
<source>Cannot assign an object to signal property %1</source>
- <translation type="unfinished"></translation>
+ <translation>Objekta ni moč prirediti lastnosi signala %1</translation>
</message>
<message>
<source>Cannot assign object to list</source>
- <translation type="unfinished">Objekta ni moč prirediti seznamu</translation>
+ <translation>Objekta ni moč prirediti seznamu</translation>
</message>
<message>
<source>Cannot assign object to interface property</source>
- <translation type="unfinished"></translation>
+ <translation>Objekta ni moč prirediti lastnosti vmesnika</translation>
</message>
<message>
<source>Unable to create attached object</source>
- <translation type="unfinished"></translation>
+ <translation>Ni moč ustvariti pripetega objekta</translation>
</message>
<message>
<source>Cannot set properties on %1 as it is null</source>
- <translation type="unfinished"></translation>
+ <translation>Ni moč nastaviti lastnosti za %1, saj ne obstaja</translation>
</message>
</context>
<context>
<name>QDeclarativeVisualDataModel</name>
<message>
<source>Delegate component must be Item type.</source>
- <translation type="unfinished"></translation>
+ <translation>Komponenta delegata mora biti vrste Item.</translation>
</message>
</context>
<context>
<name>QDeclarativeXmlListModel</name>
<message>
<source>Qt was built without support for xmlpatterns</source>
- <translation type="unfinished"></translation>
+ <translation>Qt je bil zgrajen brez podpore za xmlpatterns</translation>
</message>
</context>
<context>
<name>QDeclarativeXmlListModelRole</name>
<message>
<source>An XmlRole query must not start with &apos;/&apos;</source>
- <translation type="unfinished"></translation>
+ <translation>Poizvedba XmlRole se ne sme začeti z »/«</translation>
</message>
</context>
<context>
<name>QDeclarativeXmlRoleList</name>
<message>
<source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
- <translation type="unfinished"></translation>
+ <translation>Poizvedba XmlListModel se mora začeti z »/« ali »//«</translation>
</message>
</context>
<context>
@@ -2593,27 +2593,27 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>Go back</source>
- <translation type="unfinished">Vrni se nazaj</translation>
+ <translation>Vrni se nazaj</translation>
</message>
<message>
<source>Go forward</source>
- <translation type="unfinished">Napreduj naprej</translation>
+ <translation>Napreduj naprej</translation>
</message>
<message>
<source>Go to the parent directory</source>
- <translation type="unfinished"></translation>
+ <translation>Pojdi v matično mapo</translation>
</message>
<message>
<source>Create a New Folder</source>
- <translation type="unfinished"></translation>
+ <translation>Ustvari novo mapo</translation>
</message>
<message>
<source>Change to list view mode</source>
- <translation type="unfinished"></translation>
+ <translation>Preklopi v način prikaza seznama</translation>
</message>
<message>
<source>Change to detail view mode</source>
- <translation type="unfinished"></translation>
+ <translation>Preklopi v način prikaza podrobnosti</translation>
</message>
</context>
<context>
@@ -2678,7 +2678,7 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>%1 byte(s)</source>
- <translation type="unfinished"></translation>
+ <translation>%1 B</translation>
</message>
</context>
<context>
@@ -2697,7 +2697,7 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>Black</source>
- <translation type="unfinished">Črna</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Demi</source>
@@ -2849,7 +2849,7 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>N&apos;Ko</source>
- <translation type="unfinished"></translation>
+ <translation>N&apos;Ko</translation>
</message>
</context>
<context>
@@ -3004,7 +3004,7 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>No host name given</source>
- <translation type="unfinished">Podano ni bilo nobeno ime gostitelja</translation>
+ <translation>Podano ni bilo nobeno ime gostitelja</translation>
</message>
</context>
<context>
@@ -3665,7 +3665,7 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt is available under three different licensing options designed to accommodate the needs of our various users.&lt;/p&gt;&lt;p&gt;Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Qt je skupek gradnikov C++ za razvoj programov, ki tečejo na več platformah.&lt;/p&gt;&lt;p&gt;Qt omogoča isto kodo prenašati med platformami Linux, Mac&amp;nbsp;OS&amp;nbsp;X, Windows in vsemi večjimi variantami UNIX-a. Qt je na voljo tudi za vgrajene naprave in sicer kot Qt for Embedded Linux in Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt je na voljo pod tremi možnimi licenčnimi pogoji, ki ustrezajo različnim željam uporabnikov.&lt;/p&gt;&lt;p&gt;Qt pod licenco GNU General Public License različice 3.0 (&lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.html&quot;&gt;GPLv3.0&lt;/a&gt;) je primeren za razvoj programov Qt, ki so povsem &lt;a href=&quot;http://www.gnu.org/philosophy/free-sw.html&quot;&gt;prosti in odprto-kodni&lt;/a&gt;. S to licenco se uporabnikom programa zagotovijo vse pravice in svoboščine, kot jih je imel izdelovalec programa.&lt;/p&gt;&lt;p&gt;Qt pod licenco GNU Lesser General Public License različice 2.1 (&lt;a href=&quot;http://www.gnu.org/licenses/lgpl-2.1.html&quot;&gt;LGPLv2.1&lt;/a&gt;) omogoča tudi razvoj programov, ki uporabnikom ne zagotavljajo vseh pravic in svoboščin, kot jih je imel izdelovalec. Omogoča na primer tudi razvoj zaprto-kodnih programov.&lt;/p&gt;&lt;p&gt;Qt pod posebno komercialno licenco je namenjen razvoju lastniških in zaprto-kodnih programov, kjer izdelovalec z uporabniki noče deliti nič izvorne kode ter pravic in svoboščin, ali pa ne more ustreči pogojem licenc GPLv3.0 ali LGPLv2.1.&lt;/p&gt;&lt;p&gt;Za pregled licenčnih možnosti si oglejte spletno stran &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Avtorske pravice © 2009 Nokia Corporation in/ali podružnice ter zunanji prispevajoči.&lt;/p&gt;&lt;p&gt;Qt je proizvod podjetja Nokia. Za dodatne podatke si oglejte &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt;.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Qt je skupek gradnikov C++ za razvoj programov, ki tečejo na več platformah.&lt;/p&gt;&lt;p&gt;Qt omogoča isto kodo prenašati med platformami Linux, Mac&amp;nbsp;OS&amp;nbsp;X, Windows in vsemi večjimi variantami UNIX-a. Qt je na voljo tudi za vgrajene naprave in sicer kot Qt for Embedded Linux in Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt je na voljo pod tremi možnimi licenčnimi pogoji, ki ustrezajo različnim željam uporabnikov.&lt;/p&gt;&lt;p&gt;Qt pod licenco GNU General Public License različice 3.0 (&lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.html&quot;&gt;GPLv3.0&lt;/a&gt;) je primeren za razvoj programov Qt, ki so povsem &lt;a href=&quot;http://www.gnu.org/philosophy/free-sw.html&quot;&gt;prosti in odprto-kodni&lt;/a&gt;. S to licenco se uporabnikom programa zagotovijo vse pravice in svoboščine, kot jih je imel izdelovalec programa.&lt;/p&gt;&lt;p&gt;Qt pod licenco GNU Lesser General Public License različice 2.1 (&lt;a href=&quot;http://www.gnu.org/licenses/lgpl-2.1.html&quot;&gt;LGPLv2.1&lt;/a&gt;) omogoča tudi razvoj programov, ki uporabnikom ne zagotavljajo vseh pravic in svoboščin, kot jih je imel izdelovalec. Omogoča na primer tudi razvoj zaprto-kodnih programov.&lt;/p&gt;&lt;p&gt;Qt pod posebno komercialno licenco je namenjen razvoju lastniških in zaprto-kodnih programov, kjer izdelovalec z uporabniki noče deliti nič izvorne kode ter pravic in svoboščin, ali pa ne more ustreči pogojem licenc GPLv3.0 ali LGPLv2.1.&lt;/p&gt;&lt;p&gt;Za pregled licenčnih možnosti si oglejte spletno stran &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Avtorske pravice © 2009 Nokia Corporation in/ali podružnice ter zunanji prispevajoči.&lt;/p&gt;&lt;p&gt;Qt je proizvod podjetja Nokia. Za dodatne podatke si oglejte &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Prevedel: &lt;a href=&quot;mailto:jlp@holodeck1.com&quot;&gt;Jure Repinc&lt;/a&gt;, &lt;a href=&quot;http://www.lugos.si/&quot;&gt;LUGOS&lt;/a&gt;&lt;/p&gt;</translation>
</message>
<message>
<source>About Qt</source>
@@ -3816,11 +3816,11 @@ Ali jo kljub temu želite izbrisati?</translation>
<name>QNetworkAccessDataBackend</name>
<message>
<source>Operation not supported on %1</source>
- <translation type="unfinished">Dejanje na %1 ni podprto</translation>
+ <translation>Dejanje na %1 ni podprto</translation>
</message>
<message>
<source>Invalid URI: %1</source>
- <translation type="unfinished">Neveljaven URI: %1</translation>
+ <translation>Neveljaven URI: %1</translation>
</message>
</context>
<context>
@@ -3831,11 +3831,11 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>Socket error on %1: %2</source>
- <translation type="unfinished">Napaka vtičnice na %1: %2</translation>
+ <translation>Napaka vtičnice na %1: %2</translation>
</message>
<message>
<source>Remote host closed the connection prematurely on %1</source>
- <translation type="unfinished">Oddaljen gostitelj je predčasno prekinil povezavo na %1</translation>
+ <translation>Oddaljen gostitelj je predčasno prekinil povezavo na %1</translation>
</message>
</context>
<context>
@@ -3895,7 +3895,7 @@ Ali jo kljub temu želite izbrisati?</translation>
<name>QNetworkAccessManager</name>
<message>
<source>Network access is disabled.</source>
- <translation type="unfinished"></translation>
+ <translation>Omrežni dostop je onemogočen.</translation>
</message>
</context>
<context>
@@ -3910,11 +3910,11 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>Network session error.</source>
- <translation type="unfinished"></translation>
+ <translation>Napaka omrežne seje.</translation>
</message>
<message>
<source>Temporary network failure.</source>
- <translation type="unfinished"></translation>
+ <translation>Začasna omrežna napaka.</translation>
</message>
</context>
<context>
@@ -3928,42 +3928,42 @@ Ali jo kljub temu želite izbrisati?</translation>
<name>QNetworkSession</name>
<message>
<source>Invalid configuration.</source>
- <translation type="unfinished"></translation>
+ <translation>Neveljavna nastavitev.</translation>
</message>
</context>
<context>
<name>QNetworkSessionPrivateImpl</name>
<message>
<source>Roaming error</source>
- <translation type="unfinished"></translation>
+ <translation>Napaka potovanja</translation>
</message>
<message>
<source>Session aborted by user or system</source>
- <translation type="unfinished"></translation>
+ <translation>Sejo je preklical uporabnik ali pa sistem</translation>
</message>
<message>
<source>Unidentified Error</source>
- <translation type="unfinished"></translation>
+ <translation>Neznana napaka</translation>
</message>
<message>
<source>Unknown session error.</source>
- <translation type="unfinished"></translation>
+ <translation>Neznana napaka seje.</translation>
</message>
<message>
<source>The session was aborted by the user or system.</source>
- <translation type="unfinished"></translation>
+ <translation>Sejo je preklical uporabnik ali pa sistem.</translation>
</message>
<message>
<source>The requested operation is not supported by the system.</source>
- <translation type="unfinished"></translation>
+ <translation>Sistem ne podpira zahtevanega dejanja.</translation>
</message>
<message>
<source>The specified configuration cannot be used.</source>
- <translation type="unfinished"></translation>
+ <translation>Navedenih nastavitev ni moč uporabiti.</translation>
</message>
<message>
<source>Roaming was aborted or is not possible.</source>
- <translation type="unfinished"></translation>
+ <translation>Potovanje je bilo preklicano ali pa ni možno.</translation>
</message>
</context>
<context>
@@ -4095,15 +4095,15 @@ Ali jo kljub temu želite izbrisati?</translation>
<name>QObject</name>
<message>
<source>PulseAudio Sound Server</source>
- <translation type="unfinished">Zvočni strežnik PulseAudio</translation>
+ <translation>Zvočni strežnik PulseAudio</translation>
</message>
<message>
<source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
- <translation type="unfinished"></translation>
+ <translation>»%1« podvaja obstoječe ime vloge in bo onemogočena.</translation>
</message>
<message>
<source>invalid query: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
+ <translation>neveljavna poizvedba: »%1«</translation>
</message>
</context>
<context>
@@ -4385,7 +4385,7 @@ Ali jo kljub temu želite izbrisati?</translation>
</message>
<message>
<source>Print current page</source>
- <translation type="unfinished"></translation>
+ <translation>Natisni trenutno stran</translation>
</message>
<message>
<source>OK</source>
@@ -4670,7 +4670,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Close</source>
- <translation type="unfinished">Zapri</translation>
+ <translation>Zapri</translation>
</message>
<message>
<source>Export to PDF</source>
@@ -4776,7 +4776,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Current Page</source>
- <translation type="unfinished"></translation>
+ <translation>Trenutna stran</translation>
</message>
</context>
<context>
@@ -5444,7 +5444,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Backtab</source>
- <translation type="unfinished"></translation>
+ <translation>Tabulator nazaj</translation>
</message>
<message>
<source>Backspace</source>
@@ -5602,13 +5602,13 @@ Izberite drugo ime datoteke.</translation>
<source>Media Pause</source>
<extracomment>Media player pause button
</extracomment>
- <translation type="unfinished"></translation>
+ <translation>Prekini večpredstavnost</translation>
</message>
<message>
<source>Toggle Media Play/Pause</source>
<extracomment>Media player button to toggle between playing and paused
</extracomment>
- <translation type="unfinished"></translation>
+ <translation>Preklopi predvajanje/prekinitev večpredstavnosti</translation>
</message>
<message>
<source>Favorites</source>
@@ -5700,111 +5700,111 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Monitor Brightness Up</source>
- <translation type="unfinished">Povečaj svetlost zaslon</translation>
+ <translation>Povečaj svetlost zaslona</translation>
</message>
<message>
<source>Monitor Brightness Down</source>
- <translation type="unfinished">Zmanjšaj svetlost zaslona</translation>
+ <translation>Zmanjšaj svetlost zaslona</translation>
</message>
<message>
<source>Keyboard Light On/Off</source>
- <translation type="unfinished">Vklop/izklop lučk na tipkovnici</translation>
+ <translation>Vklop/izklop lučk na tipkovnici</translation>
</message>
<message>
<source>Keyboard Brightness Up</source>
- <translation type="unfinished"></translation>
+ <translation>Povečaj svetlost tipkovnice</translation>
</message>
<message>
<source>Keyboard Brightness Down</source>
- <translation type="unfinished"></translation>
+ <translation>Zmanjšaj svetlost tipkovnice</translation>
</message>
<message>
<source>Power Off</source>
- <translation type="unfinished">Izklopi</translation>
+ <translation>Izklopi</translation>
</message>
<message>
<source>Wake Up</source>
- <translation type="unfinished">Zbudi se</translation>
+ <translation>Zbudi</translation>
</message>
<message>
<source>Eject</source>
- <translation type="unfinished">Izvrzi</translation>
+ <translation>Izvrzi</translation>
</message>
<message>
<source>Screensaver</source>
- <translation type="unfinished">Ohranjevalnik zaslona</translation>
+ <translation>Ohranjevalnik zaslona</translation>
</message>
<message>
<source>WWW</source>
- <translation type="unfinished">WWW</translation>
+ <translation>Svetovni splet</translation>
</message>
<message>
<source>Sleep</source>
- <translation type="unfinished">V pripravljenost</translation>
+ <translation>V pripravljenost</translation>
</message>
<message>
<source>LightBulb</source>
- <translation type="unfinished">Žarnica</translation>
+ <translation>Žarnica</translation>
</message>
<message>
<source>Shop</source>
- <translation type="unfinished"></translation>
+ <translation>Trgovina</translation>
</message>
<message>
<source>History</source>
- <translation type="unfinished">Zgodovina</translation>
+ <translation>Zgodovina</translation>
</message>
<message>
<source>Add Favorite</source>
- <translation type="unfinished">Dodaj najljubšo</translation>
+ <translation>Dodaj priljubljeno</translation>
</message>
<message>
<source>Hot Links</source>
- <translation type="unfinished">Vroče povezave</translation>
+ <translation>Vroče povezave</translation>
</message>
<message>
<source>Adjust Brightness</source>
- <translation type="unfinished">Prilagodi svetlost</translation>
+ <translation>Prilagodi svetlost</translation>
</message>
<message>
<source>Finance</source>
- <translation type="unfinished">Finance</translation>
+ <translation>Finance</translation>
</message>
<message>
<source>Community</source>
- <translation type="unfinished">Skupnost</translation>
+ <translation>Skupnost</translation>
</message>
<message>
<source>Audio Rewind</source>
- <translation type="unfinished">Samodejno previj</translation>
+ <translation>Previj zvok</translation>
</message>
<message>
<source>Back Forward</source>
- <translation type="unfinished"></translation>
+ <translation>Nazaj naprej</translation>
</message>
<message>
<source>Application Left</source>
- <translation type="unfinished"></translation>
+ <translation>Program levo</translation>
</message>
<message>
<source>Application Right</source>
- <translation type="unfinished"></translation>
+ <translation>Program desno</translation>
</message>
<message>
<source>Book</source>
- <translation type="unfinished">Knjiga</translation>
+ <translation>Knjiga</translation>
</message>
<message>
<source>CD</source>
- <translation type="unfinished">CD</translation>
+ <translation>CD</translation>
</message>
<message>
<source>Calculator</source>
- <translation type="unfinished">Računalo</translation>
+ <translation>Računalo</translation>
</message>
<message>
<source>Clear</source>
- <translation type="unfinished">Počisti</translation>
+ <translation>Počisti</translation>
</message>
<message>
<source>Clear Grab</source>
@@ -5812,15 +5812,15 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Close</source>
- <translation type="unfinished">Zapri</translation>
+ <translation>Zapri</translation>
</message>
<message>
<source>Copy</source>
- <translation type="unfinished">Kopiraj</translation>
+ <translation>Skopiraj</translation>
</message>
<message>
<source>Cut</source>
- <translation type="unfinished">Izreži</translation>
+ <translation>Izreži</translation>
</message>
<message>
<source>Display</source>
@@ -5828,23 +5828,23 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>DOS</source>
- <translation type="unfinished">DOS</translation>
+ <translation>DOS</translation>
</message>
<message>
<source>Documents</source>
- <translation type="unfinished">Dokumenti</translation>
+ <translation>Dokumenti</translation>
</message>
<message>
<source>Spreadsheet</source>
- <translation type="unfinished">Preglednica</translation>
+ <translation>Preglednica</translation>
</message>
<message>
<source>Browser</source>
- <translation type="unfinished">Brskalnik</translation>
+ <translation>Brskalnik</translation>
</message>
<message>
<source>Game</source>
- <translation type="unfinished">Igra</translation>
+ <translation>Igra</translation>
</message>
<message>
<source>Go</source>
@@ -5852,19 +5852,19 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>iTouch</source>
- <translation type="unfinished">iTouch</translation>
+ <translation>iTouch</translation>
</message>
<message>
<source>Logoff</source>
- <translation type="unfinished">Odjava</translation>
+ <translation>Odjavi</translation>
</message>
<message>
<source>Market</source>
- <translation type="unfinished"></translation>
+ <translation>Trg</translation>
</message>
<message>
<source>Meeting</source>
- <translation type="unfinished">Srečanje</translation>
+ <translation>Srečanje</translation>
</message>
<message>
<source>Keyboard Menu</source>
@@ -5876,39 +5876,39 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>My Sites</source>
- <translation type="unfinished">Moje strani</translation>
+ <translation>Moje strani</translation>
</message>
<message>
<source>News</source>
- <translation type="unfinished">Novice</translation>
+ <translation>Novice</translation>
</message>
<message>
<source>Home Office</source>
- <translation type="unfinished">Domača pisarna</translation>
+ <translation>Domača pisarna</translation>
</message>
<message>
<source>Option</source>
- <translation type="unfinished">Možnost</translation>
+ <translation>Možnost</translation>
</message>
<message>
<source>Paste</source>
- <translation type="unfinished">Prilepi</translation>
+ <translation>Prilepi</translation>
</message>
<message>
<source>Phone</source>
- <translation type="unfinished">Telefon</translation>
+ <translation>Telefon</translation>
</message>
<message>
<source>Reply</source>
- <translation type="unfinished">Odgovori</translation>
+ <translation>Odgovori</translation>
</message>
<message>
<source>Reload</source>
- <translation type="unfinished">Znova naloži</translation>
+ <translation>Znova naloži</translation>
</message>
<message>
<source>Rotate Windows</source>
- <translation type="unfinished">Zavrti okna</translation>
+ <translation>Zavrti okna</translation>
</message>
<message>
<source>Rotation PB</source>
@@ -5920,23 +5920,23 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Save</source>
- <translation type="unfinished">Shrani</translation>
+ <translation>Shrani</translation>
</message>
<message>
<source>Send</source>
- <translation type="unfinished">Pošlji</translation>
+ <translation>Pošlji</translation>
</message>
<message>
<source>Spellchecker</source>
- <translation type="unfinished">Črkovalnik</translation>
+ <translation>Črkovalnik</translation>
</message>
<message>
<source>Split Screen</source>
- <translation type="unfinished">Razdeli zaslon</translation>
+ <translation>Razdeli zaslon</translation>
</message>
<message>
<source>Support</source>
- <translation type="unfinished">Podpora</translation>
+ <translation>Podpora</translation>
</message>
<message>
<source>Task Panel</source>
@@ -5944,23 +5944,23 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Terminal</source>
- <translation type="unfinished">Terminal</translation>
+ <translation>Konzola</translation>
</message>
<message>
<source>Tools</source>
- <translation type="unfinished">Orodja</translation>
+ <translation>Orodja</translation>
</message>
<message>
<source>Travel</source>
- <translation type="unfinished">Potovanje</translation>
+ <translation>Potovanje</translation>
</message>
<message>
<source>Video</source>
- <translation type="unfinished">Video</translation>
+ <translation>Video</translation>
</message>
<message>
<source>Word Processor</source>
- <translation type="unfinished">Urejevalnik besedila</translation>
+ <translation>Urejevalnik besedil</translation>
</message>
<message>
<source>XFer</source>
@@ -5968,47 +5968,47 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Zoom In</source>
- <translation type="unfinished">Približaj</translation>
+ <translation>Povečaj</translation>
</message>
<message>
<source>Zoom Out</source>
- <translation type="unfinished">Oddalji</translation>
+ <translation>Zmanjšaj</translation>
</message>
<message>
<source>Away</source>
- <translation type="unfinished">Odsoten</translation>
+ <translation>Odsoten</translation>
</message>
<message>
<source>Messenger</source>
- <translation type="unfinished">Sporočilnik</translation>
+ <translation>Sporočilnik</translation>
</message>
<message>
<source>WebCam</source>
- <translation type="unfinished">Spletna kamera</translation>
+ <translation>Spletna kamera</translation>
</message>
<message>
<source>Mail Forward</source>
- <translation type="unfinished">Posreduj sporočilo naprej</translation>
+ <translation>Posreduj sporočilo</translation>
</message>
<message>
<source>Pictures</source>
- <translation type="unfinished">Slike</translation>
+ <translation>Slike</translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished">Glasba</translation>
+ <translation>Glasba</translation>
</message>
<message>
<source>Battery</source>
- <translation type="unfinished">Baterija</translation>
+ <translation>Baterija</translation>
</message>
<message>
<source>Bluetooth</source>
- <translation type="unfinished">Bluetooth</translation>
+ <translation>Bluetooth</translation>
</message>
<message>
<source>Wireless</source>
- <translation type="unfinished">Brezžično</translation>
+ <translation>Brezžično</translation>
</message>
<message>
<source>Ultra Wide Band</source>
@@ -6016,19 +6016,19 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Audio Forward</source>
- <translation type="unfinished"></translation>
+ <translation>Zvok naprej</translation>
</message>
<message>
<source>Audio Repeat</source>
- <translation type="unfinished"></translation>
+ <translation>Zvok ponavljanje</translation>
</message>
<message>
<source>Audio Random Play</source>
- <translation type="unfinished"></translation>
+ <translation>Zvok naključno</translation>
</message>
<message>
<source>Subtitle</source>
- <translation type="unfinished">Podnaslov</translation>
+ <translation>Podnaslov</translation>
</message>
<message>
<source>Audio Cycle Track</source>
@@ -6036,19 +6036,19 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Time</source>
- <translation type="unfinished">Čas</translation>
+ <translation>Čas</translation>
</message>
<message>
<source>View</source>
- <translation type="unfinished">Pogled</translation>
+ <translation>Prikaz</translation>
</message>
<message>
<source>Top Menu</source>
- <translation type="unfinished">Vrhnji meni</translation>
+ <translation>Vrhnji meni</translation>
</message>
<message>
<source>Suspend</source>
- <translation type="unfinished">Ustavi</translation>
+ <translation>Ustavi</translation>
</message>
<message>
<source>Hibernate</source>
@@ -6142,7 +6142,7 @@ Izberite drugo ime datoteke.</translation>
<source>Toggle Call/Hangup</source>
<extracomment>Button that will hang up if we&apos;re in call, or make a call if we&apos;re not.
</extracomment>
- <translation type="unfinished"></translation>
+ <translation>Preklopi pokliči/odloži</translation>
</message>
<message>
<source>Flip</source>
@@ -6152,13 +6152,13 @@ Izberite drugo ime datoteke.</translation>
<source>Voice Dial</source>
<extracomment>Button to trigger voice dialling
</extracomment>
- <translation type="unfinished"></translation>
+ <translation>Glasovni klic</translation>
</message>
<message>
<source>Last Number Redial</source>
<extracomment>Button to redial the last number called
</extracomment>
- <translation type="unfinished"></translation>
+ <translation>Ponovni klic zadnje številke</translation>
</message>
<message>
<source>Camera Shutter</source>
@@ -6170,11 +6170,11 @@ Izberite drugo ime datoteke.</translation>
<source>Camera Focus</source>
<extracomment>Button to focus the camera
</extracomment>
- <translation type="unfinished"></translation>
+ <translation>Fokus fotoaparata</translation>
</message>
<message>
<source>Kanji</source>
- <translation type="unfinished"></translation>
+ <translation>Kanji</translation>
</message>
<message>
<source>Muhenkan</source>
@@ -6190,11 +6190,11 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Hiragana</source>
- <translation type="unfinished">Hiragana</translation>
+ <translation>Hiragana</translation>
</message>
<message>
<source>Katakana</source>
- <translation type="unfinished">Katakana</translation>
+ <translation>Katakana</translation>
</message>
<message>
<source>Hiragana Katakana</source>
@@ -6238,7 +6238,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Code input</source>
- <translation type="unfinished"></translation>
+ <translation>Vnos kode</translation>
</message>
<message>
<source>Multiple Candidate</source>
@@ -6266,7 +6266,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Hangul Jamo</source>
- <translation type="unfinished">Hangul Jamo</translation>
+ <translation>Hangul Jamo</translation>
</message>
<message>
<source>Hangul Romaja</source>
@@ -6492,7 +6492,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Unable to decrypt data: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Ni moč dešifrirati podatkov: %1</translation>
</message>
<message>
<source>Error while reading: %1</source>
@@ -6512,7 +6512,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Private key does not certify public key, %1</source>
- <translation type="unfinished"></translation>
+ <translation>Zasebni ključ ne potrjuje javnega ključa: %1</translation>
</message>
<message>
<source>Error creating SSL session, %1</source>
@@ -6536,59 +6536,59 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>No error</source>
- <translation type="unfinished">Brez napake</translation>
+ <translation>Brez napake</translation>
</message>
<message>
<source>The issuer certificate could not be found</source>
- <translation type="unfinished"></translation>
+ <translation>Potrdila izdajatelja ni bilo moč najti</translation>
</message>
<message>
<source>The certificate signature could not be decrypted</source>
- <translation type="unfinished"></translation>
+ <translation>Podpisa potrdila ni bilo moč dešifrirati</translation>
</message>
<message>
<source>The public key in the certificate could not be read</source>
- <translation type="unfinished"></translation>
+ <translation>Javnega ključa iz potrdila ni bilo moč prebrati</translation>
</message>
<message>
<source>The signature of the certificate is invalid</source>
- <translation type="unfinished"></translation>
+ <translation>Podpis potrdila ni veljaven</translation>
</message>
<message>
<source>The certificate is not yet valid</source>
- <translation type="unfinished"></translation>
+ <translation>Potrdilo še ni veljavno</translation>
</message>
<message>
<source>The certificate has expired</source>
- <translation type="unfinished">Potrdilo je preteklo</translation>
+ <translation>Potrdilo je preteklo</translation>
</message>
<message>
<source>The certificate&apos;s notBefore field contains an invalid time</source>
- <translation type="unfinished"></translation>
+ <translation>Polje notBefore (ne pred) potrdila vsebuje neveljaven čas</translation>
</message>
<message>
<source>The certificate&apos;s notAfter field contains an invalid time</source>
- <translation type="unfinished"></translation>
+ <translation>Polje notAfter (ne po) potrdila vsebuje neveljaven čas</translation>
</message>
<message>
<source>The certificate is self-signed, and untrusted</source>
- <translation type="unfinished"></translation>
+ <translation>Potrdilo je samo-podpisano in nezaupano</translation>
</message>
<message>
<source>The root certificate of the certificate chain is self-signed, and untrusted</source>
- <translation type="unfinished"></translation>
+ <translation>Vrhnje potrdilo verige potrdil je samo-podpisano in nezaupano</translation>
</message>
<message>
<source>The issuer certificate of a locally looked up certificate could not be found</source>
- <translation type="unfinished"></translation>
+ <translation>Potrdila izdajatelja za krajevno najdeno potrdilo ni bilo moč najti</translation>
</message>
<message>
<source>No certificates could be verified</source>
- <translation type="unfinished"></translation>
+ <translation>Preveriti ni bilo moč nobenega potrdila</translation>
</message>
<message>
<source>One of the CA certificates is invalid</source>
- <translation type="unfinished"></translation>
+ <translation>Eno izmed potrdil avtoritete za potrdila ni veljavno</translation>
</message>
<message>
<source>The basicConstraints path length parameter has been exceeded</source>
@@ -6596,15 +6596,15 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>The supplied certificate is unsuitable for this purpose</source>
- <translation type="unfinished"></translation>
+ <translation>Predloženo potrdilo ni primerno za ta namen</translation>
</message>
<message>
<source>The root CA certificate is not trusted for this purpose</source>
- <translation type="unfinished"></translation>
+ <translation>Potrdilo vrhovne avtoritete za potrdila ni zaupano za ta namen</translation>
</message>
<message>
<source>The root CA certificate is marked to reject the specified purpose</source>
- <translation type="unfinished"></translation>
+ <translation>Potrdilo vrhovne avtoritete za potrdila je označeno za zavrnitev navedenega namena</translation>
</message>
<message>
<source>The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate</source>
@@ -6616,15 +6616,15 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>The peer did not present any certificate</source>
- <translation type="unfinished">Vrstnik ni predložil nobenega potrdila</translation>
+ <translation>Vrstnik ni predložil nobenega potrdila</translation>
</message>
<message>
<source>The host name did not match any of the valid hosts for this certificate</source>
- <translation type="unfinished"></translation>
+ <translation>Ime gostitelja se ne ujema z nobenim izmed veljavnih gostiteljev za to potrdilo</translation>
</message>
<message>
<source>Unknown error</source>
- <translation type="unfinished">Neznana napaka</translation>
+ <translation>Neznana napaka</translation>
</message>
</context>
<context>
@@ -6858,7 +6858,7 @@ Izberite drugo ime datoteke.</translation>
<name>QWebPage</name>
<message>
<source>Redirection limit reached</source>
- <translation type="unfinished"></translation>
+ <translation>Dosežena je bila omejitev preusmeritev</translation>
</message>
<message>
<source>Bad HTTP request</source>
@@ -7082,7 +7082,7 @@ Izberite drugo ime datoteke.</translation>
<message>
<source>Missing Plug-in</source>
<comment>Label text to be used when a plug-in is missing</comment>
- <translation type="unfinished"></translation>
+ <translation>Manjkajoč vstavek</translation>
</message>
<message>
<source>Loading...</source>
@@ -7779,23 +7779,23 @@ Izberite drugo ime datoteke.</translation>
<name>QXmlPatternistCLI</name>
<message>
<source>Warning in %1, at line %2, column %3: %4</source>
- <translation type="unfinished"></translation>
+ <translation>Opozorilo v %1, vrstica %2, stolpec %3: %4</translation>
</message>
<message>
<source>Warning in %1: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Opozorilo v %1: %2</translation>
</message>
<message>
<source>Unknown location</source>
- <translation type="unfinished">Neznana lokacija</translation>
+ <translation>Neznana lokacija</translation>
</message>
<message>
<source>Error %1 in %2, at line %3, column %4: %5</source>
- <translation type="unfinished"></translation>
+ <translation>Napaka %1 v %2, vrstica %3, stolpec %4: %5</translation>
</message>
<message>
<source>Error %1 in %2: %3</source>
- <translation type="unfinished">Napaka %1 v %2: %3</translation>
+ <translation>Napaka %1 v %2: %3</translation>
</message>
</context>
<context>
@@ -7826,7 +7826,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Unexpected character &apos;%1&apos; in public id literal.</source>
- <translation type="unfinished"></translation>
+ <translation>Nepričakovan znak »%1« v javnem literalu ID-ja.</translation>
</message>
<message>
<source>Invalid XML version string.</source>
@@ -7846,7 +7846,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Standalone accepts only yes or no.</source>
- <translation type="unfinished"></translation>
+ <translation>Samostojni (standalone) sprejema samo da (yes) ali ne (no).</translation>
</message>
<message>
<source>Invalid attribute in XML declaration.</source>
@@ -7890,7 +7890,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>NDATA in parameter entity declaration.</source>
- <translation type="unfinished"></translation>
+ <translation>NDATA v parametru deklaracije entitete.</translation>
</message>
<message>
<source>%1 is an invalid processing instruction name.</source>
@@ -7938,7 +7938,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>%1 is an invalid PUBLIC identifier.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 ni veljaven javni identifikator.</translation>
</message>
</context>
<context>
@@ -7949,7 +7949,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Element %1 can&apos;t be serialized because it appears outside the document element.</source>
- <translation type="unfinished"></translation>
+ <translation>Elementa %1 ni moč serializirati, ker se nahaja zunaj elementa dokumenta.</translation>
</message>
<message>
<source>Year %1 is invalid because it begins with %2.</source>
@@ -8235,7 +8235,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>%1 is not a whole number of minutes.</source>
- <translation type="unfinished">%1 ni celovito število minut,</translation>
+ <translation>%1 ni celovito število minut.</translation>
</message>
<message>
<source>Required cardinality is %1; got cardinality %2.</source>
@@ -9339,7 +9339,7 @@ Izberite drugo ime datoteke.</translation>
</message>
<message>
<source>Component with ID %1 has been defined previously.</source>
- <translation type="unfinished">Komponenta z ID-jem %1 je že bila definirana.</translation>
+ <translation>Komponenta z ID-jem %1 je že bila definirana.</translation>
</message>
<message>
<source>Element %1 already defined.</source>
diff --git a/translations/qt_uk.ts b/translations/qt_uk.ts
index 7a223f49e8..e1716fbe67 100644
--- a/translations/qt_uk.ts
+++ b/translations/qt_uk.ts
@@ -1697,25 +1697,6 @@ to
</message>
</context>
<context>
- <name>QDeclarativeCompositeTypeManager</name>
- <message>
- <source>Resource %1 unavailable</source>
- <translation>Ресурс %1 недоступний</translation>
- </message>
- <message>
- <source>Namespace %1 cannot be used as a type</source>
- <translation>Простір імен %1 не може бути використаний як тип</translation>
- </message>
- <message>
- <source>%1 %2</source>
- <translation>%1 %2</translation>
- </message>
- <message>
- <source>Type %1 unavailable</source>
- <translation>Тип %1 недоступний</translation>
- </message>
-</context>
-<context>
<name>QDeclarativeConnections</name>
<message>
<source>Cannot assign to non-existent property &quot;%1&quot;</source>
@@ -2096,6 +2077,25 @@ to
</message>
</context>
<context>
+ <name>QDeclarativeTypeData</name>
+ <message>
+ <source>Script %1 unavailable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Type %1 unavailable</source>
+ <translation type="unfinished">Тип %1 недоступний</translation>
+ </message>
+ <message>
+ <source>Namespace %1 cannot be used as a type</source>
+ <translation type="unfinished">Простір імен %1 не може бути використаний як тип</translation>
+ </message>
+ <message>
+ <source>%1 %2</source>
+ <translation type="unfinished">%1 %2</translation>
+ </message>
+</context>
+<context>
<name>QDeclarativeVME</name>
<message>
<source>Unable to create object of type %1</source>
@@ -3313,18 +3313,10 @@ Do you want to delete it anyway?</source>
<context>
<name>QLibrary</name>
<message>
- <source>Could not mmap &apos;%1&apos;: %2</source>
- <translation>Не вдалося виконати mmap &apos;%1&apos;: %2</translation>
- </message>
- <message>
<source>Plugin verification data mismatch in &apos;%1&apos;</source>
<translation>Дані верифікації додатку не збігаються для ’%1’</translation>
</message>
<message>
- <source>Could not unmap &apos;%1&apos;: %2</source>
- <translation>Не вдалося виконати unmap &apos;%1&apos;: %2</translation>
- </message>
- <message>
<source>The shared library was not found.</source>
<translation>Динамічна бібліотека не знайдена.</translation>
</message>
@@ -7917,7 +7909,7 @@ Do you want to overwrite it?</source>
<name>QtXmlPatterns</name>
<message>
<source>%1 is an unsupported encoding.</source>
- <translation type="unfinished"></translation>
+ <translation>Кодування %1 не підтримується.</translation>
</message>
<message>
<source>%1 contains octets which are disallowed in the requested encoding %2.</source>
@@ -7941,23 +7933,23 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Year %1 is invalid because it begins with %2.</source>
- <translation type="unfinished"></translation>
+ <translation>Рік %1 неправильний, бо він починається з %2.</translation>
</message>
<message>
<source>Day %1 is outside the range %2..%3.</source>
- <translation type="unfinished"></translation>
+ <translation>День %1 поза межами діапазону %2..%3.</translation>
</message>
<message>
<source>Month %1 is outside the range %2..%3.</source>
- <translation type="unfinished"></translation>
+ <translation>Місяць %1 поза межами діапазону %2..%3.</translation>
</message>
<message>
<source>Overflow: Can&apos;t represent date %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Переповнення: Не можу представити дату %1.</translation>
</message>
<message>
<source>Day %1 is invalid for month %2.</source>
- <translation type="unfinished"></translation>
+ <translation>Неправильний день %1 для місяця %2.</translation>
</message>
<message>
<source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source>
@@ -7965,15 +7957,15 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Time %1:%2:%3.%4 is invalid.</source>
- <translation type="unfinished"></translation>
+ <translation>Неправильний час %1:%2:%3.%4.</translation>
</message>
<message>
<source>Overflow: Date can&apos;t be represented.</source>
- <translation type="unfinished"></translation>
+ <translation>Переповнення: Не можу представити дату.</translation>
</message>
<message>
<source>At least one component must be present.</source>
- <translation type="unfinished"></translation>
+ <translation>Щонайменше один компонент має бути присутнім.</translation>
</message>
<message>
<source>At least one time component must appear after the %1-delimiter.</source>
@@ -7981,7 +7973,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>%1 is not a valid value of type %2.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 не є правильним значенням для типу %2.</translation>
</message>
<message>
<source>When casting to %1 from %2, the source value cannot be %3.</source>
@@ -7989,11 +7981,11 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Integer division (%1) by zero (%2) is undefined.</source>
- <translation type="unfinished"></translation>
+ <translation>Цілочисельне ділення (%1) на нуль (%2) не визначене.</translation>
</message>
<message>
<source>Division (%1) by zero (%2) is undefined.</source>
- <translation type="unfinished"></translation>
+ <translation>Ділення (%1) на нуль (%2) не визначене.</translation>
</message>
<message>
<source>Modulus division (%1) by zero (%2) is undefined.</source>
@@ -8021,11 +8013,11 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
- <translation type="unfinished"></translation>
+ <translation>Значення %1 типу %2 перевищує максимум (%3).</translation>
</message>
<message>
<source>Value %1 of type %2 is below minimum (%3).</source>
- <translation type="unfinished"></translation>
+ <translation>Значення %1 типу %2 менше за мінімум (%3).</translation>
</message>
<message>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
@@ -8033,7 +8025,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>%1 is not valid as a value of type %2.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 не є правильним значенням для типу %2.</translation>
</message>
<message>
<source>Ambiguous rule match.</source>
@@ -8041,11 +8033,11 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Operator %1 cannot be used on type %2.</source>
- <translation type="unfinished"></translation>
+ <translation>Оператор %1 не може використовуватись для типу %2.</translation>
</message>
<message>
<source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
- <translation type="unfinished"></translation>
+ <translation>Оператор %1 не може використовуватись для атомарних значень типу %2 та %3.</translation>
</message>
<message>
<source>The namespace URI in the name for a computed attribute cannot be %1.</source>
@@ -8065,11 +8057,11 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>A comment cannot contain %1</source>
- <translation type="unfinished"></translation>
+ <translation>Коментар не може містити %1</translation>
</message>
<message>
<source>A comment cannot end with a %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Коментар не може закінчувати на %1.</translation>
</message>
<message>
<source>In a namespace constructor, the value for a namespace cannot be an empty string.</source>
@@ -8081,7 +8073,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>The prefix %1 cannot be bound.</source>
- <translation type="unfinished"></translation>
+ <translation>Неможливо прив&apos;язати префікс %1.</translation>
</message>
<message>
<source>Only the prefix %1 can be bound to %2 and vice versa.</source>
@@ -8147,12 +8139,16 @@ Do you want to overwrite it?</source>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
</translation>
</message>
<message>
@@ -8169,7 +8165,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>%1 is not a valid XML 1.0 character.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 не є правильним символом XML 1.0.</translation>
</message>
<message>
<source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source>
@@ -8257,11 +8253,11 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>The item %1 did not match the required type %2.</source>
- <translation type="unfinished"></translation>
+ <translation>Елемент %1 не відповідає необхідному типу %2.</translation>
</message>
<message>
<source>The variable %1 is unused</source>
- <translation type="unfinished"></translation>
+ <translation>Змінна %1 не використовується</translation>
</message>
<message>
<source>W3C XML Schema identity constraint selector</source>
@@ -8301,7 +8297,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Version %1 is not supported. The supported XQuery version is 1.0.</source>
- <translation type="unfinished"></translation>
+ <translation>Версія %1 не підтримується. Підтримується XQuery версії 1.0.</translation>
</message>
<message>
<source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source>
@@ -8357,7 +8353,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>The module import feature is not supported</source>
- <translation type="unfinished"></translation>
+ <translation>Можливість імпорту модулів не підтримується</translation>
</message>
<message>
<source>A variable with name %1 has already been declared.</source>
@@ -8517,7 +8513,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Parse error: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка розбору: %1</translation>
</message>
<message>
<source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn&apos;t.</source>
@@ -8529,7 +8525,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Unknown XSL-T attribute %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Невідомий атрибут XSL-T %1.</translation>
</message>
<message>
<source>Attribute %1 and %2 are mutually exclusive.</source>
@@ -9041,11 +9037,11 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source>
- <translation type="unfinished"></translation>
+ <translation>Атрибут %1 елемента %2 містить неправильний вміст: {%3} не є значенням типу %4.</translation>
</message>
<message>
<source>%1 attribute of %2 element contains invalid content: {%3}.</source>
- <translation type="unfinished"></translation>
+ <translation>Атрибут %1 елемента %2 містить неправильний вміст: {%3}.</translation>
</message>
<message>
<source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source>
@@ -9077,7 +9073,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>%1 attribute of %2 element must be %3 or %4.</source>
- <translation type="unfinished"></translation>
+ <translation>Атрибут %1 елемента %2 має бути %3 або %4.</translation>
</message>
<message>
<source>%1 attribute of %2 element must have a value of %3.</source>
@@ -9157,7 +9153,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>Type %1 already defined.</source>
- <translation type="unfinished"></translation>
+ <translation>Тип %1 вже визначено.</translation>
</message>
<message>
<source>Attribute group %1 already defined.</source>
@@ -9297,7 +9293,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>%1 is not valid according to %2.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 не є правильним відповідно до %2.</translation>
</message>
<message>
<source>String content does not match the length facet.</source>
@@ -9697,7 +9693,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>zero or one</source>
- <translation type="unfinished"></translation>
+ <translation>нуль чи один</translation>
</message>
<message>
<source>exactly one</source>
@@ -9705,15 +9701,15 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>one or more</source>
- <translation type="unfinished"></translation>
+ <translation>один чи більше</translation>
</message>
<message>
<source>zero or more</source>
- <translation type="unfinished"></translation>
+ <translation>нуль чи більше</translation>
</message>
<message>
<source>Required type is %1, but %2 was found.</source>
- <translation type="unfinished"></translation>
+ <translation>Вимагається тип %1, але знайдено %2.</translation>
</message>
<message>
<source>Promoting %1 to %2 may cause loss of precision.</source>
@@ -9721,7 +9717,7 @@ Do you want to overwrite it?</source>
</message>
<message>
<source>The focus is undefined.</source>
- <translation type="unfinished"></translation>
+ <translation>Фокус не визначено.</translation>
</message>
<message>
<source>It&apos;s not possible to add attributes after any other kind of node.</source>
diff --git a/translations/qtconfig_sl.ts b/translations/qtconfig_sl.ts
new file mode 100644
index 0000000000..fa779ffa45
--- /dev/null
+++ b/translations/qtconfig_sl.ts
@@ -0,0 +1,732 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+ <extra-po-header-po_revision_date>2010-08-28 15:58+0200</extra-po-header-po_revision_date>
+ <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+ <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+ <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+ <extra-po-header-project_id_version></extra-po-header-project_id_version>
+ <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+ <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <source>Desktop Settings (Default)</source>
+ <translation>Nastavitve namizja (privzeto)</translation>
+ </message>
+ <message>
+ <source>Choose style and palette based on your desktop settings.</source>
+ <translation>Izberite slog in paleto, ki temeljita na vaših nastavitvah namizja.</translation>
+ </message>
+ <message>
+ <source>On The Spot</source>
+ <translation>Na mestu</translation>
+ </message>
+ <message>
+ <source>Auto (default)</source>
+ <translation>Samodejno (privzeto)</translation>
+ </message>
+ <message>
+ <source>Choose audio output automatically.</source>
+ <translation>Samodejno izbere zvočni izhod.</translation>
+ </message>
+ <message>
+ <source>aRts</source>
+ <translation>aRts</translation>
+ </message>
+ <message>
+ <source>Experimental aRts support for GStreamer.</source>
+ <translation>Poskusna podpora za aRts za GStreamer.</translation>
+ </message>
+ <message>
+ <source>Phonon GStreamer backend not available.</source>
+ <translation>Hrbtenica GStreamer za Phonon ni na voljo.</translation>
+ </message>
+ <message>
+ <source>Choose render method automatically</source>
+ <translation>Samodejno izberi način izrisovanja</translation>
+ </message>
+ <message>
+ <source>X11</source>
+ <translation>X11</translation>
+ </message>
+ <message>
+ <source>Use X11 Overlays</source>
+ <translation>Uporabi prekritja X11</translation>
+ </message>
+ <message>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <source>Use OpenGL if available</source>
+ <translation>Če je na voljo, uporabi OpenGL</translation>
+ </message>
+ <message>
+ <source>Software</source>
+ <translation>Programsko</translation>
+ </message>
+ <message>
+ <source>Use simple software rendering</source>
+ <translation>Uporabi preprosto programsko izrisovanje</translation>
+ </message>
+ <message>
+ <source>No changes to be saved.</source>
+ <translation>Ni sprememb, ki bi jih bilo potrebno shraniti.</translation>
+ </message>
+ <message>
+ <source>Saving changes...</source>
+ <translation>Shranjevanje sprememb ...</translation>
+ </message>
+ <message>
+ <source>Over The Spot</source>
+ <translation>Prek mesta</translation>
+ </message>
+ <message>
+ <source>Off The Spot</source>
+ <translation>Z mesta</translation>
+ </message>
+ <message>
+ <source>Root</source>
+ <translation>Koren</translation>
+ </message>
+ <message>
+ <source>Select a Directory</source>
+ <translation>Izberite mapo</translation>
+ </message>
+ <message>
+ <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
+ <translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Različica %2&lt;br/&gt;&lt;br/&gt;Avtorske pravice © 2010 Nokia Corporation in/ali njene podružnice.&lt;br/&gt;&lt;br/&gt;Prevedel: &lt;a href=&quot;mailto:jlp@holodeck1.com&quot;&gt;Jure Repinc&lt;/a&gt;, &lt;a href=&quot;http://www.lugos.si/&quot;&gt;LUGOS&lt;/a&gt;</translation>
+ </message>
+ <message>
+ <source>Qt Configuration</source>
+ <translation>Nastavitev Qt</translation>
+ </message>
+ <message>
+ <source>Save Changes</source>
+ <translation>Shrani spremembe</translation>
+ </message>
+ <message>
+ <source>Save changes to settings?</source>
+ <translation>Ali želite shraniti spremembe nastavitev?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation>&amp;Da</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation>&amp;Ne</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Prekliči</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <source>Qt Configuration</source>
+ <translation>Nastavitev Qt</translation>
+ </message>
+ <message>
+ <source>Appearance</source>
+ <translation>Videz</translation>
+ </message>
+ <message>
+ <source>GUI Style</source>
+ <translation>Slog grafičnega vmesnika</translation>
+ </message>
+ <message>
+ <source>Select GUI &amp;Style:</source>
+ <translation>Izberite &amp;slog grafičnega vmesnika:</translation>
+ </message>
+ <message>
+ <source>Preview</source>
+ <translation>Ogled</translation>
+ </message>
+ <message>
+ <source>Select &amp;Palette:</source>
+ <translation>Izberite &amp;paleto:</translation>
+ </message>
+ <message>
+ <source>Active Palette</source>
+ <translation>Paleta za aktivno</translation>
+ </message>
+ <message>
+ <source>Inactive Palette</source>
+ <translation>Paleta za neaktivno</translation>
+ </message>
+ <message>
+ <source>Disabled Palette</source>
+ <translation>Paleta za onemogočeno</translation>
+ </message>
+ <message>
+ <source>Build Palette</source>
+ <translation>Gradnja palete</translation>
+ </message>
+ <message>
+ <source>&amp;3-D Effects:</source>
+ <translation>Učinki &amp;3D:</translation>
+ </message>
+ <message>
+ <source>Window Back&amp;ground:</source>
+ <translation>&amp;Ozadje okna:</translation>
+ </message>
+ <message>
+ <source>&amp;Tune Palette...</source>
+ <translation>&amp;Nastavitev palete ...</translation>
+ </message>
+ <message>
+ <source>Please use the KDE Control Center to set the palette.</source>
+ <translation>Za nastavitev palete uporabite KDE-jeve Sistemske nastavitve.</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation>Pisave</translation>
+ </message>
+ <message>
+ <source>Default Font</source>
+ <translation>Privzeta pisava</translation>
+ </message>
+ <message>
+ <source>&amp;Style:</source>
+ <translation>&amp;Slog:</translation>
+ </message>
+ <message>
+ <source>&amp;Point Size:</source>
+ <translation>&amp;Velikost v točkah:</translation>
+ </message>
+ <message>
+ <source>F&amp;amily:</source>
+ <translation>&amp;Družina:</translation>
+ </message>
+ <message>
+ <source>Sample Text</source>
+ <translation>Vzorec besedila</translation>
+ </message>
+ <message>
+ <source>Font Substitution</source>
+ <translation>Nadomeščanje pisav</translation>
+ </message>
+ <message>
+ <source>S&amp;elect or Enter a Family:</source>
+ <translation>I&amp;zberite ali vnesite družino:</translation>
+ </message>
+ <message>
+ <source>Current Substitutions:</source>
+ <translation>Trenutni nadomestki:</translation>
+ </message>
+ <message>
+ <source>Up</source>
+ <translation>Gor</translation>
+ </message>
+ <message>
+ <source>Down</source>
+ <translation>Dol</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Odstrani</translation>
+ </message>
+ <message>
+ <source>Select s&amp;ubstitute Family:</source>
+ <translation>Izberite &amp;nadomestno družino:</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Dodaj</translation>
+ </message>
+ <message>
+ <source>Interface</source>
+ <translation>Vmesnik</translation>
+ </message>
+ <message>
+ <source>Feel Settings</source>
+ <translation>Nastavitve obnašanja</translation>
+ </message>
+ <message>
+ <source> ms</source>
+ <translation> ms</translation>
+ </message>
+ <message>
+ <source>&amp;Double Click Interval:</source>
+ <translation>Interval &amp;dvojnega klika:</translation>
+ </message>
+ <message>
+ <source>No blinking</source>
+ <translation>Brez utripanja</translation>
+ </message>
+ <message>
+ <source>&amp;Cursor Flash Time:</source>
+ <translation>&amp;Hitrost utripanja kazalca:</translation>
+ </message>
+ <message>
+ <source> lines</source>
+ <translation> vrstic</translation>
+ </message>
+ <message>
+ <source>Wheel &amp;Scroll Lines:</source>
+ <translation>&amp;Vrtljaj koleščka:</translation>
+ </message>
+ <message>
+ <source>Resolve symlinks in URLs</source>
+ <translation>Razreši simbolične povezave v URL-jih</translation>
+ </message>
+ <message>
+ <source>GUI Effects</source>
+ <translation>Učinki grafičnega vmesnika</translation>
+ </message>
+ <message>
+ <source>&amp;Enable</source>
+ <translation>&amp;Omogoči</translation>
+ </message>
+ <message>
+ <source>Alt+E</source>
+ <translation>Alt+O</translation>
+ </message>
+ <message>
+ <source>&amp;Menu Effect:</source>
+ <translation>Učinek &amp;menija:</translation>
+ </message>
+ <message>
+ <source>C&amp;omboBox Effect:</source>
+ <translation>Učinek &amp;spustnega seznama:</translation>
+ </message>
+ <message>
+ <source>&amp;ToolTip Effect:</source>
+ <translation>Učinek &amp;namiga:</translation>
+ </message>
+ <message>
+ <source>Tool&amp;Box Effect:</source>
+ <translation>Učinek o&amp;rodjarne:</translation>
+ </message>
+ <message>
+ <source>Disable</source>
+ <translation>Onemogoči</translation>
+ </message>
+ <message>
+ <source>Animate</source>
+ <translation>Animiraj</translation>
+ </message>
+ <message>
+ <source>Fade</source>
+ <translation>Preidi</translation>
+ </message>
+ <message>
+ <source>Global Strut</source>
+ <translation>Globalni razmiki</translation>
+ </message>
+ <message>
+ <source>Minimum &amp;Width:</source>
+ <translation>Najmanjša &amp;širina:</translation>
+ </message>
+ <message>
+ <source>Minimum Hei&amp;ght:</source>
+ <translation>Najmanjša &amp;višina:</translation>
+ </message>
+ <message>
+ <source> pixels</source>
+ <translation> pik</translation>
+ </message>
+ <message>
+ <source>Enhanced support for languages written right-to-left</source>
+ <translation>Izboljšana podpora za jezike, ki se pišejo od desne proti levi</translation>
+ </message>
+ <message>
+ <source>XIM Input Style:</source>
+ <translation>Način za vnašanje XIM:</translation>
+ </message>
+ <message>
+ <source>On The Spot</source>
+ <translation>Na mestu</translation>
+ </message>
+ <message>
+ <source>Over The Spot</source>
+ <translation>Prek mesta</translation>
+ </message>
+ <message>
+ <source>Off The Spot</source>
+ <translation>Z mesta</translation>
+ </message>
+ <message>
+ <source>Root</source>
+ <translation>Vrh</translation>
+ </message>
+ <message>
+ <source>Default Input Method:</source>
+ <translation>Privzeti način vnašanja:</translation>
+ </message>
+ <message>
+ <source>Printer</source>
+ <translation>Tiskalnik</translation>
+ </message>
+ <message>
+ <source>Enable Font embedding</source>
+ <translation>Omogoči vgrajevanje pisav</translation>
+ </message>
+ <message>
+ <source>Font Paths</source>
+ <translation>Poti do posav</translation>
+ </message>
+ <message>
+ <source>Browse...</source>
+ <translation>Brskanje ...</translation>
+ </message>
+ <message>
+ <source>Press the &lt;b&gt;Browse&lt;/b&gt; button or enter a directory and press Enter to add them to the list.</source>
+ <translation>Kliknite gumb &lt;b&gt;Brskanje&lt;/b&gt; ali pa vnesite mapo in pritisnite vnašalko za dodajanje na seznam.</translation>
+ </message>
+ <message>
+ <source>Phonon</source>
+ <translation>Phonon</translation>
+ </message>
+ <message>
+ <source>About Phonon</source>
+ <translation>O Phononu</translation>
+ </message>
+ <message>
+ <source>Current Version:</source>
+ <translation>Trenutna različica:</translation>
+ </message>
+ <message>
+ <source>Not available</source>
+ <translation>Ni na voljo</translation>
+ </message>
+ <message>
+ <source>Website:</source>
+ <translation>Spletna stran:</translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://phonon.kde.org&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://phonon.kde.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://phonon.kde.org&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://phonon.kde.org/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>About GStreamer</source>
+ <translation>O GStreamerju</translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://gstreamer.freedesktop.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://gstreamer.freedesktop.org/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://gstreamer.freedesktop.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://gstreamer.freedesktop.org/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>GStreamer backend settings</source>
+ <translation>Nastavitve hrbtenice GStreamer</translation>
+ </message>
+ <message>
+ <source>Preferred audio sink:</source>
+ <translation>Prednostni ponor zvoka:</translation>
+ </message>
+ <message>
+ <source>Preferred render method:</source>
+ <translation>Prednostni način izrisovanja:</translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Note: changes to these settings may prevent applications from starting up correctly.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Vedite: spremembe teh nastavitev lahko preprečijo pravilen zagon programov.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datoteka</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Pomoč</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Shrani</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Shrani</translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>Konča&amp;j</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation>Končaj</translation>
+ </message>
+ <message>
+ <source>&amp;About</source>
+ <translation>&amp;O</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation>O</translation>
+ </message>
+ <message>
+ <source>About &amp;Qt</source>
+ <translation>O &amp;Qt</translation>
+ </message>
+ <message>
+ <source>About Qt</source>
+ <translation>O Qt</translation>
+ </message>
+</context>
+<context>
+ <name>PaletteEditorAdvancedBase</name>
+ <message>
+ <source>Tune Palette</source>
+ <translation>Nastavitev palete</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Edit Palette&lt;/b&gt;&lt;p&gt;Change the palette of the current widget or form.&lt;/p&gt;&lt;p&gt;Use a generated palette or select colors for each color group and each color role.&lt;/p&gt;&lt;p&gt;The palette can be tested with different widget layouts in the preview section.&lt;/p&gt;</source>
+ <translation>&lt;b&gt;Nastavitev palete&lt;/b&gt;&lt;p&gt;Spremenite paleto za trenutni gradnik ali obrazec.&lt;/p&gt;&lt;p&gt;Uporabite ustvarjeno paleto ali pa za vsako barvno skupino in vsako barvno vlogo izberite barvo.&lt;/p&gt;&lt;p&gt;Paleto lahko v razdelku Ogled preizkusite z različnimi slogi gradnikov.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <source>Select &amp;Palette:</source>
+ <translation>Izberite &amp;paleto:</translation>
+ </message>
+ <message>
+ <source>Active Palette</source>
+ <translation>Paleta za aktivno</translation>
+ </message>
+ <message>
+ <source>Inactive Palette</source>
+ <translation>Paleta za neaktivno</translation>
+ </message>
+ <message>
+ <source>Disabled Palette</source>
+ <translation>Paleta za onemogočeno</translation>
+ </message>
+ <message>
+ <source>Auto</source>
+ <translation>Samodejno</translation>
+ </message>
+ <message>
+ <source>Build inactive palette from active</source>
+ <translation>Paleto za neaktivno zgradi iz palete za aktivno</translation>
+ </message>
+ <message>
+ <source>Build disabled palette from active</source>
+ <translation>Paleto za onemogočeno zgradi iz palete za aktivno</translation>
+ </message>
+ <message>
+ <source>Central color &amp;roles</source>
+ <translation>Osrednje barvne &amp;vloge</translation>
+ </message>
+ <message>
+ <source>Choose central color role</source>
+ <translation>Izberite osrednjo barvno vlogo</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Select a color role.&lt;/b&gt;&lt;p&gt;Available central roles are: &lt;ul&gt; &lt;li&gt;Window - general background color.&lt;/li&gt; &lt;li&gt;WindowText - general foreground color. &lt;/li&gt; &lt;li&gt;Base - used as background color for e.g. text entry widgets, usually white or another light color. &lt;/li&gt; &lt;li&gt;Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. &lt;/li&gt; &lt;li&gt;Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. &lt;/li&gt; &lt;li&gt;ButtonText - a foreground color used with the Button color. &lt;/li&gt; &lt;li&gt;Highlight - a color to indicate a selected or highlighted item. &lt;/li&gt; &lt;li&gt;HighlightedText - a text color that contrasts to Highlight. &lt;/li&gt; &lt;li&gt;BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. &lt;/li&gt; &lt;/ul&gt; &lt;/p&gt;</source>
+ <translation>&lt;b&gt;Izberite barvno vlogo&lt;/b&gt;&lt;p&gt;Razpoložljive osrednje vloge so:&lt;ul&gt;&lt;li&gt;Okno – splošna barva ozadja.&lt;/li&gt;&lt;li&gt;Besedilo okna – splošna barva ospredja&lt;/li&gt;&lt;li&gt;Osnova – uporabljena kot barva ozadja za npr. vnosne gradnike, običajno bela ali druga svetla barva.&lt;/li&gt;&lt;li&gt;Besedilo – barva ospredja, ki se uporablja z Osnovo. Običajno je to isto kot Besedilo okna in v tem primeru mora biti v kontrastu z barvama Okno in Osnova.&lt;/li&gt;&lt;li&gt;Gumb – splošna barva ozadja gumba, če gumb potrebuje ozadje, ki je drugačno od ozadja oken.&lt;/li&gt;&lt;li&gt;Besedilo gumba – barva ospredja, ki se uporablja z barvo Gumba&lt;li&gt;Poudarek – barva za nakazovanje izbranega ali poudarjenega.&lt;/li&gt;&lt;li&gt;Poudarjeno besedilo – barva besedila, ki se razlikuje od barve za Poudarek.&lt;/li&gt;&lt;li&gt;Svetlo besedilo – barva besedila, ki se zelo razlikuje od barve za Besedilo okna in je v kontrastu s črno.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <source>Window</source>
+ <translation>Okno</translation>
+ </message>
+ <message>
+ <source>WindowText</source>
+ <translation>Besedilo okna</translation>
+ </message>
+ <message>
+ <source>Button</source>
+ <translation>Gumb</translation>
+ </message>
+ <message>
+ <source>Base</source>
+ <translation>Osnova</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation>Besedilo</translation>
+ </message>
+ <message>
+ <source>BrightText</source>
+ <translation>Svetlo besedilo</translation>
+ </message>
+ <message>
+ <source>ButtonText</source>
+ <translation>Besedilo gumba</translation>
+ </message>
+ <message>
+ <source>Highlight</source>
+ <translation>Poudarek</translation>
+ </message>
+ <message>
+ <source>HighlightedText</source>
+ <translation>Poudarjeno besedilo</translation>
+ </message>
+ <message>
+ <source>&amp;Select Color:</source>
+ <translation>&amp;Izberite barvo:</translation>
+ </message>
+ <message>
+ <source>Choose a color</source>
+ <translation>Izberite barvo</translation>
+ </message>
+ <message>
+ <source>Choose a color for the selected central color role.</source>
+ <translation>Izberite barvo za izbrano osrednjo barvno vlogo.</translation>
+ </message>
+ <message>
+ <source>3-D shadow &amp;effects</source>
+ <translation>&amp;Učinki 3D sence:</translation>
+ </message>
+ <message>
+ <source>Build &amp;from button color</source>
+ <translation>&amp;Zgradi iz barve za gumb</translation>
+ </message>
+ <message>
+ <source>Generate shadings</source>
+ <translation>Ustvari sence</translation>
+ </message>
+ <message>
+ <source>Check to let 3D-effect colors be calculated from button-color.</source>
+ <translation>Izberite, da se barve 3D učinka izračuna iz barve za gumb.</translation>
+ </message>
+ <message>
+ <source>Choose 3D-effect color role</source>
+ <translation>Izberite barvno vlogo 3D učinka</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Select a color role.&lt;/b&gt;&lt;p&gt;Available effect roles are: &lt;ul&gt; &lt;li&gt;Light - lighter than Button color. &lt;/li&gt; &lt;li&gt;Midlight - between Button and Light. &lt;/li&gt; &lt;li&gt;Mid - between Button and Dark. &lt;/li&gt; &lt;li&gt;Dark - darker than Button. &lt;/li&gt; &lt;li&gt;Shadow - a very dark color. &lt;/li&gt; &lt;/ul&gt;</source>
+ <translation>&lt;b&gt;Izberite barvno vlogo&lt;/b&gt;&lt;p&gt;Razpoložljive vloge za učinek so:&lt;ul&gt;&lt;li&gt;Svetlo – svetlejše od barve za gumb.&lt;/li&gt;&lt;li&gt;Srednje svetlo – med barvama za gumb in Svetlo.&lt;/li&gt;&lt;li&gt;Srednje temno – med barvama za gumb in Temno&lt;/li&gt;&lt;li&gt;Temno – temnejše od barve za gumb.&lt;/li&gt;&lt;li&gt;Senca – zelo temna barva.&lt;/li&gt;&lt;/ul&gt;</translation>
+ </message>
+ <message>
+ <source>Light</source>
+ <translation>Svetlo</translation>
+ </message>
+ <message>
+ <source>Midlight</source>
+ <translation>Srednje svetlo</translation>
+ </message>
+ <message>
+ <source>Mid</source>
+ <translation>Srednje temno</translation>
+ </message>
+ <message>
+ <source>Dark</source>
+ <translation>Temno</translation>
+ </message>
+ <message>
+ <source>Shadow</source>
+ <translation>Senca</translation>
+ </message>
+ <message>
+ <source>Select Co&amp;lor:</source>
+ <translation>Izberite b&amp;arvo:</translation>
+ </message>
+ <message>
+ <source>Choose a color for the selected effect color role.</source>
+ <translation>Izberite barvo za izbrano barvno vlogo učinka.</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>V redu</translation>
+ </message>
+ <message>
+ <source>Close dialog and apply all changes.</source>
+ <translation>Zapre pogovorno okno in uveljavi spremembe.</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Prekliči</translation>
+ </message>
+ <message>
+ <source>Close dialog and discard all changes.</source>
+ <translation>Zapre pogovorno okno in zavrže spremembe.</translation>
+ </message>
+</context>
+<context>
+ <name>PreviewFrame</name>
+ <message>
+ <source>Desktop settings will only take effect after an application restart.</source>
+ <translation>Nastavitve namizja bodo stopile v veljavo po ponovnem zagonu programa.</translation>
+ </message>
+</context>
+<context>
+ <name>PreviewWidgetBase</name>
+ <message>
+ <source>Preview Window</source>
+ <translation>Okno ogleda</translation>
+ </message>
+ <message>
+ <source>ButtonGroup</source>
+ <translation>SkupinaGumbov</translation>
+ </message>
+ <message>
+ <source>RadioButton1</source>
+ <translation>IzbirniGumb1</translation>
+ </message>
+ <message>
+ <source>RadioButton2</source>
+ <translation>IzbirniGumb2</translation>
+ </message>
+ <message>
+ <source>RadioButton3</source>
+ <translation>IzbirniGumb3</translation>
+ </message>
+ <message>
+ <source>ButtonGroup2</source>
+ <translation>SkupinaGumbov2</translation>
+ </message>
+ <message>
+ <source>CheckBox1</source>
+ <translation>PotrditvenoPolje1</translation>
+ </message>
+ <message>
+ <source>CheckBox2</source>
+ <translation>PotrditvenoPolje2</translation>
+ </message>
+ <message>
+ <source>LineEdit</source>
+ <translation>UrejevalnaVrstica</translation>
+ </message>
+ <message>
+ <source>ComboBox</source>
+ <translation>SpustniSeznam</translation>
+ </message>
+ <message>
+ <source>PushButton</source>
+ <translation>Gumb</translation>
+ </message>
+ <message>
+ <source>&lt;p&gt;
+&lt;a href=&quot;http://qt.nokia.com&quot;&gt;http://qt.nokia.com&lt;/a&gt;
+&lt;/p&gt;
+&lt;p&gt;
+&lt;a href=&quot;http://www.kde.org&quot;&gt;http://www.kde.org&lt;/a&gt;
+&lt;/p&gt;</source>
+ <translation>&lt;p&gt;
+&lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt;
+&lt;/p&gt;
+&lt;p&gt;
+&lt;a href=&quot;http://www.kde.org/&quot;&gt;www.kde.org&lt;/a&gt;
+&lt;/p&gt;</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qvfb_sl.ts b/translations/qvfb_sl.ts
new file mode 100644
index 0000000000..251ba190f2
--- /dev/null
+++ b/translations/qvfb_sl.ts
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+ <extra-po-header-po_revision_date>2010-08-28 16:47+0200</extra-po-header-po_revision_date>
+ <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+ <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+ <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+ <extra-po-header-project_id_version></extra-po-header-project_id_version>
+ <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+ <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+ <name>AnimationSaveWidget</name>
+ <message>
+ <source>Record</source>
+ <translation>Posnemi</translation>
+ </message>
+ <message>
+ <source>Reset</source>
+ <translation>Ponastavi</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Shrani</translation>
+ </message>
+ <message>
+ <source>Save in MPEG format (requires netpbm package installed)</source>
+ <translation>Shrani v obliko MPEG (potrebuje nameščen paket netpbm)</translation>
+ </message>
+ <message>
+ <source>Click record to begin recording.</source>
+ <translation>Kliknite Posnemi za začetek snemanja.</translation>
+ </message>
+ <message>
+ <source>Finished saving.</source>
+ <translation>Shranjevanje zaključeno.</translation>
+ </message>
+ <message>
+ <source>Paused. Click record to resume, or save if done.</source>
+ <translation>Premor. Za nadaljevanje kliknite Posnemi, če ste zaključili pa Shrani.</translation>
+ </message>
+ <message>
+ <source>Pause</source>
+ <translation>Premor</translation>
+ </message>
+ <message>
+ <source>Recording...</source>
+ <translation>Snemanje ...</translation>
+ </message>
+ <message>
+ <source>Saving... </source>
+ <translation>Shranjevanje ... </translation>
+ </message>
+ <message>
+ <source>Save animation...</source>
+ <translation>Shrani animacijo ...</translation>
+ </message>
+ <message>
+ <source>Save canceled.</source>
+ <translation>Shranjevanje preklicano</translation>
+ </message>
+ <message>
+ <source>Save failed!</source>
+ <translation>Shranjevanje ni uspelo.</translation>
+ </message>
+</context>
+<context>
+ <name>Config</name>
+ <message>
+ <source>Configure</source>
+ <translation>Nastavi</translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation>Velikost</translation>
+ </message>
+ <message>
+ <source>176x220 &quot;SmartPhone&quot;</source>
+ <translation>176⨯220 (pametni telefon)</translation>
+ </message>
+ <message>
+ <source>240x320 &quot;PDA&quot;</source>
+ <translation>240⨯320 (dlančnik)</translation>
+ </message>
+ <message>
+ <source>320x240 &quot;TV&quot; / &quot;QVGA&quot;</source>
+ <translation>320⨯240 (TV/QVGA)</translation>
+ </message>
+ <message>
+ <source>640x480 &quot;VGA&quot;</source>
+ <translation>640⨯480 (VGA)</translation>
+ </message>
+ <message>
+ <source>800x480</source>
+ <translation>800⨯480</translation>
+ </message>
+ <message>
+ <source>800x600</source>
+ <translation>800⨯600</translation>
+ </message>
+ <message>
+ <source>1024x768</source>
+ <translation>1024⨯768</translation>
+ </message>
+ <message>
+ <source>Custom</source>
+ <translation>Po meri</translation>
+ </message>
+ <message>
+ <source>Depth</source>
+ <translation>Globina</translation>
+ </message>
+ <message>
+ <source>1 bit monochrome</source>
+ <translation>1 bit enobarvno</translation>
+ </message>
+ <message>
+ <source>2 bit grayscale</source>
+ <translation>2 bita sivine</translation>
+ </message>
+ <message>
+ <source>4 bit grayscale</source>
+ <translation>4 bite sivine</translation>
+ </message>
+ <message>
+ <source>8 bit</source>
+ <translation>8 bitov</translation>
+ </message>
+ <message>
+ <source>12 (16) bit</source>
+ <translation>12 (16) bitov</translation>
+ </message>
+ <message>
+ <source>15 bit</source>
+ <translation>15 bitov</translation>
+ </message>
+ <message>
+ <source>16 bit</source>
+ <translation>16 bitov</translation>
+ </message>
+ <message>
+ <source>18 bit</source>
+ <translation>18 bitov</translation>
+ </message>
+ <message>
+ <source>24 bit</source>
+ <translation>24 bitov</translation>
+ </message>
+ <message>
+ <source>32 bit</source>
+ <translation>32 bitov</translation>
+ </message>
+ <message>
+ <source>32 bit ARGB</source>
+ <translation>32-bitov ARGB</translation>
+ </message>
+ <message>
+ <source>Swap red and blue channels</source>
+ <translation>Izmenjaj modri in rdeči kanal</translation>
+ </message>
+ <message>
+ <source>BGR format</source>
+ <translation>Format BGR</translation>
+ </message>
+ <message>
+ <source>Skin</source>
+ <translation>Tema</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Brez</translation>
+ </message>
+ <message>
+ <source>Emulate touch screen (no mouse move)</source>
+ <translation>Posnemaj zaslon na dotik (brez premikov miške)</translation>
+ </message>
+ <message>
+ <source>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</source>
+ <translation>Posnemaj zaslon LCD (samo s stalno 3.0⨯ povećavo)</translation>
+ </message>
+ <message>
+ <source>&lt;p&gt;Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth &lt;i&gt;above&lt;/i&gt;. You may freely modify the Gamma &lt;i&gt;below&lt;/i&gt;.</source>
+ <translation>&lt;p&gt;Vedite, da bo ob spremembi velikosti ali globine vsak program, ki uporablja navidezni slikovni medpomnilnik, končan. Gamo lahko prosto spreminjate.</translation>
+ </message>
+ <message>
+ <source>Gamma</source>
+ <translation>Gama</translation>
+ </message>
+ <message>
+ <source>Blue</source>
+ <translation>Modra</translation>
+ </message>
+ <message>
+ <source>1.0</source>
+ <translation>1,0</translation>
+ </message>
+ <message>
+ <source>Green</source>
+ <translation>Zelena</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Vse</translation>
+ </message>
+ <message>
+ <source>Red</source>
+ <translation>Rdeča</translation>
+ </message>
+ <message>
+ <source>Set all to 1.0</source>
+ <translation>Nastavi vse na 1,0</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;V redu</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Prekliči</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceSkin</name>
+ <message>
+ <source>The image file &apos;%1&apos; could not be loaded.</source>
+ <translation>Slikovne datoteke »%1« ni bilo moč naložiti.</translation>
+ </message>
+ <message>
+ <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+ <translation>Mapa s temo »%1« ne vsebuje nastavitvene datoteke.</translation>
+ </message>
+ <message>
+ <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+ <translation>Nastavitvene datoteke za temo »%1« ni bilo moč odpreti.</translation>
+ </message>
+ <message>
+ <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+ <translation>Nastavitvene datoteke za temo »%1« ni bilo moč prebrati: %2</translation>
+ </message>
+ <message>
+ <source>Syntax error: %1</source>
+ <translation>Skladenjska napaka: %1</translation>
+ </message>
+ <message>
+ <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Datoteka slike »up« teme »%1« ne obstaja.</translation>
+ </message>
+ <message>
+ <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Datoteka slike »down« teme »%1« ne obstaja.</translation>
+ </message>
+ <message>
+ <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Datoteka slike »closed« teme »%1« ne obstaja.</translation>
+ </message>
+ <message>
+ <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+ <translation>Slikovna datoteka s kazalcem za temo »%1« ne obstaja.</translation>
+ </message>
+ <message>
+ <source>Syntax error in area definition: %1</source>
+ <translation>Skladenjska napaka pri določitvi območja: %1</translation>
+ </message>
+ <message>
+ <source>Mismatch in number of areas, expected %1, got %2.</source>
+ <translation>Neujemanje v številu območij, pričakovano %1, dobljeno %2.</translation>
+ </message>
+</context>
+<context>
+ <name>QVFb</name>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datoteka</translation>
+ </message>
+ <message>
+ <source>&amp;Configure...</source>
+ <translation>&amp;Nastavi ...</translation>
+ </message>
+ <message>
+ <source>&amp;Save image...</source>
+ <translation>&amp;Shrani sliko ...</translation>
+ </message>
+ <message>
+ <source>&amp;Animation...</source>
+ <translation>&amp;Animacija ...</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>Konča&amp;j</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation>&amp;Videz</translation>
+ </message>
+ <message>
+ <source>Show &amp;Cursor</source>
+ <translation>Prikaži &amp;kazalec</translation>
+ </message>
+ <message>
+ <source>&amp;Refresh Rate...</source>
+ <translation>&amp;Hitrost osveževanja ...</translation>
+ </message>
+ <message>
+ <source>&amp;No rotation</source>
+ <translation>&amp;Brez zasuka</translation>
+ </message>
+ <message>
+ <source>&amp;90° rotation</source>
+ <translation>Zasuk za &amp;90°</translation>
+ </message>
+ <message>
+ <source>1&amp;80° rotation</source>
+ <translation>Zasuk za 1&amp;80°</translation>
+ </message>
+ <message>
+ <source>2&amp;70° rotation</source>
+ <translation>Zasuk za 2&amp;70°</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;0.5</source>
+ <translation>Povečava &amp;0,5</translation>
+ </message>
+ <message>
+ <source>Zoom scale 0.7&amp;5</source>
+ <translation>Povečava 0,7&amp;5</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;1</source>
+ <translation>Povečeva &amp;1,0</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;2</source>
+ <translation>Povečava &amp;2,0</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;3</source>
+ <translation>Povečeva &amp;3,0</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;4</source>
+ <translation>Povečava &amp;4,0</translation>
+ </message>
+ <message>
+ <source>Zoom &amp;scale...</source>
+ <translation>&amp;Povečava ...</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Pomoč</translation>
+ </message>
+ <message>
+ <source>&amp;About...</source>
+ <translation>&amp;O ...</translation>
+ </message>
+ <message>
+ <source>Save Main Screen image</source>
+ <translation>Shrani sliko glavnega zaslona</translation>
+ </message>
+ <message>
+ <source>snapshot.png</source>
+ <translation>posnetek.png</translation>
+ </message>
+ <message>
+ <source>Portable Network Graphics (*.png)</source>
+ <translation>Portable Network Graphics (*.png)</translation>
+ </message>
+ <message>
+ <source>Save Main Screen Image</source>
+ <translation>Shrani sliko glavnega zaslona</translation>
+ </message>
+ <message>
+ <source>Save failed. Check that you have permission to write to the target directory.</source>
+ <translation>Shranjevanje ni uspelo. Preverite dovoljenja za pisanje v ciljno mapo.</translation>
+ </message>
+ <message>
+ <source>Save Second Screen image</source>
+ <translation>Shrani sliko drugega zaslona</translation>
+ </message>
+ <message>
+ <source>Save Second Screen Image</source>
+ <translation>Shrani sliko drugega zaslona</translation>
+ </message>
+ <message>
+ <source>About QVFB</source>
+ <translation>O QVFB</translation>
+ </message>
+ <message>
+ <source>&lt;h2&gt;The Qt for Embedded Linux Virtual X11 Framebuffer&lt;/h2&gt;&lt;p&gt;This application runs under Qt for X11, emulating a simple framebuffer, which the Qt for Embedded Linux server and clients can attach to just as if it was a hardware Linux framebuffer. &lt;p&gt;With the aid of this development tool, you can develop Qt for Embedded Linux applications under X11 without having to switch to a virtual console. This means you can comfortably use your other development tools such as GUI profilers and debuggers.</source>
+ <translation>&lt;h2&gt;Qt for Embedded Linux Virtual X11 Framebuffer&lt;/h2&gt;&lt;p&gt;Ta program teče pod okenskim sistemom X11 in posnema preprost slikovni medpomnilnik, na katerega se lahko strežniki in odjemalci, izdelani s Qt za vgrajeni Linux, priklopijo, kot da bi bil pravi strojni slikovni medpomnilnik Linuxa.&lt;p&gt;S pomočjo tega orodja lahko programe Qt za vgrajeni Linux razvijate pod X11, ne da bi bilo potrebno preklopiti v navidezno konzolo. To pomeni, da lahko še naprej udobno uporabljate druga razvojna orodja, kot so grafični profilirniki in razhroščevalniki.</translation>
+ </message>
+ <message>
+ <source>Browse...</source>
+ <translation>Brskanje ...</translation>
+ </message>
+ <message>
+ <source>Load Custom Skin...</source>
+ <translation>Naloži temo po meri ...</translation>
+ </message>
+ <message>
+ <source>All QVFB Skins (*.skin)</source>
+ <translation>Vse teme za QVFB (*.skin)</translation>
+ </message>
+</context>
+<context>
+ <name>QVFbRateDialog</name>
+ <message>
+ <source>Target frame rate:</source>
+ <translation>Ciljna hitrost sličic:</translation>
+ </message>
+ <message>
+ <source>%1fps</source>
+ <translation>%1 sl./s</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>V redu</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Prekliči</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qvfb_uk.ts b/translations/qvfb_uk.ts
index 0e0c5da620..e857e9deb8 100644
--- a/translations/qvfb_uk.ts
+++ b/translations/qvfb_uk.ts
@@ -215,7 +215,7 @@
<name>DeviceSkin</name>
<message>
<source>The image file &apos;%1&apos; could not be loaded.</source>
- <translation>Неможливо завантажити файл зображення &apos;%1&apos;.</translation>
+ <translation>Не вдалось завантажити файл зображення &apos;%1&apos;.</translation>
</message>
<message>
<source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
@@ -223,11 +223,11 @@
</message>
<message>
<source>The skin configuration file &apos;%1&apos; could not be opened.</source>
- <translation>Неможливо відкрити файл налаштувань &apos;%1&apos;.</translation>
+ <translation>Не вдалось відкрити файл налаштувань обкладинки &apos;%1&apos;.</translation>
</message>
<message>
<source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
- <translation>Неможливо прочитати файл налаштувань &apos;%1&apos;: %2</translation>
+ <translation>Не вдалось прочитати файл налаштувань обкладинки &apos;%1&apos;: %2</translation>
</message>
<message>
<source>Syntax error: %1</source>
@@ -261,6 +261,126 @@
<context>
<name>QVFb</name>
<message>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <source>&amp;Configure...</source>
+ <translation>&amp;Налаштувати...</translation>
+ </message>
+ <message>
+ <source>&amp;Save image...</source>
+ <translation>&amp;Зберегти зображення...</translation>
+ </message>
+ <message>
+ <source>&amp;Animation...</source>
+ <translation>&amp;Анімація...</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>Ви&amp;йти</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation>&amp;Вид</translation>
+ </message>
+ <message>
+ <source>Show &amp;Cursor</source>
+ <translation>Показувати &amp;курсор</translation>
+ </message>
+ <message>
+ <source>&amp;Refresh Rate...</source>
+ <translation>Швидкість &amp;оновлення...</translation>
+ </message>
+ <message>
+ <source>&amp;No rotation</source>
+ <translation>&amp;Без обертання</translation>
+ </message>
+ <message>
+ <source>&amp;90° rotation</source>
+ <translation>Обернути на &amp;90°</translation>
+ </message>
+ <message>
+ <source>1&amp;80° rotation</source>
+ <translation>Обернути на 1&amp;80°</translation>
+ </message>
+ <message>
+ <source>2&amp;70° rotation</source>
+ <translation>Обернути на 2&amp;70°</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;0.5</source>
+ <translation>Коефіцієнт масштабування &amp;0.5</translation>
+ </message>
+ <message>
+ <source>Zoom scale 0.7&amp;5</source>
+ <translation>Коефіцієнт масштабування 0.7&amp;5</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;1</source>
+ <translation>Коефіцієнт масштабування &amp;1</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;2</source>
+ <translation>Коефіцієнт масштабування &amp;2</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;3</source>
+ <translation>Коефіцієнт масштабування &amp;3</translation>
+ </message>
+ <message>
+ <source>Zoom scale &amp;4</source>
+ <translation>Коефіцієнт масштабування &amp;4</translation>
+ </message>
+ <message>
+ <source>Zoom &amp;scale...</source>
+ <translation>Коефіцієнт &amp;масштабування...</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Довідка</translation>
+ </message>
+ <message>
+ <source>&amp;About...</source>
+ <translation>&amp;Про...</translation>
+ </message>
+ <message>
+ <source>Save Main Screen image</source>
+ <translation>Зберегти зображення головного екрану</translation>
+ </message>
+ <message>
+ <source>snapshot.png</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Portable Network Graphics (*.png)</source>
+ <translation>Переносима мережева графіка (*.png)</translation>
+ </message>
+ <message>
+ <source>Save Main Screen Image</source>
+ <translation>Зберегти зображення головного екрану</translation>
+ </message>
+ <message>
+ <source>Save failed. Check that you have permission to write to the target directory.</source>
+ <translation>Збій збереження. Перевірте чи маєте ви право на запис в теку збереження.</translation>
+ </message>
+ <message>
+ <source>Save Second Screen image</source>
+ <translation>Зберегти зображення другого екрану</translation>
+ </message>
+ <message>
+ <source>Save Second Screen Image</source>
+ <translation>Зберегти зображення другого екрану</translation>
+ </message>
+ <message>
+ <source>About QVFB</source>
+ <translation>Про QVFB</translation>
+ </message>
+ <message>
+ <source>&lt;h2&gt;The Qt for Embedded Linux Virtual X11 Framebuffer&lt;/h2&gt;&lt;p&gt;This application runs under Qt for X11, emulating a simple framebuffer, which the Qt for Embedded Linux server and clients can attach to just as if it was a hardware Linux framebuffer. &lt;p&gt;With the aid of this development tool, you can develop Qt for Embedded Linux applications under X11 without having to switch to a virtual console. This means you can comfortably use your other development tools such as GUI profilers and debuggers.</source>
+ <translation>&lt;h2&gt;Віртуальний фреймбуфер X11 Qt для Embedded Linux&lt;/h2&gt;&lt;p&gt;Ця програма виконується під Qt для X11, емулюючи простий фреймбуфер, до якого сервер та клієнти Qt для Embedded Linux можуть приєднуватись так само, як би це був апаратний фреймбуфер Linux. &lt;p&gt;За допомогою цього інструменту ви можете розробляти програми Qt для Embedded Linux під X11, без потреби перемикатись на віртуальну консоль. Це означає, що ви можете зручно використовувати інші ваші інструменти розробки, такі як профайлери та зневаджувачі з графічним інтерфейсом користувача.</translation>
+ </message>
+ <message>
<source>Browse...</source>
<translation>Оглянути...</translation>
</message>
@@ -273,4 +393,23 @@
<translation>Усі обкладинки QVFB (*.skin)</translation>
</message>
</context>
+<context>
+ <name>QVFbRateDialog</name>
+ <message>
+ <source>Target frame rate:</source>
+ <translation>Швидкість оновлення:</translation>
+ </message>
+ <message>
+ <source>%1fps</source>
+ <translation>%1 кадрів в секунду</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Скасувати</translation>
+ </message>
+</context>
</TS>
diff --git a/translations/translations.pri b/translations/translations.pri
index fbc1596023..1576bd53d3 100644
--- a/translations/translations.pri
+++ b/translations/translations.pri
@@ -47,8 +47,8 @@ addTsTargets(qt, -I../include -I../include/Qt \
xmlpatterns \
)
addTsTargets(designer, ../tools/designer/designer.pro)
-addTsTargets(linguist, ../tools/linguist/linguist/linguist.pro)
-addTsTargets(assistant, ../tools/assistant/tools/assistant/assistant.pro)
+addTsTargets(linguist, ../tools/linguist/linguist.pro)
+addTsTargets(assistant, ../tools/assistant/tools/tools.pro)
addTsTargets(qt_help, ../tools/assistant/lib/lib.pro)
addTsTargets(qtconfig, ../tools/qtconfig/qtconfig.pro)
addTsTargets(qvfb, ../tools/qvfb/qvfb.pro)